|
|
1.1 ! root 1: /* ! 2: * OLE2UI.H ! 3: * ! 4: * Published definitions, structures, types, and function prototypes for the ! 5: * OLE 2.0 User Interface support library. ! 6: * ! 7: * Copyright (c)1993 Microsoft Corporation, All Rights Reserved ! 8: */ ! 9: ! 10: ! 11: #define NONAMELESSUNION // use strict ANSI standard (for DVOBJ.H) ! 12: ! 13: #ifndef _OLE2UI_H_ ! 14: #define _OLE2UI_H_ ! 15: ! 16: #ifndef RC_INVOKED ! 17: #pragma message ("Including OLE2UI.H from " __FILE__) ! 18: #endif //RC_INVOKED ! 19: ! 20: #include <windows.h> ! 21: #include <shellapi.h> ! 22: #include <ole2.h> ! 23: #include <string.h> ! 24: #include "olestd.h" ! 25: #include "uiclass.h" ! 26: // -- see below ! 27: ! 28: #ifdef __TURBOC__ ! 29: #define _getcwd getcwd ! 30: #define _itoa itoa ! 31: #define __max max ! 32: #define _find_t find_t ! 33: #endif // __TURBOC__ ! 34: ! 35: /* ! 36: * Initialization / Uninitialization routines. OleUIInitialize ! 37: * MUST be called prior to using any functions in OLE2UI. ! 38: */ ! 39: ! 40: STDAPI_(BOOL) OleUIInitialize(HINSTANCE); ! 41: STDAPI_(BOOL) OleUIUnInitialize(void); // Must be called when completed using functions in OLE2UI ! 42: ! 43: //Dialog Identifiers as passed in Help messages to identify the source. ! 44: #define IDD_INSERTOBJECT 1000 ! 45: #define IDD_CHANGEICON 1001 ! 46: #define IDD_CONVERT 1002 ! 47: #define IDD_PASTESPECIAL 1003 ! 48: #define IDD_EDITLINKS 1004 ! 49: #define IDD_FILEOPEN 1005 ! 50: #define IDD_BUSY 1006 ! 51: #define IDD_LINKSOURCEUNAVAILABLE 1007 ! 52: #define IDD_CANNOTUPDATELINK 1008 ! 53: #define IDD_SERVERNOTREG 1009 ! 54: #define IDD_LINKTYPECHANGED 1010 ! 55: #define IDD_SERVERNOTFOUND 1011 ! 56: #define IDD_UPDATELINKS 1012 ! 57: #define IDD_OUTOFMEMORY 1013 ! 58: ! 59: #define IDOK 1 ! 60: #define IDCANCEL 2 ! 61: ! 62: // Stringtable identifers ! 63: #define IDS_OLE2UIUNKNOWN 300 ! 64: #define IDS_OLE2UILINK 301 ! 65: #define IDS_OLE2UIOBJECT 302 ! 66: #define IDS_OLE2UIEDIT 303 ! 67: #define IDS_OLE2UICONVERT 304 ! 68: #define IDS_OLE2UIEDITLINKCMD_1VERB 305 ! 69: #define IDS_OLE2UIEDITOBJECTCMD_1VERB 306 ! 70: #define IDS_OLE2UIEDITLINKCMD_NVERB 307 ! 71: #define IDS_OLE2UIEDITOBJECTCMD_NVERB 308 ! 72: #define IDS_OLE2UIEDITNOOBJCMD 309 ! 73: #define IDS_DEFICONLABEL 310 // def. icon label (usu. "Document") ! 74: ! 75: ! 76: #define IDS_FILTERS 64 ! 77: #define IDS_ICONFILTERS 65 ! 78: ! 79: //Resource identifiers for bitmaps ! 80: #define IDB_RESULTSEGA 10 ! 81: #define IDB_RESULTSVGA 11 ! 82: #define IDB_RESULTSHIRESVGA 12 ! 83: ! 84: ! 85: //Missing from windows.h ! 86: #ifndef PVOID ! 87: typedef VOID *PVOID; ! 88: #endif ! 89: ! 90: ! 91: //Hook type used in all structures. ! 92: typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM); ! 93: ! 94: ! 95: //Strings for registered messages ! 96: #define SZOLEUI_MSG_HELP "OLEUI_MSG_HELP" ! 97: #define SZOLEUI_MSG_ENDDIALOG "OLEUI_MSG_ENDDIALOG" ! 98: #define SZOLEUI_MSG_BROWSE "OLEUI_MSG_BROWSE" ! 99: #define SZOLEUI_MSG_CHANGEICON "OLEUI_MSG_CHANGEICON" ! 100: #define SZOLEUI_MSG_CLOSEBUSYDIALOG "OLEUI_MSG_CLOSEBUSYDIALOG" ! 101: #define SZOLEUI_MSG_FILEOKSTRING "OLEUI_MSG_FILEOKSTRING" ! 102: ! 103: // Define the classname strings. The strings below define the custom ! 104: // control classnames for the controls used in the UI dialogs. ! 105: // ! 106: // ************************************************************** ! 107: // These classnames must be distinct for each application ! 108: // which uses this library, or your application will generate an ! 109: // fatal error under the debugging version of Windows 3.1. ! 110: // ************************************************************** ! 111: // ! 112: // The MAKEFILE for this library automatically generates a file ! 113: // uiclass.h which contains distinct definitions for these ! 114: // classname strings, as long as you use a distinct name when ! 115: // you build the library. See the MAKEFILE for more information ! 116: // on setting the name of the library. ! 117: ! 118: #define SZCLASSICONBOX OLEUICLASS1 ! 119: #define SZCLASSRESULTIMAGE OLEUICLASS2 ! 120: ! 121: #define OLEUI_ERR_STANDARDMIN 100 ! 122: #define OLEUI_ERR_STRUCTURENULL 101 //Standard field validation ! 123: #define OLEUI_ERR_STRUCTUREINVALID 102 ! 124: #define OLEUI_ERR_CBSTRUCTINCORRECT 103 ! 125: #define OLEUI_ERR_HWNDOWNERINVALID 104 ! 126: #define OLEUI_ERR_LPSZCAPTIONINVALID 105 ! 127: #define OLEUI_ERR_LPFNHOOKINVALID 106 ! 128: #define OLEUI_ERR_HINSTANCEINVALID 107 ! 129: #define OLEUI_ERR_LPSZTEMPLATEINVALID 108 ! 130: #define OLEUI_ERR_HRESOURCEINVALID 109 ! 131: ! 132: #define OLEUI_ERR_FINDTEMPLATEFAILURE 110 //Initialization errors ! 133: #define OLEUI_ERR_LOADTEMPLATEFAILURE 111 ! 134: #define OLEUI_ERR_DIALOGFAILURE 112 ! 135: #define OLEUI_ERR_LOCALMEMALLOC 113 ! 136: #define OLEUI_ERR_GLOBALMEMALLOC 114 ! 137: #define OLEUI_ERR_LOADSTRING 115 ! 138: ! 139: #define OLEUI_ERR_STANDARDMAX 116 //Start here for specific errors. ! 140: ! 141: ! 142: ! 143: //Help Button Identifier ! 144: #define ID_OLEUIHELP 99 ! 145: ! 146: // Help button for fileopen.dlg (need this for resizing) 1038 is pshHelp ! 147: #define IDHELP 1038 ! 148: ! 149: // Static text control (use this instead of -1 so things work correctly for ! 150: // localization ! 151: #define ID_STATIC 98 ! 152: ! 153: //Maximum key size we read from the RegDB. ! 154: #define OLEUI_CCHKEYMAX 256 // make any changes to this in geticon.c too ! 155: ! 156: //Maximum verb length and length of Object menu ! 157: #define OLEUI_CCHVERBMAX 32 ! 158: #define OLEUI_OBJECTMENUMAX 64 ! 159: ! 160: //Maximum MS-DOS pathname. ! 161: #define OLEUI_CCHPATHMAX 256 // make any changes to this in geticon.c too ! 162: #define OLEUI_CCHFILEMAX 13 ! 163: ! 164: //Icon label length ! 165: #define OLEUI_CCHLABELMAX 40 // make any changes to this in geticon.c too ! 166: ! 167: //Length of the CLSID string ! 168: #define OLEUI_CCHCLSIDSTRING 39 ! 169: ! 170: ! 171: /* ! 172: * What follows here are first function prototypes for general utility ! 173: * functions, then sections laid out by dialog. Each dialog section ! 174: * defines the dialog structure, the API prototype, flags for the dwFlags ! 175: * field, the dialog-specific error values, and dialog control IDs (for ! 176: * hooks and custom templates. ! 177: */ ! 178: ! 179: ! 180: //Miscellaneous utility functions. ! 181: STDAPI_(BOOL) OleUIAddVerbMenu(LPOLEOBJECT lpOleObj, ! 182: LPSTR lpszShortType, ! 183: HMENU hMenu, ! 184: UINT uPos, ! 185: UINT uIDVerbMin, ! 186: BOOL bAddConvert, ! 187: UINT idConvert, ! 188: HMENU FAR *lphMenu); ! 189: ! 190: //Metafile utility functions ! 191: STDAPI_(HGLOBAL) OleUIMetafilePictFromIconAndLabel(HICON, LPSTR, LPSTR, UINT); ! 192: STDAPI_(void) OleUIMetafilePictIconFree(HGLOBAL); ! 193: STDAPI_(BOOL) OleUIMetafilePictIconDraw(HDC, LPRECT, HGLOBAL, BOOL); ! 194: STDAPI_(UINT) OleUIMetafilePictExtractLabel(HGLOBAL, LPSTR, UINT, LPDWORD); ! 195: STDAPI_(HICON) OleUIMetafilePictExtractIcon(HGLOBAL); ! 196: STDAPI_(BOOL) OleUIMetafilePictExtractIconSource(HGLOBAL,LPSTR,UINT FAR *); ! 197: ! 198: ! 199: ! 200: ! 201: ! 202: /************************************************************************* ! 203: ** INSERT OBJECT DIALOG ! 204: *************************************************************************/ ! 205: ! 206: ! 207: typedef struct tagOLEUIINSERTOBJECT ! 208: { ! 209: //These IN fields are standard across all OLEUI dialog functions. ! 210: DWORD cbStruct; //Structure Size ! 211: DWORD dwFlags; //IN-OUT: Flags ! 212: HWND hWndOwner; //Owning window ! 213: LPCSTR lpszCaption; //Dialog caption bar contents ! 214: LPFNOLEUIHOOK lpfnHook; //Hook callback ! 215: LPARAM lCustData; //Custom data to pass to hook ! 216: HINSTANCE hInstance; //Instance for customized template name ! 217: LPCSTR lpszTemplate; //Customized template name ! 218: HRSRC hResource; //Customized template handle ! 219: ! 220: //Specifics for OLEUIINSERTOBJECT. All are IN-OUT unless otherwise spec. ! 221: CLSID clsid; //Return space for class ID ! 222: LPSTR lpszFile; //Filename for inserts or links ! 223: UINT cchFile; //Size of lpszFile buffer: OLEUI_CCHPATHMAX ! 224: UINT cClsidExclude; //IN only: CLSIDs in lpClsidExclude ! 225: LPCLSID lpClsidExclude; //List of CLSIDs to exclude from listing. ! 226: ! 227: //Specific to create objects if flags say so ! 228: IID iid; //Requested interface on creation. ! 229: DWORD oleRender; //Rendering option ! 230: LPFORMATETC lpFormatEtc; //Desired format ! 231: LPOLECLIENTSITE lpIOleClientSite; //Site to be use for the object. ! 232: LPSTORAGE lpIStorage; //Storage used for the object ! 233: LPVOID FAR *ppvObj; //Where the object is returned. ! 234: SCODE sc; //Result of creation calls. ! 235: HGLOBAL hMetaPict; //OUT: METAFILEPICT containing iconic aspect. ! 236: //IFF we couldn't stuff it in the cache. ! 237: } OLEUIINSERTOBJECT, *POLEUIINSERTOBJECT, FAR *LPOLEUIINSERTOBJECT; ! 238: ! 239: //API prototype ! 240: STDAPI_(UINT) OleUIInsertObject(LPOLEUIINSERTOBJECT); ! 241: ! 242: ! 243: //Insert Object flags ! 244: #define IOF_SHOWHELP 0x00000001L ! 245: #define IOF_SELECTCREATENEW 0x00000002L ! 246: #define IOF_SELECTCREATEFROMFILE 0x00000004L ! 247: #define IOF_CHECKLINK 0x00000008L ! 248: #define IOF_CHECKDISPLAYASICON 0x00000010L ! 249: #define IOF_CREATENEWOBJECT 0x00000020L ! 250: #define IOF_CREATEFILEOBJECT 0x00000040L ! 251: #define IOF_CREATELINKOBJECT 0x00000080L ! 252: #define IOF_DISABLELINK 0x00000100L ! 253: #define IOF_VERIFYSERVERSEXIST 0x00000200L ! 254: ! 255: ! 256: //Insert Object specific error codes ! 257: #define OLEUI_IOERR_LPSZFILEINVALID (OLEUI_ERR_STANDARDMAX+0) ! 258: #define OLEUI_IOERR_LPSZLABELINVALID (OLEUI_ERR_STANDARDMAX+1) ! 259: #define OLEUI_IOERR_HICONINVALID (OLEUI_ERR_STANDARDMAX+2) ! 260: #define OLEUI_IOERR_LPFORMATETCINVALID (OLEUI_ERR_STANDARDMAX+3) ! 261: #define OLEUI_IOERR_PPVOBJINVALID (OLEUI_ERR_STANDARDMAX+4) ! 262: #define OLEUI_IOERR_LPIOLECLIENTSITEINVALID (OLEUI_ERR_STANDARDMAX+5) ! 263: #define OLEUI_IOERR_LPISTORAGEINVALID (OLEUI_ERR_STANDARDMAX+6) ! 264: #define OLEUI_IOERR_SCODEHASERROR (OLEUI_ERR_STANDARDMAX+7) ! 265: #define OLEUI_IOERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+8) ! 266: #define OLEUI_IOERR_CCHFILEINVALID (OLEUI_ERR_STANDARDMAX+9) ! 267: ! 268: ! 269: //Insert Object Dialog identifiers ! 270: #define ID_IO_CREATENEW 2100 ! 271: #define ID_IO_CREATEFROMFILE 2101 ! 272: #define ID_IO_LINKFILE 2102 ! 273: #define ID_IO_OBJECTTYPELIST 2103 ! 274: #define ID_IO_DISPLAYASICON 2104 ! 275: #define ID_IO_CHANGEICON 2105 ! 276: #define ID_IO_FILE 2106 ! 277: #define ID_IO_FILEDISPLAY 2107 ! 278: #define ID_IO_RESULTIMAGE 2108 ! 279: #define ID_IO_RESULTTEXT 2109 ! 280: #define ID_IO_ICONDISPLAY 2110 ! 281: #define ID_IO_OBJECTTYPETEXT 2111 ! 282: #define ID_IO_FILETEXT 2112 ! 283: #define ID_IO_FILETYPE 2113 ! 284: ! 285: // Strings in OLE2UI resources ! 286: #define IDS_IORESULTNEW 256 ! 287: #define IDS_IORESULTNEWICON 257 ! 288: #define IDS_IORESULTFROMFILE1 258 ! 289: #define IDS_IORESULTFROMFILE2 259 ! 290: #define IDS_IORESULTFROMFILEICON2 260 ! 291: #define IDS_IORESULTLINKFILE1 261 ! 292: #define IDS_IORESULTLINKFILE2 262 ! 293: #define IDS_IORESULTLINKFILEICON1 263 ! 294: #define IDS_IORESULTLINKFILEICON2 264 ! 295: ! 296: /************************************************************************* ! 297: ** PASTE SPECIAL DIALOG ! 298: *************************************************************************/ ! 299: ! 300: // Maximum number of link types ! 301: #define PS_MAXLINKTYPES 8 ! 302: ! 303: //NOTE: OLEUIPASTEENTRY and OLEUIPASTEFLAG structs are defined in OLESTD.H ! 304: ! 305: typedef struct tagOLEUIPASTESPECIAL ! 306: { ! 307: //These IN fields are standard across all OLEUI dialog functions. ! 308: DWORD cbStruct; //Structure Size ! 309: DWORD dwFlags; //IN-OUT: Flags ! 310: HWND hWndOwner; //Owning window ! 311: LPCSTR lpszCaption; //Dialog caption bar contents ! 312: LPFNOLEUIHOOK lpfnHook; //Hook callback ! 313: LPARAM lCustData; //Custom data to pass to hook ! 314: HINSTANCE hInstance; //Instance for customized template name ! 315: LPCSTR lpszTemplate; //Customized template name ! 316: HRSRC hResource; //Customized template handle ! 317: ! 318: //Specifics for OLEUIPASTESPECIAL. ! 319: ! 320: //IN fields ! 321: LPDATAOBJECT lpSrcDataObj; //Source IDataObject* (on the clipboard) for data to paste ! 322: ! 323: LPOLEUIPASTEENTRY arrPasteEntries; //OLEUIPASTEENTRY array which specifies acceptable formats. See ! 324: // OLEUIPASTEENTRY for more information. ! 325: int cPasteEntries; //Number of OLEUIPASTEENTRY array entries ! 326: ! 327: UINT FAR *arrLinkTypes; //List of link types that are acceptable. Link types are referred ! 328: // to using OLEUIPASTEFLAGS in arrPasteEntries ! 329: int cLinkTypes; //Number of link types ! 330: ! 331: //OUT fields ! 332: int nSelectedIndex; //Index of arrPasteEntries[] that the user selected ! 333: BOOL fLink; //Indicates if Paste or Paste Link was selected by the user ! 334: HGLOBAL hMetaPict; //Handle to Metafile containing icon and icon title selected by the user ! 335: // Use the Metafile utility functions defined in this header to ! 336: // manipulate hMetaPict ! 337: } OLEUIPASTESPECIAL, *POLEUIPASTESPECIAL, FAR *LPOLEUIPASTESPECIAL; ! 338: ! 339: ! 340: //API to bring up PasteSpecial dialog ! 341: STDAPI_(UINT) OleUIPasteSpecial(LPOLEUIPASTESPECIAL); ! 342: ! 343: ! 344: //Paste Special flags ! 345: // Show Help button. IN flag. ! 346: #define PSF_SHOWHELP 0x00000001L ! 347: // Select Paste radio button at dialog startup. This is the default if PSF_SELECTPASTE or PSF_SELECTPASTELINK ! 348: // are not specified. Also specifies state of button on dialog termination. IN/OUT flag. ! 349: #define PSF_SELECTPASTE 0x00000002L ! 350: // Select PasteLink radio button at dialog startup. Also specifies state of button on dialog termination. ! 351: // IN/OUT flag. ! 352: #define PSF_SELECTPASTELINK 0x00000004L ! 353: // Specfies if DisplayAsIcon button was checked on dialog termination. OUT flag. ! 354: #define PSF_CHECKDISPLAYASICON 0x00000008L ! 355: ! 356: ! 357: //Paste Special specific error codes ! 358: #define OLEUI_IOERR_SRCDATAOBJECTINVALID (OLEUI_ERR_STANDARDMAX+0) ! 359: #define OLEUI_IOERR_ARRPASTEENTRIESINVALID (OLEUI_ERR_STANDARDMAX+1) ! 360: #define OLEUI_IOERR_ARRLINKTYPESINVALID (OLEUI_ERR_STANDARDMAX+2) ! 361: #define OLEUI_PSERR_CLIPBOARDCHANGED (OLEUI_ERR_STANDARDMAX+3) ! 362: ! 363: //Paste Special Dialog identifiers ! 364: #define ID_PS_PASTE 500 ! 365: #define ID_PS_PASTELINK 501 ! 366: #define ID_PS_SOURCETEXT 502 ! 367: #define ID_PS_PASTELIST 503 ! 368: #define ID_PS_PASTELINKLIST 504 ! 369: #define ID_PS_DISPLAYLIST 505 ! 370: #define ID_PS_DISPLAYASICON 506 ! 371: #define ID_PS_ICONDISPLAY 507 ! 372: #define ID_PS_CHANGEICON 508 ! 373: #define ID_PS_RESULTIMAGE 509 ! 374: #define ID_PS_RESULTTEXT 510 ! 375: #define ID_PS_RESULTGROUP 511 ! 376: #define ID_PS_STXSOURCE 512 ! 377: #define ID_PS_STXAS 513 ! 378: ! 379: // Paste Special String IDs ! 380: #define IDS_PSPASTEDATA 400 ! 381: #define IDS_PSPASTEOBJECT 401 ! 382: #define IDS_PSPASTEOBJECTASICON 402 ! 383: #define IDS_PSPASTELINKDATA 403 ! 384: #define IDS_PSPASTELINKOBJECT 404 ! 385: #define IDS_PSPASTELINKOBJECTASICON 405 ! 386: #define IDS_PSNONOLE 406 ! 387: #define IDS_PSUNKNOWNTYPE 407 ! 388: #define IDS_PSUNKNOWNSRC 408 ! 389: #define IDS_PSUNKNOWNAPP 409 ! 390: ! 391: ! 392: /************************************************************************* ! 393: ** EDIT LINKS DIALOG ! 394: *************************************************************************/ ! 395: ! 396: ! 397: ! 398: /* IOleUILinkContainer Interface ! 399: ** ----------------------------- ! 400: ** This interface must be implemented by container applications that ! 401: ** want to use the EditLinks dialog. the EditLinks dialog calls back ! 402: ** to the container app to perform the OLE functions to manipulate ! 403: ** the links within the container. ! 404: */ ! 405: ! 406: #define LPOLEUILINKCONTAINER IOleUILinkContainer FAR* ! 407: ! 408: #undef INTERFACE ! 409: #define INTERFACE IOleUILinkContainer ! 410: ! 411: DECLARE_INTERFACE_(IOleUILinkContainer, IUnknown) ! 412: { ! 413: //*** IUnknown methods ***/ ! 414: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; ! 415: STDMETHOD_(ULONG,AddRef) (THIS) PURE; ! 416: STDMETHOD_(ULONG,Release) (THIS) PURE; ! 417: ! 418: STDMETHOD_(DWORD,GetNextLink) (THIS_ DWORD dwLink) PURE; ! 419: STDMETHOD(SetLinkUpdateOptions) (THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE; ! 420: STDMETHOD(GetLinkUpdateOptions) (THIS_ DWORD dwLink, DWORD FAR* lpdwUpdateOpt) PURE; ! 421: STDMETHOD(SetLinkSource) (THIS_ ! 422: DWORD dwLink, ! 423: LPSTR lpszDisplayName, ! 424: ULONG lenFileName, ! 425: ULONG FAR* pchEaten, ! 426: BOOL fValidateSource) PURE; ! 427: STDMETHOD(GetLinkSource) (THIS_ ! 428: DWORD dwLink, ! 429: LPSTR FAR* lplpszDisplayName, ! 430: ULONG FAR* lplenFileName, ! 431: LPSTR FAR* lplpszFullLinkType, ! 432: LPSTR FAR* lplpszShortLinkType, ! 433: BOOL FAR* lpfSourceAvailable, ! 434: BOOL FAR* lpfIsSelected) PURE; ! 435: STDMETHOD(OpenLinkSource) (THIS_ DWORD dwLink) PURE; ! 436: STDMETHOD(UpdateLink) (THIS_ ! 437: DWORD dwLink, ! 438: BOOL fErrorMessage, ! 439: BOOL fErrorAction) PURE; ! 440: STDMETHOD(CancelLink) (THIS_ DWORD dwLink) PURE; ! 441: }; ! 442: ! 443: ! 444: typedef struct tagOLEUIEDITLINKS ! 445: { ! 446: //These IN fields are standard across all OLEUI dialog functions. ! 447: DWORD cbStruct; //Structure Size ! 448: DWORD dwFlags; //IN-OUT: Flags ! 449: HWND hWndOwner; //Owning window ! 450: LPCSTR lpszCaption; //Dialog caption bar contents ! 451: LPFNOLEUIHOOK lpfnHook; //Hook callback ! 452: LPARAM lCustData; //Custom data to pass to hook ! 453: HINSTANCE hInstance; //Instance for customized template name ! 454: LPCSTR lpszTemplate; //Customized template name ! 455: HRSRC hResource; //Customized template handle ! 456: ! 457: //Specifics for OLEUI<STRUCT>. All are IN-OUT unless otherwise spec. ! 458: ! 459: LPOLEUILINKCONTAINER lpOleUILinkContainer; //IN: Interface to manipulate ! 460: //links in the container ! 461: } OLEUIEDITLINKS, *POLEUIEDITLINKS, FAR *LPOLEUIEDITLINKS; ! 462: ! 463: ! 464: //API Prototype ! 465: STDAPI_(UINT) OleUIEditLinks(LPOLEUIEDITLINKS); ! 466: ! 467: ! 468: // Edit Links flags ! 469: #define ELF_SHOWHELP 0x00000001L ! 470: ! 471: // Edit Links Dialog identifiers ! 472: #define ID_EL_CHANGESOURCE 201 ! 473: #define ID_EL_AUTOMATIC 202 ! 474: #define ID_EL_CLOSE 208 ! 475: #define ID_EL_CANCELLINK 209 ! 476: #define ID_EL_UPDATENOW 210 ! 477: #define ID_EL_OPENSOURCE 211 ! 478: #define ID_EL_MANUAL 212 ! 479: #define ID_EL_LINKSOURCE 216 ! 480: #define ID_EL_LINKTYPE 217 ! 481: #define ID_EL_UPDATE 218 ! 482: #define ID_EL_NULL -1 ! 483: #define ID_EL_LINKSLISTBOX 206 ! 484: #define ID_EL_HELP 207 ! 485: #define ID_EL_COL1 223 ! 486: #define ID_EL_COL2 221 ! 487: #define ID_EL_COL3 222 ! 488: ! 489: ! 490: ! 491: /************************************************************************* ! 492: ** CHANGE ICON DIALOG ! 493: *************************************************************************/ ! 494: ! 495: typedef struct tagOLEUICHANGEICON ! 496: { ! 497: //These IN fields are standard across all OLEUI dialog functions. ! 498: DWORD cbStruct; //Structure Size ! 499: DWORD dwFlags; //IN-OUT: Flags ! 500: HWND hWndOwner; //Owning window ! 501: LPCSTR lpszCaption; //Dialog caption bar contents ! 502: LPFNOLEUIHOOK lpfnHook; //Hook callback ! 503: LPARAM lCustData; //Custom data to pass to hook ! 504: HINSTANCE hInstance; //Instance for customized template name ! 505: LPCSTR lpszTemplate; //Customized template name ! 506: HRSRC hResource; //Customized template handle ! 507: ! 508: //Specifics for OLEUICHANGEICON. All are IN-OUT unless otherwise spec. ! 509: HGLOBAL hMetaPict; //Current and final image. Source of the ! 510: //icon is embedded in the metafile itself. ! 511: CLSID clsid; //IN only: class used to get Default icon ! 512: char szIconExe[OLEUI_CCHPATHMAX]; ! 513: int cchIconExe; ! 514: } OLEUICHANGEICON, *POLEUICHANGEICON, FAR *LPOLEUICHANGEICON; ! 515: ! 516: ! 517: //API prototype ! 518: STDAPI_(UINT) OleUIChangeIcon(LPOLEUICHANGEICON); ! 519: ! 520: ! 521: //Change Icon flags ! 522: #define CIF_SHOWHELP 0x00000001L ! 523: #define CIF_SELECTCURRENT 0x00000002L ! 524: #define CIF_SELECTDEFAULT 0x00000004L ! 525: #define CIF_SELECTFROMFILE 0x00000008L ! 526: #define CIF_USEICONEXE 0x0000000aL ! 527: ! 528: ! 529: //Change Icon specific error codes ! 530: #define OLEUI_CIERR_MUSTHAVECLSID (OLEUI_ERR_STANDARDMAX+0) ! 531: #define OLEUI_CIERR_MUSTHAVECURRENTMETAFILE (OLEUI_ERR_STANDARDMAX+1) ! 532: #define OLEUI_CIERR_SZICONEXEINVALID (OLEUI_ERR_STANDARDMAX+2) ! 533: ! 534: ! 535: //Change Icon Dialog identifiers ! 536: #define ID_GROUP 120 ! 537: #define ID_CURRENT 121 ! 538: #define ID_CURRENTICON 122 ! 539: #define ID_DEFAULT 123 ! 540: #define ID_DEFAULTICON 124 ! 541: #define ID_FROMFILE 125 ! 542: #define ID_FROMFILEEDIT 126 ! 543: #define ID_ICONLIST 127 ! 544: #define ID_LABEL 128 ! 545: #define ID_LABELEDIT 129 ! 546: #define ID_BROWSE 130 ! 547: #define ID_RESULTICON 132 ! 548: #define ID_RESULTLABEL 133 ! 549: ! 550: // Stringtable defines for Change Icon ! 551: #define IDS_CINOICONSINFILE 288 ! 552: #define IDS_CIINVALIDFILE 289 ! 553: #define IDS_CIFILEACCESS 290 ! 554: #define IDS_CIFILESHARE 291 ! 555: #define IDS_CIFILEOPENFAIL 292 ! 556: ! 557: ! 558: ! 559: /************************************************************************* ! 560: ** CONVERT DIALOG ! 561: *************************************************************************/ ! 562: ! 563: typedef struct tagOLEUICONVERT ! 564: { ! 565: //These IN fields are standard across all OLEUI dialog functions. ! 566: DWORD cbStruct; //Structure Size ! 567: DWORD dwFlags; //IN-OUT: Flags ! 568: HWND hWndOwner; //Owning window ! 569: LPCSTR lpszCaption; //Dialog caption bar contents ! 570: LPFNOLEUIHOOK lpfnHook; //Hook callback ! 571: LPARAM lCustData; //Custom data to pass to hook ! 572: HINSTANCE hInstance; //Instance for customized template name ! 573: LPCSTR lpszTemplate; //Customized template name ! 574: HRSRC hResource; //Customized template handle ! 575: ! 576: //Specifics for OLEUICONVERT. All are IN-OUT unless otherwise spec. ! 577: CLSID clsid; //Class ID sent in to dialog: IN only ! 578: CLSID clsidConvertDefault; //Class ID to use as convert default: IN only ! 579: CLSID clsidActivateDefault; //Class ID to use as activate default: IN only ! 580: ! 581: CLSID clsidNew; //Selected Class ID: OUT only ! 582: DWORD dvAspect; //IN-OUT, either DVASPECT_CONTENT or ! 583: //DVASPECT_ICON ! 584: WORD wFormat; //Original data format ! 585: BOOL fIsLinkedObject; //IN only; true if object is linked ! 586: HGLOBAL hMetaPict; //IN-OUT: METAFILEPICT containing iconic aspect. ! 587: LPSTR lpszUserType; //IN: user type name of original class. We'll do lookup if it's NULL. ! 588: //This gets freed on exit. ! 589: BOOL fObjectsIconChanged; // OUT; TRUE if ChangeIcon was called (and not cancelled) ! 590: ! 591: } OLEUICONVERT, *POLEUICONVERT, FAR *LPOLEUICONVERT; ! 592: ! 593: ! 594: //API prototype ! 595: STDAPI_(UINT) OleUIConvert(LPOLEUICONVERT); ! 596: ! 597: //Convert Dialog flags ! 598: ! 599: // IN only: Shows "HELP" button ! 600: #define CF_SHOWHELPBUTTON 0x00000001L ! 601: ! 602: // IN only: lets you set the convert default object - the one that is ! 603: // selected as default in the convert listbox. ! 604: #define CF_SETCONVERTDEFAULT 0x00000002L ! 605: ! 606: ! 607: // IN only: lets you set the activate default object - the one that is ! 608: // selected as default in the activate listbox. ! 609: ! 610: #define CF_SETACTIVATEDEFAULT 0x00000004L ! 611: ! 612: ! 613: // IN/OUT: Selects the "Convert To" radio button, is set on exit if ! 614: // this button was selected ! 615: #define CF_SELECTCONVERTTO 0x00000008L ! 616: ! 617: // IN/OUT: Selects the "Activate As" radio button, is set on exit if ! 618: // this button was selected ! 619: #define CF_SELECTACTIVATEAS 0x00000010L ! 620: ! 621: ! 622: //Convert specific error codes ! 623: #define OLEUI_CTERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+1) ! 624: #define OLEUI_CTERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+2) ! 625: #define OLEUI_CTERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+3) ! 626: #define OLEUI_CTERR_HMETAPICTINVALID (OLEUI_ERR_STANDARDMAX+4) ! 627: #define OLEUI_CTERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+5) ! 628: ! 629: ! 630: //Convert Dialog identifiers ! 631: #define IDCV_OBJECTTYPE 150 ! 632: #define IDCV_HELP 151 ! 633: #define IDCV_DISPLAYASICON 152 ! 634: #define IDCV_CHANGEICON 153 ! 635: #define IDCV_ACTIVATELIST 154 ! 636: #define IDCV_CONVERTTO 155 ! 637: #define IDCV_ACTIVATEAS 156 ! 638: #define IDCV_RESULTTEXT 157 ! 639: #define IDCV_CONVERTLIST 158 ! 640: #define IDCV_ICON 159 ! 641: #define IDCV_ICONLABEL1 160 ! 642: #define IDCV_ICONLABEL2 161 ! 643: #define IDCV_STXCURTYPE 162 ! 644: #define IDCV_GRPRESULT 163 ! 645: #define IDCV_STXCONVERTTO 164 ! 646: ! 647: // String IDs for Convert dialog ! 648: #define IDS_CVRESULTCONVERTLINK 500 ! 649: #define IDS_CVRESULTCONVERTTO 501 ! 650: #define IDS_CVRESULTNOCHANGE 502 ! 651: #define IDS_CVRESULTDISPLAYASICON 503 ! 652: #define IDS_CVRESULTACTIVATEAS 504 ! 653: #define IDS_CVRESULTACTIVATEDIFF 505 ! 654: ! 655: ! 656: /************************************************************************* ! 657: ** BUSY DIALOG ! 658: *************************************************************************/ ! 659: ! 660: typedef struct tagOLEUIBUSY ! 661: { ! 662: //These IN fields are standard across all OLEUI dialog functions. ! 663: DWORD cbStruct; //Structure Size ! 664: DWORD dwFlags; //IN-OUT: Flags ** NOTE ** this dialog has no flags ! 665: HWND hWndOwner; //Owning window ! 666: LPCSTR lpszCaption; //Dialog caption bar contents ! 667: LPFNOLEUIHOOK lpfnHook; //Hook callback ! 668: LPARAM lCustData; //Custom data to pass to hook ! 669: HINSTANCE hInstance; //Instance for customized template name ! 670: LPCSTR lpszTemplate; //Customized template name ! 671: HRSRC hResource; //Customized template handle ! 672: ! 673: //Specifics for OLEUIBUSY. ! 674: HTASK hTask; //IN: HTask which is blocking ! 675: HWND FAR * lphWndDialog; //IN: Dialog's HWND is placed here ! 676: } OLEUIBUSY, *POLEUIBUSY, FAR *LPOLEUIBUSY; ! 677: ! 678: //API prototype ! 679: STDAPI_(UINT) OleUIBusy(LPOLEUIBUSY); ! 680: ! 681: // Flags for this dialog ! 682: ! 683: // IN only: Disables "Cancel" button ! 684: #define BZ_DISABLECANCELBUTTON 0x00000001L ! 685: ! 686: // IN only: Disables "Switch To..." button ! 687: #define BZ_DISABLESWITCHTOBUTTON 0x00000002L ! 688: ! 689: // IN only: Disables "Retry" button ! 690: #define BZ_DISABLERETRYBUTTON 0x00000004L ! 691: ! 692: // IN only: Generates a "Not Responding" dialog as opposed to the ! 693: // "Busy" dialog. The wording in the text is slightly different, and ! 694: // the "Cancel" button is grayed out if you set this flag. ! 695: #define BZ_NOTRESPONDINGDIALOG 0x00000008L ! 696: ! 697: // Busy specific error/return codes ! 698: #define OLEUI_BZERR_HTASKINVALID (OLEUI_ERR_STANDARDMAX+0) ! 699: ! 700: // SWITCHTOSELECTED is returned when user hit "switch to" ! 701: #define OLEUI_BZ_SWITCHTOSELECTED (OLEUI_ERR_STANDARDMAX+1) ! 702: ! 703: // RETRYSELECTED is returned when user hit "retry" ! 704: #define OLEUI_BZ_RETRYSELECTED (OLEUI_ERR_STANDARDMAX+2) ! 705: ! 706: // CALLUNBLOCKED is returned when call has been unblocked ! 707: #define OLEUI_BZ_CALLUNBLOCKED (OLEUI_ERR_STANDARDMAX+3) ! 708: ! 709: // Busy dialog identifiers ! 710: #define IDBZ_RETRY 600 ! 711: #define IDBZ_ICON 601 ! 712: #define IDBZ_MESSAGE1 602 ! 713: #define IDBZ_SWITCHTO 604 ! 714: ! 715: // Busy dialog stringtable defines ! 716: #define IDS_BZRESULTTEXTBUSY 601 ! 717: #define IDS_BZRESULTTEXTNOTRESPONDING 602 ! 718: ! 719: // Links dialog stringtable defines ! 720: #define IDS_LINK_AUTO 800 ! 721: #define IDS_LINK_MANUAL 801 ! 722: #define IDS_LINK_UNKNOWN 802 ! 723: #define IDS_LINKS 803 ! 724: #define IDS_FAILED 804 ! 725: #define IDS_CHANGESOURCE 805 ! 726: #define IDS_INVALIDSOURCE 806 ! 727: #define IDS_ERR_GETLINKSOURCE 807 ! 728: #define IDS_ERR_GETLINKUPDATEOPTIONS 808 ! 729: #define IDS_ERR_ADDSTRING 809 ! 730: #define IDS_CHANGEADDITIONALLINKS 810 ! 731: ! 732: ! 733: /************************************************************************* ! 734: ** PROMPT USER DIALOGS ! 735: *************************************************************************/ ! 736: #define ID_PU_LINKS 900 ! 737: #define ID_PU_TEXT 901 ! 738: #define ID_PU_CONVERT 902 ! 739: #define ID_PU_HELP 903 ! 740: #define ID_PU_BROWSE 904 ! 741: #define ID_PU_METER 905 ! 742: #define ID_PU_PERCENT 906 ! 743: #define ID_PU_STOP 907 ! 744: ! 745: // used for -1 ids in dialogs: ! 746: #define ID_DUMMY 999 ! 747: ! 748: /* inside ole2ui.c */ ! 749: #ifdef __cplusplus ! 750: extern "C" ! 751: #endif ! 752: int __export FAR CDECL OleUIPromptUser(int nTemplate, HWND hwndParent, ...); ! 753: STDAPI_(BOOL) OleUIUpdateLinks( ! 754: LPOLEUILINKCONTAINER lpOleUILinkCntr, ! 755: HWND hwndParent, ! 756: LPSTR lpszTitle, ! 757: int cLinks); ! 758: ! 759: ! 760: /************************************************************************* ! 761: ** OLE OBJECT FEEDBACK EFFECTS ! 762: *************************************************************************/ ! 763: ! 764: #define OLEUI_HANDLES_USEINVERSE 0x00000001L ! 765: #define OLEUI_HANDLES_NOBORDER 0x00000002L ! 766: #define OLEUI_HANDLES_INSIDE 0x00000004L ! 767: #define OLEUI_HANDLES_OUTSIDE 0x00000008L ! 768: ! 769: ! 770: /* objfdbk.c function prototypes */ ! 771: STDAPI_(void) OleUIDrawHandles(LPRECT lpRect, HDC hdc, DWORD dwFlags, UINT cSize, BOOL fDraw); ! 772: STDAPI_(void) OleUIDrawShading(LPRECT lpRect, HDC hdc, DWORD dwFlags, UINT cWidth); ! 773: STDAPI_(void) OleUIShowObject(LPCRECT lprc, HDC hdc, BOOL fIsLink); ! 774: ! 775: ! 776: /************************************************************************* ! 777: ** Hatch window definitions and prototypes ** ! 778: *************************************************************************/ ! 779: #define DEFAULT_HATCHBORDER_WIDTH 4 ! 780: ! 781: STDAPI_(BOOL) RegisterHatchWindowClass(HINSTANCE hInst); ! 782: STDAPI_(HWND) CreateHatchWindow(HWND hWndParent, HINSTANCE hInst); ! 783: STDAPI_(UINT) GetHatchWidth(HWND hWndHatch); ! 784: STDAPI_(void) GetHatchRect(HWND hWndHatch, LPRECT lpHatchRect); ! 785: STDAPI_(void) SetHatchRect(HWND hWndHatch, LPRECT lprcHatchRect); ! 786: STDAPI_(void) SetHatchWindowSize( ! 787: HWND hWndHatch, ! 788: LPRECT lprcIPObjRect, ! 789: LPRECT lprcClipRect, ! 790: LPPOINT lpptOffset ! 791: ); ! 792: ! 793: ! 794: ! 795: /************************************************************************* ! 796: ** VERSION VERIFICATION INFORMATION ! 797: *************************************************************************/ ! 798: ! 799: // The following magic number is used to verify that the resources we bind ! 800: // to our EXE are the same "version" as the LIB (or DLL) file which ! 801: // contains these routines. This is not the same as the Version information ! 802: // resource that we place in OLE2UI.RC, this is a special ID that we will ! 803: // have compiled in to our EXE. Upon initialization of OLE2UI, we will ! 804: // look in our resources for an RCDATA called "VERIFICATION" (see OLE2UI.RC), ! 805: // and make sure that the magic number there equals the magic number below. ! 806: ! 807: #define OLEUI_VERSION_MAGIC 0x4D42 ! 808: ! 809: #endif //_OLE2UI_H_ ! 810: /*****************************************************************************\ ! 811: * * ! 812: * dlgs.h - Common dialog's dialog element ID numbers * ! 813: * * ! 814: * Version 1.0 * ! 815: * * ! 816: * Copyright (c) 1992, Microsoft Corp. All rights reserved. * ! 817: * * ! 818: \*****************************************************************************/ ! 819: ! 820: #ifndef _INC_DLGS ! 821: #define _INC_DLGS ! 822: ! 823: #define ctlFirst 0x0400 ! 824: #define ctlLast 0x04ff ! 825: /* Push buttons */ ! 826: #define psh1 0x0400 ! 827: #define psh2 0x0401 ! 828: #define psh3 0x0402 ! 829: #define psh4 0x0403 ! 830: #define psh5 0x0404 ! 831: #define psh6 0x0405 ! 832: #define psh7 0x0406 ! 833: #define psh8 0x0407 ! 834: #define psh9 0x0408 ! 835: #define psh10 0x0409 ! 836: #define psh11 0x040a ! 837: #define psh12 0x040b ! 838: #define psh13 0x040c ! 839: #define psh14 0x040d ! 840: #define psh15 0x040e ! 841: #define pshHelp psh15 ! 842: #define psh16 0x040f ! 843: /* Checkboxes */ ! 844: #define chx1 0x0410 ! 845: #define chx2 0x0411 ! 846: #define chx3 0x0412 ! 847: #define chx4 0x0413 ! 848: #define chx5 0x0414 ! 849: #define chx6 0x0415 ! 850: #define chx7 0x0416 ! 851: #define chx8 0x0417 ! 852: #define chx9 0x0418 ! 853: #define chx10 0x0419 ! 854: #define chx11 0x041a ! 855: #define chx12 0x041b ! 856: #define chx13 0x041c ! 857: #define chx14 0x041d ! 858: #define chx15 0x041e ! 859: #define chx16 0x041f ! 860: /* Radio buttons */ ! 861: #define rad1 0x0420 ! 862: #define rad2 0x0421 ! 863: #define rad3 0x0422 ! 864: #define rad4 0x0423 ! 865: #define rad5 0x0424 ! 866: #define rad6 0x0425 ! 867: #define rad7 0x0426 ! 868: #define rad8 0x0427 ! 869: #define rad9 0x0428 ! 870: #define rad10 0x0429 ! 871: #define rad11 0x042a ! 872: #define rad12 0x042b ! 873: #define rad13 0x042c ! 874: #define rad14 0x042d ! 875: #define rad15 0x042e ! 876: #define rad16 0x042f ! 877: /* Groups, frames, rectangles, and icons */ ! 878: #define grp1 0x0430 ! 879: #define grp2 0x0431 ! 880: #define grp3 0x0432 ! 881: #define grp4 0x0433 ! 882: #define frm1 0x0434 ! 883: #define frm2 0x0435 ! 884: #define frm3 0x0436 ! 885: #define frm4 0x0437 ! 886: #define rct1 0x0438 ! 887: #define rct2 0x0439 ! 888: #define rct3 0x043a ! 889: #define rct4 0x043b ! 890: #define ico1 0x043c ! 891: #define ico2 0x043d ! 892: #define ico3 0x043e ! 893: #define ico4 0x043f ! 894: /* Static text */ ! 895: #define stc1 0x0440 ! 896: #define stc2 0x0441 ! 897: #define stc3 0x0442 ! 898: #define stc4 0x0443 ! 899: #define stc5 0x0444 ! 900: #define stc6 0x0445 ! 901: #define stc7 0x0446 ! 902: #define stc8 0x0447 ! 903: #define stc9 0x0448 ! 904: #define stc10 0x0449 ! 905: #define stc11 0x044a ! 906: #define stc12 0x044b ! 907: #define stc13 0x044c ! 908: #define stc14 0x044d ! 909: #define stc15 0x044e ! 910: #define stc16 0x044f ! 911: #define stc17 0x0450 ! 912: #define stc18 0x0451 ! 913: #define stc19 0x0452 ! 914: #define stc20 0x0453 ! 915: #define stc21 0x0454 ! 916: #define stc22 0x0455 ! 917: #define stc23 0x0456 ! 918: #define stc24 0x0457 ! 919: #define stc25 0x0458 ! 920: #define stc26 0x0459 ! 921: #define stc27 0x045a ! 922: #define stc28 0x045b ! 923: #define stc29 0x045c ! 924: #define stc30 0x045d ! 925: #define stc31 0x045e ! 926: #define stc32 0x045f ! 927: /* Listboxes */ ! 928: #define lst1 0x0460 ! 929: #define lst2 0x0461 ! 930: #define lst3 0x0462 ! 931: #define lst4 0x0463 ! 932: #define lst5 0x0464 ! 933: #define lst6 0x0465 ! 934: #define lst7 0x0466 ! 935: #define lst8 0x0467 ! 936: #define lst9 0x0468 ! 937: #define lst10 0x0469 ! 938: #define lst11 0x046a ! 939: #define lst12 0x046b ! 940: #define lst13 0x046c ! 941: #define lst14 0x046d ! 942: #define lst15 0x046e ! 943: #define lst16 0x046f ! 944: /* Combo boxes */ ! 945: #define cmb1 0x0470 ! 946: #define cmb2 0x0471 ! 947: #define cmb3 0x0472 ! 948: #define cmb4 0x0473 ! 949: #define cmb5 0x0474 ! 950: #define cmb6 0x0475 ! 951: #define cmb7 0x0476 ! 952: #define cmb8 0x0477 ! 953: #define cmb9 0x0478 ! 954: #define cmb10 0x0479 ! 955: #define cmb11 0x047a ! 956: #define cmb12 0x047b ! 957: #define cmb13 0x047c ! 958: #define cmb14 0x047d ! 959: #define cmb15 0x047e ! 960: #define cmb16 0x047f ! 961: /* Edit controls */ ! 962: #define edt1 0x0480 ! 963: #define edt2 0x0481 ! 964: #define edt3 0x0482 ! 965: #define edt4 0x0483 ! 966: #define edt5 0x0484 ! 967: #define edt6 0x0485 ! 968: #define edt7 0x0486 ! 969: #define edt8 0x0487 ! 970: #define edt9 0x0488 ! 971: #define edt10 0x0489 ! 972: #define edt11 0x048a ! 973: #define edt12 0x048b ! 974: #define edt13 0x048c ! 975: #define edt14 0x048d ! 976: #define edt15 0x048e ! 977: #define edt16 0x048f ! 978: /* Scroll bars */ ! 979: #define scr1 0x0490 ! 980: #define scr2 0x0491 ! 981: #define scr3 0x0492 ! 982: #define scr4 0x0493 ! 983: #define scr5 0x0494 ! 984: #define scr6 0x0495 ! 985: #define scr7 0x0496 ! 986: #define scr8 0x0497 ! 987: ! 988: /* These dialog resource ordinals really start at 0x0600, but the ! 989: * RC Compiler can't handle hex for resource IDs, hence the decimal. ! 990: */ ! 991: #define FILEOPENORD 1536 ! 992: #define MULTIFILEOPENORD 1537 ! 993: #define PRINTDLGORD 1538 ! 994: #define PRNSETUPDLGORD 1539 ! 995: #define FINDDLGORD 1540 ! 996: #define REPLACEDLGORD 1541 ! 997: #define FONTDLGORD 1542 ! 998: #define FORMATDLGORD31 1543 ! 999: #define FORMATDLGORD30 1544 ! 1000: ! 1001: #endif /* !_INC_DLGS */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.