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