OSDN Git Service

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