home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 May / Pcwk5b98.iso / Borland / Cplus45 / BC45 / BOLEUI32.PAK / OLE2UI.H < prev    next >
C/C++ Source or Header  |  1995-08-29  |  38KB  |  994 lines

  1. //
  2. /*
  3.  * OLE2UI.H
  4.  *
  5.  * Published definitions, structures, types, and function prototypes for the
  6.  * OLE 2.0 User Interface support library.
  7.  *
  8.  */
  9. /* NOTE: All dialog and string resource ID's defined in this file are
  10.  *    in the range:
  11.  *          32248 - 32504   (0x7DF8 - 0x7EF8)
  12. */
  13. /*
  14.  *      C/C++ Run Time Library - Version 6.5
  15.  *
  16.  *      Copyright (c) 1994 by Borland International
  17.  *      All Rights Reserved.
  18.  *
  19.  */
  20.  
  21. #ifndef _OLE2UI_H_
  22. #define _OLE2UI_H_
  23.  
  24. #if !defined(__cplusplus) && !defined( __TURBOC__)
  25. #define NONAMELESSUNION     // use strict ANSI standard (for DVOBJ.H)
  26. #endif
  27.  
  28. #ifndef RC_INVOKED
  29. #include <windows.h>
  30. #include <shellapi.h>
  31. #include <ole2.h>
  32. #include <string.h>
  33. #endif // !RC_INVOKED
  34. #include <dlgs.h>           //For fileopen dlg; standard include
  35. #include "ansiapi.h"
  36.  
  37. /*************************************************************************
  38. ** DEBUG ASSERTION ROUTINES
  39. *************************************************************************/
  40.  
  41. #if DBG
  42. #include <assert.h>
  43. #define FnAssert(lpstrExpr, lpstrMsg, lpstrFileName, iLine)     \
  44.         (_assert(lpstrMsg ? lpstrMsg : lpstrExpr,               \
  45.                  lpstrFileName,                                 \
  46.                  iLine), NOERROR)
  47. #endif //DBG
  48.  
  49. #include "olestd.h"
  50.  
  51. #ifdef __TURBOC__
  52. #define _getcwd getcwd
  53. #define _itoa   itoa
  54. #define __max   max
  55. #define _find_t find_t
  56. #endif // __TURBOC__
  57.  
  58. #ifdef WIN32
  59. #define _fmemset memset
  60. #define _fmemcpy memcpy
  61. #define _fmemcmp memcmp
  62. #define _fstrcpy strcpy
  63. #define _fstrncpy strncpy
  64. #define _fstrlen strlen
  65. #define _fstrrchr strrchr
  66. #define _fstrtok strtok
  67.  
  68. // BUGBUG32: isspace function does not seem to work properly
  69. #undef isspace
  70. #define isspace(j) (j==' ' || j=='\t' || j=='\n')
  71. #endif  // WIN32
  72.  
  73. #if !defined( EXPORT )
  74. #ifdef WIN32
  75. #define EXPORT
  76. #else
  77. #define EXPORT  __export
  78. #endif  // WIN32
  79. #endif  // !EXPORT
  80.  
  81. #ifndef RC_INVOKED
  82. void BOleHelpNotify (DWORD, int);
  83. #endif // !RC_INVOKED
  84.  
  85. /*
  86.  * Initialization / Uninitialization routines.  OleUIInitialize
  87.  * must be called prior to using any functions in OLE2UI, and OleUIUnInitialize
  88.  * must be called before you app shuts down and when you are done using the
  89.  * library.
  90.  *
  91.  * NOTE:  If you are using the DLL version of this library, these functions
  92.  * are automatically called in the DLL's LibMain and WEP, so you should
  93.  * not call them directly from your application.
  94.  */
  95.  
  96. #ifndef RC_INVOKED
  97.  
  98. // Backward compatibility with older library
  99. #define OleUIUninitialize OleUIUnInitialize
  100.  
  101. STDAPI_(BOOL) OleUIInitialize(HINSTANCE hInstance, HINSTANCE hPrevInst);
  102. STDAPI_(BOOL) OleUIUninitialize(void);
  103.  
  104. #endif // !RC_INVOKED
  105.  
  106. #if !defined( SZCLASSICONBOX )
  107. #define SZCLASSICONBOX  "ole2uiIBCls"
  108. #endif
  109.  
  110. #if !defined( SZCLASSRESULTIMAGE )
  111. #define SZCLASSRESULTIMAGE  "ole2uiRICls"
  112. #endif
  113.  
  114. #ifndef RC_INVOKED
  115.  
  116. // object count, used to support DllCanUnloadNow and OleUICanUnloadNow
  117. extern DWORD g_dwObjectCount;
  118.  
  119. STDAPI OleUICanUnloadNow(void);
  120. STDAPI OleUILockLibrary(BOOL fLock);
  121.  
  122. #endif // !RC_INVOKED
  123.  
  124. //Dialog Identifiers as passed in Help messages to identify the source.
  125. #define IDD_INSERTOBJECT        32248
  126. #define IDD_CHANGEICON          32249
  127. #define IDD_CONVERT             32250
  128. #define IDD_PASTESPECIAL        32251
  129. #define IDD_EDITLINKS           32252
  130. #define IDD_FILEOPEN            32253
  131. #define IDD_BUSY                32254
  132. #define IDD_UPDATELINKS         32255
  133. #define IDD_CANNOTUPDATELINK    32256
  134. #define IDD_CHANGESOURCE        32257
  135. #define IDD_INSERTFILEBROWSE    32258
  136. #define IDD_CHANGEICONBROWSE    32259
  137.  
  138. // The following Dialogs are message dialogs used by OleUIPromptUser API
  139. #define IDD_LINKSOURCEUNAVAILABLE   32260
  140. #define IDD_SERVERNOTREG        32261
  141. #define IDD_LINKTYPECHANGED     32262
  142. #define IDD_SERVERNOTFOUND      32263
  143. #define IDD_OUTOFMEMORY         32264
  144.  
  145. // Stringtable identifers
  146. #define IDS_OLE2UIUNKNOWN       32300
  147. #define IDS_OLE2UILINK          32301
  148. #define IDS_OLE2UIOBJECT        32302
  149. #define IDS_OLE2UIEDIT          32303
  150. #define IDS_OLE2UICONVERT       32304
  151. #define IDS_OLE2UIEDITLINKCMD_1VERB     32305
  152. #define IDS_OLE2UIEDITOBJECTCMD_1VERB   32306
  153. #define IDS_OLE2UIEDITLINKCMD_NVERB     32307
  154. #define IDS_OLE2UIEDITOBJECTCMD_NVERB   32308
  155. #define IDS_OLE2UIEDITNOOBJCMD  32309
  156. // def. icon label (usu. "Document")
  157. #define IDS_DEFICONLABEL        32310
  158. #define IDS_OLE2UIPASTELINKEDTYPE  32311
  159.  
  160.  
  161. #define IDS_FILTERS             32320
  162. #define IDS_ICONFILTERS         32321
  163. #define IDS_BROWSE              32322
  164.  
  165. //Resource identifiers for bitmaps
  166. #define IDB_RESULTSEGA                  32325
  167. #define IDB_RESULTSVGA                  32326
  168. #define IDB_RESULTSHIRESVGA             32327
  169.  
  170.  
  171. #ifndef RC_INVOKED
  172.  
  173. //Missing from windows.h
  174. #ifndef PVOID
  175. typedef VOID *PVOID;
  176. #endif
  177.  
  178.  
  179. //Hook type used in all structures.
  180. typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
  181.  
  182.  
  183. //Strings for registered messages
  184. #define SZOLEUI_MSG_HELP                "OLEUI_MSG_HELP"
  185. #define SZOLEUI_MSG_ENDDIALOG           "OLEUI_MSG_ENDDIALOG"
  186. #define SZOLEUI_MSG_BROWSE              "OLEUI_MSG_BROWSE"
  187. #define SZOLEUI_MSG_CHANGEICON          "OLEUI_MSG_CHANGEICON"
  188. #define SZOLEUI_MSG_CLOSEBUSYDIALOG     "OLEUI_MSG_CLOSEBUSYDIALOG"
  189. #define SZOLEUI_MSG_FILEOKSTRING        "OLEUI_MSG_FILEOKSTRING"
  190.  
  191. #endif // !RC_INVOKED
  192.  
  193. //Standard error definitions
  194. #define OLEUI_FALSE                     0
  195. #define OLEUI_SUCCESS                   1     //No error, same as OLEUI_OK
  196. #define OLEUI_OK                        1     //OK button pressed
  197. #define OLEUI_CANCEL                    2     //Cancel button pressed
  198.  
  199. #define OLEUI_ERR_STANDARDMIN           100
  200. #define OLEUI_ERR_STRUCTURENULL         101   //Standard field validation
  201. #define OLEUI_ERR_STRUCTUREINVALID      102
  202. #define OLEUI_ERR_CBSTRUCTINCORRECT     103
  203. #define OLEUI_ERR_HWNDOWNERINVALID      104
  204. #define OLEUI_ERR_LPSZCAPTIONINVALID    105
  205. #define OLEUI_ERR_LPFNHOOKINVALID       106
  206. #define OLEUI_ERR_HINSTANCEINVALID      107
  207. #define OLEUI_ERR_LPSZTEMPLATEINVALID   108
  208. #define OLEUI_ERR_HRESOURCEINVALID      109
  209.  
  210. #define OLEUI_ERR_FINDTEMPLATEFAILURE   110   //Initialization errors
  211. #define OLEUI_ERR_LOADTEMPLATEFAILURE   111
  212. #define OLEUI_ERR_DIALOGFAILURE         112
  213. #define OLEUI_ERR_LOCALMEMALLOC         113
  214. #define OLEUI_ERR_GLOBALMEMALLOC        114
  215. #define OLEUI_ERR_LOADSTRING            115
  216.  
  217. #define OLEUI_ERR_STANDARDMAX           116   //Start here for specific errors.
  218.  
  219.  
  220. //Help Button Identifier
  221. #define ID_OLEUIHELP                    99
  222.  
  223. // Help button for fileopen.dlg  (need this for resizing) 1038 is pshHelp
  224. #define IDHELP  1038
  225.  
  226. // Static text control (use this instead of -1 so things work correctly for
  227. // localization
  228. #define  ID_STATIC                      98
  229.  
  230. //Maximum key size we read from the RegDB.
  231. #define OLEUI_CCHKEYMAX                 256  // make any changes to this in geticon.c too
  232.  
  233. //Maximum verb length and length of Object menu
  234. #define OLEUI_CCHVERBMAX                32
  235. #define OLEUI_OBJECTMENUMAX             256
  236.  
  237. //Maximum MS-DOS pathname.
  238. #define OLEUI_CCHPATHMAX                256 // make any changes to this in geticon.c too
  239. #define OLEUI_CCHFILEMAX                13
  240.  
  241. //Icon label length
  242. #define OLEUI_CCHLABELMAX               40  // make any changes to this in geticon.c too
  243.  
  244. //Length of the CLSID string
  245. #define OLEUI_CCHCLSIDSTRING            39
  246.  
  247.  
  248. /*
  249.  * What follows here are first function prototypes for general utility
  250.  * functions, then sections laid out by dialog.  Each dialog section
  251.  * defines the dialog structure, the API prototype, flags for the dwFlags
  252.  * field, the dialog-specific error values, and dialog control IDs (for
  253.  * hooks and custom templates.
  254.  */
  255.  
  256. #ifndef RC_INVOKED
  257.  
  258. //Miscellaneous utility functions.
  259. STDAPI_(BOOL) OleUIAddVerbMenu(LPOLEOBJECT lpOleObj,
  260.                       LPOLESTR lpszShortType,
  261.                       HMENU hMenu,
  262.                       UINT uPos,
  263.                       UINT uIDVerbMin,
  264.                       UINT uIDVerbMax,
  265.                       BOOL bAddConvert,
  266.                       UINT idConvert,
  267.                       HMENU FAR *lphMenu);
  268.  
  269. //Metafile utility functions
  270. WINOLEAPI_(HGLOBAL) OleUIMetafilePictFromIconAndLabel(HICON, LPOLESTR, LPOLESTR, UINT);
  271. STDAPI_(void)    OleUIMetafilePictIconFree(HGLOBAL);
  272. STDAPI_(BOOL)    OleUIMetafilePictIconDraw(HDC, LPRECT, HGLOBAL, BOOL);
  273. STDAPI_(UINT)    OleUIMetafilePictExtractLabel(HGLOBAL, LPOLESTR, UINT, LPDWORD);
  274. STDAPI_(HICON)   OleUIMetafilePictExtractIcon(HGLOBAL);
  275. STDAPI_(BOOL)    OleUIMetafilePictExtractIconSource(HGLOBAL,LPOLESTR,UINT FAR *);
  276.  
  277. #endif // !RC_INVOKED
  278.  
  279.  
  280. /*************************************************************************
  281. ** INSERT OBJECT DIALOG
  282. *************************************************************************/
  283.  
  284. #ifndef RC_INVOKED
  285.  
  286. typedef struct tagOLEUIINSERTOBJECT
  287.    {
  288.    //These IN fields are standard across all OLEUI dialog functions.
  289.    DWORD           cbStruct;         //Structure Size
  290.    DWORD           dwFlags;          //IN-OUT:  Flags
  291.    HWND            hWndOwner;        //Owning window
  292.    LPCOLESTR       lpszCaption;      //Dialog caption bar contents
  293.    LPFNOLEUIHOOK   lpfnHook;         //Hook callback
  294.    LPARAM          lCustData;        //Custom data to pass to hook
  295.    HINSTANCE       hInstance;        //Instance for customized template name
  296.    LPCOLESTR       lpszTemplate;     //Customized template name
  297.    HRSRC           hResource;        //Customized template handle
  298.     DWORD           dwIBApplication;  //Bolero app ptr for help
  299.     HHOOK           hHook;            //Bolero F1 hook
  300.     HTASK           hTask;            //Bolero task for F1 hook
  301.  
  302.    //Specifics for OLEUIINSERTOBJECT.  All are IN-OUT unless otherwise spec.
  303.    CLSID           clsid;            //Return space for class ID
  304.    LPOLESTR        lpszFile;         //Filename for inserts or links
  305.    UINT            cchFile;          //Size of lpszFile buffer: OLEUI_CCHPATHMAX
  306.    UINT            cClsidExclude;    //IN only:  CLSIDs in lpClsidExclude
  307.    LPCLSID         lpClsidExclude;   //List of CLSIDs to exclude from listing.
  308.  
  309.     BOOL                 fBrowseHelp; //PHP whether to do help on browse?
  310.  
  311.    //Specific to create objects if flags say so
  312.    IID             iid;              //Requested interface on creation.
  313.    DWORD           oleRender;        //Rendering option
  314.    LPFORMATETC     lpFormatEtc;      //Desired format
  315.    LPOLECLIENTSITE lpIOleClientSite; //Site to be use for the object.
  316.    LPSTORAGE       lpIStorage;       //Storage used for the object
  317.    LPVOID FAR     *ppvObj;           //Where the object is returned.
  318.    SCODE           sc;               //Result of creation calls.
  319.    HGLOBAL         hMetaPict;        //OUT: METAFILEPICT containing iconic aspect.
  320.                              //IFF we couldn't stuff it in the cache.
  321.    } OLEUIINSERTOBJECT, *POLEUIINSERTOBJECT, FAR *LPOLEUIINSERTOBJECT;
  322.  
  323. //API prototype
  324. STDAPI_(UINT) OleUIInsertObject(LPOLEUIINSERTOBJECT);
  325.  
  326. #endif // !RC_INVOKED
  327.  
  328. //Insert Object flags
  329. #define IOF_SHOWHELP                0x00000001L
  330. #define IOF_SELECTCREATENEW         0x00000002L
  331. #define IOF_SELECTCREATEFROMFILE    0x00000004L
  332. #define IOF_CHECKLINK               0x00000008L
  333. #define IOF_CHECKDISPLAYASICON      0x00000010L
  334. #define IOF_CREATENEWOBJECT         0x00000020L
  335. #define IOF_CREATEFILEOBJECT        0x00000040L
  336. #define IOF_CREATELINKOBJECT        0x00000080L
  337. #define IOF_DISABLELINK             0x00000100L
  338. #define IOF_VERIFYSERVERSEXIST      0x00000200L
  339. #define IOF_DISABLEDISPLAYASICON    0x00000400L
  340.  
  341.  
  342. //Insert Object specific error codes
  343. #define OLEUI_IOERR_LPSZFILEINVALID         (OLEUI_ERR_STANDARDMAX+0)
  344. #define OLEUI_IOERR_LPSZLABELINVALID        (OLEUI_ERR_STANDARDMAX+1)
  345. #define OLEUI_IOERR_HICONINVALID            (OLEUI_ERR_STANDARDMAX+2)
  346. #define OLEUI_IOERR_LPFORMATETCINVALID      (OLEUI_ERR_STANDARDMAX+3)
  347. #define OLEUI_IOERR_PPVOBJINVALID           (OLEUI_ERR_STANDARDMAX+4)
  348. #define OLEUI_IOERR_LPIOLECLIENTSITEINVALID (OLEUI_ERR_STANDARDMAX+5)
  349. #define OLEUI_IOERR_LPISTORAGEINVALID       (OLEUI_ERR_STANDARDMAX+6)
  350. #define OLEUI_IOERR_SCODEHASERROR           (OLEUI_ERR_STANDARDMAX+7)
  351. #define OLEUI_IOERR_LPCLSIDEXCLUDEINVALID   (OLEUI_ERR_STANDARDMAX+8)
  352. #define OLEUI_IOERR_CCHFILEINVALID          (OLEUI_ERR_STANDARDMAX+9)
  353.  
  354.  
  355. //Insert Object Dialog identifiers
  356. #define ID_IO_CREATENEW                 2100
  357. #define ID_IO_CREATEFROMFILE            2101
  358. #define ID_IO_LINKFILE                  2102
  359. #define ID_IO_OBJECTTYPELIST            2103
  360. #define ID_IO_DISPLAYASICON             2104
  361. #define ID_IO_CHANGEICON                2105
  362. #define ID_IO_FILE                      2106
  363. #define ID_IO_FILEDISPLAY               2107
  364. #define ID_IO_RESULTIMAGE               2108
  365. #define ID_IO_RESULTTEXT                2109
  366. #define ID_IO_ICONDISPLAY               2110
  367. #define ID_IO_OBJECTTYPETEXT            2111
  368. #define ID_IO_FILETEXT                  2112
  369. #define ID_IO_FILETYPE                  2113
  370.  
  371. // Strings in OLE2UI resources
  372. #define IDS_IORESULTNEW                 32400
  373. #define IDS_IORESULTNEWICON             32401
  374. #define IDS_IORESULTFROMFILE1           32402
  375. #define IDS_IORESULTFROMFILE2           32403
  376. #define IDS_IORESULTFROMFILEICON2       32404
  377. #define IDS_IORESULTLINKFILE1           32405
  378. #define IDS_IORESULTLINKFILE2           32406
  379. #define IDS_IORESULTLINKFILEICON1       32407
  380. #define IDS_IORESULTLINKFILEICON2       32408
  381.  
  382. /*************************************************************************
  383. ** PASTE SPECIAL DIALOG
  384. *************************************************************************/
  385.  
  386. #ifndef RC_INVOKED
  387.  
  388. // Maximum number of link types
  389. #define     PS_MAXLINKTYPES  8
  390.  
  391. //NOTE: OLEUIPASTEENTRY and OLEUIPASTEFLAG structs are defined in OLESTD.H
  392.  
  393. typedef struct tagOLEUIPASTESPECIAL
  394.    {
  395.    //These IN fields are standard across all OLEUI dialog functions.
  396.    DWORD           cbStruct;       //Structure Size
  397.    DWORD           dwFlags;        //IN-OUT:  Flags
  398.    HWND            hWndOwner;      //Owning window
  399.    LPCOLESTR       lpszCaption;    //Dialog caption bar contents
  400.    LPFNOLEUIHOOK   lpfnHook;       //Hook callback
  401.    LPARAM          lCustData;      //Custom data to pass to hook
  402.    HINSTANCE       hInstance;      //Instance for customized template name
  403.    LPCOLESTR       lpszTemplate;   //Customized template name
  404.    HRSRC           hResource;      //Customized template handle
  405.     DWORD           dwIBApplication;  //Bolero app ptr for help
  406.     HHOOK           hHook;            //Bolero F1 hook
  407.     HTASK           hTask;            //Bolero task for F1 hook
  408.  
  409.    //Specifics for OLEUIPASTESPECIAL.
  410.  
  411.    //IN  fields
  412.    LPDATAOBJECT    lpSrcDataObj;       //Source IDataObject* (on the
  413.                               // clipboard) for data to paste
  414.  
  415.    LPOLEUIPASTEENTRY arrPasteEntries;  //OLEUIPASTEENTRY array which
  416.                               // specifies acceptable formats. See
  417.                               // OLEUIPASTEENTRY for more info.
  418.    int             cPasteEntries;      //No. of OLEUIPASTEENTRY array entries
  419.  
  420.    UINT        FAR *arrLinkTypes;      //List of link types that are
  421.                               // acceptable. Link types are referred
  422.                               // to using OLEUIPASTEFLAGS in
  423.                               // arrPasteEntries
  424.    int             cLinkTypes;         //Number of link types
  425.    UINT            cClsidExclude;      //Number of CLSIDs in lpClsidExclude
  426.    LPCLSID         lpClsidExclude;     //List of CLSIDs to exclude from list.
  427.  
  428.    //OUT fields
  429.    int             nSelectedIndex;     //Index of arrPasteEntries[] that the
  430.                               // user selected
  431.    BOOL            fLink;              //Indicates if Paste or Paste Link was
  432.                               // selected by the user
  433.    HGLOBAL         hMetaPict;          //Handle to Metafile containing icon
  434.                               // and icon title selected by the user
  435.                               // Use the Metafile utility functions
  436.                               // defined in this header to
  437.                               // manipulate hMetaPict
  438.    SIZEL           sizel;              // size of object/link in its source
  439.                               //  if the display aspect chosen by
  440.                               //  the user matches the aspect
  441.                               //  displayed in the source. if
  442.                               //  different aspect is chosen then
  443.                               //  sizel.cx=sizel.cy=0 is returned.
  444.                               //  sizel displayed in source is
  445.                               //  retrieved from the
  446.                               //  ObjectDescriptor if fLink is FALSE
  447.                               //  LinkSrcDescriptor if fLink is TRUE
  448.    } OLEUIPASTESPECIAL, *POLEUIPASTESPECIAL, FAR *LPOLEUIPASTESPECIAL;
  449.  
  450.  
  451. //API to bring up PasteSpecial dialog
  452. STDAPI_(UINT) OleUIPasteSpecial(LPOLEUIPASTESPECIAL);
  453.  
  454. //Paste Special flags
  455. // Show Help button. IN flag.
  456. #define PSF_SHOWHELP                0x00000001L
  457.  
  458. //Select Paste radio button at dialog startup. This is the default if
  459. // PSF_SELECTPASTE or PSF_SELECTPASTELINK are not specified. Also specifies
  460. // state of button on dialog termination. IN/OUT flag.
  461. #define PSF_SELECTPASTE             0x00000002L
  462.  
  463. //Select PasteLink radio button at dialog startup. Also specifies state of
  464. // button on dialog termination. IN/OUT flag.
  465. #define PSF_SELECTPASTELINK         0x00000004L
  466.  
  467. //Specfies if DisplayAsIcon button was checked on dialog termination. OUT flag
  468. #define PSF_CHECKDISPLAYASICON      0x00000008L
  469. #define PSF_DISABLEDISPLAYASICON    0x00000010L
  470.  
  471.  
  472. //Paste Special specific error codes
  473. #define OLEUI_IOERR_SRCDATAOBJECTINVALID      (OLEUI_ERR_STANDARDMAX+0)
  474. #define OLEUI_IOERR_ARRPASTEENTRIESINVALID    (OLEUI_ERR_STANDARDMAX+1)
  475. #define OLEUI_IOERR_ARRLINKTYPESINVALID       (OLEUI_ERR_STANDARDMAX+2)
  476. #define OLEUI_PSERR_CLIPBOARDCHANGED          (OLEUI_ERR_STANDARDMAX+3)
  477.  
  478. #endif // !RC_INVOKED
  479.  
  480. //Paste Special Dialog identifiers
  481. #define ID_PS_PASTE                    500
  482. #define ID_PS_PASTELINK                501
  483. #define ID_PS_SOURCETEXT               502
  484. #define ID_PS_PASTELIST                503
  485. #define ID_PS_PASTELINKLIST            504
  486. #define ID_PS_DISPLAYLIST              505
  487. #define ID_PS_DISPLAYASICON            506
  488. #define ID_PS_ICONDISPLAY              507
  489. #define ID_PS_CHANGEICON               508
  490. #define ID_PS_RESULTIMAGE              509
  491. #define ID_PS_RESULTTEXT               510
  492. #define ID_PS_RESULTGROUP              511
  493. #define ID_PS_STXSOURCE                512
  494. #define ID_PS_STXAS                    513
  495.  
  496. // Paste Special String IDs
  497. #define IDS_PSPASTEDATA                32410
  498. #define IDS_PSPASTEOBJECT              32411
  499. #define IDS_PSPASTEOBJECTASICON        32412
  500. #define IDS_PSPASTELINKDATA            32413
  501. #define IDS_PSPASTELINKOBJECT          32414
  502. #define IDS_PSPASTELINKOBJECTASICON    32415
  503. #define IDS_PSNONOLE                   32416
  504. #define IDS_PSUNKNOWNTYPE              32417
  505. #define IDS_PSUNKNOWNSRC               32418
  506. #define IDS_PSUNKNOWNAPP               32419
  507.  
  508.  
  509. /*************************************************************************
  510. ** EDIT LINKS DIALOG
  511. *************************************************************************/
  512.  
  513. #ifndef RC_INVOKED
  514.  
  515. /* IOleUILinkContainer Interface
  516. ** -----------------------------
  517. **    This interface must be implemented by container applications that
  518. **    want to use the EditLinks dialog. the EditLinks dialog calls back
  519. **    to the container app to perform the OLE functions to manipulate
  520. **    the links within the container.
  521. */
  522.  
  523. #define LPOLEUILINKCONTAINER     IOleUILinkContainer FAR*
  524.  
  525. #undef  INTERFACE
  526. #define INTERFACE   IOleUILinkContainer
  527.  
  528. DECLARE_INTERFACE_(IOleUILinkContainer, IUnknown)
  529. {
  530.    //*** IUnknown methods ***/
  531.    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  532.    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  533.    STDMETHOD_(ULONG,Release) (THIS) PURE;
  534.  
  535.    STDMETHOD_(DWORD,GetNextLink) (THIS_ DWORD dwLink) PURE;
  536.    STDMETHOD(SetLinkUpdateOptions) (THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE;
  537.    STDMETHOD(GetLinkUpdateOptions) (THIS_ DWORD dwLink, DWORD FAR* lpdwUpdateOpt) PURE;
  538.    STDMETHOD(SetLinkSource) (THIS_
  539.          DWORD       dwLink,
  540.          LPOLESTR    lpszDisplayName,
  541.          ULONG       lenFileName,
  542.          ULONG FAR*  pchEaten,
  543.          BOOL        fValidateSource) PURE;
  544.    STDMETHOD(GetLinkSource) (THIS_
  545.          DWORD       dwLink,
  546.          LPOLESTR FAR*  lplpszDisplayName,
  547.          ULONG FAR*  lplenFileName,
  548.          LPOLESTR FAR*  lplpszFullLinkType,
  549.          LPOLESTR FAR*  lplpszShortLinkType,
  550.          BOOL FAR*   lpfSourceAvailable,
  551.          BOOL FAR*   lpfIsSelected) PURE;
  552.    STDMETHOD(OpenLinkSource) (THIS_ DWORD dwLink) PURE;
  553.    STDMETHOD(UpdateLink) (THIS_
  554.          DWORD dwLink,
  555.          BOOL fErrorMessage,
  556.          BOOL fErrorAction) PURE;
  557.    STDMETHOD(CancelLink) (THIS_ DWORD dwLink) PURE;
  558. };
  559.  
  560.  
  561. typedef struct tagOLEUIEDITLINKS
  562.    {
  563.    //These IN fields are standard across all OLEUI dialog functions.
  564.    DWORD           cbStruct;       //Structure Size
  565.    DWORD           dwFlags;        //IN-OUT:  Flags
  566.    HWND            hWndOwner;      //Owning window
  567.    LPCOLESTR       lpszCaption;    //Dialog caption bar contents
  568.    LPFNOLEUIHOOK   lpfnHook;       //Hook callback
  569.    LPARAM          lCustData;      //Custom data to pass to hook
  570.    HINSTANCE       hInstance;      //Instance for customized template name
  571.    LPCOLESTR       lpszTemplate;   //Customized template name
  572.    HRSRC           hResource;      //Customized template handle
  573.     DWORD           dwIBApplication;  //Bolero app ptr for help
  574.     HHOOK           hHook;            //Bolero F1 hook
  575.     HTASK           hTask;            //Bolero task for F1 hook
  576.  
  577.     BOOL            fChangeSourceHelp; //PHP
  578.  
  579.    //Specifics for OLEUI<STRUCT>.  All are IN-OUT unless otherwise spec.
  580.  
  581.    LPOLEUILINKCONTAINER lpOleUILinkContainer;  //IN: Interface to manipulate
  582.                                     //links in the container
  583.    } OLEUIEDITLINKS, *POLEUIEDITLINKS, FAR *LPOLEUIEDITLINKS;
  584.  
  585.  
  586. //API Prototype
  587. STDAPI_(UINT) OleUIEditLinks(LPOLEUIEDITLINKS);
  588.  
  589. #endif // !RC_INVOKED
  590.  
  591. // Edit Links flags
  592. #define ELF_SHOWHELP                0x00000001L
  593. #define ELF_DISABLEUPDATENOW        0x00000002L
  594. #define ELF_DISABLEOPENSOURCE       0x00000004L
  595. #define ELF_DISABLECHANGESOURCE     0x00000008L
  596. #define ELF_DISABLECANCELLINK       0x00000010L
  597.  
  598. // Edit Links Dialog identifiers
  599. #define ID_EL_CHANGESOURCE             201
  600. #define ID_EL_AUTOMATIC                202
  601. #define ID_EL_CLOSE                    208
  602. #define ID_EL_CANCELLINK               209
  603. #define ID_EL_UPDATENOW                210
  604. #define ID_EL_OPENSOURCE               211
  605. #define ID_EL_MANUAL                   212
  606. #define ID_EL_LINKSOURCE               216
  607. #define ID_EL_LINKTYPE                 217
  608. #define ID_EL_UPDATE                   218
  609. #define ID_EL_NULL                     -1
  610. #define ID_EL_LINKSLISTBOX             206
  611. #define ID_EL_COL1                     220
  612. #define ID_EL_COL2                     221
  613. #define ID_EL_COL3                     222
  614.  
  615.  
  616.  
  617. /*************************************************************************
  618. ** CHANGE ICON DIALOG
  619. *************************************************************************/
  620.  
  621. #ifndef RC_INVOKED
  622.  
  623. typedef struct tagOLEUICHANGEICON
  624.    {
  625.    //These IN fields are standard across all OLEUI dialog functions.
  626.    DWORD           cbStruct;       //Structure Size
  627.    DWORD           dwFlags;        //IN-OUT:  Flags
  628.    HWND            hWndOwner;      //Owning window
  629.    LPCOLESTR       lpszCaption;    //Dialog caption bar contents
  630.    LPFNOLEUIHOOK   lpfnHook;       //Hook callback
  631.    LPARAM          lCustData;      //Custom data to pass to hook
  632.    HINSTANCE       hInstance;      //Instance for customized template name
  633.    LPCOLESTR       lpszTemplate;   //Customized template name
  634.    HRSRC           hResource;      //Customized template handle
  635.     DWORD           dwIBApplication;  //Bolero app ptr for help
  636.     HHOOK           hHook;            //Bolero F1 hook
  637.     HTASK           hTask;            //Bolero task for F1 hook
  638.  
  639.     BOOL fBrowseIconHelp; //PHP
  640.  
  641.    //Specifics for OLEUICHANGEICON.  All are IN-OUT unless otherwise spec.
  642.    HGLOBAL         hMetaPict;      //Current and final image.  Source of the
  643.                            //icon is embedded in the metafile itself.
  644.    CLSID           clsid;          //IN only: class used to get Default icon
  645.    OLECHAR         szIconExe[OLEUI_CCHPATHMAX];
  646.    int             cchIconExe;
  647.    } OLEUICHANGEICON, *POLEUICHANGEICON, FAR *LPOLEUICHANGEICON;
  648.  
  649.  
  650. //API prototype
  651. STDAPI_(UINT) OleUIChangeIcon(LPOLEUICHANGEICON);
  652.  
  653. #endif // !RC_INVOKED
  654.  
  655. //Change Icon flags
  656. #define CIF_SHOWHELP                0x00000001L
  657. #define CIF_SELECTCURRENT           0x00000002L
  658. #define CIF_SELECTDEFAULT           0x00000004L
  659. #define CIF_SELECTFROMFILE          0x00000008L
  660. #define CIF_USEICONEXE              0x0000000aL
  661.  
  662.  
  663. //Change Icon specific error codes
  664. #define OLEUI_CIERR_MUSTHAVECLSID           (OLEUI_ERR_STANDARDMAX+0)
  665. #define OLEUI_CIERR_MUSTHAVECURRENTMETAFILE (OLEUI_ERR_STANDARDMAX+1)
  666. #define OLEUI_CIERR_SZICONEXEINVALID        (OLEUI_ERR_STANDARDMAX+2)
  667.  
  668.  
  669. //Change Icon Dialog identifiers
  670. #define ID_GROUP                    120
  671. #define ID_CURRENT                  121
  672. #define ID_CURRENTICON              122
  673. #define ID_DEFAULT                  123
  674. #define ID_DEFAULTICON              124
  675. #define ID_FROMFILE                 125
  676. #define ID_FROMFILEEDIT             126
  677. #define ID_ICONLIST                 127
  678. #define ID_LABEL                    128
  679. #define ID_LABELEDIT                129
  680. #define ID_BROWSE                   130
  681. #define ID_RESULTICON               132
  682. #define ID_RESULTLABEL              133
  683.  
  684. // Stringtable defines for Change Icon
  685. #define IDS_CINOICONSINFILE         32430
  686. #define IDS_CIINVALIDFILE           32431
  687. #define IDS_CIFILEACCESS            32432
  688. #define IDS_CIFILESHARE             32433
  689. #define IDS_CIFILEOPENFAIL          32434
  690.  
  691.  
  692.  
  693. /*************************************************************************
  694. ** CONVERT DIALOG
  695. *************************************************************************/
  696.  
  697. #ifndef RC_INVOKED
  698.  
  699. typedef struct tagOLEUICONVERT
  700.    {
  701.    //These IN fields are standard across all OLEUI dialog functions.
  702.    DWORD           cbStruct;         //Structure Size
  703.    DWORD           dwFlags;          //IN-OUT:  Flags
  704.    HWND            hWndOwner;        //Owning window
  705.    LPCOLESTR       lpszCaption;      //Dialog caption bar contents
  706.    LPFNOLEUIHOOK   lpfnHook;         //Hook callback
  707.    LPARAM          lCustData;        //Custom data to pass to hook
  708.    HINSTANCE       hInstance;        //Instance for customized template name
  709.    LPCOLESTR       lpszTemplate;     //Customized template name
  710.    HRSRC           hResource;        //Customized template handle
  711.     DWORD           dwIBApplication;  //Bolero app ptr for help
  712.     HHOOK           hHook;            //Bolero F1 hook
  713.     HTASK           hTask;            //Bolero task for F1 hook
  714.  
  715.  
  716.    //Specifics for OLEUICONVERT.  All are IN-OUT unless otherwise spec.
  717.    CLSID           clsid;            //Class ID sent in to dialog: IN only
  718.    CLSID           clsidConvertDefault;  //Class ID to use as convert default: IN only
  719.    CLSID           clsidActivateDefault;  //Class ID to use as activate default: IN only
  720.  
  721.    CLSID           clsidNew;         //Selected Class ID: OUT only
  722.    DWORD           dvAspect;         //IN-OUT, either DVASPECT_CONTENT or
  723.                              //DVASPECT_ICON
  724.    WORD            wFormat;          //Original data format
  725.    BOOL            fIsLinkedObject;  //IN only; true if object is linked
  726.    HGLOBAL         hMetaPict;        //IN-OUT: METAFILEPICT containing iconic aspect.
  727.    LPOLESTR        lpszUserType;     //IN-OUT: user type name of original class.
  728.                              //  We'll do lookup if it's NULL.
  729.                              //  This gets freed on exit.
  730.    BOOL            fObjectsIconChanged;  // OUT; TRUE if ChangeIcon was called (and not cancelled)
  731.    LPOLESTR        lpszDefLabel;     //IN-OUT: default label to use for icon.
  732.                              //  if NULL, the short user type name
  733.                              //  will be used. if the object is a
  734.                              //  link, the caller should pass the
  735.                              //  DisplayName of the link source
  736.                              //  This gets freed on exit.
  737.  
  738.    UINT            cClsidExclude;    //IN: No. of CLSIDs in lpClsidExclude
  739.    LPCLSID         lpClsidExclude;   //IN: List of CLSIDs to exclude from list
  740.    } OLEUICONVERT, *POLEUICONVERT, FAR *LPOLEUICONVERT;
  741.  
  742.  
  743. //API prototype
  744. STDAPI_(UINT) OleUIConvert(LPOLEUICONVERT);
  745.  
  746. // Determine if there is at least one class that can Convert or ActivateAs
  747. // the given clsid.
  748. STDAPI_(BOOL) OleUICanConvertOrActivateAs(
  749.       REFCLSID    rClsid,
  750.       BOOL        fIsLinkedObject,
  751.       WORD        wFormat
  752. );
  753.  
  754. //Convert Dialog flags
  755.  
  756. // IN only: Shows "HELP" button
  757. #define CF_SHOWHELPBUTTON          0x00000001L
  758.  
  759. // IN only: lets you set the convert default object - the one that is
  760. // selected as default in the convert listbox.
  761. #define CF_SETCONVERTDEFAULT       0x00000002L
  762.  
  763.  
  764. // IN only: lets you set the activate default object - the one that is
  765. // selected as default in the activate listbox.
  766.  
  767. #define CF_SETACTIVATEDEFAULT       0x00000004L
  768.  
  769.  
  770. // IN/OUT: Selects the "Convert To" radio button, is set on exit if
  771. // this button was selected
  772. #define CF_SELECTCONVERTTO         0x00000008L
  773.  
  774. // IN/OUT: Selects the "Activate As" radio button, is set on exit if
  775. // this button was selected
  776. #define CF_SELECTACTIVATEAS        0x00000010L
  777. #define CF_DISABLEDISPLAYASICON    0x00000020L
  778. #define CF_DISABLEACTIVATEAS       0x00000040L
  779.  
  780.  
  781. //Convert specific error codes
  782. #define OLEUI_CTERR_CLASSIDINVALID      (OLEUI_ERR_STANDARDMAX+1)
  783. #define OLEUI_CTERR_DVASPECTINVALID     (OLEUI_ERR_STANDARDMAX+2)
  784. #define OLEUI_CTERR_CBFORMATINVALID     (OLEUI_ERR_STANDARDMAX+3)
  785. #define OLEUI_CTERR_HMETAPICTINVALID    (OLEUI_ERR_STANDARDMAX+4)
  786. #define OLEUI_CTERR_STRINGINVALID       (OLEUI_ERR_STANDARDMAX+5)
  787.  
  788. #endif // !RC_INVOKED
  789.  
  790. //Convert Dialog identifiers
  791. #define IDCV_OBJECTTYPE             150
  792. #define IDCV_DISPLAYASICON          152
  793. #define IDCV_CHANGEICON             153
  794. #define IDCV_ACTIVATELIST           154
  795. #define IDCV_CONVERTTO              155
  796. #define IDCV_ACTIVATEAS             156
  797. #define IDCV_RESULTTEXT             157
  798. #define IDCV_CONVERTLIST            158
  799. #define IDCV_ICON                   159
  800. #define IDCV_ICONLABEL1             160
  801. #define IDCV_ICONLABEL2             161
  802. #define IDCV_STXCURTYPE             162
  803. #define IDCV_GRPRESULT              163
  804. #define IDCV_STXCONVERTTO           164
  805.  
  806. // String IDs for Convert dialog
  807. #define IDS_CVRESULTCONVERTLINK     32440
  808. #define IDS_CVRESULTCONVERTTO       32441
  809. #define IDS_CVRESULTNOCHANGE        32442
  810. #define IDS_CVRESULTDISPLAYASICON   32443
  811. #define IDS_CVRESULTACTIVATEAS      32444
  812. #define IDS_CVRESULTACTIVATEDIFF    32445
  813.  
  814.  
  815. /*************************************************************************
  816. ** BUSY DIALOG
  817. *************************************************************************/
  818.  
  819. #ifndef RC_INVOKED
  820.  
  821. typedef struct tagOLEUIBUSY
  822.    {
  823.    //These IN fields are standard across all OLEUI dialog functions.
  824.    DWORD           cbStruct;         //Structure Size
  825.    DWORD           dwFlags;          //IN-OUT:  Flags ** NOTE ** this dialog has no flags
  826.    HWND            hWndOwner;        //Owning window
  827.    LPCOLESTR       lpszCaption;      //Dialog caption bar contents
  828.    LPFNOLEUIHOOK   lpfnHook;         //Hook callback
  829.    LPARAM          lCustData;        //Custom data to pass to hook
  830.    HINSTANCE       hInstance;        //Instance for customized template name
  831.    LPCOLESTR       lpszTemplate;     //Customized template name
  832.    HRSRC           hResource;        //Customized template handle
  833.  
  834.    //Specifics for OLEUIBUSY.
  835.    HTASK           hTask;            //IN: HTask which is blocking
  836.    HWND FAR *      lphWndDialog;     //IN: Dialog's HWND is placed here
  837.    } OLEUIBUSY, *POLEUIBUSY, FAR *LPOLEUIBUSY;
  838.  
  839. //API prototype
  840. STDAPI_(UINT) OleUIBusy(LPOLEUIBUSY);
  841.  
  842. // Flags for this dialog
  843.  
  844. // IN only: Disables "Cancel" button
  845. #define BZ_DISABLECANCELBUTTON          0x00000001L
  846.  
  847. // IN only: Disables "Switch To..." button
  848. #define BZ_DISABLESWITCHTOBUTTON        0x00000002L
  849.  
  850. // IN only: Disables "Retry" button
  851. #define BZ_DISABLERETRYBUTTON           0x00000004L
  852.  
  853. // IN only: Generates a "Not Responding" dialog as opposed to the
  854. // "Busy" dialog.  The wording in the text is slightly different, and
  855. // the "Cancel" button is grayed out if you set this flag.
  856. #define BZ_NOTRESPONDINGDIALOG          0x00000008L
  857.  
  858. // Busy specific error/return codes
  859. #define OLEUI_BZERR_HTASKINVALID     (OLEUI_ERR_STANDARDMAX+0)
  860.  
  861. // SWITCHTOSELECTED is returned when user hit "switch to"
  862. #define OLEUI_BZ_SWITCHTOSELECTED    (OLEUI_ERR_STANDARDMAX+1)
  863.  
  864. // RETRYSELECTED is returned when user hit "retry"
  865. #define OLEUI_BZ_RETRYSELECTED       (OLEUI_ERR_STANDARDMAX+2)
  866.  
  867. // CALLUNBLOCKED is returned when call has been unblocked
  868. #define OLEUI_BZ_CALLUNBLOCKED       (OLEUI_ERR_STANDARDMAX+3)
  869.  
  870. #endif // !RC_INVOKED
  871.  
  872. // Busy dialog identifiers
  873. #define IDBZ_RETRY                      600
  874. #define IDBZ_ICON                       601
  875. #define IDBZ_MESSAGE1                   602
  876. #define IDBZ_SWITCHTO                   604
  877.  
  878. // Busy dialog stringtable defines
  879. #define IDS_BZRESULTTEXTBUSY            32447
  880. #define IDS_BZRESULTTEXTNOTRESPONDING   32448
  881.  
  882. // Links dialog stringtable defines
  883. #define IDS_LINK_AUTO           32450
  884. #define IDS_LINK_MANUAL         32451
  885. #define IDS_LINK_UNKNOWN        32452
  886. #define IDS_LINKS               32453
  887. #define IDS_FAILED              32454
  888. #define IDS_CHANGESOURCE        32455
  889. #define IDS_INVALIDSOURCE       32456
  890. #define IDS_ERR_GETLINKSOURCE   32457
  891. #define IDS_ERR_GETLINKUPDATEOPTIONS    32458
  892. #define IDS_ERR_ADDSTRING       32459
  893. #define IDS_CHANGEADDITIONALLINKS   32460
  894. #define IDS_CLOSE               32461
  895.  
  896.  
  897. /*************************************************************************
  898. ** PROMPT USER DIALOGS
  899. *************************************************************************/
  900. #define ID_PU_LINKS             900
  901. #define ID_PU_TEXT              901
  902. #define ID_PU_CONVERT           902
  903. #define ID_PU_BROWSE            904
  904. #define ID_PU_METER             905
  905. #define ID_PU_PERCENT           906
  906. #define ID_PU_STOP              907
  907.  
  908. // used for -1 ids in dialogs:
  909. #define ID_DUMMY    999
  910.  
  911. #ifndef RC_INVOKED
  912.  
  913. /* inside ole2ui.c */
  914. #ifdef __cplusplus
  915. extern "C"
  916. #endif
  917. int EXPORT FAR CDECL OleUIPromptUser(WORD nTemplate, HWND hwndParent, ...);
  918.  
  919. #define UPDATELINKS_STARTDELAY  2000    // Delay before 1st link updates
  920.                               //  to give the user a chance to
  921.                               //  dismiss the dialog before any
  922.                               //  links update.
  923.  
  924. STDAPI_(BOOL) OleUIUpdateLinks(
  925.       LPOLEUILINKCONTAINER lpOleUILinkCntr,
  926.       HWND hwndParent,
  927.       LPOLESTR lpszTitle,
  928.       int cLinks);
  929.  
  930. #endif // !RC_INVOKED
  931.  
  932. /*************************************************************************
  933. ** OLE OBJECT FEEDBACK EFFECTS
  934. *************************************************************************/
  935.  
  936. #ifndef RC_INVOKED
  937.  
  938. #define OLEUI_HANDLES_USEINVERSE    0x00000001L
  939. #define OLEUI_HANDLES_NOBORDER      0x00000002L
  940. #define OLEUI_HANDLES_INSIDE        0x00000004L
  941. #define OLEUI_HANDLES_OUTSIDE       0x00000008L
  942.  
  943.  
  944. #define OLEUI_SHADE_FULLRECT        1
  945. #define OLEUI_SHADE_BORDERIN        2
  946. #define OLEUI_SHADE_BORDEROUT       3
  947.  
  948. /* objfdbk.c function prototypes */
  949. STDAPI_(void) OleUIDrawHandles(LPRECT lpRect, HDC hdc, DWORD dwFlags, UINT cSize, BOOL fDraw);
  950. STDAPI_(void) OleUIDrawShading(LPRECT lpRect, HDC hdc, DWORD dwFlags, UINT cWidth);
  951. STDAPI_(void) OleUIShowObject(LPCRECT lprc, HDC hdc, BOOL fIsLink);
  952.  
  953. #endif // !RC_INVOKED
  954.  
  955. /*************************************************************************
  956. ** Hatch window definitions and prototypes                              **
  957. *************************************************************************/
  958.  
  959. #ifndef RC_INVOKED
  960.  
  961. #define DEFAULT_HATCHBORDER_WIDTH   4
  962.  
  963. STDAPI_(BOOL) RegisterHatchWindowClass(HINSTANCE hInst);
  964. STDAPI_(HWND) CreateHatchWindow(HWND hWndParent, HINSTANCE hInst);
  965. STDAPI_(UINT) GetHatchWidth(HWND hWndHatch);
  966. STDAPI_(void) GetHatchRect(HWND hWndHatch, LPRECT lpHatchRect);
  967. STDAPI_(void) SetHatchRect(HWND hWndHatch, LPRECT lprcHatchRect);
  968. STDAPI_(void) SetHatchWindowSize(
  969.       HWND        hWndHatch,
  970.       LPRECT      lprcIPObjRect,
  971.       LPRECT      lprcClipRect,
  972.       LPPOINT     lpptOffset
  973. );
  974.  
  975. #endif // !RC_INVOKED
  976.  
  977. /*************************************************************************
  978. ** VERSION VERIFICATION INFORMATION
  979. *************************************************************************/
  980.  
  981. // The following magic number is used to verify that the resources we bind
  982. // to our EXE are the same "version" as the LIB (or DLL) file which
  983. // contains these routines.  This is not the same as the Version information
  984. // resource that we place in OLE2UI.RC, this is a special ID that we will
  985. // have compiled in to our EXE.  Upon initialization of OLE2UI, we will
  986. // look in our resources for an RCDATA called "VERIFICATION" (see OLE2UI.RC),
  987. // and make sure that the magic number there equals the magic number below.
  988.  
  989.  
  990. #define OLEUI_VERSION_MAGIC 0x4D42
  991.  
  992. #endif  //_OLE2UI_H_
  993.  
  994.