1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/_ole2.d)
8  */
9 /// Automatically imported and edited from the druntime module
10 /// core.sys.windows.ole2 for the auto-generated win32 package.
11 module win32.ole2;
12 //version (Windows):
13 @system:
14 version (Win32_UseLib) pragma(lib, "ole32");
15 
16 public import win32.basetyps, win32.objbase, win32.oleauto, win32.olectlid,
17   win32.oleidl, win32.unknwn, win32.winerror, win32.uuid;
18 import win32.objfwd, win32.objidl, win32.windef, win32.wtypes;
19 import win32.winuser; // for LPMSG
20 
21 enum E_DRAW = VIEW_E_DRAW;
22 
23 enum DATA_E_FORMATETC = DV_E_FORMATETC;
24 
25 enum {
26     OLEIVERB_PRIMARY = 0,
27     OLEIVERB_SHOW = -1,
28     OLEIVERB_OPEN = -2,
29     OLEIVERB_HIDE = -3,
30     OLEIVERB_UIACTIVATE = -4,
31     OLEIVERB_INPLACEACTIVATE = -5,
32     OLEIVERB_DISCARDUNDOSTATE = -6
33 }
34 
35 enum EMBDHLP_INPROC_HANDLER = 0x0000L;
36 enum EMBDHLP_INPROC_SERVER  = 0x0001L;
37 enum EMBDHLP_CREATENOW      = 0x00000000L;
38 enum EMBDHLP_DELAYCREATE    = 0x00010000L;
39 
40 align(8):
41 struct OLESTREAM {
42     LPOLESTREAMVTBL lpstbl;
43 }
44 alias OLESTREAM* LPOLESTREAM;
45 
46 extern (Windows) {
47     struct OLESTREAMVTBL {
48         DWORD function (LPOLESTREAM, void*, DWORD) Get;
49         DWORD function (LPOLESTREAM, const(void)*, DWORD) Put;
50     }
51 }
52 alias OLESTREAMVTBL* LPOLESTREAMVTBL;
53 
54 extern (Windows) {
55     HRESULT CreateDataAdviseHolder(LPDATAADVISEHOLDER*);
56     DWORD OleBuildVersion();
57     HRESULT ReadClassStg(LPSTORAGE, CLSID*);
58     HRESULT WriteClassStg(LPSTORAGE, REFCLSID);
59     HRESULT ReadClassStm(LPSTREAM, CLSID*);
60     HRESULT WriteClassStm(LPSTREAM, REFCLSID);
61     HRESULT WriteFmtUserTypeStg(LPSTORAGE, CLIPFORMAT, LPOLESTR);
62     HRESULT ReadFmtUserTypeStg(LPSTORAGE, CLIPFORMAT*, LPOLESTR*);
63     HRESULT OleInitialize(PVOID);
64     void OleUninitialize();
65     HRESULT OleQueryLinkFromData(LPDATAOBJECT);
66     HRESULT OleQueryCreateFromData(LPDATAOBJECT);
67     HRESULT OleCreate(REFCLSID, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*);
68     HRESULT OleCreateFromData(LPDATAOBJECT, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*);
69     HRESULT OleCreateLinkFromData(LPDATAOBJECT, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*);
70     HRESULT OleCreateStaticFromData(LPDATAOBJECT, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*);
71     HRESULT OleCreateLink(LPMONIKER, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*);
72     HRESULT OleCreateLinkToFile(LPCOLESTR, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*);
73     HRESULT OleCreateFromFile(REFCLSID, LPCOLESTR, REFIID, DWORD, LPFORMATETC, LPOLECLIENTSITE, LPSTORAGE, PVOID*);
74     HRESULT OleLoad(LPSTORAGE, REFIID, LPOLECLIENTSITE, PVOID*);
75     HRESULT OleSave(LPPERSISTSTORAGE, LPSTORAGE, BOOL);
76     HRESULT OleLoadFromStream(LPSTREAM, REFIID, PVOID*);
77     HRESULT OleSaveToStream(LPPERSISTSTREAM, LPSTREAM);
78     HRESULT OleSetContainedObject(LPUNKNOWN, BOOL);
79     HRESULT OleNoteObjectVisible(LPUNKNOWN, BOOL);
80     HRESULT RegisterDragDrop(HWND, LPDROPTARGET);
81     HRESULT RevokeDragDrop(HWND);
82     HRESULT DoDragDrop(LPDATAOBJECT, LPDROPSOURCE, DWORD, PDWORD);
83     HRESULT OleSetClipboard(LPDATAOBJECT);
84     HRESULT OleGetClipboard(LPDATAOBJECT*);
85     HRESULT OleFlushClipboard();
86     HRESULT OleIsCurrentClipboard(LPDATAOBJECT);
87     HOLEMENU OleCreateMenuDescriptor(HMENU, LPOLEMENUGROUPWIDTHS);
88     HRESULT OleSetMenuDescriptor(HOLEMENU, HWND, HWND, LPOLEINPLACEFRAME, LPOLEINPLACEACTIVEOBJECT);
89     HRESULT OleDestroyMenuDescriptor(HOLEMENU);
90     HRESULT OleTranslateAccelerator(LPOLEINPLACEFRAME, LPOLEINPLACEFRAMEINFO, LPMSG);
91     HANDLE OleDuplicateData(HANDLE, CLIPFORMAT, UINT);
92     HRESULT OleDraw(LPUNKNOWN, DWORD, HDC, LPCRECT);
93     HRESULT OleRun(LPUNKNOWN);
94     BOOL OleIsRunning(LPOLEOBJECT);
95     HRESULT OleLockRunning(LPUNKNOWN, BOOL, BOOL);
96     void ReleaseStgMedium(LPSTGMEDIUM);
97     HRESULT CreateOleAdviseHolder(LPOLEADVISEHOLDER*);
98     HRESULT OleCreateDefaultHandler(REFCLSID, LPUNKNOWN, REFIID, PVOID*);
99     HRESULT OleCreateEmbeddingHelper(REFCLSID, LPUNKNOWN, DWORD, LPCLASSFACTORY, REFIID, PVOID*);
100     BOOL IsAccelerator(HACCEL, int, LPMSG, WORD*);
101     HGLOBAL OleGetIconOfFile(LPOLESTR, BOOL);
102     HGLOBAL OleGetIconOfClass(REFCLSID, LPOLESTR, BOOL);
103     HGLOBAL OleMetafilePictFromIconAndLabel(HICON, LPOLESTR, LPOLESTR, UINT);
104     HRESULT OleRegGetUserType(REFCLSID, DWORD, LPOLESTR*);
105     HRESULT OleRegGetMiscStatus(REFCLSID, DWORD, DWORD*);
106     HRESULT OleRegEnumFormatEtc (REFCLSID, DWORD, LPENUMFORMATETC*);
107     HRESULT OleRegEnumVerbs (REFCLSID, LPENUMOLEVERB*);
108     HRESULT OleConvertOLESTREAMToIStorage(LPOLESTREAM, LPSTORAGE, const(DVTARGETDEVICE)*);
109     HRESULT OleConvertIStorageToOLESTREAM(LPSTORAGE, LPOLESTREAM);
110     HRESULT GetHGlobalFromILockBytes(LPLOCKBYTES, HGLOBAL*);
111     HRESULT CreateILockBytesOnHGlobal(HGLOBAL, BOOL, LPLOCKBYTES*);
112     HRESULT GetHGlobalFromStream(LPSTREAM, HGLOBAL*);
113     HRESULT CreateStreamOnHGlobal(HGLOBAL, BOOL, LPSTREAM*);
114     HRESULT OleDoAutoConvert(LPSTORAGE, LPCLSID);
115     HRESULT OleGetAutoConvert(REFCLSID, LPCLSID);
116     HRESULT OleSetAutoConvert(REFCLSID, REFCLSID);
117     HRESULT GetConvertStg(LPSTORAGE);
118     HRESULT SetConvertStg(LPSTORAGE, BOOL);
119     HRESULT OleConvertIStorageToOLESTREAMEx(LPSTORAGE, CLIPFORMAT, LONG, LONG, DWORD, LPSTGMEDIUM, LPOLESTREAM);
120     HRESULT OleConvertOLESTREAMToIStorageEx(LPOLESTREAM, LPSTORAGE, CLIPFORMAT*, LONG*, LONG*, DWORD*, LPSTGMEDIUM);
121 }