|
|
1.1.1.2 ! root 1: /*****************************************************************************\ ! 2: * * ! 3: * custcntl.h - Custom Control Library header file * ! 4: * * ! 5: * Copyright (c) 1992, Microsoft Corp. All rights reserved * ! 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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.