home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / sdk / winh / ole2.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-11  |  10.3 KB  |  306 lines

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (C) Microsoft Corporation, 1992 - 1995.
  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. /* pull in the MIDL generated header */
  60.  
  61. #include <oleidl.h>
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. /****** DV APIs ***********************************************************/
  69.  
  70.  
  71. WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER FAR* ppDAHolder);
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79. /****** OLE API Prototypes ************************************************/
  80.  
  81. WINOLEAPI_(DWORD) OleBuildVersion( VOID );
  82.  
  83. /* helper functions */
  84. WINOLEAPI ReadClassStg(LPSTORAGE pStg, CLSID FAR* pclsid);
  85. WINOLEAPI WriteClassStg(LPSTORAGE pStg, REFCLSID rclsid);
  86. WINOLEAPI ReadClassStm(LPSTREAM pStm, CLSID FAR* pclsid);
  87. WINOLEAPI WriteClassStm(LPSTREAM pStm, REFCLSID rclsid);
  88. WINOLEAPI WriteFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType);
  89. WINOLEAPI ReadFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT FAR* pcf, LPOLESTR FAR* lplpszUserType);
  90.  
  91.  
  92. /* init/term */
  93.  
  94. WINOLEAPI OleInitialize(LPVOID pvReserved);
  95. WINOLEAPI_(void) OleUninitialize(void);
  96.  
  97.  
  98. /* APIs to query whether (Embedded/Linked) object can be created from
  99.    the data object */
  100.  
  101. WINOLEAPI  OleQueryLinkFromData(LPDATAOBJECT pSrcDataObject);
  102. WINOLEAPI  OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject);
  103.  
  104.  
  105. /* Object creation APIs */
  106.  
  107. WINOLEAPI  OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt,
  108.                 LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
  109.                 LPSTORAGE pStg, LPVOID FAR* ppvObj);
  110.  
  111. WINOLEAPI  OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
  112.                 DWORD renderopt, LPFORMATETC pFormatEtc,
  113.                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
  114.                 LPVOID FAR* ppvObj);
  115.  
  116. WINOLEAPI  OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
  117.                 DWORD renderopt, LPFORMATETC pFormatEtc,
  118.                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
  119.                 LPVOID FAR* ppvObj);
  120.  
  121. WINOLEAPI  OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
  122.                 DWORD renderopt, LPFORMATETC pFormatEtc,
  123.                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
  124.                 LPVOID FAR* ppvObj);
  125.  
  126.  
  127. WINOLEAPI  OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid,
  128.             DWORD renderopt, LPFORMATETC lpFormatEtc,
  129.             LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
  130.  
  131. WINOLEAPI  OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid,
  132.             DWORD renderopt, LPFORMATETC lpFormatEtc,
  133.             LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
  134.  
  135. WINOLEAPI  OleCreateFromFile(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid,
  136.             DWORD renderopt, LPFORMATETC lpFormatEtc,
  137.             LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
  138.  
  139. WINOLEAPI  OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite,
  140.             LPVOID FAR* ppvObj);
  141.  
  142. WINOLEAPI  OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad);
  143.  
  144. WINOLEAPI  OleLoadFromStream( LPSTREAM pStm, REFIID iidInterface, LPVOID FAR* ppvObj);
  145. WINOLEAPI  OleSaveToStream( LPPERSISTSTREAM pPStm, LPSTREAM pStm );
  146.  
  147.  
  148. WINOLEAPI  OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained);
  149. WINOLEAPI  OleNoteObjectVisible(LPUNKNOWN pUnknown, BOOL fVisible);
  150.  
  151.  
  152. /* Drag/Drop APIs */
  153.  
  154. WINOLEAPI  RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget);
  155. WINOLEAPI  RevokeDragDrop(HWND hwnd);
  156. WINOLEAPI  DoDragDrop(LPDATAOBJECT pDataObj, LPDROPSOURCE pDropSource,
  157.             DWORD dwOKEffects, LPDWORD pdwEffect);
  158.  
  159. /* Clipboard APIs */
  160.  
  161. WINOLEAPI  OleSetClipboard(LPDATAOBJECT pDataObj);
  162. WINOLEAPI  OleGetClipboard(LPDATAOBJECT FAR* ppDataObj);
  163. WINOLEAPI  OleFlushClipboard(void);
  164. WINOLEAPI  OleIsCurrentClipboard(LPDATAOBJECT pDataObj);
  165.  
  166.  
  167. /* InPlace Editing APIs */
  168.  
  169. WINOLEAPI_(HOLEMENU)   OleCreateMenuDescriptor (HMENU hmenuCombined,
  170.                                 LPOLEMENUGROUPWIDTHS lpMenuWidths);
  171. WINOLEAPI              OleSetMenuDescriptor (HOLEMENU holemenu, HWND hwndFrame,
  172.                                 HWND hwndActiveObject,
  173.                                 LPOLEINPLACEFRAME lpFrame,
  174.                                 LPOLEINPLACEACTIVEOBJECT lpActiveObj);
  175. WINOLEAPI              OleDestroyMenuDescriptor (HOLEMENU holemenu);
  176.  
  177. WINOLEAPI              OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame,
  178.                             LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg);
  179.  
  180.  
  181. /* Helper APIs */
  182. WINOLEAPI_(HANDLE) OleDuplicateData (HANDLE hSrc, CLIPFORMAT cfFormat,
  183.                         UINT uiFlags);
  184.  
  185. WINOLEAPI          OleDraw (LPUNKNOWN pUnknown, DWORD dwAspect, HDC hdcDraw,
  186.                     LPCRECT lprcBounds);
  187.  
  188. WINOLEAPI          OleRun(LPUNKNOWN pUnknown);
  189. WINOLEAPI_(BOOL)   OleIsRunning(LPOLEOBJECT pObject);
  190. WINOLEAPI          OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses);
  191. WINOLEAPI_(void)   ReleaseStgMedium(LPSTGMEDIUM);
  192. WINOLEAPI          CreateOleAdviseHolder(LPOLEADVISEHOLDER FAR* ppOAHolder);
  193.  
  194. WINOLEAPI          OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter,
  195.                     REFIID riid, LPVOID FAR* lplpObj);
  196.  
  197. WINOLEAPI          OleCreateEmbeddingHelper(REFCLSID clsid, LPUNKNOWN pUnkOuter,
  198.                     DWORD flags, LPCLASSFACTORY pCF,
  199.                                         REFIID riid, LPVOID FAR* lplpObj);
  200.  
  201. WINOLEAPI_(BOOL)   IsAccelerator(HACCEL hAccel, int cAccelEntries, LPMSG lpMsg,
  202.                                         WORD FAR* lpwCmd);
  203. /* Icon extraction Helper APIs */
  204.  
  205. WINOLEAPI_(HGLOBAL) OleGetIconOfFile(LPOLESTR lpszPath, BOOL fUseFileAsLabel);
  206.  
  207. WINOLEAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID rclsid,     LPOLESTR lpszLabel,
  208.                                         BOOL fUseTypeAsLabel);
  209.  
  210. WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON hIcon, LPOLESTR lpszLabel,
  211.                                         LPOLESTR lpszSourceFile, UINT iIconIndex);
  212.  
  213.  
  214.  
  215. /* Registration Database Helper APIs */
  216.  
  217. WINOLEAPI                  OleRegGetUserType (REFCLSID clsid, DWORD dwFormOfType,
  218.                                         LPOLESTR FAR* pszUserType);
  219.  
  220. WINOLEAPI                  OleRegGetMiscStatus     (REFCLSID clsid, DWORD dwAspect,
  221.                                         DWORD FAR* pdwStatus);
  222.  
  223. WINOLEAPI                  OleRegEnumFormatEtc     (REFCLSID clsid, DWORD dwDirection,
  224.                                         LPENUMFORMATETC FAR* ppenum);
  225.  
  226. WINOLEAPI                  OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB FAR* ppenum);
  227.  
  228.  
  229.  
  230.  
  231.  
  232. /* OLE 1.0 conversion APIS */
  233.  
  234. /***** OLE 1.0 OLESTREAM declarations *************************************/
  235.  
  236. typedef struct _OLESTREAM FAR*  LPOLESTREAM;
  237.  
  238. typedef struct _OLESTREAMVTBL
  239. {
  240.     DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD);
  241.     DWORD (CALLBACK* Put)(LPOLESTREAM, const void FAR*, DWORD);
  242. } OLESTREAMVTBL;
  243. typedef  OLESTREAMVTBL FAR*  LPOLESTREAMVTBL;
  244.  
  245. typedef struct _OLESTREAM
  246. {
  247.     LPOLESTREAMVTBL lpstbl;
  248. } OLESTREAM;
  249.  
  250.  
  251. WINOLEAPI OleConvertOLESTREAMToIStorage
  252.     (LPOLESTREAM                lpolestream,
  253.     LPSTORAGE                   pstg,
  254.     const DVTARGETDEVICE FAR*   ptd);
  255.  
  256. WINOLEAPI OleConvertIStorageToOLESTREAM
  257.     (LPSTORAGE      pstg,
  258.     LPOLESTREAM     lpolestream);
  259.  
  260.  
  261. /* Storage Utility APIs */
  262. WINOLEAPI GetHGlobalFromILockBytes (LPLOCKBYTES plkbyt, HGLOBAL FAR* phglobal);
  263. WINOLEAPI CreateILockBytesOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
  264.                                     LPLOCKBYTES FAR* pplkbyt);
  265.  
  266. WINOLEAPI GetHGlobalFromStream (LPSTREAM pstm, HGLOBAL FAR* phglobal);
  267. WINOLEAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
  268.                                 LPSTREAM FAR* ppstm);
  269.  
  270.  
  271. /* ConvertTo APIS */
  272.  
  273. WINOLEAPI OleDoAutoConvert(LPSTORAGE pStg, LPCLSID pClsidNew);
  274. WINOLEAPI OleGetAutoConvert(REFCLSID clsidOld, LPCLSID pClsidNew);
  275. WINOLEAPI OleSetAutoConvert(REFCLSID clsidOld, REFCLSID clsidNew);
  276. WINOLEAPI GetConvertStg(LPSTORAGE pStg);
  277. WINOLEAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert);
  278.  
  279.  
  280. WINOLEAPI OleConvertIStorageToOLESTREAMEx
  281.     (LPSTORAGE          pstg,
  282.                                     // Presentation data to OLESTREAM
  283.      CLIPFORMAT         cfFormat,   //      format
  284.      LONG               lWidth,     //      width
  285.      LONG               lHeight,    //      height
  286.      DWORD              dwSize,     //      size in bytes
  287.      LPSTGMEDIUM        pmedium,    //      bits
  288.      LPOLESTREAM        polestm);
  289.  
  290. WINOLEAPI OleConvertOLESTREAMToIStorageEx
  291.     (LPOLESTREAM        polestm,
  292.      LPSTORAGE          pstg,
  293.                                     // Presentation data from OLESTREAM
  294.      CLIPFORMAT FAR*    pcfFormat,  //      format
  295.      LONG FAR*          plwWidth,   //      width
  296.      LONG FAR*          plHeight,   //      height
  297.      DWORD FAR*         pdwSize,    //      size in bytes
  298.      LPSTGMEDIUM        pmedium);   //      bits
  299.  
  300. #ifndef RC_INVOKED
  301. #include <poppack.h>
  302. #endif // RC_INVOKED
  303.  
  304. #endif     // __OLE2_H__
  305.  
  306.