/
oleidl.d
270 lines (232 loc) · 7.27 KB
/
oleidl.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC core/sys/windows/_oleidl.d)
*/
module core.sys.windows.oleidl;
version (Windows):
// DAC: This is defined in ocidl !!
// what is it doing in here?
//alias IEnumOleUndoUnits LPENUMOLEUNDOUNITS;
import core.sys.windows.basetyps, core.sys.windows.objidl, core.sys.windows.unknwn, core.sys.windows.windef,
core.sys.windows.winuser, core.sys.windows.wtypes;
import core.sys.windows.objfwd; // for LPMONIKER
import core.sys.windows.wingdi; // for LPLOGPALETTE
enum MK_ALT = 32;
enum BINDSPEED {
BINDSPEED_INDEFINITE = 1,
BINDSPEED_MODERATE,
BINDSPEED_IMMEDIATE
}
enum OLEWHICHMK {
OLEWHICHMK_CONTAINER = 1,
OLEWHICHMK_OBJREL,
OLEWHICHMK_OBJFULL
}
enum OLEGETMONIKER {
OLEGETMONIKER_ONLYIFTHERE = 1,
OLEGETMONIKER_FORCEASSIGN,
OLEGETMONIKER_UNASSIGN,
OLEGETMONIKER_TEMPFORUSER
}
enum USERCLASSTYPE {
USERCLASSTYPE_FULL = 1,
USERCLASSTYPE_SHORT,
USERCLASSTYPE_APPNAME
}
enum DROPEFFECT {
DROPEFFECT_NONE = 0,
DROPEFFECT_COPY = 1,
DROPEFFECT_MOVE = 2,
DROPEFFECT_LINK = 4,
DROPEFFECT_SCROLL = 0x80000000
}
struct OLEMENUGROUPWIDTHS {
LONG[6] width;
}
alias OLEMENUGROUPWIDTHS* LPOLEMENUGROUPWIDTHS;
alias HGLOBAL HOLEMENU;
enum OLECLOSE {
OLECLOSE_SAVEIFDIRTY,
OLECLOSE_NOSAVE,
OLECLOSE_PROMPTSAVE
}
struct OLEVERB {
LONG lVerb;
LPWSTR lpszVerbName;
DWORD fuFlags;
DWORD grfAttribs;
}
alias OLEVERB* LPOLEVERB;
alias RECT BORDERWIDTHS;
alias LPRECT LPBORDERWIDTHS;
alias LPCRECT LPCBORDERWIDTHS;
struct OLEINPLACEFRAMEINFO {
UINT cb;
BOOL fMDIApp;
HWND hwndFrame;
HACCEL haccel;
UINT cAccelEntries;
}
alias OLEINPLACEFRAMEINFO* LPOLEINPLACEFRAMEINFO;
interface IEnumOLEVERB : IUnknown
{
HRESULT Next(ULONG,OLEVERB*,ULONG*);
HRESULT Skip(ULONG);
HRESULT Reset();
HRESULT Clone(IEnumOLEVERB*);
}
//alias IEnumOLEVERB IEnumOleVerb;
alias IEnumOLEVERB LPENUMOLEVERB;
interface IParseDisplayName : IUnknown {
HRESULT ParseDisplayName(IBindCtx,LPOLESTR,ULONG*,IMoniker*);
}
alias IParseDisplayName LPPARSEDISPLAYNAME;
interface IOleContainer : IParseDisplayName {
HRESULT EnumObjects(DWORD,IEnumUnknown*);
HRESULT LockContainer(BOOL);
}
alias IOleContainer LPOLECONTAINER;
interface IOleItemContainer : IOleContainer {
HRESULT GetObject(LPOLESTR,DWORD,IBindCtx,REFIID,void**);
HRESULT GetObjectStorage(LPOLESTR,IBindCtx,REFIID,void**);
HRESULT IsRunning(LPOLESTR);
}
interface IOleClientSite : IUnknown {
HRESULT SaveObject();
HRESULT GetMoniker(DWORD,DWORD,LPMONIKER*);
HRESULT GetContainer(LPOLECONTAINER*);
HRESULT ShowObject();
HRESULT OnShowWindow(BOOL);
HRESULT RequestNewObjectLayout();
}
alias IOleClientSite LPOLECLIENTSITE;
interface IOleObject : IUnknown {
HRESULT SetClientSite(LPOLECLIENTSITE);
HRESULT GetClientSite(LPOLECLIENTSITE*);
HRESULT SetHostNames(LPCOLESTR,LPCOLESTR);
HRESULT Close(DWORD);
HRESULT SetMoniker(DWORD,LPMONIKER);
HRESULT GetMoniker(DWORD,DWORD,LPMONIKER*);
HRESULT InitFromData(LPDATAOBJECT,BOOL,DWORD);
HRESULT GetClipboardData(DWORD,LPDATAOBJECT*);
HRESULT DoVerb(LONG,LPMSG,LPOLECLIENTSITE,LONG,HWND,LPCRECT);
HRESULT EnumVerbs(LPENUMOLEVERB*);
HRESULT Update();
HRESULT IsUpToDate();
HRESULT GetUserClassID(LPCLSID);
HRESULT GetUserType(DWORD,LPOLESTR*);
HRESULT SetExtent(DWORD,SIZEL*);
HRESULT GetExtent(DWORD,SIZEL*);
HRESULT Advise(LPADVISESINK,PDWORD);
HRESULT Unadvise(DWORD);
HRESULT EnumAdvise(LPENUMSTATDATA*);
HRESULT GetMiscStatus(DWORD,PDWORD);
HRESULT SetColorScheme(LPLOGPALETTE);
}
alias IOleObject LPOLEOBJECT;
interface IOleWindow : IUnknown {
HRESULT GetWindow(HWND*);
HRESULT ContextSensitiveHelp(BOOL);
}
alias IOleWindow LPOLEWINDOW;
interface IOleInPlaceUIWindow : IOleWindow {
HRESULT GetBorder(LPRECT);
HRESULT RequestBorderSpace(LPCBORDERWIDTHS);
HRESULT SetBorderSpace(LPCBORDERWIDTHS);
HRESULT SetActiveObject(LPOLEINPLACEACTIVEOBJECT,LPCOLESTR);
}
alias IOleInPlaceUIWindow LPOLEINPLACEUIWINDOW;
interface IOleInPlaceObject : IOleWindow {
HRESULT InPlaceDeactivate();
HRESULT UIDeactivate();
HRESULT SetObjectRects(LPCRECT,LPCRECT);
HRESULT ReactivateAndUndo();
}
interface IOleInPlaceActiveObject : IOleWindow {
HRESULT TranslateAccelerator(LPMSG);
HRESULT OnFrameWindowActivate(BOOL);
HRESULT OnDocWindowActivate(BOOL);
HRESULT ResizeBorder(LPCRECT,LPOLEINPLACEUIWINDOW,BOOL);
HRESULT EnableModeless(BOOL);
}
alias IOleInPlaceActiveObject LPOLEINPLACEACTIVEOBJECT;
interface IOleInPlaceFrame : IOleInPlaceUIWindow {
HRESULT InsertMenus(HMENU,LPOLEMENUGROUPWIDTHS);
HRESULT SetMenu(HMENU,HOLEMENU,HWND);
HRESULT RemoveMenus(HMENU);
HRESULT SetStatusText(LPCOLESTR);
HRESULT EnableModeless(BOOL);
HRESULT TranslateAccelerator(LPMSG,WORD);
}
alias IOleInPlaceFrame LPOLEINPLACEFRAME;
interface IOleInPlaceSite : IOleWindow {
HRESULT CanInPlaceActivate();
HRESULT OnInPlaceActivate();
HRESULT OnUIActivate();
HRESULT GetWindowContext(IOleInPlaceFrame,IOleInPlaceUIWindow,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO);
HRESULT Scroll(SIZE);
HRESULT OnUIDeactivate(BOOL);
HRESULT OnInPlaceDeactivate();
HRESULT DiscardUndoState();
HRESULT DeactivateAndUndo();
HRESULT OnPosRectChange(LPCRECT);
}
interface IOleAdviseHolder : IUnknown {
HRESULT Advise(LPADVISESINK,PDWORD);
HRESULT Unadvise(DWORD);
HRESULT EnumAdvise(LPENUMSTATDATA*);
HRESULT SendOnRename(LPMONIKER);
HRESULT SendOnSave();
HRESULT SendOnClose();
}
alias IOleAdviseHolder LPOLEADVISEHOLDER;
interface IDropSource : IUnknown {
HRESULT QueryContinueDrag(BOOL,DWORD);
HRESULT GiveFeedback(DWORD);
}
alias IDropSource LPDROPSOURCE;
interface IDropTarget : IUnknown {
HRESULT DragEnter(LPDATAOBJECT,DWORD,POINTL,PDWORD);
HRESULT DragOver(DWORD,POINTL,PDWORD);
HRESULT DragLeave();
HRESULT Drop(LPDATAOBJECT,DWORD,POINTL,PDWORD);
}
alias IDropTarget LPDROPTARGET;
extern (Windows) {
alias BOOL function(ULONG_PTR) __IView_pfncont;
}
interface IViewObject : IUnknown {
HRESULT Draw(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,ULONG_PTR);
HRESULT GetColorSet(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*);
HRESULT Freeze(DWORD,LONG,PVOID,PDWORD);
HRESULT Unfreeze(DWORD);
HRESULT SetAdvise(DWORD,DWORD,IAdviseSink);
HRESULT GetAdvise(PDWORD,PDWORD,IAdviseSink*);
}
alias IViewObject LPVIEWOBJECT;
interface IViewObject2 : IViewObject {
HRESULT GetExtent(DWORD,LONG,DVTARGETDEVICE*,LPSIZEL);
}
alias IViewObject2 LPVIEWOBJECT2;
interface IOleCache : IUnknown {
HRESULT Cache(FORMATETC*,DWORD,DWORD*);
HRESULT Uncache(DWORD);
HRESULT EnumCache(IEnumSTATDATA*);
HRESULT InitCache(LPDATAOBJECT);
HRESULT SetData(FORMATETC*,STGMEDIUM*,BOOL);
}
alias IOleCache LPOLECACHE;
interface IOleCache2 : IOleCache {
HRESULT UpdateCache(LPDATAOBJECT,DWORD,LPVOID);
HRESULT DiscardCache(DWORD);
}
alias IOleCache2 LPOLECACHE2;
interface IOleCacheControl : IUnknown {
HRESULT OnRun(LPDATAOBJECT);
HRESULT OnStop();
}
alias IOleCacheControl LPOLECACHECONTROL;