root/trunk/win32/ocidl.d

Revision 377, 12.4 kB (checked in by CyberShadow, 3 months ago)

Undo Zone's clobbering of my fixes

Line 
1 /***********************************************************************\
2 *                                ocidl.d                                *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                 Part of the Internet Development SDK                  *
6 *                                                                       *
7 *                 Translated from MinGW Windows headers                 *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.ocidl;
12
13 private import win32.ole2, win32.oleidl, win32.oaidl, win32.objfwd,
14   win32.windef, win32.wtypes;
15 private import win32.objidl;  // for CLIPFORMAT
16 private import win32.wingdi;  // for TEXTMETRICW
17 private import win32.winuser; // for LPMSG
18
19 interface IBindHost : IUnknown {}
20
21 interface IServiceProvider : IUnknown{
22     HRESULT QueryService(REFGUID,REFIID,void**);
23 }
24
25 /*
26 // TODO:
27 //private import win32.servprov; // for IServiceProvider
28 // private import win32.urlmon; // for IBindHost. This is not included in MinGW.
29
30 // win32.urlmon should contain:
31 interface IBindHost : IUnknown
32 {
33     HRESULT CreateMoniker(LPOLESTR szName, IBindCtx* pBC, IMoniker** ppmk, DWORD);
34     HRESULT MonikerBindToObject(IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID, void** );
35     HRESULT MonikerBindToStorage(IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID, void** );
36 }
37 */
38
39
40
41
42 //[Yes] #ifndef OLE2ANSI
43 alias TEXTMETRICW TEXTMETRICOLE;
44 //} else {
45 //alias TEXTMETRIC TEXTMETRICOLE;
46 //}
47 alias TEXTMETRICOLE* LPTEXTMETRICOLE;
48
49 alias DWORD OLE_COLOR;
50 alias UINT OLE_HANDLE;
51 alias int OLE_XPOS_HIMETRIC;
52 alias int OLE_YPOS_HIMETRIC;
53 alias int OLE_XSIZE_HIMETRIC;
54 alias int OLE_YSIZE_HIMETRIC;
55
56 enum READYSTATE {
57     READYSTATE_UNINITIALIZED = 0,
58     READYSTATE_LOADING = 1,
59     READYSTATE_LOADED = 2,
60     READYSTATE_INTERACTIVE = 3,
61     READYSTATE_COMPLETE = 4
62 }
63
64 enum PROPBAG2_TYPE {
65     PROPBAG2_TYPE_UNDEFINED,
66     PROPBAG2_TYPE_DATA,
67     PROPBAG2_TYPE_URL,
68     PROPBAG2_TYPE_OBJECT,
69     PROPBAG2_TYPE_STREAM,
70     PROPBAG2_TYPE_STORAGE,
71     PROPBAG2_TYPE_MONIKER // = 6
72 }
73
74 struct PROPBAG2 {
75     DWORD dwType;
76     VARTYPE vt;
77     CLIPFORMAT cfType;
78     DWORD dwHint;
79     LPOLESTR pstrName;
80     CLSID clsid;
81 }
82
83 enum QACONTAINERFLAGS {
84     QACONTAINER_SHOWHATCHING = 1,
85     QACONTAINER_SHOWGRABHANDLES = 2,
86     QACONTAINER_USERMODE = 4,
87     QACONTAINER_DISPLAYASDEFAULT = 8,
88     QACONTAINER_UIDEAD = 16,
89     QACONTAINER_AUTOCLIP = 32,
90     QACONTAINER_MESSAGEREFLECT = 64,
91     QACONTAINER_SUPPORTSMNEMONICS = 128
92 }
93
94 struct QACONTAINER {
95     ULONG cbSize = this.sizeof;
96     IOleClientSite* pClientSite;
97     IAdviseSinkEx* pAdviseSink;
98     IPropertyNotifySink* pPropertyNotifySink;
99     IUnknown* pUnkEventSink;
100     DWORD dwAmbientFlags;
101     OLE_COLOR colorFore;
102     OLE_COLOR colorBack;
103     IFont* pFont;
104     IOleUndoManager* pUndoMgr;
105     DWORD dwAppearance;
106     LONG lcid;
107     HPALETTE hpal;
108     IBindHost* pBindHost;
109     IOleControlSite* pOleControlSite;
110     IServiceProvider* pServiceProvider;
111 }
112
113 struct QACONTROL {
114     ULONG cbSize = this.sizeof;
115     DWORD dwMiscStatus;
116     DWORD dwViewStatus;
117     DWORD dwEventCookie;
118     DWORD dwPropNotifyCookie;
119     DWORD dwPointerActivationPolicy;
120 }
121
122 struct POINTF {
123     float x;
124     float y;
125 }
126 alias POINTF* LPPOINTF;
127
128 struct CONTROLINFO {
129     ULONG cb;
130     HACCEL hAccel;
131     USHORT cAccel;
132     DWORD dwFlags;
133 }
134 alias CONTROLINFO* LPCONTROLINFO;
135
136 struct CONNECTDATA {
137     LPUNKNOWN pUnk;
138     DWORD dwCookie;
139 }
140 alias CONNECTDATA* LPCONNECTDATA;
141
142 struct LICINFO {
143     int cbLicInfo;
144     BOOL fRuntimeKeyAvail;
145     BOOL fLicVerified;
146 }
147 alias LICINFO* LPLICINFO;
148
149 struct CAUUID {
150     ULONG cElems;
151     GUID* pElems;
152 }
153 alias CAUUID* LPCAUUID;
154
155 struct CALPOLESTR {
156     ULONG cElems;
157     LPOLESTR* pElems;
158 }
159 alias CALPOLESTR* LPCALPOLESTR;
160
161 struct CADWORD {
162     ULONG cElems;
163     DWORD* pElems;
164 }
165 alias CADWORD* LPCADWORD;
166
167 struct PROPPAGEINFO {
168     ULONG cb;
169     LPOLESTR pszTitle;
170     SIZE size;
171     LPOLESTR pszDocString;
172     LPOLESTR pszHelpFile;
173     DWORD dwHelpContext;
174 }
175 alias PROPPAGEINFO* LPPROPPAGEINFO;
176
177 interface IOleControl : IUnknown {
178     HRESULT GetControlInfo(LPCONTROLINFO);
179     HRESULT OnMnemonic(LPMSG);
180     HRESULT OnAmbientPropertyChange(DISPID);
181     HRESULT FreezeEvents(BOOL);
182 }
183
184 interface IOleControlSite : IUnknown {
185     HRESULT OnControlInfoChanged();
186     HRESULT LockInPlaceActive(BOOL);
187     HRESULT GetExtendedControl(LPDISPATCH*);
188     HRESULT TransformCoords(POINTL*, POINTF*, DWORD);
189     HRESULT TranslateAccelerator(LPMSG, DWORD);
190     HRESULT OnFocus(BOOL);
191     HRESULT ShowPropertyFrame();
192 }
193
194 interface ISimpleFrameSite : IUnknown {
195     HRESULT PreMessageFilter(HWND, UINT, WPARAM, LPARAM, LRESULT*, PDWORD);
196     HRESULT PostMessageFilter(HWND, UINT, WPARAM, LPARAM, LRESULT*, DWORD);
197 }
198
199 interface IErrorLog : IUnknown {
200     HRESULT AddError(LPCOLESTR, LPEXCEPINFO);
201 }
202 alias IErrorLog LPERRORLOG;
203
204 interface IPropertyBag : IUnknown {
205     HRESULT Read(LPCOLESTR, LPVARIANT, LPERRORLOG);
206     HRESULT Write(LPCOLESTR, LPVARIANT);
207 }
208 alias IPropertyBag LPPROPERTYBAG;
209
210 interface IPropertyBag2 : IUnknown {
211     HRESULT Read(ULONG, PROPBAG2*, LPERRORLOG, VARIANT*, HRESULT*);
212     HRESULT Write(ULONG, PROPBAG2*, VARIANT*);
213     HRESULT CountProperties(ULONG*);
214     HRESULT GetPropertyInfo(ULONG, ULONG, PROPBAG2*, ULONG*);
215     HRESULT LoadObject(LPCOLESTR, DWORD, IUnknown*, LPERRORLOG);
216 }
217 alias IPropertyBag2 LPPROPERTYBAG2;
218
219 interface IPersistPropertyBag : IPersist {
220     HRESULT InitNew();
221     HRESULT Load(LPPROPERTYBAG, LPERRORLOG);
222     HRESULT Save(LPPROPERTYBAG, BOOL, BOOL);
223 }
224
225 interface IPersistPropertyBag2 : IPersist {
226     HRESULT InitNew();
227     HRESULT Load(LPPROPERTYBAG2, LPERRORLOG);
228     HRESULT Save(LPPROPERTYBAG2, BOOL, BOOL);
229     HRESULT IsDirty();
230 }
231
232 interface IPersistStreamInit : IPersist {
233     HRESULT IsDirty();
234     HRESULT Load(LPSTREAM);
235     HRESULT Save(LPSTREAM, BOOL);
236     HRESULT GetSizeMax(PULARGE_INTEGER);
237     HRESULT InitNew();
238 }
239
240 interface IPersistMemory : IPersist {
241     HRESULT IsDirty();
242     HRESULT Load(PVOID, ULONG);
243     HRESULT Save(PVOID, BOOL, ULONG);
244     HRESULT GetSizeMax(PULONG);
245     HRESULT InitNew();
246 }
247
248 interface IPropertyNotifySink : IUnknown {
249     HRESULT OnChanged(DISPID);
250     HRESULT OnRequestEdit(DISPID);
251 }
252
253 interface IProvideClassInfo : IUnknown {
254     HRESULT GetClassInfo(LPTYPEINFO*);
255 }
256
257 interface IProvideClassInfo2 : IProvideClassInfo {
258     HRESULT GetGUID(DWORD, GUID*);
259 }
260
261 interface IConnectionPointContainer : IUnknown {
262     HRESULT EnumConnectionPoints(LPENUMCONNECTIONPOINTS*);
263     HRESULT FindConnectionPoint(REFIID, LPCONNECTIONPOINT*);
264 }
265
266 interface IEnumConnectionPoints : IUnknown {
267     HRESULT Next(ULONG, LPCONNECTIONPOINT*, ULONG*);
268     HRESULT Skip(ULONG);
269     HRESULT Reset();
270     HRESULT Clone(LPENUMCONNECTIONPOINTS*);
271 }
272 alias IEnumConnectionPoints LPENUMCONNECTIONPOINTS;
273
274 interface IConnectionPoint : IUnknown {
275     HRESULT GetConnectionInterface(IID*);
276     HRESULT GetConnectionPointContainer(IConnectionPointContainer**);
277     HRESULT Advise(LPUNKNOWN, PDWORD);
278     HRESULT Unadvise(DWORD);
279     HRESULT EnumConnections(LPENUMCONNECTIONS*);
280 }
281 alias IConnectionPoint LPCONNECTIONPOINT;
282
283 interface IEnumConnections : IUnknown {
284     HRESULT Next(ULONG, LPCONNECTDATA, PULONG);
285     HRESULT Skip(ULONG);
286     HRESULT Reset();
287     HRESULT Clone(LPENUMCONNECTIONS*);
288 }
289 alias IEnumConnections LPENUMCONNECTIONS;
290
291 interface IClassFactory2 : IClassFactory {
292     HRESULT GetLicInfo(LPLICINFO);
293     HRESULT RequestLicKey(DWORD, BSTR*);
294     HRESULT CreateInstanceLic(LPUNKNOWN, LPUNKNOWN, REFIID, BSTR, PVOID*);
295 }
296
297 interface ISpecifyPropertyPages : IUnknown {
298     HRESULT GetPages(CAUUID*);
299 }
300
301 interface IPerPropertyBrowsing : IUnknown {
302     HRESULT GetDisplayString(DISPID, BSTR*);
303     HRESULT MapPropertyToPage(DISPID, LPCLSID);
304     HRESULT GetPredefinedStrings(DISPID, CALPOLESTR*, CADWORD*);
305     HRESULT GetPredefinedValue(DISPID, DWORD, VARIANT*);
306 }
307
308 interface IPropertyPageSite : IUnknown {
309     HRESULT OnStatusChange(DWORD);
310     HRESULT GetLocaleID(LCID*);
311     HRESULT GetPageContainer(LPUNKNOWN*);
312     HRESULT TranslateAccelerator(LPMSG);
313 }
314 alias IPropertyPageSite LPPROPERTYPAGESITE;
315
316 interface IPropertyPage : IUnknown {
317     HRESULT SetPageSite(LPPROPERTYPAGESITE);
318     HRESULT Activate(HWND, LPCRECT, BOOL);
319     HRESULT Deactivate();
320     HRESULT GetPageInfo(LPPROPPAGEINFO);
321     HRESULT SetObjects(ULONG, LPUNKNOWN*);
322     HRESULT Show(UINT);
323     HRESULT Move(LPCRECT);
324     HRESULT IsPageDirty();
325     HRESULT Apply();
326     HRESULT Help(LPCOLESTR);
327     HRESULT TranslateAccelerator(LPMSG);
328 }
329
330
331 interface IPropertyPage2 : IPropertyPage
332 { HRESULT EditProperty(DISPID);
333 }
334
335 interface IFont : IUnknown {
336     HRESULT get_Name(BSTR*);
337     HRESULT put_Name(BSTR);
338     HRESULT get_Size(CY*);
339     HRESULT put_Size(CY);
340     HRESULT get_Bold(BOOL*);
341     HRESULT put_Bold(BOOL);
342     HRESULT get_Italic(BOOL*);
343     HRESULT put_Italic(BOOL);
344     HRESULT get_Underline(BOOL*);
345     HRESULT put_Underline(BOOL);
346     HRESULT get_Strikethrough(BOOL*);
347     HRESULT put_Strikethrough(BOOL);
348     HRESULT get_Weight(short*);
349     HRESULT put_Weight(short);
350     HRESULT get_Charset(short*);
351     HRESULT put_Charset(short);
352     HRESULT get_hFont(HFONT*);
353     HRESULT Clone(IFont**);
354     HRESULT IsEqual(IFont*);
355     HRESULT SetRatio(int, int);
356     HRESULT QueryTextMetrics(LPTEXTMETRICOLE);
357     HRESULT AddRefHfont(HFONT);
358     HRESULT ReleaseHfont(HFONT);
359     HRESULT SetHdc(HDC);
360 }
361 alias IFont LPFONT;
362
363 interface IFontDisp : IDispatch {
364 }
365 alias IFontDisp LPFONTDISP;
366
367 interface IPicture : IUnknown {
368     HRESULT get_Handle(OLE_HANDLE*);
369     HRESULT get_hPal(OLE_HANDLE*);
370     HRESULT get_Type(short*);
371     HRESULT get_Width(OLE_XSIZE_HIMETRIC*);
372     HRESULT get_Height(OLE_YSIZE_HIMETRIC*);
373     HRESULT Render(HDC, int, int, int, int, OLE_XPOS_HIMETRIC,
374       OLE_YPOS_HIMETRIC, OLE_XSIZE_HIMETRIC, OLE_YSIZE_HIMETRIC, LPCRECT);
375     HRESULT set_hPal(OLE_HANDLE);
376     HRESULT get_CurDC(HDC*);
377     HRESULT SelectPicture(HDC, HDC*, OLE_HANDLE*);
378     HRESULT get_KeepOriginalFormat(BOOL*);
379     HRESULT put_KeepOriginalFormat(BOOL);
380     HRESULT PictureChanged();
381     HRESULT SaveAsFile(LPSTREAM, BOOL, LONG*);
382     HRESULT get_Attributes(PDWORD);
383 }
384
385 interface IPictureDisp : IDispatch {
386 }
387
388 interface IOleInPlaceSiteEx : IOleInPlaceSite {
389     HRESULT OnInPlaceActivateEx(BOOL*, DWORD);
390     HRESULT OnInPlaceDeactivateEx(BOOL);
391     HRESULT RequestUIActivate();
392 }
393
394 interface IObjectWithSite : IUnknown {
395     HRESULT SetSite(IUnknown*);
396     HRESULT GetSite(REFIID, void**);
397 }
398
399 interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx {
400     HRESULT CanWindowlessActivate();
401     HRESULT GetCapture();
402     HRESULT SetCapture(BOOL);
403     HRESULT GetFocus();
404     HRESULT SetFocus(BOOL);
405     HRESULT GetDC(LPCRECT, DWORD, HDC*);
406     HRESULT ReleaseDC(HDC);
407     HRESULT InvalidateRect(LPCRECT, BOOL);
408     HRESULT InvalidateRgn(HRGN, BOOL);
409     HRESULT ScrollRect(INT, INT, LPCRECT, LPCRECT);
410     HRESULT AdjustRect(LPCRECT);
411     HRESULT OnDefWindowMessage(UINT, WPARAM, LPARAM, LRESULT*);
412 }
413
414 interface IAdviseSinkEx : IUnknown {
415     void OnDataChange(FORMATETC*, STGMEDIUM*);
416     void OnViewChange(DWORD, LONG);
417     void OnRename(IMoniker*);
418     void OnSave();
419     void OnClose();
420     HRESULT OnViewStatusChange(DWORD);
421 }
422
423 interface IPointerInactive : IUnknown {
424     HRESULT GetActivationPolicy(DWORD*);
425     HRESULT OnInactiveMouseMove(LPCRECT, LONG, LONG, DWORD);
426     HRESULT OnInactiveSetCursor(LPCRECT, LONG, LONG, DWORD, BOOL);
427 }
428
429 interface IOleUndoUnit : IUnknown {
430     HRESULT Do(LPOLEUNDOMANAGER);
431     HRESULT GetDescription(BSTR*);
432     HRESULT GetUnitType(CLSID*, LONG*);
433     HRESULT OnNextAdd();
434 }
435
436 interface IOleParentUndoUnit : IOleUndoUnit {
437     HRESULT Open(IOleParentUndoUnit*);
438     HRESULT Close(IOleParentUndoUnit*, BOOL);
439     HRESULT Add(IOleUndoUnit*);
440     HRESULT FindUnit(IOleUndoUnit*);
441     HRESULT GetParentState(DWORD*);
442 }
443
444 interface IEnumOleUndoUnits : IUnknown {
445     HRESULT Next(ULONG, IOleUndoUnit**, ULONG*);
446     HRESULT Skip(ULONG);
447     HRESULT Reset();
448     HRESULT Clone(IEnumOleUndoUnits**);
449 }
450
451 interface IOleUndoManager : IUnknown {
452     HRESULT Open(IOleParentUndoUnit*);
453     HRESULT Close(IOleParentUndoUnit*, BOOL);
454     HRESULT Add(IOleUndoUnit*);
455     HRESULT GetOpenParentState(DWORD*);
456     HRESULT DiscardFrom(IOleUndoUnit*);
457     HRESULT UndoTo(IOleUndoUnit*);
458     HRESULT RedoTo(IOleUndoUnit*);
459     HRESULT EnumUndoable(IEnumOleUndoUnits**);
460     HRESULT EnumRedoable(IEnumOleUndoUnits**);
461     HRESULT GetLastUndoDescription(BSTR*);
462     HRESULT GetLastRedoDescription(BSTR*);
463     HRESULT Enable(BOOL);
464 }
465 alias IOleUndoManager LPOLEUNDOMANAGER;
466
467 interface IQuickActivate : IUnknown {
468     HRESULT QuickActivate(QACONTAINER*, QACONTROL*);
469     HRESULT SetContentExtent(LPSIZEL);
470     HRESULT GetContentExtent(LPSIZEL);
471 }
Note: See TracBrowser for help on using the browser.