Annotation of mstools/h/custcntl.h, revision 1.1.1.3

1.1.1.2   root        1: /*****************************************************************************\
                      2: *                                                                             *
                      3: * custcntl.h -  Custom Control Library header file                            *
                      4: *                                                                             *
1.1.1.3 ! root        5: *               Copyright (c) 1992-1993, Microsoft Corp.  All rights reserved *
1.1.1.2   root        6: *                                                                             *
                      7: \*****************************************************************************/
                      8: 
                      9: #ifndef _INC_CUSTCNTL
                     10: #define _INC_CUSTCNTL
                     11: 
                     12: #ifdef __cplusplus
                     13: extern "C" {            /* Assume C declarations for C++ */
                     14: #endif  /* __cplusplus */
                     15: 
                     16: 
1.1       root       17: /*
1.1.1.2   root       18:  * General size defines.
1.1       root       19:  */
1.1.1.2   root       20: #define CCHCCCLASS          32          // Max chars in a class name.
                     21: #define CCHCCDESC           32          // Max chars in a control description.
                     22: #define CCHCCTEXT           256         // Max chars in a text field.
                     23: 
1.1       root       24: 
1.1.1.2   root       25: /*
                     26:  * CCSTYLE - Custom Control Style structure.  This structure is passed
                     27:  * tp the Custom Control Style function when the user wants to edit the
                     28:  * styles of the custom control.
                     29:  */
                     30: typedef struct tagCCSTYLEA {
                     31:     DWORD   flStyle;                    // Style of the control.
                     32:     DWORD   flExtStyle;                 // Extended style of the control.
                     33:     CHAR    szText[CCHCCTEXT];          // Text of the control.
                     34:     LANGID  lgid;                       // Language Id of the control's dialog.
                     35:     WORD    wReserved1;                 // Reserved value.  Do not change.
                     36: } CCSTYLEA, *LPCCSTYLEA;
                     37: 
                     38: typedef struct tagCCSTYLEW {
                     39:     DWORD   flStyle;                    // Style of the control.
                     40:     DWORD   flExtStyle;                 // Extended style of the control.
                     41:     WCHAR   szText[CCHCCTEXT];          // Text of the control.
                     42:     LANGID  lgid;                       // Language Id of the control's dialog.
                     43:     WORD    wReserved1;                 // Reserved value.  Do not change.
                     44: } CCSTYLEW, *LPCCSTYLEW;
                     45: 
                     46: #ifdef UNICODE
                     47: #define CCSTYLE     CCSTYLEW
                     48: #define LPCCSTYLE   LPCCSTYLEW
                     49: #else
                     50: #define CCSTYLE     CCSTYLEA
                     51: #define LPCCSTYLE   LPCCSTYLEA
                     52: #endif // UNICODE
1.1       root       53: 
                     54: 
                     55: /*
1.1.1.2   root       56:  * The Style function prototype.  This will be called when the user
                     57:  * wants to edit the styles of a custom control.  It should display a
                     58:  * dialog to edit the styles, update the styles in the pccs structure,
                     59:  * then return TRUE for success.  If an error occurs or the user
                     60:  * cancels the dialog, FALSE should be returned.
1.1       root       61:  */
1.1.1.2   root       62: typedef BOOL (CALLBACK* LPFNCCSTYLEA)(HWND hwndParent,  LPCCSTYLEA pccs);
                     63: typedef BOOL (CALLBACK* LPFNCCSTYLEW)(HWND hwndParent,  LPCCSTYLEW pccs);
1.1       root       64: 
1.1.1.2   root       65: #ifdef UNICODE
                     66: #define LPFNCCSTYLE LPFNCCSTYLEW
                     67: #else
                     68: #define LPFNCCSTYLE LPFNCCSTYLEA
                     69: #endif  // UNICODE
1.1       root       70: 
                     71: 
1.1.1.2   root       72: /*
                     73:  * The SizeToText function prototype.  This will be called if the user
                     74:  * requests that the custom control be sized to fit it's text.  It
                     75:  * should use the specified styles, text and font to determine how
                     76:  * large the control must be to accommodate the text, then return this
                     77:  * value in pixels.  The value of -1 should be returned if an error
                     78:  * occurs.
                     79:  */
                     80: typedef INT (CALLBACK* LPFNCCSIZETOTEXTA)(DWORD flStyle, DWORD flExtStyle,
                     81:     HFONT hfont, LPSTR pszText);
                     82: typedef INT (CALLBACK* LPFNCCSIZETOTEXTW)(DWORD flStyle, DWORD flExtStyle,
                     83:     HFONT hfont, LPWSTR pszText);
                     84: 
                     85: #ifdef UNICODE
                     86: #define LPFNCCSIZETOTEXT    LPFNCCSIZETOTEXTW
                     87: #else
                     88: #define LPFNCCSIZETOTEXT    LPFNCCSIZETOTEXTA
                     89: #endif  // UNICODE
                     90: 
1.1       root       91: 
                     92: /*
1.1.1.2   root       93:  * CCSTYLEFLAG - Custom Control Style Flag structure.  A table of these
                     94:  * structures is used to specify the define strings that match the
                     95:  * different styles for a custom control.
                     96:  */
                     97: typedef struct tagCCSTYLEFLAGA {
                     98:     DWORD flStyle;                      // Style bits for this style.
                     99:     DWORD flStyleMask;                  // Mask for the style.  Can be zero.
                    100:     LPSTR pszStyle;                     // Points to the style define string.
                    101: } CCSTYLEFLAGA, *LPCCSTYLEFLAGA;
                    102: 
                    103: typedef struct tagCCSTYLEFLAGW {
                    104:     DWORD flStyle;                      // Style bits for this style.
                    105:     DWORD flStyleMask;                  // Mask for the style.  Can be zero.
                    106:     LPWSTR pszStyle;                    // Points to the style define string.
                    107: } CCSTYLEFLAGW, *LPCCSTYLEFLAGW;
                    108: 
                    109: #ifdef UNICODE
                    110: #define CCSTYLEFLAG     CCSTYLEFLAGW
                    111: #define LPCCSTYLEFLAG   LPCCSTYLEFLAGW
                    112: #else
                    113: #define CCSTYLEFLAG     CCSTYLEFLAGA
                    114: #define LPCCSTYLEFLAG   LPCCSTYLEFLAGA
                    115: #endif // UNICODE
                    116: 
                    117: 
                    118: /*
                    119:  * CCF_* defines.  These flags are used for the flOptions field of the
                    120:  * CCINFO structure, and describe some basic characteristics of the
                    121:  * custom control.
                    122:  */
                    123: #define CCF_NOTEXT          0x00000001  // Control cannot have text.
                    124: 
                    125: 
                    126: /*
                    127:  * CCINFO - Custom Control Info structure.  This structure provides
                    128:  * the dialog editor with information about the control types that the
                    129:  * DLL supports.
                    130:  */
                    131: typedef struct tagCCINFOA {
                    132:     CHAR    szClass[CCHCCCLASS];        // Class name for the control.
                    133:     DWORD   flOptions;                  // Option flags (CCF_* defines).
                    134:     CHAR    szDesc[CCHCCDESC];          // Short, descriptive text for the ctrl.
                    135:     UINT    cxDefault;                  // Default width (in dialog units).
                    136:     UINT    cyDefault;                  // Default height (in dialog units).
                    137:     DWORD   flStyleDefault;             // Default style (WS_CHILD | WS_VISIBLE).
                    138:     DWORD   flExtStyleDefault;          // Default extended style.
                    139:     DWORD   flCtrlTypeMask;             // Mask for control type styles.
                    140:     CHAR    szTextDefault[CCHCCTEXT];   // Default text.
                    141:     INT     cStyleFlags;                // Entries in the following style table.
                    142:     LPCCSTYLEFLAGA aStyleFlags;         // Points to style flag table.
                    143:     LPFNCCSTYLEA lpfnStyle;             // Pointer to the Styles function.
                    144:     LPFNCCSIZETOTEXTA lpfnSizeToText;   // Pointer to the SizeToText function.
                    145:     DWORD   dwReserved1;                // Reserved.  Must be zero.
                    146:     DWORD   dwReserved2;                // Reserved.  Must be zero.
                    147: } CCINFOA, *LPCCINFOA;
                    148: 
                    149: typedef struct tagCCINFOW {
                    150:     WCHAR   szClass[CCHCCCLASS];        // Class name for the control.
                    151:     DWORD   flOptions;                  // Option flags (CCF_* defines).
                    152:     WCHAR   szDesc[CCHCCDESC];          // Short, descriptive text for the ctrl.
                    153:     UINT    cxDefault;                  // Default width (in dialog units).
                    154:     UINT    cyDefault;                  // Default height (in dialog units).
                    155:     DWORD   flStyleDefault;             // Default style (WS_CHILD | WS_VISIBLE).
                    156:     DWORD   flExtStyleDefault;          // Default extended style.
                    157:     DWORD   flCtrlTypeMask;             // Mask for control type styles.
                    158:     INT     cStyleFlags;                // Entries in the following style table.
                    159:     LPCCSTYLEFLAGW aStyleFlags;         // Points to style flag table.
                    160:     WCHAR   szTextDefault[CCHCCTEXT];   // Default text.
                    161:     LPFNCCSTYLEW lpfnStyle;             // Pointer to the Styles function.
                    162:     LPFNCCSIZETOTEXTW lpfnSizeToText;   // Pointer to the SizeToText function.
                    163:     DWORD   dwReserved1;                // Reserved.  Must be zero.
                    164:     DWORD   dwReserved2;                // Reserved.  Must be zero.
                    165: } CCINFOW, *LPCCINFOW;
                    166: 
                    167: #ifdef UNICODE
                    168: #define CCINFO      CCINFOW
                    169: #define LPCCINFO    LPCCINFOW
                    170: #else
                    171: #define CCINFO      CCINFOA
                    172: #define LPCCINFO    LPCCINFOA
                    173: #endif // UNICODE
                    174: 
                    175: 
                    176: /*
                    177:  * The Info function prototype.  This function is the first one
                    178:  * called by the dialog editor.  Custom control DLL's must export
                    179:  * one or both of the following functions by name (the ordinal
                    180:  * used for the export does not matter):
                    181:  *
                    182:  *  UINT CALLBACK CustomControlInfoA(LPCCINFOA acci)
                    183:  *  UINT CALLBACK CustomControlInfoW(LPCCINFOW acci)
                    184:  *
                    185:  * This function must return the number of controls that the DLL
                    186:  * supports, or NULL if an error occurs.  If the acci parameter is
                    187:  * not NULL, it will be pointing to an array of CCINFOA or CCINFOW
                    188:  * structures that should be filled in with the information about
                    189:  * the different control types supported by the DLL.
1.1       root      190:  *
1.1.1.2   root      191:  * If both functions are present, the CustomControlInfoW function
                    192:  * will be used by the dialog editor.
1.1       root      193:  */
1.1.1.2   root      194: typedef UINT (CALLBACK* LPFNCCINFOA)(LPCCINFOA acci);
                    195: typedef UINT (CALLBACK* LPFNCCINFOW)(LPCCINFOW acci);
                    196: 
                    197: #ifdef UNICODE
                    198: #define LPFNCCINFO  LPFNCCINFOW
                    199: #else
                    200: #define LPFNCCINFO  LPFNCCINFOA
                    201: #endif  // UNICODE
                    202: 
                    203: 
                    204: #ifdef __cplusplus
                    205: }
                    206: #endif  /* __cplusplus */
1.1       root      207: 
1.1.1.2   root      208: #endif  /* _INC_CUSTCNTL */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.