www.pudn.com > ExpBar_src.zip > shellstyle.h


#ifndef _INC_SHELLSTYLE_H_ 
#define _INC_SHELLSTYLE_H_ 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
#include  
#include  
 
typedef struct tagEXPBARINFO              EXPBARINFO, *PEXPBARINFO; 
 
struct tagEXPBARINFO 
{ 
  int                   cbSize; 
 
  BOOL                  bPreXP;             // true if pre XP style 
  BOOL                  bUseThemeRenderer;  // true if theme renderer must be used 
  BOOL                  bShellStyleDll;     // true if shellstyle Dll present and used 
 
  TCHAR                 szMsStylesDllName[MAX_PATH]; 
  TCHAR                 szColorname[MAX_PATH]; 
  TCHAR                 szShellStyleDllName[MAX_PATH]; 
 
  // only for pre XP (arrows of normal collapsible header) 
 
  int                   iBmpPreXPArrowWidth; 
  int                   iBmpPreXPArrowHeight; 
  HBITMAP               hAlphaPreXPBmpArrowUp[3]; 
  HBITMAP               hAlphaPreXPBmpArrowDn[3]; 
 
  // task pane 
 
  struct 
  { 
    COLORREF            crBackground1; 
    COLORREF            crBackground2; 
    int                 iValue; 
    RECT                rcPadding; 
    RECT                rcBorderThickness; 
    COLORREF            crBorder; 
  } taskpane; 
 
  // pane task links (normal) 
 
  struct 
  { 
    RECT                rcTitlePadding;             // generic link padding (inner) 
    RECT                rcMarginsActionTask;        // margins: action task (outer) 
    RECT                rcMarginsDestinationTask;   // margins: destination task (outer) 
    COLORREF            crLinkNormal;               // normal link color 
    COLORREF            crLinkHot;                  // hot link color (mousefocused) 
  } tasknormal; 
 
  // pane task links (special) 
 
  struct 
  { 
    RECT                rcTitlePadding;             // generic link padding (inner) 
    RECT                rcMarginsActionTask;        // margins: action task (outer) 
    RECT                rcMarginsDestinationTask;   // margins: destination task (outer) 
    COLORREF            crLinkNormal;               // normal link color 
    COLORREF            crLinkHot;                  // hot link color (mousefocused) 
  } taskspecial; 
 
  // normal header 
 
  struct 
  { 
    char                szFontFace[MAX_PATH];       // font face for header and content 
    int                 iFontSize;                  // font size for header and content 
    int                 iMargin;                    // margin (pane to bar) 
    HBITMAP             hAlphaBmpListHeader;        // header bitmap, if NULL: use ThemeRenderer 
    int                 iHeaderBmpWidth;            // 0 or bitmap width 
    int                 iHeaderBmpHeight;           // 0 or bitmap height 
    COLORREF            crHeaderNormal;             // normal color (header only) 
    COLORREF            crHeaderHot;                // hot color (header only) 
    UINT                uAlignment;                 // 0 or text alignment (header only) 
    int                 iFontWeightHeader;          // font weight (header only) 
    RECT                rcPaddingHeader;            // outer 
    RECT                rcBorderThicknessHeader;    // inner 
    COLORREF            crBorderColorHeader;        // unused, PRE_XP: background color of header 
 
    int                 iBmpArrowWidth; 
    int                 iBmpArrowHeight; 
    HBITMAP             hAlphaBmpArrowUp[3];        // normal, hot, pressed ([0]==NULL: use ThemeRenderer) 
                                                    // [2]==NULL: no pressed bitmap, use hot y+1 
    HBITMAP             hAlphaBmpArrowDn[3];        // normal, hot, pressed ([0]==NULL: use ThemeRenderer) 
                                                    // [2]==NULL: no pressed bitmap, use hot y+1 
 
    COLORREF            crTLbackground;             // background color (task list) 
    RECT                rcTLBorderThickness;        // border thickness 
    COLORREF            crTLBorder;                 // border color 
    RECT                rcTLPadding;                // padding (task pane to items) 
  } headernormal; 
 
  // special header 
 
  struct 
  { 
    char                szFontFace[MAX_PATH];       // font face for header and content 
    int                 iFontSize;                  // font size for header and content 
    int                 iMargin;                    // margin (pane to bar) 
    HBITMAP             hAlphaBmpListHeader;        // header bitmap, if NULL: use ThemeRenderer 
    int                 iHeaderBmpWidth;            // 0 or bitmap width 
    int                 iHeaderBmpHeight;           // 0 or bitmap height 
    COLORREF            crHeaderNormal;             // normal color (header only) 
    COLORREF            crHeaderHot;                // hot color (header only) 
    UINT                uAlignment;                 // 0 or text alignment (header only) 
    int                 iFontWeightHeader;          // font weight (header only) 
    RECT                rcPaddingHeader;            // outer 
    RECT                rcBorderThicknessHeader;    // inner 
    COLORREF            crBorderColorHeader;        // unused, PRE_XP: background color of header 
 
    int                 iBmpArrowWidth; 
    int                 iBmpArrowHeight; 
    HBITMAP             hAlphaBmpArrowUp[3];        // normal, hot, pressed ([0]==NULL: use ThemeRenderer) 
                                                    // [2]==NULL: no pressed bitmap, use hot y+1 
    HBITMAP             hAlphaBmpArrowDn[3];        // normal, hot, pressed ([0]==NULL: use ThemeRenderer) 
                                                    // [2]==NULL: no pressed bitmap, use hot y+1 
 
    COLORREF            crTLbackground;             // background color (task list, watermark) 
    UINT                uTLAlign;                   // alignment (watermark) 
    RECT                rcTLBorderThickness;        // border thickness 
    COLORREF            crTLBorder;                 // border color 
    RECT                rcTLPadding;                // padding (task pane to items) 
  } headerspecial; 
 
}; 
 
#define TDA_LEFT                      0x00000001L 
#define TDA_CENTER                    0x00000002L 
#define TDA_RIGHT                     0x00000004L 
#define TDA_WRAP                      0x00000008L 
#define TDA_TOP                       0x00000010L 
#define TDA_MIDDLE                    0x00000020L 
#define TDA_BOTTOM                    0x00000040L 
#define TDA_FOCUSRECT                 0x00000080L 
#define TDA_LEFTTOP                   (TDA_LEFT|TDA_TOP) 
#define TDA_LEFTMIDDLE                (TDA_LEFT|TDA_MIDDLE) 
#define TDA_LEFTBOTTOM                (TDA_LEFT|TDA_BOTTOM) 
#define TDA_CENTERTOP                 (TDA_CENTER|TDA_TOP) 
#define TDA_CENTERMIDDLE              (TDA_CENTER|TDA_MIDDLE) 
#define TDA_CENTERBOTTOM              (TDA_CENTER|TDA_BOTTOM) 
#define TDA_RIGHTTOP                  (TDA_RIGHT|TDA_TOP) 
#define TDA_RIGHTMIDDLE               (TDA_RIGHT|TDA_MIDDLE) 
#define TDA_RIGHTBOTTOM               (TDA_RIGHT|TDA_BOTTOM) 
#define TDA_TOPLEFT                   (TDA_TOP|TDA_LEFT) 
#define TDA_TOPCENTER                 (TDA_TOP|TDA_CENTER) 
#define TDA_TOPRIGHT                  (TDA_TOP|TDA_RIGHT) 
#define TDA_MIDDLELEFT                (TDA_MIDDLE|TDA_LEFT) 
#define TDA_MIDDLECENTER              (TDA_MIDDLE|TDA_CENTER) 
#define TDA_MIDDLERIGHT               (TDA_MIDDLE|TDA_RIGHT) 
#define TDA_BOTTOMLEFT                (TDA_BOTTOM|TDA_LEFT) 
#define TDA_BOTTOMCENTER              (TDA_BOTTOM|TDA_CENTER) 
#define TDA_BOTTOMRIGHT               (TDA_BOTTOM|TDA_RIGHT) 
#define TDA_WRAPLEFT                  (TDA_WRAP|TDA_LEFT) 
#define TDA_WRAPCENTER                (TDA_WRAP|TDA_CENTER) 
#define TDA_WRAPRIGHT                 (TDA_WRAP|TDA_RIGHT) 
 
#define TDFS_NORMAL                   0x00000000L 
#define TDFS_UNDERLINE                0x00000001L 
#define TDFS_ITALIC                   0x00000002L 
#define TDFS_BOLD                     0x00000004L 
 
BOOL APIENTRY GetExplorerBarInfo ( PEXPBARINFO pEBI, BOOL bIgnoreShellStyleDll ); 
 
VOID APIENTRY FreeExplorerBarInfo ( PEXPBARINFO pEBI ); 
 
#ifdef __cplusplus 
} 
#endif 
#endif