home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / win32 / Ole2.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-08  |  12.4 KB  |  345 lines

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