// // candutil.h // #ifndef CANDUTIL_H #define CANDUTIL_H #include "private.h" // // definitions // // direction (CreateRotateBitmap) typedef enum { CANGLE0, CANGLE90, CANGLE180, CANGLE270, } CANDANGLE; // window alignment (CalcWindowRect) typedef enum { ALIGN_LEFT, ALIGN_RIGHT, LOCATE_LEFT, LOCATE_RIGHT, } WNDALIGNH; typedef enum { ALIGN_TOP, ALIGN_BOTTOM, LOCATE_ABOVE, LOCATE_BELLOW, } WNDALIGNV; // non-client font typedef enum _NONCLIENTFONT { NCFONT_CAPTION, NCFONT_SMCAPTION, NCFONT_MENU, NCFONT_STATUS, NCFONT_MESSAGE, } NONCLIENTFONT; // DrawCtrlTriangle flags #define UIFDCTF_RIGHTTOLEFT 0x00000000 #define UIFDCTF_BOTTOMTOTOP 0x00000001 #define UIFDCTF_LEFTTORIGHT 0x00000002 #define UIFDCTF_TOPTOBOTTOM 0x00000003 #define UIFDCTF_MENUDROP 0x00010003 #define UIFDCTF_DIRMASK 0x00000003 // // theme API definition // typedef HANDLE HTHEME; // handle to a section of theme data for class // // functions // extern BOOL FIsWindowsNT( void ); extern UINT CpgFromChs( BYTE chs ); extern void ConvertLogFontWtoA( CONST LOGFONTW *plfW, LOGFONTA *plfA ); extern void ConvertLogFontAtoW( CONST LOGFONTA *plfA, LOGFONTW *plfW ); extern HFONT OurCreateFontIndirectW( CONST LOGFONTW *plfW ); extern int GetFontHeightOfFont( HDC hDC, HFONT hFont ); extern int CompareString( LPCWSTR pchStr1, LPCWSTR pchStr2, int cch ); extern HBITMAP CreateRotateBitmap( HBITMAP hBmpSrc, HPALETTE hPalette, CANDANGLE angle ); extern void GetTextExtent( HFONT hFont, LPCWSTR pwchText, int cch, SIZE *psize, BOOL fHorizontal ); extern void GetWorkAreaFromWindow( HWND hWindow, RECT *prc ); extern void GetWorkAreaFromPoint( POINT pt, RECT *prcWorkArea ); extern void AdjustWindowRect( HWND hWindow, RECT *prc, POINT *pptRef, BOOL fResize ); extern void CalcWindowRect( RECT *prcTrg, const RECT *prcSrc, int cxWindow, int cyWindow, int cxOffset, int cyOffset, WNDALIGNH HAlign, WNDALIGNV VAlign ); extern void GetLogFont( HFONT hFont, LOGFONTW *plf ); extern void GetNonClientLogFont( NONCLIENTFONT ncfont, LOGFONTW *plf ); extern void DrawTriangle( HDC hDC, const RECT *prc, COLORREF col, DWORD dwDirection ); extern void InitCandUISecurityAttributes( void ); extern void DoneCandUISecurityAttributes( void ); PSECURITY_ATTRIBUTES GetCandUISecurityAttributes( void ); #if 0 // // theme API functions // extern BOOL FIsThemeAPIAvail( void ); extern BOOL OurIsThemeActive( void ); extern HTHEME OurOpenThemeData( HWND hwnd, LPCWSTR pszClassList ); extern HRESULT OurCloseThemeData( HTHEME hTheme ); extern HRESULT OurDrawThemeBackground( HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pRect, DWORD dwBgFlags ); extern HRESULT OurDrawThemeText( HTHEME hTheme, HDC hDC, int iPartId, int iStateId, LPCWSTR pszText, int iCharCount, DWORD dwTextFlags, DWORD dwTextFlags2, const RECT *pRect ); extern HRESULT OurDrawThemeIcon( HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pRect, HIMAGELIST himl, int iImageIndex ); extern HRESULT OurGetThemeBackgroundExtent( HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pContentRect, RECT *pExtentRect ); extern HRESULT OurGetThemeBackgroundContentRect( HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pBoundingRect, RECT *pContentRect ); extern HRESULT OurGetThemeTextExtent( HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCWSTR pszText, int iCharCount, DWORD dwTextFlags, const RECT *pBoundingRect, RECT *pExtentRect ); extern HRESULT OurGetThemePartSize( HTHEME hTheme, HDC hDC, int iPartId, int iStateId, enum THEMESIZE eSize, SIZE *pSize ); #endif #endif /* CANDUTIL_H */