1 /**
2  * @file ocidl.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _OCIDL_H
25 #define _OCIDL_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #include <ole2.h>
34 
35 typedef _COM_interface IErrorLog *LPERRORLOG;
36 typedef _COM_interface IPropertyBag *LPPROPERTYBAG;
37 typedef _COM_interface IPropertyBag2 *LPPROPERTYBAG2;
38 typedef _COM_interface IEnumConnections *LPENUMCONNECTIONS;
39 typedef _COM_interface IConnectionPoint *LPCONNECTIONPOINT;
40 typedef _COM_interface IEnumConnectionPoints *LPENUMCONNECTIONPOINTS;
41 typedef _COM_interface IPropertyPageSite *LPPROPERTYPAGESITE;
42 typedef _COM_interface IFont *LPFONT;
43 typedef _COM_interface IFontDisp *LPFONTDISP;
44 typedef _COM_interface IOleUndoManager *LPOLEUNDOMANAGER;
45 
46 #ifndef OLE2ANSI
47 typedef TEXTMETRICW TEXTMETRICOLE;
48 #else
49 typedef TEXTMETRIC TEXTMETRICOLE;
50 #endif
51 typedef TEXTMETRICOLE *LPTEXTMETRICOLE;
52 typedef DWORD OLE_COLOR;
53 typedef UINT OLE_HANDLE;
54 typedef long OLE_XPOS_HIMETRIC;
55 typedef long OLE_YPOS_HIMETRIC;
56 typedef long OLE_XSIZE_HIMETRIC;
57 typedef long OLE_YSIZE_HIMETRIC;
58 
59 typedef enum tagREADYSTATE {
60 	READYSTATE_UNINITIALIZED = 0,
61 	READYSTATE_LOADING = 1,
62 	READYSTATE_LOADED = 2,
63 	READYSTATE_INTERACTIVE = 3,
64 	READYSTATE_COMPLETE = 4
65 } READYSTATE;
66 typedef enum tagPROPBAG2_TYPE {
67 	PROPBAG2_TYPE_UNDEFINED	= 0,
68 	PROPBAG2_TYPE_DATA = 1,
69 	PROPBAG2_TYPE_URL = 2,
70 	PROPBAG2_TYPE_OBJECT = 3,
71 	PROPBAG2_TYPE_STREAM = 4,
72 	PROPBAG2_TYPE_STORAGE = 5,
73 	PROPBAG2_TYPE_MONIKER = 6
74 } PROPBAG2_TYPE;
75 typedef struct tagPROPBAG2
76 {
77 	DWORD dwType;
78 	VARTYPE vt;
79 	CLIPFORMAT cfType;
80 	DWORD dwHint;
81 	LPOLESTR pstrName;
82 	CLSID clsid;
83 } PROPBAG2;
84 typedef enum tagQACONTAINERFLAGS
85 {
86 	QACONTAINER_SHOWHATCHING = 1,
87 	QACONTAINER_SHOWGRABHANDLES = 2,
88 	QACONTAINER_USERMODE = 4,
89 	QACONTAINER_DISPLAYASDEFAULT = 8,
90 	QACONTAINER_UIDEAD = 16,
91 	QACONTAINER_AUTOCLIP = 32,
92 	QACONTAINER_MESSAGEREFLECT = 64,
93 	QACONTAINER_SUPPORTSMNEMONICS = 128
94 } QACONTAINERFLAGS;
95 typedef struct tagQACONTAINER
96 {
97 	ULONG cbSize;
98 	_COM_interface IOleClientSite *pClientSite;
99 	_COM_interface IAdviseSinkEx *pAdviseSink;
100 	_COM_interface IPropertyNotifySink *pPropertyNotifySink;
101 	IUnknown *pUnkEventSink;
102 	DWORD dwAmbientFlags;
103 	OLE_COLOR colorFore;
104 	OLE_COLOR colorBack;
105 	_COM_interface IFont *pFont;
106 	_COM_interface IOleUndoManager *pUndoMgr;
107 	DWORD dwAppearance;
108 	LONG lcid;
109 	HPALETTE hpal;
110 	_COM_interface IBindHost *pBindHost;
111 	_COM_interface IOleControlSite *pOleControlSite;
112 	_COM_interface IServiceProvider *pServiceProvider;
113 } QACONTAINER;
114 typedef struct tagQACONTROL
115 {
116 	ULONG cbSize;
117 	DWORD dwMiscStatus;
118 	DWORD dwViewStatus;
119 	DWORD dwEventCookie;
120 	DWORD dwPropNotifyCookie;
121 	DWORD dwPointerActivationPolicy;
122 } QACONTROL;
123 typedef struct tagPOINTF {
124 	float x;
125 	float y;
126 } POINTF,*LPPOINTF;
127 typedef struct tagCONTROLINFO {
128 	ULONG cb;
129 	HACCEL hAccel;
130 	USHORT cAccel;
131 	DWORD dwFlags;
132 } CONTROLINFO,*LPCONTROLINFO;
133 typedef struct tagCONNECTDATA {
134 	LPUNKNOWN pUnk;
135 	DWORD dwCookie;
136 } CONNECTDATA,*LPCONNECTDATA;
137 typedef struct tagLICINFO {
138 	long cbLicInfo;
139 	BOOL fRuntimeKeyAvail;
140 	BOOL fLicVerified;
141 } LICINFO,*LPLICINFO;
142 typedef struct tagCAUUID {
143 	ULONG cElems;
144 	GUID *pElems;
145 } CAUUID,*LPCAUUID;
146 typedef struct tagCALPOLESTR {
147 	ULONG cElems;
148 	LPOLESTR *pElems;
149 } CALPOLESTR,*LPCALPOLESTR;
150 typedef struct tagCADWORD {
151 	ULONG cElems;
152 	DWORD *pElems;
153 } CADWORD,*LPCADWORD;
154 typedef struct tagPROPPAGEINFO {
155 	ULONG cb;
156 	LPOLESTR pszTitle;
157 	SIZE size;
158 	LPOLESTR pszDocString;
159 	LPOLESTR pszHelpFile;
160 	DWORD dwHelpContext;
161 } PROPPAGEINFO,*LPPROPPAGEINFO;
162 
163 EXTERN_C const IID IID_IOleControl;
164 #define INTERFACE IOleControl
DECLARE_INTERFACE_(IOleControl,IUnknown)165 DECLARE_INTERFACE_(IOleControl,IUnknown)
166 {
167 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
168 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
169 	STDMETHOD_(ULONG,Release)(THIS) PURE;
170 	STDMETHOD(GetControlInfo)(THIS_ LPCONTROLINFO) PURE;
171 	STDMETHOD(OnMnemonic)(THIS_ LPMSG) PURE;
172 	STDMETHOD(OnAmbientPropertyChange)(THIS_ DISPID) PURE;
173 	STDMETHOD(FreezeEvents)(THIS_ BOOL) PURE;
174 };
175 #undef INTERFACE
176 
177 EXTERN_C const IID IID_IOleControlSite;
178 #define INTERFACE IOleControlSite
DECLARE_INTERFACE_(IOleControlSite,IUnknown)179 DECLARE_INTERFACE_(IOleControlSite,IUnknown)
180 {
181 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
182 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
183 	STDMETHOD_(ULONG,Release)(THIS) PURE;
184 	STDMETHOD(OnControlInfoChanged)(THIS) PURE;
185 	STDMETHOD(LockInPlaceActive)(THIS_ BOOL) PURE;
186 	STDMETHOD(GetExtendedControl)(THIS_ LPDISPATCH*) PURE;
187 	STDMETHOD(TransformCoords)(THIS_ POINTL*,POINTF*,DWORD) PURE;
188 	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,DWORD) PURE;
189 	STDMETHOD(OnFocus)(THIS_ BOOL) PURE;
190 	STDMETHOD(ShowPropertyFrame)(THIS) PURE;
191 };
192 #undef INTERFACE
193 
194 #ifdef COBJMACROS
195 #define IOleControlSite_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
196 #define IOleControlSite_AddRef(T) (T)->lpVtbl->AddRef(T)
197 #define IOleControlSite_Release(T) (T)->lpVtbl->Release(T)
198 #define IOleControlSite_OnControlInfoChanged(T) (T)->lpVtbl->OnControlInfoChanged(T)
199 #define IOleControlSite_LockInPlaceActive(T,a) (T)->lpVtbl->LockInPlaceActive(T,a)
200 #define IOleControlSite_GetExtendedControl(T,a) (T)->lpVtbl->GetExtendedControl(T,a)
201 #define IOleControlSite_TransformCoords(T,a,b,c) (T)->lpVtbl->TransformCoords(T,a,b,c)
202 #define IOleControlSite_TranslateAccelerator(T,a,b) (T)->lpVtbl->TranslateAccelerator(T,a,b)
203 #define IOleControlSite_OnFocus(T,a) (T)->lpVtbl->OnFocus(T,a)
204 #define IOleControlSite_ShowPropertyFrame(T) (T)->lpVtbl->ShowPropertyFrame(T)
205 #endif
206 
207 EXTERN_C const IID IID_ISimpleFrameSite;
208 #define INTERFACE ISimpleFrameSite
DECLARE_INTERFACE_(ISimpleFrameSite,IUnknown)209 DECLARE_INTERFACE_(ISimpleFrameSite,IUnknown)
210 {
211 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
212 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
213 	STDMETHOD_(ULONG,Release)(THIS) PURE;
214 	STDMETHOD(PreMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,PDWORD) PURE;
215 	STDMETHOD(PostMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,DWORD) PURE;
216 };
217 #undef INTERFACE
218 
219 EXTERN_C const IID IID_IErrorLog;
220 #define INTERFACE IErrorLog
DECLARE_INTERFACE_(IErrorLog,IUnknown)221 DECLARE_INTERFACE_(IErrorLog,IUnknown)
222 {
223 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
224 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
225 	STDMETHOD_(ULONG,Release)(THIS) PURE;
226 	STDMETHOD(AddError)(THIS_ LPCOLESTR,LPEXCEPINFO) PURE;
227 };
228 #undef INTERFACE
229 
230 EXTERN_C const IID IID_IPropertyBag;
231 #define INTERFACE IPropertyBag
DECLARE_INTERFACE_(IPropertyBag,IUnknown)232 DECLARE_INTERFACE_(IPropertyBag,IUnknown)
233 {
234 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
235 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
236 	STDMETHOD_(ULONG,Release)(THIS) PURE;
237 	STDMETHOD(Read)(THIS_ LPCOLESTR,LPVARIANT,LPERRORLOG) PURE;
238 	STDMETHOD(Write)(THIS_ LPCOLESTR,LPVARIANT) PURE;
239 };
240 #undef INTERFACE
241 
242 #ifdef COBJMACROS
243 #define IPropertyBag_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
244 #define IPropertyBag_AddRef(T) (T)->lpVtbl->AddRef(T)
245 #define IPropertyBag_Release(T) (T)->lpVtbl->Release(T)
246 #define IPropertyBag_Read(T,a,b,c) (T)->lpVtbl->Read(T,a,b,c)
247 #define IPropertyBag_Write(T,a,b) (T)->lpVtbl->Write(T,a,b)
248 #endif
249 
250 EXTERN_C const IID IID_IPropertyBag2;
251 #define INTERFACE IPropertyBag2
DECLARE_INTERFACE_(IPropertyBag2,IUnknown)252 DECLARE_INTERFACE_(IPropertyBag2,IUnknown)
253 {
254 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
255 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
256 	STDMETHOD_(ULONG,Release)(THIS) PURE;
257 	STDMETHOD(Read)(THIS_ ULONG,PROPBAG2*,LPERRORLOG,VARIANT*,HRESULT*) PURE;
258 	STDMETHOD(Write)(THIS_ ULONG,PROPBAG2*,VARIANT*) PURE;
259 	STDMETHOD(CountProperties)(THIS_ ULONG*) PURE;
260 	STDMETHOD(GetPropertyInfo)(THIS_ ULONG,ULONG,PROPBAG2*,ULONG*) PURE;
261 	STDMETHOD(LoadObject)(THIS_ LPCOLESTR,DWORD,IUnknown*,LPERRORLOG) PURE;
262 };
263 #undef INTERFACE
264 
265 #ifdef COBJMACROS
266 #define IPropertyBag2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
267 #define IPropertyBag2_AddRef(T) (T)->lpVtbl->AddRef(T)
268 #define IPropertyBag2_Release(T) (T)->lpVtbl->Release(T)
269 #define IPropertyBag2_Read(T,a,b,c,d,e) (T)->lpVtbl->Read(T,a,b,c,d,e)
270 #define IPropertyBag2_Write(T,a,b,c) (T)->lpVtbl->Write(T,a,b,c)
271 #define IPropertyBag2_CountProperties(T,a) (T)->lpVtbl->CountProperties(T,a)
272 #define IPropertyBag2_GetPropertyInfo(T,a,b,c,d) (T)->lpVtbl->GetPropertyInfo(T,a,b,c,d)
273 #define IPropertyBag2_LoadObject(T,a,b,c,d) (T)->lpVtbl->LoadObject(T,a,b,c,d)
274 #endif
275 
276 EXTERN_C const IID IID_IPersistPropertyBag;
277 #define INTERFACE IPersistPropertyBag
DECLARE_INTERFACE_(IPersistPropertyBag,IPersist)278 DECLARE_INTERFACE_(IPersistPropertyBag,IPersist)
279 {
280 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
281 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
282 	STDMETHOD_(ULONG,Release)(THIS) PURE;
283 	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
284 	STDMETHOD(InitNew)(THIS) PURE;
285 	STDMETHOD(Load)(THIS_ LPPROPERTYBAG,LPERRORLOG) PURE;
286 	STDMETHOD(Save)(THIS_ LPPROPERTYBAG,BOOL,BOOL) PURE;
287 };
288 #undef INTERFACE
289 
290 #ifdef COBJMACROS
291 #define IPersistPropertyBag_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
292 #define IPersistPropertyBag_AddRef(T) (T)->lpVtbl->AddRef(T)
293 #define IPersistPropertyBag_Release(T) (T)->lpVtbl->Release(T)
294 #define IPersistPropertyBag_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
295 #define IPersistPropertyBag_InitNew(T) (T)->lpVtbl->InitNew(T)
296 #define IPersistPropertyBag_Load(T,a,b) (T)->lpVtbl->Load(T,a,b)
297 #define IPersistPropertyBag_Save(T,a,b,c) (T)->lpVtbl->Save(T,a,b,c)
298 #endif
299 
300 EXTERN_C const IID IID_IPersistPropertyBag2;
301 #define INTERFACE IPersistPropertyBag2
DECLARE_INTERFACE_(IPersistPropertyBag2,IPersist)302 DECLARE_INTERFACE_(IPersistPropertyBag2,IPersist)
303 {
304 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
305 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
306 	STDMETHOD_(ULONG,Release)(THIS) PURE;
307 	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
308 	STDMETHOD(InitNew)(THIS) PURE;
309 	STDMETHOD(Load)(THIS_ LPPROPERTYBAG2,LPERRORLOG) PURE;
310 	STDMETHOD(Save)(THIS_ LPPROPERTYBAG2,BOOL,BOOL) PURE;
311 	STDMETHOD(IsDirty)(THIS) PURE;
312 };
313 #undef INTERFACE
314 
315 #ifdef COBJMACROS
316 #define IPersistPropertyBag2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
317 #define IPersistPropertyBag2_AddRef(T) (T)->lpVtbl->AddRef(T)
318 #define IPersistPropertyBag2_Release(T) (T)->lpVtbl->Release(T)
319 #define IPersistPropertyBag2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
320 #define IPersistPropertyBag2_InitNew(T) (T)->lpVtbl->InitNew(T)
321 #define IPersistPropertyBag2_Load(T,a,b) (T)->lpVtbl->Load(T,a,b)
322 #define IPersistPropertyBag2_Save(T,a,b,c) (T)->lpVtbl->Save(T,a,b,c)
323 #define IPersistPropertyBag2_IsDirty(T) (T)->lpVtbl->IsDirty(T)
324 #endif
325 
326 EXTERN_C const IID IID_IPersistStreamInit;
327 #define INTERFACE IPersistStreamInit
DECLARE_INTERFACE_(IPersistStreamInit,IPersist)328 DECLARE_INTERFACE_(IPersistStreamInit,IPersist)
329 {
330 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
331 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
332 	STDMETHOD_(ULONG,Release)(THIS) PURE;
333 	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
334 	STDMETHOD(IsDirty)(THIS) PURE;
335 	STDMETHOD(Load)(THIS_ LPSTREAM) PURE;
336 	STDMETHOD(Save)(THIS_ LPSTREAM,BOOL) PURE;
337 	STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE;
338 	STDMETHOD(InitNew)(THIS) PURE;
339 };
340 #undef INTERFACE
341 
342 EXTERN_C const IID IID_IPersistMemory;
343 #define INTERFACE IPersistMemory
DECLARE_INTERFACE_(IPersistMemory,IPersist)344 DECLARE_INTERFACE_(IPersistMemory,IPersist)
345 {
346 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
347 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
348 	STDMETHOD_(ULONG,Release)(THIS) PURE;
349 	STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
350 	STDMETHOD(IsDirty)(THIS) PURE;
351 	STDMETHOD(Load)(THIS_ PVOID,ULONG) PURE;
352 	STDMETHOD(Save)(THIS_ PVOID,BOOL,ULONG) PURE;
353 	STDMETHOD(GetSizeMax)(THIS_ PULONG) PURE;
354 	STDMETHOD(InitNew)(THIS) PURE;
355 };
356 #undef INTERFACE
357 
358 EXTERN_C const IID IID_IPropertyNotifySink;
359 #define INTERFACE IPropertyNotifySink
DECLARE_INTERFACE_(IPropertyNotifySink,IUnknown)360 DECLARE_INTERFACE_(IPropertyNotifySink,IUnknown)
361 {
362 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
363 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
364 	STDMETHOD_(ULONG,Release)(THIS) PURE;
365 	STDMETHOD(OnChanged)(THIS_ DISPID) PURE;
366 	STDMETHOD(OnRequestEdit)(THIS_ DISPID) PURE;
367 };
368 #undef INTERFACE
369 
370 #ifdef COBJMACROS
371 #define IPropertyNotifySink_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
372 #define IPropertyNotifySink_AddRef(T) (T)->lpVtbl->AddRef(T)
373 #define IPropertyNotifySink_Release(T) (T)->lpVtbl->Release(T)
374 #define IPropertyNotifySink_OnChanged(T,a) (T)->lpVtbl->OnChanged(T,a)
375 #define IPropertyNotifySink_OnRequestEdit(T,a) (T)->lpVtbl->OnRequestEdit(T,a)
376 #endif
377 
378 EXTERN_C const IID IID_IProvideClassInfo;
379 #define INTERFACE IProvideClassInfo
DECLARE_INTERFACE_(IProvideClassInfo,IUnknown)380 DECLARE_INTERFACE_(IProvideClassInfo,IUnknown)
381 {
382 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
383 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
384 	STDMETHOD_(ULONG,Release)(THIS) PURE;
385 	STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE;
386 };
387 #undef INTERFACE
388 
389 EXTERN_C const IID IID_IProvideClassInfo2;
390 #define INTERFACE IProvideClassInfo2
DECLARE_INTERFACE_(IProvideClassInfo2,IProvideClassInfo)391 DECLARE_INTERFACE_(IProvideClassInfo2,IProvideClassInfo)
392 {
393 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
394 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
395 	STDMETHOD_(ULONG,Release)(THIS) PURE;
396 	STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE;
397 	STDMETHOD(GetGUID)(THIS_ DWORD,GUID*) PURE;
398 };
399 #undef INTERFACE
400 
401 EXTERN_C const IID IID_IConnectionPointContainer;
402 #define INTERFACE IConnectionPointContainer
DECLARE_INTERFACE_(IConnectionPointContainer,IUnknown)403 DECLARE_INTERFACE_(IConnectionPointContainer,IUnknown)
404 {
405 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
406 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
407 	STDMETHOD_(ULONG,Release)(THIS) PURE;
408 	STDMETHOD(EnumConnectionPoints)(THIS_ LPENUMCONNECTIONPOINTS*) PURE;
409 	STDMETHOD(FindConnectionPoint)(THIS_ REFIID,LPCONNECTIONPOINT*) PURE;
410 };
411 #undef INTERFACE
412 
413 #ifdef COBJMACROS
414 #define IConnectionPointContainer_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
415 #define IConnectionPointContainer_AddRef(T) (T)->lpVtbl->AddRef(T)
416 #define IConnectionPointContainer_Release(T) (T)->lpVtbl->Release(T)
417 #define IConnectionPointContainer_EnumConnectionPoints(T,a) (T)->lpVtbl->EnumConnectionPoints(T,a)
418 #define IConnectionPointContainer_FindConnectionPoint(T,a,b) (T)->lpVtbl->FindConnectionPoint(T,a,b)
419 #endif
420 
421 EXTERN_C const IID IID_IEnumConnectionPoints;
422 #define INTERFACE IEnumConnectionPoints
DECLARE_INTERFACE_(IEnumConnectionPoints,IUnknown)423 DECLARE_INTERFACE_(IEnumConnectionPoints,IUnknown)
424 {
425 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
426 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
427 	STDMETHOD_(ULONG,Release)(THIS) PURE;
428 	STDMETHOD(Next)(THIS_ ULONG,LPCONNECTIONPOINT*,ULONG*) PURE;
429 	STDMETHOD(Skip)(THIS_ ULONG) PURE;
430 	STDMETHOD(Reset)(THIS) PURE;
431 	STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONPOINTS*) PURE;
432 };
433 #undef INTERFACE
434 
435 EXTERN_C const IID IID_IConnectionPoint;
436 #define INTERFACE IConnectionPoint
DECLARE_INTERFACE_(IConnectionPoint,IUnknown)437 DECLARE_INTERFACE_(IConnectionPoint,IUnknown)
438 {
439 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
440 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
441 	STDMETHOD_(ULONG,Release)(THIS) PURE;
442 	STDMETHOD(GetConnectionInterface)(THIS_ IID*) PURE;
443 	STDMETHOD(GetConnectionPointContainer)(THIS_ IConnectionPointContainer**) PURE;
444 	STDMETHOD(Advise)(THIS_ LPUNKNOWN,PDWORD) PURE;
445 	STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
446 	STDMETHOD(EnumConnections)(THIS_ LPENUMCONNECTIONS*) PURE;
447 };
448 #undef INTERFACE
449 
450 #ifdef COBJMACROS
451 #define IConnectionPoint_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
452 #define IConnectionPoint_AddRef(T) (T)->lpVtbl->AddRef(T)
453 #define IConnectionPoint_Release(T) (T)->lpVtbl->Release(T)
454 #define IConnectionPoint_GetConnectionInterface(T,a) (T)->lpVtbl->GetConnectionInterface(T,a)
455 #define IConnectionPoint_GetConnectionPointContainer(T,a) (T)->lpVtbl->GetConnectionPointContainer(T,a)
456 #define IConnectionPoint_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
457 #define IConnectionPoint_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
458 #define IConnectionPoint_EnumConnections(T,a) (T)->lpVtbl->EnumConnections(T,a)
459 #endif
460 
461 EXTERN_C const IID IID_IEnumConnections;
462 #define INTERFACE IEnumConnections
DECLARE_INTERFACE_(IEnumConnections,IUnknown)463 DECLARE_INTERFACE_(IEnumConnections,IUnknown)
464 {
465 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
466 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
467 	STDMETHOD_(ULONG,Release)(THIS) PURE;
468 	STDMETHOD(Next)(THIS_ ULONG,LPCONNECTDATA,PULONG) PURE;
469 	STDMETHOD(Skip)(THIS_ ULONG) PURE;
470 	STDMETHOD(Reset)(THIS) PURE;
471 	STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONS*) PURE;
472 };
473 #undef INTERFACE
474 
475 #ifdef COBJMACROS
476 #define IEnumConnections_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
477 #define IEnumConnections_AddRef(T) (T)->lpVtbl->AddRef(T)
478 #define IEnumConnections_Release(T) (T)->lpVtbl->Release(T)
479 #define IEnumConnections_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
480 #define IEnumConnections_Skip(T,a) (T)->lpVtbl->Skip(T,a)
481 #define IEnumConnections_Reset(T) (T)->lpVtbl->Reset(T)
482 #define IEnumConnections_Clone(T,a) (T)->lpVtbl->Clone(T,a)
483 #endif
484 
485 EXTERN_C const IID IID_IClassFactory2;
486 #define INTERFACE IClassFactory2
DECLARE_INTERFACE_(IClassFactory2,IClassFactory)487 DECLARE_INTERFACE_(IClassFactory2,IClassFactory)
488 {
489 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
490 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
491 	STDMETHOD_(ULONG,Release)(THIS) PURE;
492 	STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
493 	STDMETHOD(LockServer)(THIS_ BOOL) PURE;
494 	STDMETHOD(GetLicInfo)(THIS_ LPLICINFO) PURE;
495 	STDMETHOD(RequestLicKey)(THIS_ DWORD,BSTR*) PURE;
496 	STDMETHOD(CreateInstanceLic)(THIS_ LPUNKNOWN,LPUNKNOWN,REFIID,BSTR,PVOID*) PURE;
497 };
498 #undef INTERFACE
499 
500 EXTERN_C const IID IID_ISpecifyPropertyPages;
501 #define INTERFACE ISpecifyPropertyPages
DECLARE_INTERFACE_(ISpecifyPropertyPages,IUnknown)502 DECLARE_INTERFACE_(ISpecifyPropertyPages,IUnknown)
503 {
504 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
505 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
506 	STDMETHOD_(ULONG,Release)(THIS) PURE;
507 	STDMETHOD(GetPages)(THIS_ CAUUID*) PURE;
508 };
509 #undef INTERFACE
510 
511 EXTERN_C const IID IID_IPerPropertyBrowsing;
512 #define INTERFACE IPerPropertyBrowsing
DECLARE_INTERFACE_(IPerPropertyBrowsing,IUnknown)513 DECLARE_INTERFACE_(IPerPropertyBrowsing,IUnknown)
514 {
515 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
516 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
517 	STDMETHOD_(ULONG,Release)(THIS) PURE;
518 	STDMETHOD(GetDisplayString)(THIS_ DISPID,BSTR*) PURE;
519 	STDMETHOD(MapPropertyToPage)(THIS_ DISPID,LPCLSID) PURE;
520 	STDMETHOD(GetPredefinedStrings)(THIS_ DISPID,CALPOLESTR*,CADWORD*) PURE;
521 	STDMETHOD(GetPredefinedValue)(THIS_ DISPID,DWORD,VARIANT*) PURE;
522 };
523 #undef INTERFACE
524 
525 EXTERN_C const IID IID_IPropertyPageSite;
526 #define INTERFACE IPropertyPageSite
DECLARE_INTERFACE_(IPropertyPageSite,IUnknown)527 DECLARE_INTERFACE_(IPropertyPageSite,IUnknown)
528 {
529 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
530 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
531 	STDMETHOD_(ULONG,Release)(THIS) PURE;
532 	STDMETHOD(OnStatusChange)(THIS_ DWORD) PURE;
533 	STDMETHOD(GetLocaleID)(THIS_ LCID*) PURE;
534 	STDMETHOD(GetPageContainer)(THIS_ LPUNKNOWN*) PURE;
535 	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
536 };
537 #undef INTERFACE
538 
539 EXTERN_C const IID IID_IPropertyPage;
540 #define INTERFACE IPropertyPage
DECLARE_INTERFACE_(IPropertyPage,IUnknown)541 DECLARE_INTERFACE_(IPropertyPage,IUnknown)
542 {
543 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
544 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
545 	STDMETHOD_(ULONG,Release)(THIS) PURE;
546 	STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE;
547 	STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE;
548 	STDMETHOD(Deactivate)(THIS) PURE;
549 	STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE;
550 	STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE;
551 	STDMETHOD(Show)(THIS_ UINT) PURE;
552 	STDMETHOD(Move)(THIS_ LPCRECT) PURE;
553 	STDMETHOD(IsPageDirty)(THIS) PURE;
554 	STDMETHOD(Apply)(THIS) PURE;
555 	STDMETHOD(Help)(THIS_ LPCOLESTR) PURE;
556 	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
557 };
558 #undef INTERFACE
559 
560 EXTERN_C const IID IID_IPropertyPage2;
561 #define INTERFACE IPropertyPage2
DECLARE_INTERFACE_(IPropertyPage2,IPropertyPage)562 DECLARE_INTERFACE_(IPropertyPage2,IPropertyPage)
563 {
564 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
565 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
566 	STDMETHOD_(ULONG,Release)(THIS) PURE;
567 	STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE;
568 	STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE;
569 	STDMETHOD(Deactivate)(THIS) PURE;
570 	STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE;
571 	STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE;
572 	STDMETHOD(Show)(THIS_ UINT) PURE;
573 	STDMETHOD(Move)(THIS_ LPCRECT) PURE;
574 	STDMETHOD(IsPageDirty)(THIS) PURE;
575 	STDMETHOD(Apply)(THIS) PURE;
576 	STDMETHOD(Help)(THIS_ LPCOLESTR) PURE;
577 	STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
578 	STDMETHOD(EditProperty)(THIS_ DISPID) PURE;
579 };
580 #undef INTERFACE
581 
582 EXTERN_C const IID IID_IFont;
583 #define INTERFACE IFont
DECLARE_INTERFACE_(IFont,IUnknown)584 DECLARE_INTERFACE_(IFont,IUnknown)
585 {
586 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
587 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
588 	STDMETHOD_(ULONG,Release)(THIS) PURE;
589 	STDMETHOD(get_Name)(THIS_ BSTR*) PURE;
590 	STDMETHOD(put_Name)(THIS_ BSTR) PURE;
591 	STDMETHOD(get_Size)(THIS_ CY*) PURE;
592 	STDMETHOD(put_Size)(THIS_ CY) PURE;
593 	STDMETHOD(get_Bold)(THIS_ BOOL*) PURE;
594 	STDMETHOD(put_Bold)(THIS_ BOOL) PURE;
595 	STDMETHOD(get_Italic)(THIS_ BOOL*) PURE;
596 	STDMETHOD(put_Italic)(THIS_ BOOL) PURE;
597 	STDMETHOD(get_Underline)(THIS_ BOOL*) PURE;
598 	STDMETHOD(put_Underline)(THIS_ BOOL) PURE;
599 	STDMETHOD(get_Strikethrough)(THIS_ BOOL*) PURE;
600 	STDMETHOD(put_Strikethrough)(THIS_ BOOL) PURE;
601 	STDMETHOD(get_Weight)(THIS_ short*) PURE;
602 	STDMETHOD(put_Weight)(THIS_ short) PURE;
603 	STDMETHOD(get_Charset)(THIS_ short*) PURE;
604 	STDMETHOD(put_Charset)(THIS_ short) PURE;
605 	STDMETHOD(get_hFont)(THIS_ HFONT*) PURE;
606 	STDMETHOD(Clone)(THIS_ IFont**) PURE;
607 	STDMETHOD(IsEqual)(THIS_ IFont*) PURE;
608 	STDMETHOD(SetRatio)(THIS_ long,long) PURE;
609 	STDMETHOD(QueryTextMetrics)(THIS_ LPTEXTMETRICOLE) PURE;
610 	STDMETHOD(AddRefHfont)(THIS_ HFONT) PURE;
611 	STDMETHOD(ReleaseHfont)(THIS_ HFONT) PURE;
612 	STDMETHOD(SetHdc)(THIS_ HDC) PURE;
613 };
614 #undef INTERFACE
615 
616 EXTERN_C const IID IID_IFontDisp;
617 #define INTERFACE IFontDisp
DECLARE_INTERFACE_(IFontDisp,IDispatch)618 DECLARE_INTERFACE_(IFontDisp,IDispatch)
619 {
620 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
621 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
622 	STDMETHOD_(ULONG,Release)(THIS) PURE;
623 	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
624 	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
625 	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
626 	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
627 };
628 #undef INTERFACE
629 
630 EXTERN_C const IID IID_IPicture;
631 #define INTERFACE IPicture
DECLARE_INTERFACE_(IPicture,IUnknown)632 DECLARE_INTERFACE_(IPicture,IUnknown)
633 {
634 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
635 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
636 	STDMETHOD_(ULONG,Release)(THIS) PURE;
637 	STDMETHOD(get_Handle)(THIS_ OLE_HANDLE*) PURE;
638 	STDMETHOD(get_hPal)(THIS_ OLE_HANDLE*) PURE;
639 	STDMETHOD(get_Type)(THIS_ short*) PURE;
640 	STDMETHOD(get_Width)(THIS_ OLE_XSIZE_HIMETRIC*) PURE;
641 	STDMETHOD(get_Height)(THIS_ OLE_YSIZE_HIMETRIC*) PURE;
642 	STDMETHOD(Render)(THIS_ HDC,long,long,long,long,OLE_XPOS_HIMETRIC,OLE_YPOS_HIMETRIC,OLE_XSIZE_HIMETRIC,OLE_YSIZE_HIMETRIC,LPCRECT) PURE;
643 	STDMETHOD(set_hPal)(THIS_ OLE_HANDLE) PURE;
644 	STDMETHOD(get_CurDC)(THIS_ HDC*) PURE;
645 	STDMETHOD(SelectPicture)(THIS_ HDC,HDC*,OLE_HANDLE*) PURE;
646 	STDMETHOD(get_KeepOriginalFormat)(THIS_ BOOL*) PURE;
647 	STDMETHOD(put_KeepOriginalFormat)(THIS_ BOOL) PURE;
648 	STDMETHOD(PictureChanged)(THIS) PURE;
649 	STDMETHOD(SaveAsFile)(THIS_ LPSTREAM,BOOL,LONG*) PURE;
650 	STDMETHOD(get_Attributes)(THIS_ PDWORD) PURE;
651 };
652 #undef INTERFACE
653 
654 #ifdef COBJMACROS
655 #define IPicture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
656 #define IPicture_AddRef(p) (p)->lpVtbl->AddRef(p)
657 #define IPicture_Release(p) (p)->lpVtbl->Release(p)
658 #define IPicture_get_Handle(p,a) (p)->lpVtbl->get_Handle(p,a)
659 #define IPicture_get_hPal(p,a) (p)->lpVtbl->get_hPal(p,a)
660 #define IPicture_get_Type(p,a) (p)->lpVtbl->get_Type(p,a)
661 #define IPicture_get_Width(p,a) (p)->lpVtbl->get_Width(p,a)
662 #define IPicture_get_Height(p,a) (p)->lpVtbl->get_Height(p,a)
663 #define IPicture_Render(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Render(p,a,b,c,d,e,f,g,h,i,j)
664 #define IPicture_set_hPal(p,a) (p)->lpVtbl->set_hPal(p,a)
665 #define IPicture_get_CurDC(p,a) (p)->lpVtbl->get_CurDC(p,a)
666 #define IPicture_SelectPicture(p,a,b,c) (p)->lpVtbl->SelectPicture(p,a,b,c)
667 #define IPicture_get_KeepOriginalFormat(p,a) (p)->lpVtbl->get_KeepOriginalFormat(p,a)
668 #define IPicture_put_KeepOriginalFormat(p,a) (p)->lpVtbl->put_KeepOriginalFormat(p,a)
669 #define IPicture_PictureChanged(p) (p)->lpVtbl->PictureChanged(p)
670 #define IPicture_SaveAsFile(p,a,b,c) (p)->lpVtbl->SaveAsFile(p,a,b,c)
671 #define IPicture_get_Attributes(p,a) (p)->lpVtbl->get_Attributes(p,a)
672 #endif
673 
674 EXTERN_C const IID IID_IPictureDisp;
675 #define INTERFACE IPictureDisp
DECLARE_INTERFACE_(IPictureDisp,IDispatch)676 DECLARE_INTERFACE_(IPictureDisp,IDispatch)
677 {
678 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
679 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
680 	STDMETHOD_(ULONG,Release)(THIS) PURE;
681 	STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
682 	STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
683 	STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
684 	STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
685 };
686 #undef INTERFACE
687 
688 EXTERN_C const IID IID_IOleInPlaceSiteEx;
689 #define INTERFACE IOleInPlaceSiteEx
DECLARE_INTERFACE_(IOleInPlaceSiteEx,IOleInPlaceSite)690 DECLARE_INTERFACE_(IOleInPlaceSiteEx,IOleInPlaceSite)
691 {
692 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
693 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
694 	STDMETHOD_(ULONG,Release)(THIS) PURE;
695 	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
696 	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
697 	STDMETHOD(CanInPlaceActivate)(THIS) PURE;
698 	STDMETHOD(OnInPlaceActivate)(THIS) PURE;
699 	STDMETHOD(OnUIActivate)(THIS) PURE;
700 	STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
701 	STDMETHOD(Scroll)(THIS_ SIZE) PURE;
702 	STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
703 	STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
704 	STDMETHOD(DiscardUndoState)(THIS) PURE;
705 	STDMETHOD(DeactivateAndUndo)(THIS) PURE;
706 	STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
707 	STDMETHOD(OnInPlaceActivateEx)(THIS_ BOOL*,DWORD) PURE;
708 	STDMETHOD(OnInPlaceDeactivateEx)(THIS_ BOOL) PURE;
709 	STDMETHOD(RequestUIActivate)(THIS) PURE;
710 };
711 #undef INTERFACE
712 
713 EXTERN_C const IID IID_IObjectWithSite;
714 #define INTERFACE IObjectWithSite
DECLARE_INTERFACE_(IObjectWithSite,IUnknown)715 DECLARE_INTERFACE_(IObjectWithSite,IUnknown)
716 {
717 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
718 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
719 	STDMETHOD_(ULONG,Release)(THIS) PURE;
720 	STDMETHOD(SetSite)(THIS_ IUnknown*) PURE;
721 	STDMETHOD(GetSite)(THIS_ REFIID, void**) PURE;
722 };
723 #undef INTERFACE
724 
725 EXTERN_C const IID IID_IOleInPlaceSiteWindowless;
726 #define INTERFACE IOleInPlaceSiteWindowless
DECLARE_INTERFACE_(IOleInPlaceSiteWindowless,IOleInPlaceSiteEx)727 DECLARE_INTERFACE_(IOleInPlaceSiteWindowless,IOleInPlaceSiteEx)
728 {
729 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
730 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
731 	STDMETHOD_(ULONG,Release)(THIS) PURE;
732 	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
733 	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
734 	STDMETHOD(CanInPlaceActivate)(THIS) PURE;
735 	STDMETHOD(OnInPlaceActivate)(THIS) PURE;
736 	STDMETHOD(OnUIActivate)(THIS) PURE;
737 	STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
738 	STDMETHOD(Scroll)(THIS_ SIZE) PURE;
739 	STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
740 	STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
741 	STDMETHOD(DiscardUndoState)(THIS) PURE;
742 	STDMETHOD(DeactivateAndUndo)(THIS) PURE;
743 	STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
744 
745 	STDMETHOD(OnInPlaceActivateEx)(THIS_ BOOL*,DWORD) PURE;
746 	STDMETHOD(OnInPlaceDeactivateEx)(THIS_ BOOL) PURE;
747 	STDMETHOD(RequestUIActivate)(THIS) PURE;
748 
749 	STDMETHOD(CanWindowlessActivate)(THIS) PURE;
750 	STDMETHOD(GetCapture)(THIS) PURE;
751 	STDMETHOD(SetCapture)(THIS_ BOOL) PURE;
752 	STDMETHOD(GetFocus)(THIS) PURE;
753 	STDMETHOD(SetFocus)(THIS_ BOOL) PURE;
754 	STDMETHOD(GetDC)(THIS_ LPCRECT,DWORD,HDC*) PURE;
755 	STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
756 	STDMETHOD(InvalidateRect)(THIS_ LPCRECT,BOOL) PURE;
757 	STDMETHOD(InvalidateRgn)(THIS_ HRGN,BOOL) PURE;
758 	STDMETHOD(ScrollRect)(THIS_ INT,INT,LPCRECT,LPCRECT) PURE;
759 	STDMETHOD(AdjustRect)(THIS_ LPCRECT) PURE;
760 	STDMETHOD(OnDefWindowMessage)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE;
761 };
762 #undef INTERFACE
763 
764 EXTERN_C const IID IID_IAdviseSinkEx;
765 #define INTERFACE IAdviseSinkEx
DECLARE_INTERFACE_(IAdviseSinkEx,IUnknown)766 DECLARE_INTERFACE_(IAdviseSinkEx,IUnknown)
767 {
768 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
769 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
770 	STDMETHOD_(ULONG,Release)(THIS) PURE;
771 	STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC*,STGMEDIUM*) PURE;
772 	STDMETHOD_(void,OnViewChange)(THIS_ DWORD,LONG) PURE;
773 	STDMETHOD_(void,OnRename)(THIS_ IMoniker*) PURE;
774 	STDMETHOD_(void,OnSave)(THIS) PURE;
775 	STDMETHOD_(void,OnClose)(THIS) PURE;
776 	STDMETHOD(OnViewStatusChange)(THIS_ DWORD) PURE;
777 };
778 #undef INTERFACE
779 
780 EXTERN_C const IID IID_IPointerInactive;
781 #define INTERFACE IPointerInactive
DECLARE_INTERFACE_(IPointerInactive,IUnknown)782 DECLARE_INTERFACE_(IPointerInactive,IUnknown)
783 {
784 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
785 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
786 	STDMETHOD_(ULONG,Release)(THIS) PURE;
787 	STDMETHOD(GetActivationPolicy)(THIS_ DWORD*) PURE;
788 	STDMETHOD(OnInactiveMouseMove)(THIS_ LPCRECT,LONG,LONG,DWORD) PURE;
789 	STDMETHOD(OnInactiveSetCursor)(THIS_ LPCRECT,LONG,LONG,DWORD,BOOL) PURE;
790 };
791 #undef INTERFACE
792 
793 EXTERN_C const IID IID_IOleUndoUnit;
794 #define INTERFACE IOleUndoUnit
DECLARE_INTERFACE_(IOleUndoUnit,IUnknown)795 DECLARE_INTERFACE_(IOleUndoUnit,IUnknown)
796 {
797 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
798 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
799 	STDMETHOD_(ULONG,Release)(THIS) PURE;
800 	STDMETHOD(Do)(THIS_ LPOLEUNDOMANAGER) PURE;
801 	STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
802 	STDMETHOD(GetUnitType)(THIS_ CLSID*,LONG*) PURE;
803 	STDMETHOD(OnNextAdd)(THIS) PURE;
804 };
805 #undef INTERFACE
806 
807 EXTERN_C const IID IID_IOleParentUndoUnit;
808 #define INTERFACE IOleParentUndoUnit
DECLARE_INTERFACE_(IOleParentUndoUnit,IOleUndoUnit)809 DECLARE_INTERFACE_(IOleParentUndoUnit,IOleUndoUnit)
810 {
811 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
812 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
813 	STDMETHOD_(ULONG,Release)(THIS) PURE;
814 	STDMETHOD(Do)(THIS_ LPOLEUNDOMANAGER) PURE;
815 	STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
816 	STDMETHOD(GetUnitType)(THIS_ CLSID*,LONG*) PURE;
817 	STDMETHOD(OnNextAdd)(THIS) PURE;
818 	STDMETHOD(Open)(THIS_ IOleParentUndoUnit*) PURE;
819 	STDMETHOD(Close)(THIS_ IOleParentUndoUnit*,BOOL) PURE;
820 	STDMETHOD(Add)(THIS_ IOleUndoUnit*) PURE;
821 	STDMETHOD(FindUnit)(THIS_ IOleUndoUnit*) PURE;
822 	STDMETHOD(GetParentState)(THIS_ DWORD*) PURE;
823 };
824 #undef INTERFACE
825 
826 EXTERN_C const IID IID_IEnumOleUndoUnits;
827 #define INTERFACE IEnumOleUndoUnits
DECLARE_INTERFACE_(IEnumOleUndoUnits,IUnknown)828 DECLARE_INTERFACE_(IEnumOleUndoUnits,IUnknown)
829 {
830 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
831 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
832 	STDMETHOD_(ULONG,Release)(THIS) PURE;
833 	STDMETHOD(Next)(THIS_ ULONG,IOleUndoUnit**,ULONG*) PURE;
834 	STDMETHOD(Skip)(THIS_ ULONG) PURE;
835 	STDMETHOD(Reset)(THIS) PURE;
836 	STDMETHOD(Clone)(THIS_ IEnumOleUndoUnits**) PURE;
837 };
838 #undef INTERFACE
839 
840 EXTERN_C const IID IID_IOleUndoManager;
841 #define INTERFACE IOleUndoManager
DECLARE_INTERFACE_(IOleUndoManager,IUnknown)842 DECLARE_INTERFACE_(IOleUndoManager,IUnknown)
843 {
844 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
845 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
846 	STDMETHOD_(ULONG,Release)(THIS) PURE;
847 	STDMETHOD(Open)(THIS_ IOleParentUndoUnit*) PURE;
848 	STDMETHOD(Close)(THIS_ IOleParentUndoUnit*,BOOL) PURE;
849 	STDMETHOD(Add)(THIS_ IOleUndoUnit*) PURE;
850 	STDMETHOD(GetOpenParentState)(THIS_ DWORD*) PURE;
851 	STDMETHOD(DiscardFrom)(THIS_ IOleUndoUnit*) PURE;
852 	STDMETHOD(UndoTo)(THIS_ IOleUndoUnit*) PURE;
853 	STDMETHOD(RedoTo)(THIS_ IOleUndoUnit*) PURE;
854 	STDMETHOD(EnumUndoable)(THIS_ IEnumOleUndoUnits**) PURE;
855 	STDMETHOD(EnumRedoable)(THIS_ IEnumOleUndoUnits**) PURE;
856 	STDMETHOD(GetLastUndoDescription)(THIS_ BSTR*) PURE;
857 	STDMETHOD(GetLastRedoDescription)(THIS_ BSTR*) PURE;
858 	STDMETHOD(Enable)(THIS_ BOOL) PURE;
859 };
860 #undef INTERFACE
861 
862 EXTERN_C const IID IID_IQuickActivate;
863 #define INTERFACE IQuickActivate
DECLARE_INTERFACE_(IQuickActivate,IUnknown)864 DECLARE_INTERFACE_(IQuickActivate,IUnknown)
865 {
866 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
867 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
868 	STDMETHOD_(ULONG,Release)(THIS) PURE;
869 	STDMETHOD(QuickActivate)(THIS_ QACONTAINER*,QACONTROL*) PURE;
870 	STDMETHOD(SetContentExtent)(THIS_ LPSIZEL) PURE;
871 	STDMETHOD(GetContentExtent)(THIS_ LPSIZEL) PURE;
872 };
873 #undef INTERFACE
874 
875 #ifdef __cplusplus
876 }
877 #endif
878 
879 #endif
880