Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

460 lines
17 KiB

  1. /*#!perl
  2. MapHeaderToDll("ole2.h", "ole32.dll");
  3. ActivateAroundFunctionCall("ole32.dll");
  4. IgnoreFunction("CreateDataAdviseHolder"); # this function occurs in ole2.h and objbase.h
  5. # The wrapped one is in objbase.h
  6. IgnoreFunction("OleBuildVersion"); # not documented
  7. DeclareFunctionErrorValue("OleCreateMenuDescriptor", "NULL");
  8. DeclareFunctionErrorValue("OleDuplicateData", "NULL");
  9. DeclareFunctionErrorValue("OleGetIconOfFile", "NULL");
  10. DeclareFunctionErrorValue("OleGetIconOfClass", "NULL");
  11. DeclareFunctionErrorValue("OleMetafilePictFromIconAndLabel", "NULL");
  12. IgnoreFunction("WlmOleCheckoutMacInterface"); # Macintosh stuff
  13. IgnoreFunction("WlmOleCheckinMacInterface"); # Macintosh stuff
  14. IgnoreFunction("WlmOleWrapMacInterface"); # Macintosh stuff
  15. IgnoreFunction("WlmOleUnwrapMacInterface"); # Macintosh stuff
  16. IgnoreFunction("WlmOleCheckoutWinInterface"); # Macintosh stuff
  17. IgnoreFunction("WlmOleCheckinWinInterface"); # Macintosh stuff
  18. IgnoreFunction("WlmOleWrapWinInterface"); # Macintosh stuff
  19. IgnoreFunction("WlmOleUnwrapWinInterface"); # Macintosh stuff
  20. IgnoreFunction("WlmOleVersion"); # Macintosh stuff
  21. IgnoreFunction("WlmOleSetInPlaceWindow"); # Macintosh stuff
  22. IgnoreFunction("WlmOleRegisterUserWrap"); # Macintosh stuff
  23. */
  24. //+---------------------------------------------------------------------------
  25. //
  26. // Microsoft Windows
  27. // Copyright (c) Microsoft Corporation. All rights reserved.
  28. //
  29. // File: OLE2.h
  30. // Contents: Main OLE2 header; Defines Linking and Emmebbeding interfaces, and API's.
  31. // Also includes .h files for the compobj, and oleauto subcomponents.
  32. //
  33. //----------------------------------------------------------------------------
  34. #if !defined( _OLE2_H_ )
  35. #define _OLE2_H_
  36. #if _MSC_VER > 1000
  37. #pragma once
  38. #endif
  39. #ifndef _MAC
  40. // Set packing to 8
  41. #include <pshpack8.h>
  42. // Make 100% sure WIN32 is defined
  43. #ifndef WIN32
  44. #define WIN32 100 // 100 == NT version 1.0
  45. #endif
  46. #else //_MAC
  47. #ifdef _WIN32
  48. #include "macname1.h"
  49. #endif // _WIN32
  50. #endif //_MAC
  51. // SET to remove _export from interface definitions
  52. #include <winerror.h>
  53. #ifdef _MAC
  54. #if !defined(__MACPUB__)
  55. #include <macpub.h>
  56. #endif
  57. #endif //_MAC
  58. #include <objbase.h>
  59. #include <oleauto.h>
  60. // View OBJECT Error Codes
  61. #define E_DRAW VIEW_E_DRAW
  62. // IDataObject Error Codes
  63. #define DATA_E_FORMATETC DV_E_FORMATETC
  64. #ifdef _MAC
  65. /****** Standard Object Definitions *****************************************/
  66. //#ifndef __COMPOBJ__
  67. //#include <compobj.h>
  68. //#endif
  69. typedef enum {
  70. OLE_E_NOEXTENSION = OLE_E_NOSTORAGE +1, // no extension at startup
  71. OLE_E_VERSEXTENSION, // extension has wrong version #
  72. OLE_E_IPBUSY, // cannot get inplace resource
  73. OLE_E_NOT_FRONT_PROCESS, // inplace container unexpectedly in background
  74. OLE_E_WRONG_MENU, // holemenu != prev holemenu
  75. OLE_E_MENU_NOT_PATCHED, // menubar is not hashed
  76. OLE_E_MENUID_NOT_HASHED, // id was never hashed
  77. OLE_E_foo
  78. } inplace_errors;
  79. // DoDragDropMac()
  80. typedef struct tagDRAG_FLAVORINFO {
  81. unsigned long cfFormat;
  82. unsigned long FlavorFlags; // Flavor Flags as specified by the DragManager
  83. OLEBOOL fAddData; // If true, the data is added with the flavor
  84. long reserved; // must be NULL
  85. } DRAG_FLAVORINFO;
  86. #endif //_MAC
  87. // Common stuff gleamed from OLE.2,
  88. /* verbs */
  89. #define OLEIVERB_PRIMARY (0L)
  90. #define OLEIVERB_SHOW (-1L)
  91. #define OLEIVERB_OPEN (-2L)
  92. #define OLEIVERB_HIDE (-3L)
  93. #define OLEIVERB_UIACTIVATE (-4L)
  94. #define OLEIVERB_INPLACEACTIVATE (-5L)
  95. #define OLEIVERB_DISCARDUNDOSTATE (-6L)
  96. // for OleCreateEmbeddingHelper flags; roles in low word; options in high word
  97. #define EMBDHLP_INPROC_HANDLER 0x0000L
  98. #define EMBDHLP_INPROC_SERVER 0x0001L
  99. #define EMBDHLP_CREATENOW 0x00000000L
  100. #define EMBDHLP_DELAYCREATE 0x00010000L
  101. /* extended create function flags */
  102. #define OLECREATE_LEAVERUNNING 0x00000001
  103. /* pull in the MIDL generated header */
  104. #include <oleidl.h>
  105. #ifdef _MAC
  106. typedef struct tagOleMBarRec
  107. {
  108. long reserved;
  109. } OleMBarRec, *OleMBarPtr, **OleMBarHandle;
  110. #define noAxis 3 // indicates no grow or size in any direction
  111. // see mac #defines noConstraint, hAxisOnly, vAxisOnly
  112. #endif //_MAC
  113. /****** DV APIs ***********************************************************/
  114. /* This function is declared in objbase.h and ole2.h.
  115. IsolationAware support is via objbase.h.
  116. */
  117. #if !defined(ISOLATION_AWARE_ENABLED) \
  118. || !ISOLATION_AWARE_ENABLED \
  119. || !defined(_OBJBASE_H_) \
  120. || !defined(CreateDataAdviseHolder)
  121. WINOLEAPI CreateDataAdviseHolder(OUT LPDATAADVISEHOLDER FAR* ppDAHolder);
  122. #endif
  123. /****** OLE API Prototypes ************************************************/
  124. WINOLEAPI_(DWORD) OleBuildVersion( VOID );
  125. /* helper functions */
  126. WINOLEAPI ReadClassStg(IN LPSTORAGE pStg, OUT CLSID FAR* pclsid);
  127. WINOLEAPI WriteClassStg(IN LPSTORAGE pStg, IN REFCLSID rclsid);
  128. WINOLEAPI ReadClassStm(IN LPSTREAM pStm, OUT CLSID FAR* pclsid);
  129. WINOLEAPI WriteClassStm(IN LPSTREAM pStm, IN REFCLSID rclsid);
  130. WINOLEAPI WriteFmtUserTypeStg (IN LPSTORAGE pstg, IN CLIPFORMAT cf, IN LPOLESTR lpszUserType);
  131. WINOLEAPI ReadFmtUserTypeStg (IN LPSTORAGE pstg, OUT CLIPFORMAT FAR* pcf, OUT LPOLESTR FAR* lplpszUserType);
  132. /* init/term */
  133. WINOLEAPI OleInitialize(IN LPVOID pvReserved);
  134. WINOLEAPI_(void) OleUninitialize(void);
  135. /* APIs to query whether (Embedded/Linked) object can be created from
  136. the data object */
  137. WINOLEAPI OleQueryLinkFromData(IN LPDATAOBJECT pSrcDataObject);
  138. WINOLEAPI OleQueryCreateFromData(IN LPDATAOBJECT pSrcDataObject);
  139. /* Object creation APIs */
  140. WINOLEAPI OleCreate(IN REFCLSID rclsid, IN REFIID riid, IN DWORD renderopt,
  141. IN LPFORMATETC pFormatEtc, IN LPOLECLIENTSITE pClientSite,
  142. IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  143. WINOLEAPI OleCreateEx(IN REFCLSID rclsid, IN REFIID riid, IN DWORD dwFlags,
  144. IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf,
  145. IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink,
  146. OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite,
  147. IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  148. WINOLEAPI OleCreateFromData(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid,
  149. IN DWORD renderopt, IN LPFORMATETC pFormatEtc,
  150. IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg,
  151. OUT LPVOID FAR* ppvObj);
  152. WINOLEAPI OleCreateFromDataEx(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid,
  153. IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf,
  154. IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink,
  155. OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite,
  156. IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  157. WINOLEAPI OleCreateLinkFromData(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid,
  158. IN DWORD renderopt, IN LPFORMATETC pFormatEtc,
  159. IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg,
  160. OUT LPVOID FAR* ppvObj);
  161. WINOLEAPI OleCreateLinkFromDataEx(IN LPDATAOBJECT pSrcDataObj, IN REFIID riid,
  162. IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf,
  163. IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink,
  164. OUT IN DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite,
  165. IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  166. WINOLEAPI OleCreateStaticFromData(IN LPDATAOBJECT pSrcDataObj, IN REFIID iid,
  167. IN DWORD renderopt, IN LPFORMATETC pFormatEtc,
  168. IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg,
  169. OUT LPVOID FAR* ppvObj);
  170. WINOLEAPI OleCreateLink(IN LPMONIKER pmkLinkSrc, IN REFIID riid,
  171. IN DWORD renderopt, IN LPFORMATETC lpFormatEtc,
  172. IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  173. WINOLEAPI OleCreateLinkEx(IN LPMONIKER pmkLinkSrc, IN REFIID riid,
  174. IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf,
  175. IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink,
  176. OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite,
  177. IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  178. WINOLEAPI OleCreateLinkToFile(IN LPCOLESTR lpszFileName, IN REFIID riid,
  179. IN DWORD renderopt, IN LPFORMATETC lpFormatEtc,
  180. IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  181. WINOLEAPI OleCreateLinkToFileEx(IN LPCOLESTR lpszFileName, IN REFIID riid,
  182. IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf,
  183. IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink,
  184. OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite,
  185. IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  186. WINOLEAPI OleCreateFromFile(IN REFCLSID rclsid, IN LPCOLESTR lpszFileName, IN REFIID riid,
  187. IN DWORD renderopt, IN LPFORMATETC lpFormatEtc,
  188. IN LPOLECLIENTSITE pClientSite, IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  189. WINOLEAPI OleCreateFromFileEx(IN REFCLSID rclsid, IN LPCOLESTR lpszFileName, IN REFIID riid,
  190. IN DWORD dwFlags, IN DWORD renderopt, IN ULONG cFormats, IN DWORD* rgAdvf,
  191. IN LPFORMATETC rgFormatEtc, IN IAdviseSink FAR* lpAdviseSink,
  192. OUT DWORD FAR* rgdwConnection, IN LPOLECLIENTSITE pClientSite,
  193. IN LPSTORAGE pStg, OUT LPVOID FAR* ppvObj);
  194. WINOLEAPI OleLoad(IN LPSTORAGE pStg, IN REFIID riid, IN LPOLECLIENTSITE pClientSite,
  195. OUT LPVOID FAR* ppvObj);
  196. WINOLEAPI OleSave(IN LPPERSISTSTORAGE pPS, IN LPSTORAGE pStg, IN BOOL fSameAsLoad);
  197. WINOLEAPI OleLoadFromStream( IN LPSTREAM pStm, IN REFIID iidInterface, OUT LPVOID FAR* ppvObj);
  198. WINOLEAPI OleSaveToStream( IN LPPERSISTSTREAM pPStm, IN LPSTREAM pStm );
  199. WINOLEAPI OleSetContainedObject(IN LPUNKNOWN pUnknown, IN BOOL fContained);
  200. WINOLEAPI OleNoteObjectVisible(IN LPUNKNOWN pUnknown, IN BOOL fVisible);
  201. /* Drag/Drop APIs */
  202. WINOLEAPI RegisterDragDrop(IN HWND hwnd, IN LPDROPTARGET pDropTarget);
  203. WINOLEAPI RevokeDragDrop(IN HWND hwnd);
  204. WINOLEAPI DoDragDrop(IN LPDATAOBJECT pDataObj, IN LPDROPSOURCE pDropSource,
  205. IN DWORD dwOKEffects, OUT LPDWORD pdwEffect);
  206. /* Clipboard APIs */
  207. WINOLEAPI OleSetClipboard(IN LPDATAOBJECT pDataObj);
  208. WINOLEAPI OleGetClipboard(OUT LPDATAOBJECT FAR* ppDataObj);
  209. WINOLEAPI OleFlushClipboard(void);
  210. WINOLEAPI OleIsCurrentClipboard(IN LPDATAOBJECT pDataObj);
  211. /* InPlace Editing APIs */
  212. WINOLEAPI_(HOLEMENU) OleCreateMenuDescriptor (IN HMENU hmenuCombined,
  213. IN LPOLEMENUGROUPWIDTHS lpMenuWidths);
  214. WINOLEAPI OleSetMenuDescriptor (IN HOLEMENU holemenu, IN HWND hwndFrame,
  215. IN HWND hwndActiveObject,
  216. IN LPOLEINPLACEFRAME lpFrame,
  217. IN LPOLEINPLACEACTIVEOBJECT lpActiveObj);
  218. WINOLEAPI OleDestroyMenuDescriptor (IN HOLEMENU holemenu);
  219. WINOLEAPI OleTranslateAccelerator (IN LPOLEINPLACEFRAME lpFrame,
  220. IN LPOLEINPLACEFRAMEINFO lpFrameInfo, IN LPMSG lpmsg);
  221. /* Helper APIs */
  222. WINOLEAPI_(HANDLE) OleDuplicateData (IN HANDLE hSrc, IN CLIPFORMAT cfFormat,
  223. IN UINT uiFlags);
  224. WINOLEAPI OleDraw (IN LPUNKNOWN pUnknown, IN DWORD dwAspect, IN HDC hdcDraw,
  225. IN LPCRECT lprcBounds);
  226. WINOLEAPI OleRun(IN LPUNKNOWN pUnknown);
  227. WINOLEAPI_(BOOL) OleIsRunning(IN LPOLEOBJECT pObject);
  228. WINOLEAPI OleLockRunning(IN LPUNKNOWN pUnknown, IN BOOL fLock, IN BOOL fLastUnlockCloses);
  229. WINOLEAPI_(void) ReleaseStgMedium(IN LPSTGMEDIUM);
  230. WINOLEAPI CreateOleAdviseHolder(OUT LPOLEADVISEHOLDER FAR* ppOAHolder);
  231. WINOLEAPI OleCreateDefaultHandler(IN REFCLSID clsid, IN LPUNKNOWN pUnkOuter,
  232. IN REFIID riid, OUT LPVOID FAR* lplpObj);
  233. WINOLEAPI OleCreateEmbeddingHelper(IN REFCLSID clsid, IN LPUNKNOWN pUnkOuter,
  234. IN DWORD flags, IN LPCLASSFACTORY pCF,
  235. IN REFIID riid, OUT LPVOID FAR* lplpObj);
  236. WINOLEAPI_(BOOL) IsAccelerator(IN HACCEL hAccel, IN int cAccelEntries, IN LPMSG lpMsg,
  237. OUT WORD FAR* lpwCmd);
  238. /* Icon extraction Helper APIs */
  239. WINOLEAPI_(HGLOBAL) OleGetIconOfFile(IN LPOLESTR lpszPath, IN BOOL fUseFileAsLabel);
  240. WINOLEAPI_(HGLOBAL) OleGetIconOfClass(IN REFCLSID rclsid, IN LPOLESTR lpszLabel,
  241. IN BOOL fUseTypeAsLabel);
  242. WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(IN HICON hIcon, IN LPOLESTR lpszLabel,
  243. IN LPOLESTR lpszSourceFile, IN UINT iIconIndex);
  244. /* Registration Database Helper APIs */
  245. WINOLEAPI OleRegGetUserType (IN REFCLSID clsid, IN DWORD dwFormOfType,
  246. OUT LPOLESTR FAR* pszUserType);
  247. WINOLEAPI OleRegGetMiscStatus (IN REFCLSID clsid, IN DWORD dwAspect,
  248. OUT DWORD FAR* pdwStatus);
  249. WINOLEAPI OleRegEnumFormatEtc (IN REFCLSID clsid, IN DWORD dwDirection,
  250. OUT LPENUMFORMATETC FAR* ppenum);
  251. WINOLEAPI OleRegEnumVerbs (IN REFCLSID clsid, OUT LPENUMOLEVERB FAR* ppenum);
  252. #ifdef _MAC
  253. /* WlmOLE helper APIs */
  254. WINOLEAPI WlmOleCheckoutMacInterface(LPUNKNOWN pUnk, LPVOID* ppv);
  255. WINOLEAPI WlmOleCheckinMacInterface(LPUNKNOWN pUnk);
  256. WINOLEAPI WlmOleWrapMacInterface(LPUNKNOWN pUnk, REFIID riid, LPVOID* ppv);
  257. WINOLEAPI WlmOleUnwrapMacInterface(LPVOID pv);
  258. WINOLEAPI WlmOleCheckoutWinInterface(LPVOID pUnk, LPUNKNOWN* ppv);
  259. WINOLEAPI WlmOleCheckinWinInterface(LPVOID pUnk);
  260. WINOLEAPI WlmOleWrapWinInterface(LPVOID pUnk, REFIID riid, LPUNKNOWN* ppv);
  261. WINOLEAPI WlmOleUnwrapWinInterface(LPVOID pv);
  262. WINOLEAPI_(void) WlmOleVersion(void);
  263. WINOLEAPI_(void) WlmOleSetInPlaceWindow(HWND hwnd);
  264. typedef HRESULT (STDAPICALLTYPE* OLEWRAPPROC) (REFIID riid, LPVOID* ppvWin, LPVOID* ppvMac);
  265. WINOLEAPI WlmOleRegisterUserWrap(OLEWRAPPROC procNew, OLEWRAPPROC* pprocOld);
  266. #endif
  267. /* OLE 1.0 conversion APIS */
  268. /***** OLE 1.0 OLESTREAM declarations *************************************/
  269. typedef struct _OLESTREAM FAR* LPOLESTREAM;
  270. typedef struct _OLESTREAMVTBL
  271. {
  272. DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD);
  273. DWORD (CALLBACK* Put)(LPOLESTREAM, const void FAR*, DWORD);
  274. } OLESTREAMVTBL;
  275. typedef OLESTREAMVTBL FAR* LPOLESTREAMVTBL;
  276. typedef struct _OLESTREAM
  277. {
  278. LPOLESTREAMVTBL lpstbl;
  279. } OLESTREAM;
  280. WINOLEAPI OleConvertOLESTREAMToIStorage
  281. (IN LPOLESTREAM lpolestream,
  282. OUT LPSTORAGE pstg,
  283. IN const DVTARGETDEVICE FAR* ptd);
  284. WINOLEAPI OleConvertIStorageToOLESTREAM
  285. (IN LPSTORAGE pstg,
  286. OUT LPOLESTREAM lpolestream);
  287. /* Storage Utility APIs */
  288. WINOLEAPI GetHGlobalFromILockBytes (IN LPLOCKBYTES plkbyt, OUT HGLOBAL FAR* phglobal);
  289. WINOLEAPI CreateILockBytesOnHGlobal (IN HGLOBAL hGlobal, IN BOOL fDeleteOnRelease,
  290. OUT LPLOCKBYTES FAR* pplkbyt);
  291. WINOLEAPI GetHGlobalFromStream (IN LPSTREAM pstm, OUT HGLOBAL FAR* phglobal);
  292. WINOLEAPI CreateStreamOnHGlobal (IN HGLOBAL hGlobal, IN BOOL fDeleteOnRelease,
  293. OUT LPSTREAM FAR* ppstm);
  294. /* ConvertTo APIS */
  295. WINOLEAPI OleDoAutoConvert(IN LPSTORAGE pStg, OUT LPCLSID pClsidNew);
  296. WINOLEAPI OleGetAutoConvert(IN REFCLSID clsidOld, OUT LPCLSID pClsidNew);
  297. WINOLEAPI OleSetAutoConvert(IN REFCLSID clsidOld, IN REFCLSID clsidNew);
  298. WINOLEAPI GetConvertStg(IN LPSTORAGE pStg);
  299. WINOLEAPI SetConvertStg(IN LPSTORAGE pStg, IN BOOL fConvert);
  300. WINOLEAPI OleConvertIStorageToOLESTREAMEx
  301. (IN LPSTORAGE pstg,
  302. // Presentation data to OLESTREAM
  303. IN CLIPFORMAT cfFormat, // format
  304. IN LONG lWidth, // width
  305. IN LONG lHeight, // height
  306. IN DWORD dwSize, // size in bytes
  307. IN LPSTGMEDIUM pmedium, // bits
  308. OUT LPOLESTREAM polestm);
  309. WINOLEAPI OleConvertOLESTREAMToIStorageEx
  310. (IN LPOLESTREAM polestm,
  311. OUT LPSTORAGE pstg,
  312. // Presentation data from OLESTREAM
  313. OUT CLIPFORMAT FAR* pcfFormat, // format
  314. OUT LONG FAR* plwWidth, // width
  315. OUT LONG FAR* plHeight, // height
  316. OUT DWORD FAR* pdwSize, // size in bytes
  317. OUT LPSTGMEDIUM pmedium); // bits
  318. #ifndef _MAC
  319. #ifndef RC_INVOKED
  320. #include <poppack.h>
  321. #endif // RC_INVOKED
  322. #else // _MAC
  323. #ifndef __MACAPI__
  324. #include <macapi.h>
  325. #endif
  326. #ifdef _WIN32
  327. #include "macname2.h"
  328. #endif // _WIN32
  329. #endif // _MAC
  330. //d308927f-ca94-4c96-8d87-2692a3dadff6
  331. /*#!perl
  332. SetInsertionPoint("ole2.h", "d308927f-ca94-4c96-8d87-2692a3dadff6");
  333. */
  334. #endif // __OLE2_H__