2 * Windows API header module
4 * Translated from MinGW Windows headers
6 * Authors: Stewart Gordon
7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8 * Source: $(DRUNTIMESRC core/sys/windows/_ole.d)
10 module core.sys.windows.ole;
14 import core.sys.windows.windef, core.sys.windows.wingdi, core.sys.windows.uuid;
16 alias LPCSTR OLE_LPCSTR;
18 /+#define LRESULT LONG
19 #define HGLOBAL HANDLE+/
27 enum OLEVERB_PRIMARY = 0;
32 struct OLETARGETDEVICE {
33 USHORT otdDeviceNameOffset;
34 USHORT otdDriverNameOffset;
35 USHORT otdPortNameOffset;
36 USHORT otdExtDevmodeOffset;
37 USHORT otdExtDevmodeSize;
38 USHORT otdEnvironmentOffset;
39 USHORT otdEnvironmentSize;
41 BYTE* otdData() return { return &_otdData; }
43 alias OLETARGETDEVICE* LPOLETARGETDEVICE;
49 OLE_ERROR_PROTECT_ONLY,
87 OLE_ERROR_ADVISE_NATIVE,
88 OLE_ERROR_ADVISE_PICT,
89 OLE_ERROR_ADVISE_RENAME,
90 OLE_ERROR_POKE_NATIVE,
91 OLE_ERROR_REQUEST_NATIVE,
92 OLE_ERROR_REQUEST_PICT,
93 OLE_ERROR_SERVER_BLOCKED,
94 OLE_ERROR_REGISTRATION,
95 OLE_ERROR_ALREADY_REGISTERED,
98 OLE_ERROR_CANT_UPDATE_CLIENT,
100 OLE_ERROR_SETDATA_FORMAT,
101 OLE_ERROR_STATIC_FROM_OTHER_OS,
103 OLE_WARN_DELETE_DATA = 1000
106 enum OLE_NOTIFICATION {
116 enum OLE_RELEASE_METHOD {
127 OLE_SETUPDATEOPTIONS,
134 OLE_CREATEFROMTEMPLATE,
135 OLE_CREATELINKFROMFILE,
147 alias WORD OLECLIPFORMAT;
153 // #ifdef OLE_INTERNAL
158 mixin DECLARE_HANDLE!("HOBJECT");
159 alias LONG_PTR LHSERVER, LHCLIENTDOC, LHSERVERDOC;
161 struct OLEOBJECTVTBL {
163 void* function(LPOLEOBJECT, OLE_LPCSTR) QueryProtocol;
164 OLESTATUS function(LPOLEOBJECT) Release;
165 OLESTATUS function(LPOLEOBJECT, BOOL) Show;
166 OLESTATUS function(LPOLEOBJECT, UINT, BOOL, BOOL) DoVerb;
167 OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT, HANDLE*) GetData;
168 OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT, HANDLE) SetData;
169 OLESTATUS function(LPOLEOBJECT, HGLOBAL) SetTargetDevice;
170 OLESTATUS function(LPOLEOBJECT, RECT*) SetBounds;
171 OLECLIPFORMAT function(LPOLEOBJECT, OLECLIPFORMAT) EnumFormats;
172 OLESTATUS function(LPOLEOBJECT, LOGPALETTE*) SetColorScheme;
174 OLESTATUS function(LPOLEOBJECT) Delete;
175 OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR, OLE_LPCSTR) SetHostNames;
176 OLESTATUS function(LPOLEOBJECT, LPOLESTREAM) SaveToStream;
177 OLESTATUS function(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR,
179 OLESTATUS function(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, OLE_LPCSTR,
180 LPOLEOBJECT*) CopyFromLink;
181 OLESTATUS function(LPOLEOBJECT, LPOLEOBJECT) Equal;
182 OLESTATUS function(LPOLEOBJECT) CopyToClipboard;
183 OLESTATUS function(LPOLEOBJECT, HDC, RECT*, RECT*, HDC) Draw;
184 OLESTATUS function(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, RECT*)
186 OLESTATUS function(LPOLEOBJECT, HGLOBAL, UINT) Execute;
187 OLESTATUS function(LPOLEOBJECT) Close;
188 OLESTATUS function(LPOLEOBJECT) Update;
189 OLESTATUS function(LPOLEOBJECT) Reconnect;
190 OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR, LPOLECLIENT, LHCLIENTDOC,
191 OLE_LPCSTR, LPOLEOBJECT*) ObjectConvert;
192 OLESTATUS function(LPOLEOBJECT, OLEOPT_UPDATE*) GetLinkUpdateOptions;
193 OLESTATUS function(LPOLEOBJECT, OLEOPT_UPDATE) SetLinkUpdateOptions;
194 OLESTATUS function(LPOLEOBJECT, OLE_LPCSTR) Rename;
195 OLESTATUS function(LPOLEOBJECT, LPSTR, UINT*) QueryName;
196 OLESTATUS function(LPOLEOBJECT, LONG*) QueryType;
197 OLESTATUS function(LPOLEOBJECT, RECT*) QueryBounds;
198 OLESTATUS function(LPOLEOBJECT, DWORD*) QuerySize;
199 OLESTATUS function(LPOLEOBJECT) QueryOpen;
200 OLESTATUS function(LPOLEOBJECT) QueryOutOfDate;
201 OLESTATUS function(LPOLEOBJECT) QueryReleaseStatus;
202 OLESTATUS function(LPOLEOBJECT) QueryReleaseError;
203 OLE_RELEASE_METHOD function(LPOLEOBJECT) QueryReleaseMethod;
204 OLESTATUS function(LPOLEOBJECT, OLECLIPFORMAT) RequestData;
205 OLESTATUS function(LPOLEOBJECT, UINT, LONG*) ObjectLong;
206 OLESTATUS function(LPOLEOBJECT, HANDLE, LPOLECLIENT, BOOL) ChangeData;
210 alias OLEOBJECTVTBL* LPOLEOBJECTVTBL;
212 //#ifndef OLE_INTERNAL
214 LPOLEOBJECTVTBL lpvtbl;
216 alias OLEOBJECT* LPOLEOBJECT;
219 struct OLECLIENTVTBL {
220 extern (Windows) int function(LPOLECLIENT, OLE_NOTIFICATION, LPOLEOBJECT) CallBack;
222 alias OLECLIENTVTBL* LPOLECLIENTVTBL;
225 LPOLECLIENTVTBL lpvtbl;
227 alias OLECLIENT* LPOLECLIENT;
229 struct OLESTREAMVTBL {
231 DWORD function(LPOLESTREAM, void*, DWORD) Get;
232 DWORD function(LPOLESTREAM, void*, DWORD) Put;
234 alias OLESTREAMVTBL* LPOLESTREAMVTBL;
237 LPOLESTREAMVTBL lpstbl;
239 alias OLESTREAM* LPOLESTREAM;
241 enum OLE_SERVER_USE {
246 struct OLESERVERVTBL {
248 OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, LPOLESERVERDOC*)
250 OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR,
251 LPOLESERVERDOC*) Create;
252 OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR,
253 OLE_LPCSTR, LPOLESERVERDOC*) CreateFromTemplate;
254 OLESTATUS function(LPOLESERVER, LHSERVERDOC, OLE_LPCSTR, OLE_LPCSTR,
255 LPOLESERVERDOC*) Edit;
256 OLESTATUS function(LPOLESERVER) Exit;
257 OLESTATUS function(LPOLESERVER) Release;
258 OLESTATUS function(LPOLESERVER, HGLOBAL) Execute;
260 alias OLESERVERVTBL* LPOLESERVERVTBL;
263 LPOLESERVERVTBL lpvtbl;
265 alias OLESERVER* LPOLESERVER;
267 struct OLESERVERDOCVTBL {
269 OLESTATUS function(LPOLESERVERDOC) Save;
270 OLESTATUS function(LPOLESERVERDOC) Close;
271 OLESTATUS function(LPOLESERVERDOC, OLE_LPCSTR, OLE_LPCSTR) SetHostNames;
272 OLESTATUS function(LPOLESERVERDOC, RECT*) SetDocDimensions;
273 OLESTATUS function(LPOLESERVERDOC, OLE_LPCSTR, LPOLEOBJECT*, LPOLECLIENT)
275 OLESTATUS function(LPOLESERVERDOC) Release;
276 OLESTATUS function(LPOLESERVERDOC, LOGPALETTE*) SetColorScheme;
277 OLESTATUS function(LPOLESERVERDOC, HGLOBAL) Execute;
279 alias OLESERVERDOCVTBL* LPOLESERVERDOCVTBL;
281 struct OLESERVERDOC {
282 LPOLESERVERDOCVTBL lpvtbl;
284 alias OLESERVERDOC* LPOLESERVERDOC;
287 OLESTATUS OleDelete(LPOLEOBJECT);
288 OLESTATUS OleRelease(LPOLEOBJECT);
289 OLESTATUS OleSaveToStream(LPOLEOBJECT, LPOLESTREAM);
290 OLESTATUS OleEqual(LPOLEOBJECT, LPOLEOBJECT);
291 OLESTATUS OleCopyToClipboard(LPOLEOBJECT);
292 OLESTATUS OleSetHostNames(LPOLEOBJECT, LPCSTR, LPCSTR);
293 OLESTATUS OleSetTargetDevice(LPOLEOBJECT, HGLOBAL);
294 OLESTATUS OleSetBounds(LPOLEOBJECT, LPCRECT);
295 OLESTATUS OleSetColorScheme(LPOLEOBJECT, const(LOGPALETTE)*);
296 OLESTATUS OleQueryBounds(LPOLEOBJECT, RECT*);
297 OLESTATUS OleQuerySize(LPOLEOBJECT, DWORD*);
298 OLESTATUS OleDraw(LPOLEOBJECT, HDC, LPCRECT, LPCRECT, HDC);
299 OLESTATUS OleQueryOpen(LPOLEOBJECT);
300 OLESTATUS OleActivate(LPOLEOBJECT, UINT, BOOL, BOOL, HWND, LPCRECT);
301 OLESTATUS OleExecute(LPOLEOBJECT, HGLOBAL, UINT);
302 OLESTATUS OleClose(LPOLEOBJECT);
303 OLESTATUS OleUpdate(LPOLEOBJECT);
304 OLESTATUS OleReconnect(LPOLEOBJECT);
305 OLESTATUS OleGetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE*);
306 OLESTATUS OleSetLinkUpdateOptions(LPOLEOBJECT, OLEOPT_UPDATE);
307 void* OleQueryProtocol(LPOLEOBJECT, LPCSTR);
308 OLESTATUS OleQueryReleaseStatus(LPOLEOBJECT);
309 OLESTATUS OleQueryReleaseError(LPOLEOBJECT);
310 OLE_RELEASE_METHOD OleQueryReleaseMethod(LPOLEOBJECT);
311 OLESTATUS OleQueryType(LPOLEOBJECT, LONG*);
312 DWORD OleQueryClientVersion();
313 DWORD OleQueryServerVersion();
314 OLECLIPFORMAT OleEnumFormats(LPOLEOBJECT, OLECLIPFORMAT);
315 OLESTATUS OleGetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE*);
316 OLESTATUS OleSetData(LPOLEOBJECT, OLECLIPFORMAT, HANDLE);
317 OLESTATUS OleQueryOutOfDate(LPOLEOBJECT);
318 OLESTATUS OleRequestData(LPOLEOBJECT, OLECLIPFORMAT);
319 OLESTATUS OleQueryLinkFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT);
320 OLESTATUS OleQueryCreateFromClip(LPCSTR, OLEOPT_RENDER, OLECLIPFORMAT);
321 OLESTATUS OleCreateFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR,
322 LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
323 OLESTATUS OleCreateLinkFromClip(LPCSTR, LPOLECLIENT, LHCLIENTDOC, LPCSTR,
324 LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
325 OLESTATUS OleCreateFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR,
326 LHCLIENTDOC, LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
327 OLESTATUS OleCreateLinkFromFile(LPCSTR, LPOLECLIENT, LPCSTR, LPCSTR,
328 LPCSTR, LHCLIENTDOC, LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
329 OLESTATUS OleLoadFromStream(LPOLESTREAM, LPCSTR, LPOLECLIENT, LHCLIENTDOC,
330 LPCSTR, LPOLEOBJECT*);
331 OLESTATUS OleCreate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC, LPCSTR,
332 LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
333 OLESTATUS OleCreateInvisible(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC,
334 LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT, BOOL);
335 OLESTATUS OleCreateFromTemplate(LPCSTR, LPOLECLIENT, LPCSTR, LHCLIENTDOC,
336 LPCSTR, LPOLEOBJECT*, OLEOPT_RENDER, OLECLIPFORMAT);
337 OLESTATUS OleClone(LPOLEOBJECT, LPOLECLIENT, LHCLIENTDOC, LPCSTR,
339 OLESTATUS OleCopyFromLink(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC,
340 LPCSTR, LPOLEOBJECT*);
341 OLESTATUS OleObjectConvert(LPOLEOBJECT, LPCSTR, LPOLECLIENT, LHCLIENTDOC,
342 LPCSTR, LPOLEOBJECT*);
343 OLESTATUS OleRename(LPOLEOBJECT, LPCSTR);
344 OLESTATUS OleQueryName(LPOLEOBJECT, LPSTR, UINT*);
345 OLESTATUS OleRevokeObject(LPOLECLIENT);
346 BOOL OleIsDcMeta(HDC);
347 OLESTATUS OleRegisterClientDoc(LPCSTR, LPCSTR, LONG, LHCLIENTDOC*);
348 OLESTATUS OleRevokeClientDoc(LHCLIENTDOC);
349 OLESTATUS OleRenameClientDoc(LHCLIENTDOC, LPCSTR);
350 OLESTATUS OleRevertClientDoc(LHCLIENTDOC);
351 OLESTATUS OleSavedClientDoc(LHCLIENTDOC);
352 OLESTATUS OleEnumObjects(LHCLIENTDOC, LPOLEOBJECT*);
353 OLESTATUS OleRegisterServer(LPCSTR, LPOLESERVER, LHSERVER*, HINSTANCE,
355 OLESTATUS OleRevokeServer(LHSERVER);
356 OLESTATUS OleBlockServer(LHSERVER);
357 OLESTATUS OleUnblockServer(LHSERVER, BOOL*);
358 OLESTATUS OleLockServer(LPOLEOBJECT, LHSERVER*);
359 OLESTATUS OleUnlockServer(LHSERVER);
360 OLESTATUS OleRegisterServerDoc(LHSERVER, LPCSTR, LPOLESERVERDOC,
362 OLESTATUS OleRevokeServerDoc(LHSERVERDOC);
363 OLESTATUS OleRenameServerDoc(LHSERVERDOC, LPCSTR);
364 OLESTATUS OleRevertServerDoc(LHSERVERDOC);
365 OLESTATUS OleSavedServerDoc(LHSERVERDOC);