1 /** 2 * @file ole2.h 3 * Copyright 2012, 2013 MinGW.org project 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the next 13 * paragraph) shall be included in all copies or substantial portions of the 14 * Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 */ 24 #ifndef _OLE2_H 25 #define _OLE2_H 26 #pragma GCC system_header 27 #include <_mingw.h> 28 29 #pragma pack(push,8) 30 #include <winerror.h> 31 #include <objbase.h> 32 #include <olectlid.h> 33 #include <oleauto.h> 34 35 #ifdef __cplusplus 36 extern "C" { 37 #endif 38 39 #define E_DRAW VIEW_E_DRAW 40 #define DATA_E_FORMATETC DV_E_FORMATETC 41 #define OLEIVERB_PRIMARY (0L) 42 #define OLEIVERB_SHOW (-1L) 43 #define OLEIVERB_OPEN (-2L) 44 #define OLEIVERB_HIDE (-3L) 45 #define OLEIVERB_UIACTIVATE (-4L) 46 #define OLEIVERB_INPLACEACTIVATE (-5L) 47 #define OLEIVERB_DISCARDUNDOSTATE (-6L) 48 #define EMBDHLP_INPROC_HANDLER 0x0000L 49 #define EMBDHLP_INPROC_SERVER 0x0001L 50 #define EMBDHLP_CREATENOW 0x00000000L 51 #define EMBDHLP_DELAYCREATE 0x00010000L 52 #include <oleidl.h> 53 54 typedef struct _OLESTREAMVTBL *LPOLESTREAMVTBL; 55 typedef struct _OLESTREAM { 56 LPOLESTREAMVTBL lpstbl; 57 } OLESTREAM,*LPOLESTREAM; 58 typedef struct _OLESTREAMVTBL { 59 DWORD (CALLBACK* Get)(LPOLESTREAM,void*,DWORD); 60 DWORD (CALLBACK* Put)(LPOLESTREAM,const void*,DWORD); 61 } OLESTREAMVTBL; 62 63 WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER*); 64 WINOLEAPI_(DWORD) OleBuildVersion(void); 65 WINOLEAPI ReadClassStg(LPSTORAGE,CLSID*); 66 WINOLEAPI WriteClassStg(LPSTORAGE,REFCLSID); 67 WINOLEAPI ReadClassStm(LPSTREAM,CLSID*); 68 WINOLEAPI WriteClassStm(LPSTREAM,REFCLSID); 69 WINOLEAPI WriteFmtUserTypeStg(LPSTORAGE,CLIPFORMAT,LPOLESTR); 70 WINOLEAPI ReadFmtUserTypeStg(LPSTORAGE,CLIPFORMAT*,LPOLESTR*); 71 WINOLEAPI OleInitialize(PVOID); 72 WINOLEAPI_(void) OleUninitialize(void); 73 WINOLEAPI OleQueryLinkFromData(LPDATAOBJECT); 74 WINOLEAPI OleQueryCreateFromData(LPDATAOBJECT); 75 WINOLEAPI OleCreate(REFCLSID,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); 76 WINOLEAPI OleCreateFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); 77 WINOLEAPI OleCreateLinkFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); 78 WINOLEAPI OleCreateStaticFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); 79 WINOLEAPI OleCreateLink(LPMONIKER,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); 80 WINOLEAPI OleCreateLinkToFile(LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); 81 WINOLEAPI OleCreateFromFile(REFCLSID,LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); 82 WINOLEAPI OleLoad(LPSTORAGE,REFIID,LPOLECLIENTSITE,PVOID*); 83 WINOLEAPI OleSave(LPPERSISTSTORAGE,LPSTORAGE,BOOL); 84 WINOLEAPI OleLoadFromStream(LPSTREAM,REFIID,PVOID*); 85 WINOLEAPI OleSaveToStream(LPPERSISTSTREAM,LPSTREAM); 86 WINOLEAPI OleSetContainedObject(LPUNKNOWN,BOOL); 87 WINOLEAPI OleNoteObjectVisible(LPUNKNOWN,BOOL); 88 WINOLEAPI RegisterDragDrop(HWND,LPDROPTARGET); 89 WINOLEAPI RevokeDragDrop(HWND); 90 WINOLEAPI DoDragDrop(LPDATAOBJECT,LPDROPSOURCE,DWORD,PDWORD); 91 WINOLEAPI OleSetClipboard(LPDATAOBJECT); 92 WINOLEAPI OleGetClipboard(LPDATAOBJECT*); 93 WINOLEAPI OleFlushClipboard(void); 94 WINOLEAPI OleIsCurrentClipboard(LPDATAOBJECT); 95 WINOLEAPI_(HOLEMENU) OleCreateMenuDescriptor(HMENU,LPOLEMENUGROUPWIDTHS); 96 WINOLEAPI OleSetMenuDescriptor(HOLEMENU,HWND,HWND,LPOLEINPLACEFRAME,LPOLEINPLACEACTIVEOBJECT); 97 WINOLEAPI OleDestroyMenuDescriptor(HOLEMENU); 98 WINOLEAPI OleTranslateAccelerator(LPOLEINPLACEFRAME,LPOLEINPLACEFRAMEINFO,LPMSG); 99 WINOLEAPI_(HANDLE) OleDuplicateData(HANDLE,CLIPFORMAT,UINT); 100 WINOLEAPI OleDraw(LPUNKNOWN,DWORD,HDC,LPCRECT); 101 WINOLEAPI OleRun(LPUNKNOWN); 102 WINOLEAPI_(BOOL) OleIsRunning(LPOLEOBJECT); 103 WINOLEAPI OleLockRunning(LPUNKNOWN,BOOL,BOOL); 104 WINOLEAPI_(void) ReleaseStgMedium(LPSTGMEDIUM); 105 WINOLEAPI CreateOleAdviseHolder(LPOLEADVISEHOLDER*); 106 WINOLEAPI OleCreateDefaultHandler(REFCLSID,LPUNKNOWN,REFIID,PVOID*); 107 WINOLEAPI OleCreateEmbeddingHelper(REFCLSID,LPUNKNOWN,DWORD,LPCLASSFACTORY,REFIID,PVOID*); 108 WINOLEAPI_(BOOL) IsAccelerator(HACCEL,int,LPMSG,WORD*); 109 WINOLEAPI_(HGLOBAL) OleGetIconOfFile(LPOLESTR,BOOL); 110 WINOLEAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID,LPOLESTR,BOOL); 111 WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON,LPOLESTR,LPOLESTR,UINT); 112 WINOLEAPI OleRegGetUserType(REFCLSID,DWORD,LPOLESTR*); 113 WINOLEAPI OleRegGetMiscStatus(REFCLSID,DWORD,DWORD*); 114 WINOLEAPI OleRegEnumFormatEtc (REFCLSID,DWORD,LPENUMFORMATETC*); 115 WINOLEAPI OleRegEnumVerbs (REFCLSID,LPENUMOLEVERB*); 116 WINOLEAPI OleConvertOLESTREAMToIStorage(LPOLESTREAM,LPSTORAGE,const DVTARGETDEVICE*); 117 WINOLEAPI OleConvertIStorageToOLESTREAM(LPSTORAGE,LPOLESTREAM); 118 WINOLEAPI GetHGlobalFromILockBytes(LPLOCKBYTES,HGLOBAL*); 119 WINOLEAPI CreateILockBytesOnHGlobal(HGLOBAL,BOOL,LPLOCKBYTES*); 120 WINOLEAPI GetHGlobalFromStream(LPSTREAM,HGLOBAL*); 121 WINOLEAPI CreateStreamOnHGlobal(HGLOBAL,BOOL,LPSTREAM*); 122 WINOLEAPI OleDoAutoConvert(LPSTORAGE,LPCLSID); 123 WINOLEAPI OleGetAutoConvert(REFCLSID,LPCLSID); 124 WINOLEAPI OleSetAutoConvert(REFCLSID,REFCLSID); 125 WINOLEAPI GetConvertStg(LPSTORAGE); 126 WINOLEAPI SetConvertStg(LPSTORAGE,BOOL); 127 WINOLEAPI OleConvertIStorageToOLESTREAMEx(LPSTORAGE,CLIPFORMAT,LONG,LONG,DWORD,LPSTGMEDIUM,LPOLESTREAM); 128 WINOLEAPI OleConvertOLESTREAMToIStorageEx(LPOLESTREAM,LPSTORAGE,CLIPFORMAT*,LONG*,LONG*,DWORD*,LPSTGMEDIUM); 129 130 #ifdef __cplusplus 131 } 132 #endif 133 134 #pragma pack(pop) 135 136 #endif 137