typedef struct tagCCSTYLE {
    DWORD   flStyle;                    
    DWORD   flExtStyle;                 
    BCHAR    szText[CCHCCTEXT];          
    LANGID  lgid;                       
    WORD    wReserved1;                 
} CCSTYLE, *LPCCSTYLE;

typedef BOOL (CALLBACK* LPFNCCSTYLE)(HWND hwndParent,  LPCCSTYLE pccs);

typedef INT (CALLBACK* LPFNCCSIZETOTEXT)(DWORD flStyle, DWORD flExtStyle,
    HFONT hfont, LPTSTR pszText);

typedef struct tagCCSTYLEFLAG {
    DWORD flStyle;                      
    DWORD flStyleMask;                  
    LPTSTR pszStyle;                     
} CCSTYLEFLAG, *LPCCSTYLEFLAG;

typedef struct tagCCINFO {
    BCHAR    szClass[CCHCCCLASS];        
    DWORD   flOptions;                  
    CHAR    szDesc[CCHCCDESC];          
    UINT    cxDefault;                  
    UINT    cyDefault;                  
    DWORD   flStyleDefault;             
    DWORD   flExtStyleDefault;          
    DWORD   flCtrlTypeMask;             
    BCHAR    szTextDefault[CCHCCTEXT];   
    INT     cStyleFlags;                
    LPCCSTYLEFLAG aStyleFlags;         
    LPFNCCSTYLE lpfnStyle;             
    LPFNCCSIZETOTEXT lpfnSizeToText;   
    DWORD   dwReserved1;                
    DWORD   dwReserved2;                
} CCINFO, *LPCCINFO;

typedef UINT (CALLBACK* LPFNCCINFO)(LPCCINFO acci);

