CreateDIBSection takes a const pointer to BITMAPINFO.
[wine] / include / ocidl.h
1 /*** Autogenerated by WIDL 0.1 from ocidl.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_OCIDL_H
6 #define __WIDL_OCIDL_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <oleidl.h>
11 #include <oaidl.h>
12 #include <servprov.h>
13 #include <urlmon.h>
14 typedef enum tagREADYSTATE {
15     READYSTATE_UNINITIALIZED = 0,
16     READYSTATE_LOADING = 1,
17     READYSTATE_LOADED = 2,
18     READYSTATE_INTERACTIVE = 3,
19     READYSTATE_COMPLETE = 4
20 } READYSTATE;
21
22 typedef struct tagVARIANT_BLOB {
23     DWORD clSize;
24     DWORD rpcReserved;
25     ULONGLONG ahData[1];
26 } wireVARIANT_BLOB;
27
28 typedef struct tagUserVARIANT {
29     wireVARIANT_BLOB pVarBlob;
30 } UserVARIANT;
31
32 #ifndef __IFont_FWD_DEFINED__
33 #define __IFont_FWD_DEFINED__
34 typedef struct IFont IFont;
35 #endif
36
37 typedef IFont *LPFONT;
38
39 typedef TEXTMETRICW TEXTMETRICOLE, *LPTEXTMETRICOLE;
40
41 /*****************************************************************************
42  * IFont interface
43  */
44 #ifndef __IFont_INTERFACE_DEFINED__
45 #define __IFont_INTERFACE_DEFINED__
46
47 DEFINE_GUID(IID_IFont, 0xbef6e002, 0xa874, 0x101a, 0x8b,0xba, 0x00,0xaa,0x00,0x30,0x0c,0xab);
48 #if defined(__cplusplus) && !defined(CINTERFACE)
49 struct IFont : public IUnknown
50 {
51     virtual HRESULT STDMETHODCALLTYPE get_Name(
52         BSTR* pname) = 0;
53
54     virtual HRESULT STDMETHODCALLTYPE put_Name(
55         BSTR name) = 0;
56
57     virtual HRESULT STDMETHODCALLTYPE get_Size(
58         CY* psize) = 0;
59
60     virtual HRESULT STDMETHODCALLTYPE put_Size(
61         CY size) = 0;
62
63     virtual HRESULT STDMETHODCALLTYPE get_Bold(
64         BOOL* pbold) = 0;
65
66     virtual HRESULT STDMETHODCALLTYPE put_Bold(
67         BOOL bold) = 0;
68
69     virtual HRESULT STDMETHODCALLTYPE get_Italic(
70         BOOL* pitalic) = 0;
71
72     virtual HRESULT STDMETHODCALLTYPE put_Italic(
73         BOOL italic) = 0;
74
75     virtual HRESULT STDMETHODCALLTYPE get_Underline(
76         BOOL* punderline) = 0;
77
78     virtual HRESULT STDMETHODCALLTYPE put_Underline(
79         BOOL underline) = 0;
80
81     virtual HRESULT STDMETHODCALLTYPE get_Strikethrough(
82         BOOL* pstrikethrough) = 0;
83
84     virtual HRESULT STDMETHODCALLTYPE put_Strikethrough(
85         BOOL strikethrough) = 0;
86
87     virtual HRESULT STDMETHODCALLTYPE get_Weight(
88         SHORT* pweight) = 0;
89
90     virtual HRESULT STDMETHODCALLTYPE put_Weight(
91         SHORT weight) = 0;
92
93     virtual HRESULT STDMETHODCALLTYPE get_Charset(
94         SHORT* pcharset) = 0;
95
96     virtual HRESULT STDMETHODCALLTYPE put_Charset(
97         SHORT charset) = 0;
98
99     virtual HRESULT STDMETHODCALLTYPE get_hFont(
100         HFONT* phfont) = 0;
101
102     virtual HRESULT STDMETHODCALLTYPE Clone(
103         IFont** ppfont) = 0;
104
105     virtual HRESULT STDMETHODCALLTYPE IsEqual(
106         IFont* pFontOther) = 0;
107
108     virtual HRESULT STDMETHODCALLTYPE SetRatio(
109         LONG cyLogical,
110         LONG cyHimetric) = 0;
111
112     virtual HRESULT STDMETHODCALLTYPE QueryTextMetrics(
113         TEXTMETRICOLE* ptm) = 0;
114
115     virtual HRESULT STDMETHODCALLTYPE AddRefHfont(
116         HFONT hfont) = 0;
117
118     virtual HRESULT STDMETHODCALLTYPE ReleaseHfont(
119         HFONT hfont) = 0;
120
121     virtual HRESULT STDMETHODCALLTYPE SetHdc(
122         HDC hdc) = 0;
123
124 };
125 #else
126 typedef struct IFontVtbl IFontVtbl;
127 struct IFont {
128     const IFontVtbl* lpVtbl;
129 };
130 struct IFontVtbl {
131     ICOM_MSVTABLE_COMPAT_FIELDS
132
133     /*** IUnknown methods ***/
134     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
135         IFont* This,
136         REFIID riid,
137         void** ppvObject);
138
139     ULONG (STDMETHODCALLTYPE *AddRef)(
140         IFont* This);
141
142     ULONG (STDMETHODCALLTYPE *Release)(
143         IFont* This);
144
145     /*** IFont methods ***/
146     HRESULT (STDMETHODCALLTYPE *get_Name)(
147         IFont* This,
148         BSTR* pname);
149
150     HRESULT (STDMETHODCALLTYPE *put_Name)(
151         IFont* This,
152         BSTR name);
153
154     HRESULT (STDMETHODCALLTYPE *get_Size)(
155         IFont* This,
156         CY* psize);
157
158     HRESULT (STDMETHODCALLTYPE *put_Size)(
159         IFont* This,
160         CY size);
161
162     HRESULT (STDMETHODCALLTYPE *get_Bold)(
163         IFont* This,
164         BOOL* pbold);
165
166     HRESULT (STDMETHODCALLTYPE *put_Bold)(
167         IFont* This,
168         BOOL bold);
169
170     HRESULT (STDMETHODCALLTYPE *get_Italic)(
171         IFont* This,
172         BOOL* pitalic);
173
174     HRESULT (STDMETHODCALLTYPE *put_Italic)(
175         IFont* This,
176         BOOL italic);
177
178     HRESULT (STDMETHODCALLTYPE *get_Underline)(
179         IFont* This,
180         BOOL* punderline);
181
182     HRESULT (STDMETHODCALLTYPE *put_Underline)(
183         IFont* This,
184         BOOL underline);
185
186     HRESULT (STDMETHODCALLTYPE *get_Strikethrough)(
187         IFont* This,
188         BOOL* pstrikethrough);
189
190     HRESULT (STDMETHODCALLTYPE *put_Strikethrough)(
191         IFont* This,
192         BOOL strikethrough);
193
194     HRESULT (STDMETHODCALLTYPE *get_Weight)(
195         IFont* This,
196         SHORT* pweight);
197
198     HRESULT (STDMETHODCALLTYPE *put_Weight)(
199         IFont* This,
200         SHORT weight);
201
202     HRESULT (STDMETHODCALLTYPE *get_Charset)(
203         IFont* This,
204         SHORT* pcharset);
205
206     HRESULT (STDMETHODCALLTYPE *put_Charset)(
207         IFont* This,
208         SHORT charset);
209
210     HRESULT (STDMETHODCALLTYPE *get_hFont)(
211         IFont* This,
212         HFONT* phfont);
213
214     HRESULT (STDMETHODCALLTYPE *Clone)(
215         IFont* This,
216         IFont** ppfont);
217
218     HRESULT (STDMETHODCALLTYPE *IsEqual)(
219         IFont* This,
220         IFont* pFontOther);
221
222     HRESULT (STDMETHODCALLTYPE *SetRatio)(
223         IFont* This,
224         LONG cyLogical,
225         LONG cyHimetric);
226
227     HRESULT (STDMETHODCALLTYPE *QueryTextMetrics)(
228         IFont* This,
229         TEXTMETRICOLE* ptm);
230
231     HRESULT (STDMETHODCALLTYPE *AddRefHfont)(
232         IFont* This,
233         HFONT hfont);
234
235     HRESULT (STDMETHODCALLTYPE *ReleaseHfont)(
236         IFont* This,
237         HFONT hfont);
238
239     HRESULT (STDMETHODCALLTYPE *SetHdc)(
240         IFont* This,
241         HDC hdc);
242
243 };
244
245 /*** IUnknown methods ***/
246 #define IFont_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
247 #define IFont_AddRef(p) (p)->lpVtbl->AddRef(p)
248 #define IFont_Release(p) (p)->lpVtbl->Release(p)
249 /*** IFont methods ***/
250 #define IFont_get_Name(p,a) (p)->lpVtbl->get_Name(p,a)
251 #define IFont_put_Name(p,a) (p)->lpVtbl->put_Name(p,a)
252 #define IFont_get_Size(p,a) (p)->lpVtbl->get_Size(p,a)
253 #define IFont_put_Size(p,a) (p)->lpVtbl->put_Size(p,a)
254 #define IFont_get_Bold(p,a) (p)->lpVtbl->get_Bold(p,a)
255 #define IFont_put_Bold(p,a) (p)->lpVtbl->put_Bold(p,a)
256 #define IFont_get_Italic(p,a) (p)->lpVtbl->get_Italic(p,a)
257 #define IFont_put_Italic(p,a) (p)->lpVtbl->put_Italic(p,a)
258 #define IFont_get_Underline(p,a) (p)->lpVtbl->get_Underline(p,a)
259 #define IFont_put_Underline(p,a) (p)->lpVtbl->put_Underline(p,a)
260 #define IFont_get_Strikethrough(p,a) (p)->lpVtbl->get_Strikethrough(p,a)
261 #define IFont_put_Strikethrough(p,a) (p)->lpVtbl->put_Strikethrough(p,a)
262 #define IFont_get_Weight(p,a) (p)->lpVtbl->get_Weight(p,a)
263 #define IFont_put_Weight(p,a) (p)->lpVtbl->put_Weight(p,a)
264 #define IFont_get_Charset(p,a) (p)->lpVtbl->get_Charset(p,a)
265 #define IFont_put_Charset(p,a) (p)->lpVtbl->put_Charset(p,a)
266 #define IFont_get_hFont(p,a) (p)->lpVtbl->get_hFont(p,a)
267 #define IFont_Clone(p,a) (p)->lpVtbl->Clone(p,a)
268 #define IFont_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
269 #define IFont_SetRatio(p,a,b) (p)->lpVtbl->SetRatio(p,a,b)
270 #define IFont_QueryTextMetrics(p,a) (p)->lpVtbl->QueryTextMetrics(p,a)
271 #define IFont_AddRefHfont(p,a) (p)->lpVtbl->AddRefHfont(p,a)
272 #define IFont_ReleaseHfont(p,a) (p)->lpVtbl->ReleaseHfont(p,a)
273 #define IFont_SetHdc(p,a) (p)->lpVtbl->SetHdc(p,a)
274
275 #endif
276
277 #define IFont_METHODS \
278     ICOM_MSVTABLE_COMPAT_FIELDS \
279     /*** IUnknown methods ***/ \
280     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
281     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
282     STDMETHOD_(ULONG,Release)(THIS) PURE; \
283     /*** IFont methods ***/ \
284     STDMETHOD_(HRESULT,get_Name)(THIS_ BSTR* pname) PURE; \
285     STDMETHOD_(HRESULT,put_Name)(THIS_ BSTR name) PURE; \
286     STDMETHOD_(HRESULT,get_Size)(THIS_ CY* psize) PURE; \
287     STDMETHOD_(HRESULT,put_Size)(THIS_ CY size) PURE; \
288     STDMETHOD_(HRESULT,get_Bold)(THIS_ BOOL* pbold) PURE; \
289     STDMETHOD_(HRESULT,put_Bold)(THIS_ BOOL bold) PURE; \
290     STDMETHOD_(HRESULT,get_Italic)(THIS_ BOOL* pitalic) PURE; \
291     STDMETHOD_(HRESULT,put_Italic)(THIS_ BOOL italic) PURE; \
292     STDMETHOD_(HRESULT,get_Underline)(THIS_ BOOL* punderline) PURE; \
293     STDMETHOD_(HRESULT,put_Underline)(THIS_ BOOL underline) PURE; \
294     STDMETHOD_(HRESULT,get_Strikethrough)(THIS_ BOOL* pstrikethrough) PURE; \
295     STDMETHOD_(HRESULT,put_Strikethrough)(THIS_ BOOL strikethrough) PURE; \
296     STDMETHOD_(HRESULT,get_Weight)(THIS_ SHORT* pweight) PURE; \
297     STDMETHOD_(HRESULT,put_Weight)(THIS_ SHORT weight) PURE; \
298     STDMETHOD_(HRESULT,get_Charset)(THIS_ SHORT* pcharset) PURE; \
299     STDMETHOD_(HRESULT,put_Charset)(THIS_ SHORT charset) PURE; \
300     STDMETHOD_(HRESULT,get_hFont)(THIS_ HFONT* phfont) PURE; \
301     STDMETHOD_(HRESULT,Clone)(THIS_ IFont** ppfont) PURE; \
302     STDMETHOD_(HRESULT,IsEqual)(THIS_ IFont* pFontOther) PURE; \
303     STDMETHOD_(HRESULT,SetRatio)(THIS_ LONG cyLogical, LONG cyHimetric) PURE; \
304     STDMETHOD_(HRESULT,QueryTextMetrics)(THIS_ TEXTMETRICOLE* ptm) PURE; \
305     STDMETHOD_(HRESULT,AddRefHfont)(THIS_ HFONT hfont) PURE; \
306     STDMETHOD_(HRESULT,ReleaseHfont)(THIS_ HFONT hfont) PURE; \
307     STDMETHOD_(HRESULT,SetHdc)(THIS_ HDC hdc) PURE;
308
309 HRESULT CALLBACK IFont_get_Name_Proxy(
310     IFont* This,
311     BSTR* pname);
312 void __RPC_STUB IFont_get_Name_Stub(
313     struct IRpcStubBuffer* This,
314     struct IRpcChannelBuffer* pRpcChannelBuffer,
315     PRPC_MESSAGE pRpcMessage,
316     DWORD* pdwStubPhase);
317 HRESULT CALLBACK IFont_put_Name_Proxy(
318     IFont* This,
319     BSTR name);
320 void __RPC_STUB IFont_put_Name_Stub(
321     struct IRpcStubBuffer* This,
322     struct IRpcChannelBuffer* pRpcChannelBuffer,
323     PRPC_MESSAGE pRpcMessage,
324     DWORD* pdwStubPhase);
325 HRESULT CALLBACK IFont_get_Size_Proxy(
326     IFont* This,
327     CY* psize);
328 void __RPC_STUB IFont_get_Size_Stub(
329     struct IRpcStubBuffer* This,
330     struct IRpcChannelBuffer* pRpcChannelBuffer,
331     PRPC_MESSAGE pRpcMessage,
332     DWORD* pdwStubPhase);
333 HRESULT CALLBACK IFont_put_Size_Proxy(
334     IFont* This,
335     CY size);
336 void __RPC_STUB IFont_put_Size_Stub(
337     struct IRpcStubBuffer* This,
338     struct IRpcChannelBuffer* pRpcChannelBuffer,
339     PRPC_MESSAGE pRpcMessage,
340     DWORD* pdwStubPhase);
341 HRESULT CALLBACK IFont_get_Bold_Proxy(
342     IFont* This,
343     BOOL* pbold);
344 void __RPC_STUB IFont_get_Bold_Stub(
345     struct IRpcStubBuffer* This,
346     struct IRpcChannelBuffer* pRpcChannelBuffer,
347     PRPC_MESSAGE pRpcMessage,
348     DWORD* pdwStubPhase);
349 HRESULT CALLBACK IFont_put_Bold_Proxy(
350     IFont* This,
351     BOOL bold);
352 void __RPC_STUB IFont_put_Bold_Stub(
353     struct IRpcStubBuffer* This,
354     struct IRpcChannelBuffer* pRpcChannelBuffer,
355     PRPC_MESSAGE pRpcMessage,
356     DWORD* pdwStubPhase);
357 HRESULT CALLBACK IFont_get_Italic_Proxy(
358     IFont* This,
359     BOOL* pitalic);
360 void __RPC_STUB IFont_get_Italic_Stub(
361     struct IRpcStubBuffer* This,
362     struct IRpcChannelBuffer* pRpcChannelBuffer,
363     PRPC_MESSAGE pRpcMessage,
364     DWORD* pdwStubPhase);
365 HRESULT CALLBACK IFont_put_Italic_Proxy(
366     IFont* This,
367     BOOL italic);
368 void __RPC_STUB IFont_put_Italic_Stub(
369     struct IRpcStubBuffer* This,
370     struct IRpcChannelBuffer* pRpcChannelBuffer,
371     PRPC_MESSAGE pRpcMessage,
372     DWORD* pdwStubPhase);
373 HRESULT CALLBACK IFont_get_Underline_Proxy(
374     IFont* This,
375     BOOL* punderline);
376 void __RPC_STUB IFont_get_Underline_Stub(
377     struct IRpcStubBuffer* This,
378     struct IRpcChannelBuffer* pRpcChannelBuffer,
379     PRPC_MESSAGE pRpcMessage,
380     DWORD* pdwStubPhase);
381 HRESULT CALLBACK IFont_put_Underline_Proxy(
382     IFont* This,
383     BOOL underline);
384 void __RPC_STUB IFont_put_Underline_Stub(
385     struct IRpcStubBuffer* This,
386     struct IRpcChannelBuffer* pRpcChannelBuffer,
387     PRPC_MESSAGE pRpcMessage,
388     DWORD* pdwStubPhase);
389 HRESULT CALLBACK IFont_get_Strikethrough_Proxy(
390     IFont* This,
391     BOOL* pstrikethrough);
392 void __RPC_STUB IFont_get_Strikethrough_Stub(
393     struct IRpcStubBuffer* This,
394     struct IRpcChannelBuffer* pRpcChannelBuffer,
395     PRPC_MESSAGE pRpcMessage,
396     DWORD* pdwStubPhase);
397 HRESULT CALLBACK IFont_put_Strikethrough_Proxy(
398     IFont* This,
399     BOOL strikethrough);
400 void __RPC_STUB IFont_put_Strikethrough_Stub(
401     struct IRpcStubBuffer* This,
402     struct IRpcChannelBuffer* pRpcChannelBuffer,
403     PRPC_MESSAGE pRpcMessage,
404     DWORD* pdwStubPhase);
405 HRESULT CALLBACK IFont_get_Weight_Proxy(
406     IFont* This,
407     SHORT* pweight);
408 void __RPC_STUB IFont_get_Weight_Stub(
409     struct IRpcStubBuffer* This,
410     struct IRpcChannelBuffer* pRpcChannelBuffer,
411     PRPC_MESSAGE pRpcMessage,
412     DWORD* pdwStubPhase);
413 HRESULT CALLBACK IFont_put_Weight_Proxy(
414     IFont* This,
415     SHORT weight);
416 void __RPC_STUB IFont_put_Weight_Stub(
417     struct IRpcStubBuffer* This,
418     struct IRpcChannelBuffer* pRpcChannelBuffer,
419     PRPC_MESSAGE pRpcMessage,
420     DWORD* pdwStubPhase);
421 HRESULT CALLBACK IFont_get_Charset_Proxy(
422     IFont* This,
423     SHORT* pcharset);
424 void __RPC_STUB IFont_get_Charset_Stub(
425     struct IRpcStubBuffer* This,
426     struct IRpcChannelBuffer* pRpcChannelBuffer,
427     PRPC_MESSAGE pRpcMessage,
428     DWORD* pdwStubPhase);
429 HRESULT CALLBACK IFont_put_Charset_Proxy(
430     IFont* This,
431     SHORT charset);
432 void __RPC_STUB IFont_put_Charset_Stub(
433     struct IRpcStubBuffer* This,
434     struct IRpcChannelBuffer* pRpcChannelBuffer,
435     PRPC_MESSAGE pRpcMessage,
436     DWORD* pdwStubPhase);
437 HRESULT CALLBACK IFont_get_hFont_Proxy(
438     IFont* This,
439     HFONT* phfont);
440 void __RPC_STUB IFont_get_hFont_Stub(
441     struct IRpcStubBuffer* This,
442     struct IRpcChannelBuffer* pRpcChannelBuffer,
443     PRPC_MESSAGE pRpcMessage,
444     DWORD* pdwStubPhase);
445 HRESULT CALLBACK IFont_Clone_Proxy(
446     IFont* This,
447     IFont** ppfont);
448 void __RPC_STUB IFont_Clone_Stub(
449     struct IRpcStubBuffer* This,
450     struct IRpcChannelBuffer* pRpcChannelBuffer,
451     PRPC_MESSAGE pRpcMessage,
452     DWORD* pdwStubPhase);
453 HRESULT CALLBACK IFont_IsEqual_Proxy(
454     IFont* This,
455     IFont* pFontOther);
456 void __RPC_STUB IFont_IsEqual_Stub(
457     struct IRpcStubBuffer* This,
458     struct IRpcChannelBuffer* pRpcChannelBuffer,
459     PRPC_MESSAGE pRpcMessage,
460     DWORD* pdwStubPhase);
461 HRESULT CALLBACK IFont_SetRatio_Proxy(
462     IFont* This,
463     LONG cyLogical,
464     LONG cyHimetric);
465 void __RPC_STUB IFont_SetRatio_Stub(
466     struct IRpcStubBuffer* This,
467     struct IRpcChannelBuffer* pRpcChannelBuffer,
468     PRPC_MESSAGE pRpcMessage,
469     DWORD* pdwStubPhase);
470 HRESULT CALLBACK IFont_QueryTextMetrics_Proxy(
471     IFont* This,
472     TEXTMETRICOLE* ptm);
473 void __RPC_STUB IFont_QueryTextMetrics_Stub(
474     struct IRpcStubBuffer* This,
475     struct IRpcChannelBuffer* pRpcChannelBuffer,
476     PRPC_MESSAGE pRpcMessage,
477     DWORD* pdwStubPhase);
478 HRESULT CALLBACK IFont_AddRefHfont_Proxy(
479     IFont* This,
480     HFONT hfont);
481 void __RPC_STUB IFont_AddRefHfont_Stub(
482     struct IRpcStubBuffer* This,
483     struct IRpcChannelBuffer* pRpcChannelBuffer,
484     PRPC_MESSAGE pRpcMessage,
485     DWORD* pdwStubPhase);
486 HRESULT CALLBACK IFont_ReleaseHfont_Proxy(
487     IFont* This,
488     HFONT hfont);
489 void __RPC_STUB IFont_ReleaseHfont_Stub(
490     struct IRpcStubBuffer* This,
491     struct IRpcChannelBuffer* pRpcChannelBuffer,
492     PRPC_MESSAGE pRpcMessage,
493     DWORD* pdwStubPhase);
494 HRESULT CALLBACK IFont_SetHdc_Proxy(
495     IFont* This,
496     HDC hdc);
497 void __RPC_STUB IFont_SetHdc_Stub(
498     struct IRpcStubBuffer* This,
499     struct IRpcChannelBuffer* pRpcChannelBuffer,
500     PRPC_MESSAGE pRpcMessage,
501     DWORD* pdwStubPhase);
502
503 #endif  /* __IFont_INTERFACE_DEFINED__ */
504
505 #ifndef __IFontDisp_FWD_DEFINED__
506 #define __IFontDisp_FWD_DEFINED__
507 typedef struct IFontDisp IFontDisp;
508 #endif
509
510 typedef IFontDisp *LPFONTDISP;
511
512 /*****************************************************************************
513  * IFontDisp interface
514  */
515 #ifndef __IFontDisp_INTERFACE_DEFINED__
516 #define __IFontDisp_INTERFACE_DEFINED__
517
518 DEFINE_GUID(IID_IFontDisp, 0xbef6e003, 0xa874, 0x101a, 0x8b,0xba, 0x00,0xaa,0x00,0x30,0x0c,0xab);
519 #if defined(__cplusplus) && !defined(CINTERFACE)
520 struct IFontDisp : public IDispatch
521 {
522 };
523 #else
524 typedef struct IFontDispVtbl IFontDispVtbl;
525 struct IFontDisp {
526     const IFontDispVtbl* lpVtbl;
527 };
528 struct IFontDispVtbl {
529     ICOM_MSVTABLE_COMPAT_FIELDS
530
531     /*** IUnknown methods ***/
532     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
533         IFontDisp* This,
534         REFIID riid,
535         void** ppvObject);
536
537     ULONG (STDMETHODCALLTYPE *AddRef)(
538         IFontDisp* This);
539
540     ULONG (STDMETHODCALLTYPE *Release)(
541         IFontDisp* This);
542
543     /*** IDispatch methods ***/
544     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
545         IFontDisp* This,
546         UINT* pctinfo);
547
548     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
549         IFontDisp* This,
550         UINT iTInfo,
551         LCID lcid,
552         ITypeInfo** ppTInfo);
553
554     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
555         IFontDisp* This,
556         REFIID riid,
557         LPOLESTR* rgszNames,
558         UINT cNames,
559         LCID lcid,
560         DISPID* rgDispId);
561
562     HRESULT (STDMETHODCALLTYPE *Invoke)(
563         IFontDisp* This,
564         DISPID dispIdMember,
565         REFIID riid,
566         LCID lcid,
567         WORD wFlags,
568         DISPPARAMS* pDispParams,
569         VARIANT* pVarResult,
570         EXCEPINFO* pExcepInfo,
571         UINT* puArgErr);
572
573 };
574
575 /*** IUnknown methods ***/
576 #define IFontDisp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
577 #define IFontDisp_AddRef(p) (p)->lpVtbl->AddRef(p)
578 #define IFontDisp_Release(p) (p)->lpVtbl->Release(p)
579 /*** IDispatch methods ***/
580 #define IFontDisp_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
581 #define IFontDisp_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
582 #define IFontDisp_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
583 #define IFontDisp_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
584
585 #endif
586
587 #define IFontDisp_METHODS \
588     ICOM_MSVTABLE_COMPAT_FIELDS \
589     /*** IUnknown methods ***/ \
590     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
591     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
592     STDMETHOD_(ULONG,Release)(THIS) PURE; \
593     /*** IDispatch methods ***/ \
594     STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ UINT* pctinfo) PURE; \
595     STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) PURE; \
596     STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) PURE; \
597     STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE;
598
599
600 #endif  /* __IFontDisp_INTERFACE_DEFINED__ */
601
602 #ifndef __IPicture_FWD_DEFINED__
603 #define __IPicture_FWD_DEFINED__
604 typedef struct IPicture IPicture;
605 #endif
606
607 typedef IPicture *LPPICTURE;
608
609 typedef enum tagPicture {
610     PICTURE_SCALABLE = 0x1,
611     PICTURE_TRANSPARENT = 0x2
612 } PICTUREATTRIBUTES;
613
614 typedef UINT OLE_HANDLE;
615
616 typedef LONG OLE_XPOS_HIMETRIC;
617
618 typedef LONG OLE_YPOS_HIMETRIC;
619
620 typedef LONG OLE_XSIZE_HIMETRIC;
621
622 typedef LONG OLE_YSIZE_HIMETRIC;
623
624 /*****************************************************************************
625  * IPicture interface
626  */
627 #ifndef __IPicture_INTERFACE_DEFINED__
628 #define __IPicture_INTERFACE_DEFINED__
629
630 DEFINE_GUID(IID_IPicture, 0x7bf80980, 0xbf32, 0x101a, 0x8b,0xbb, 0x00,0xaa,0x00,0x30,0x0c,0xab);
631 #if defined(__cplusplus) && !defined(CINTERFACE)
632 struct IPicture : public IUnknown
633 {
634     virtual HRESULT STDMETHODCALLTYPE get_Handle(
635         OLE_HANDLE* pHandle) = 0;
636
637     virtual HRESULT STDMETHODCALLTYPE get_hPal(
638         OLE_HANDLE* phPal) = 0;
639
640     virtual HRESULT STDMETHODCALLTYPE get_Type(
641         SHORT* pType) = 0;
642
643     virtual HRESULT STDMETHODCALLTYPE get_Width(
644         OLE_XSIZE_HIMETRIC* pWidth) = 0;
645
646     virtual HRESULT STDMETHODCALLTYPE get_Height(
647         OLE_YSIZE_HIMETRIC* pHeight) = 0;
648
649     virtual HRESULT STDMETHODCALLTYPE Render(
650         HDC hdc,
651         LONG x,
652         LONG y,
653         LONG cx,
654         LONG cy,
655         OLE_XPOS_HIMETRIC xSrc,
656         OLE_YPOS_HIMETRIC ySrc,
657         OLE_XSIZE_HIMETRIC cxSrc,
658         OLE_YSIZE_HIMETRIC cySrc,
659         LPCRECT pRcWBounds) = 0;
660
661     virtual HRESULT STDMETHODCALLTYPE set_hPal(
662         OLE_HANDLE hPal) = 0;
663
664     virtual HRESULT STDMETHODCALLTYPE get_CurDC(
665         HDC* phDC) = 0;
666
667     virtual HRESULT STDMETHODCALLTYPE SelectPicture(
668         HDC hDCIn,
669         HDC* phDCOut,
670         OLE_HANDLE* phBmpOut) = 0;
671
672     virtual HRESULT STDMETHODCALLTYPE get_KeepOriginalFormat(
673         BOOL* pKeep) = 0;
674
675     virtual HRESULT STDMETHODCALLTYPE put_KeepOriginalFormat(
676         BOOL keep) = 0;
677
678     virtual HRESULT STDMETHODCALLTYPE PictureChanged(
679         ) = 0;
680
681     virtual HRESULT STDMETHODCALLTYPE SaveAsFile(
682         LPSTREAM pStream,
683         BOOL fSaveMemCopy,
684         LONG* pCbSize) = 0;
685
686     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
687         DWORD* pDwAttr) = 0;
688
689 };
690 #else
691 typedef struct IPictureVtbl IPictureVtbl;
692 struct IPicture {
693     const IPictureVtbl* lpVtbl;
694 };
695 struct IPictureVtbl {
696     ICOM_MSVTABLE_COMPAT_FIELDS
697
698     /*** IUnknown methods ***/
699     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
700         IPicture* This,
701         REFIID riid,
702         void** ppvObject);
703
704     ULONG (STDMETHODCALLTYPE *AddRef)(
705         IPicture* This);
706
707     ULONG (STDMETHODCALLTYPE *Release)(
708         IPicture* This);
709
710     /*** IPicture methods ***/
711     HRESULT (STDMETHODCALLTYPE *get_Handle)(
712         IPicture* This,
713         OLE_HANDLE* pHandle);
714
715     HRESULT (STDMETHODCALLTYPE *get_hPal)(
716         IPicture* This,
717         OLE_HANDLE* phPal);
718
719     HRESULT (STDMETHODCALLTYPE *get_Type)(
720         IPicture* This,
721         SHORT* pType);
722
723     HRESULT (STDMETHODCALLTYPE *get_Width)(
724         IPicture* This,
725         OLE_XSIZE_HIMETRIC* pWidth);
726
727     HRESULT (STDMETHODCALLTYPE *get_Height)(
728         IPicture* This,
729         OLE_YSIZE_HIMETRIC* pHeight);
730
731     HRESULT (STDMETHODCALLTYPE *Render)(
732         IPicture* This,
733         HDC hdc,
734         LONG x,
735         LONG y,
736         LONG cx,
737         LONG cy,
738         OLE_XPOS_HIMETRIC xSrc,
739         OLE_YPOS_HIMETRIC ySrc,
740         OLE_XSIZE_HIMETRIC cxSrc,
741         OLE_YSIZE_HIMETRIC cySrc,
742         LPCRECT pRcWBounds);
743
744     HRESULT (STDMETHODCALLTYPE *set_hPal)(
745         IPicture* This,
746         OLE_HANDLE hPal);
747
748     HRESULT (STDMETHODCALLTYPE *get_CurDC)(
749         IPicture* This,
750         HDC* phDC);
751
752     HRESULT (STDMETHODCALLTYPE *SelectPicture)(
753         IPicture* This,
754         HDC hDCIn,
755         HDC* phDCOut,
756         OLE_HANDLE* phBmpOut);
757
758     HRESULT (STDMETHODCALLTYPE *get_KeepOriginalFormat)(
759         IPicture* This,
760         BOOL* pKeep);
761
762     HRESULT (STDMETHODCALLTYPE *put_KeepOriginalFormat)(
763         IPicture* This,
764         BOOL keep);
765
766     HRESULT (STDMETHODCALLTYPE *PictureChanged)(
767         IPicture* This);
768
769     HRESULT (STDMETHODCALLTYPE *SaveAsFile)(
770         IPicture* This,
771         LPSTREAM pStream,
772         BOOL fSaveMemCopy,
773         LONG* pCbSize);
774
775     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
776         IPicture* This,
777         DWORD* pDwAttr);
778
779 };
780
781 /*** IUnknown methods ***/
782 #define IPicture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
783 #define IPicture_AddRef(p) (p)->lpVtbl->AddRef(p)
784 #define IPicture_Release(p) (p)->lpVtbl->Release(p)
785 /*** IPicture methods ***/
786 #define IPicture_get_Handle(p,a) (p)->lpVtbl->get_Handle(p,a)
787 #define IPicture_get_hPal(p,a) (p)->lpVtbl->get_hPal(p,a)
788 #define IPicture_get_Type(p,a) (p)->lpVtbl->get_Type(p,a)
789 #define IPicture_get_Width(p,a) (p)->lpVtbl->get_Width(p,a)
790 #define IPicture_get_Height(p,a) (p)->lpVtbl->get_Height(p,a)
791 #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)
792 #define IPicture_set_hPal(p,a) (p)->lpVtbl->set_hPal(p,a)
793 #define IPicture_get_CurDC(p,a) (p)->lpVtbl->get_CurDC(p,a)
794 #define IPicture_SelectPicture(p,a,b,c) (p)->lpVtbl->SelectPicture(p,a,b,c)
795 #define IPicture_get_KeepOriginalFormat(p,a) (p)->lpVtbl->get_KeepOriginalFormat(p,a)
796 #define IPicture_put_KeepOriginalFormat(p,a) (p)->lpVtbl->put_KeepOriginalFormat(p,a)
797 #define IPicture_PictureChanged(p) (p)->lpVtbl->PictureChanged(p)
798 #define IPicture_SaveAsFile(p,a,b,c) (p)->lpVtbl->SaveAsFile(p,a,b,c)
799 #define IPicture_get_Attributes(p,a) (p)->lpVtbl->get_Attributes(p,a)
800
801 #endif
802
803 #define IPicture_METHODS \
804     ICOM_MSVTABLE_COMPAT_FIELDS \
805     /*** IUnknown methods ***/ \
806     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
807     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
808     STDMETHOD_(ULONG,Release)(THIS) PURE; \
809     /*** IPicture methods ***/ \
810     STDMETHOD_(HRESULT,get_Handle)(THIS_ OLE_HANDLE* pHandle) PURE; \
811     STDMETHOD_(HRESULT,get_hPal)(THIS_ OLE_HANDLE* phPal) PURE; \
812     STDMETHOD_(HRESULT,get_Type)(THIS_ SHORT* pType) PURE; \
813     STDMETHOD_(HRESULT,get_Width)(THIS_ OLE_XSIZE_HIMETRIC* pWidth) PURE; \
814     STDMETHOD_(HRESULT,get_Height)(THIS_ OLE_YSIZE_HIMETRIC* pHeight) PURE; \
815     STDMETHOD_(HRESULT,Render)(THIS_ HDC hdc, LONG x, LONG y, LONG cx, LONG cy, OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc, OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc, LPCRECT pRcWBounds) PURE; \
816     STDMETHOD_(HRESULT,set_hPal)(THIS_ OLE_HANDLE hPal) PURE; \
817     STDMETHOD_(HRESULT,get_CurDC)(THIS_ HDC* phDC) PURE; \
818     STDMETHOD_(HRESULT,SelectPicture)(THIS_ HDC hDCIn, HDC* phDCOut, OLE_HANDLE* phBmpOut) PURE; \
819     STDMETHOD_(HRESULT,get_KeepOriginalFormat)(THIS_ BOOL* pKeep) PURE; \
820     STDMETHOD_(HRESULT,put_KeepOriginalFormat)(THIS_ BOOL keep) PURE; \
821     STDMETHOD_(HRESULT,PictureChanged)(THIS) PURE; \
822     STDMETHOD_(HRESULT,SaveAsFile)(THIS_ LPSTREAM pStream, BOOL fSaveMemCopy, LONG* pCbSize) PURE; \
823     STDMETHOD_(HRESULT,get_Attributes)(THIS_ DWORD* pDwAttr) PURE;
824
825 HRESULT CALLBACK IPicture_get_Handle_Proxy(
826     IPicture* This,
827     OLE_HANDLE* pHandle);
828 void __RPC_STUB IPicture_get_Handle_Stub(
829     struct IRpcStubBuffer* This,
830     struct IRpcChannelBuffer* pRpcChannelBuffer,
831     PRPC_MESSAGE pRpcMessage,
832     DWORD* pdwStubPhase);
833 HRESULT CALLBACK IPicture_get_hPal_Proxy(
834     IPicture* This,
835     OLE_HANDLE* phPal);
836 void __RPC_STUB IPicture_get_hPal_Stub(
837     struct IRpcStubBuffer* This,
838     struct IRpcChannelBuffer* pRpcChannelBuffer,
839     PRPC_MESSAGE pRpcMessage,
840     DWORD* pdwStubPhase);
841 HRESULT CALLBACK IPicture_get_Type_Proxy(
842     IPicture* This,
843     SHORT* pType);
844 void __RPC_STUB IPicture_get_Type_Stub(
845     struct IRpcStubBuffer* This,
846     struct IRpcChannelBuffer* pRpcChannelBuffer,
847     PRPC_MESSAGE pRpcMessage,
848     DWORD* pdwStubPhase);
849 HRESULT CALLBACK IPicture_get_Width_Proxy(
850     IPicture* This,
851     OLE_XSIZE_HIMETRIC* pWidth);
852 void __RPC_STUB IPicture_get_Width_Stub(
853     struct IRpcStubBuffer* This,
854     struct IRpcChannelBuffer* pRpcChannelBuffer,
855     PRPC_MESSAGE pRpcMessage,
856     DWORD* pdwStubPhase);
857 HRESULT CALLBACK IPicture_get_Height_Proxy(
858     IPicture* This,
859     OLE_YSIZE_HIMETRIC* pHeight);
860 void __RPC_STUB IPicture_get_Height_Stub(
861     struct IRpcStubBuffer* This,
862     struct IRpcChannelBuffer* pRpcChannelBuffer,
863     PRPC_MESSAGE pRpcMessage,
864     DWORD* pdwStubPhase);
865 HRESULT CALLBACK IPicture_Render_Proxy(
866     IPicture* This,
867     HDC hdc,
868     LONG x,
869     LONG y,
870     LONG cx,
871     LONG cy,
872     OLE_XPOS_HIMETRIC xSrc,
873     OLE_YPOS_HIMETRIC ySrc,
874     OLE_XSIZE_HIMETRIC cxSrc,
875     OLE_YSIZE_HIMETRIC cySrc,
876     LPCRECT pRcWBounds);
877 void __RPC_STUB IPicture_Render_Stub(
878     struct IRpcStubBuffer* This,
879     struct IRpcChannelBuffer* pRpcChannelBuffer,
880     PRPC_MESSAGE pRpcMessage,
881     DWORD* pdwStubPhase);
882 HRESULT CALLBACK IPicture_set_hPal_Proxy(
883     IPicture* This,
884     OLE_HANDLE hPal);
885 void __RPC_STUB IPicture_set_hPal_Stub(
886     struct IRpcStubBuffer* This,
887     struct IRpcChannelBuffer* pRpcChannelBuffer,
888     PRPC_MESSAGE pRpcMessage,
889     DWORD* pdwStubPhase);
890 HRESULT CALLBACK IPicture_get_CurDC_Proxy(
891     IPicture* This,
892     HDC* phDC);
893 void __RPC_STUB IPicture_get_CurDC_Stub(
894     struct IRpcStubBuffer* This,
895     struct IRpcChannelBuffer* pRpcChannelBuffer,
896     PRPC_MESSAGE pRpcMessage,
897     DWORD* pdwStubPhase);
898 HRESULT CALLBACK IPicture_SelectPicture_Proxy(
899     IPicture* This,
900     HDC hDCIn,
901     HDC* phDCOut,
902     OLE_HANDLE* phBmpOut);
903 void __RPC_STUB IPicture_SelectPicture_Stub(
904     struct IRpcStubBuffer* This,
905     struct IRpcChannelBuffer* pRpcChannelBuffer,
906     PRPC_MESSAGE pRpcMessage,
907     DWORD* pdwStubPhase);
908 HRESULT CALLBACK IPicture_get_KeepOriginalFormat_Proxy(
909     IPicture* This,
910     BOOL* pKeep);
911 void __RPC_STUB IPicture_get_KeepOriginalFormat_Stub(
912     struct IRpcStubBuffer* This,
913     struct IRpcChannelBuffer* pRpcChannelBuffer,
914     PRPC_MESSAGE pRpcMessage,
915     DWORD* pdwStubPhase);
916 HRESULT CALLBACK IPicture_put_KeepOriginalFormat_Proxy(
917     IPicture* This,
918     BOOL keep);
919 void __RPC_STUB IPicture_put_KeepOriginalFormat_Stub(
920     struct IRpcStubBuffer* This,
921     struct IRpcChannelBuffer* pRpcChannelBuffer,
922     PRPC_MESSAGE pRpcMessage,
923     DWORD* pdwStubPhase);
924 HRESULT CALLBACK IPicture_PictureChanged_Proxy(
925     IPicture* This);
926 void __RPC_STUB IPicture_PictureChanged_Stub(
927     struct IRpcStubBuffer* This,
928     struct IRpcChannelBuffer* pRpcChannelBuffer,
929     PRPC_MESSAGE pRpcMessage,
930     DWORD* pdwStubPhase);
931 HRESULT CALLBACK IPicture_SaveAsFile_Proxy(
932     IPicture* This,
933     LPSTREAM pStream,
934     BOOL fSaveMemCopy,
935     LONG* pCbSize);
936 void __RPC_STUB IPicture_SaveAsFile_Stub(
937     struct IRpcStubBuffer* This,
938     struct IRpcChannelBuffer* pRpcChannelBuffer,
939     PRPC_MESSAGE pRpcMessage,
940     DWORD* pdwStubPhase);
941 HRESULT CALLBACK IPicture_get_Attributes_Proxy(
942     IPicture* This,
943     DWORD* pDwAttr);
944 void __RPC_STUB IPicture_get_Attributes_Stub(
945     struct IRpcStubBuffer* This,
946     struct IRpcChannelBuffer* pRpcChannelBuffer,
947     PRPC_MESSAGE pRpcMessage,
948     DWORD* pdwStubPhase);
949
950 #endif  /* __IPicture_INTERFACE_DEFINED__ */
951
952 #ifndef __IPictureDisp_FWD_DEFINED__
953 #define __IPictureDisp_FWD_DEFINED__
954 typedef struct IPictureDisp IPictureDisp;
955 #endif
956
957 typedef IPictureDisp *LPPICTUREDISP;
958
959 /*****************************************************************************
960  * IPictureDisp interface
961  */
962 #ifndef __IPictureDisp_INTERFACE_DEFINED__
963 #define __IPictureDisp_INTERFACE_DEFINED__
964
965 DEFINE_GUID(IID_IPictureDisp, 0x7bf80981, 0xbf32, 0x101a, 0x8b,0xbb, 0x00,0xaa,0x00,0x30,0x0c,0xab);
966 #if defined(__cplusplus) && !defined(CINTERFACE)
967 struct IPictureDisp : public IDispatch
968 {
969 };
970 #else
971 typedef struct IPictureDispVtbl IPictureDispVtbl;
972 struct IPictureDisp {
973     const IPictureDispVtbl* lpVtbl;
974 };
975 struct IPictureDispVtbl {
976     ICOM_MSVTABLE_COMPAT_FIELDS
977
978     /*** IUnknown methods ***/
979     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
980         IPictureDisp* This,
981         REFIID riid,
982         void** ppvObject);
983
984     ULONG (STDMETHODCALLTYPE *AddRef)(
985         IPictureDisp* This);
986
987     ULONG (STDMETHODCALLTYPE *Release)(
988         IPictureDisp* This);
989
990     /*** IDispatch methods ***/
991     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
992         IPictureDisp* This,
993         UINT* pctinfo);
994
995     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
996         IPictureDisp* This,
997         UINT iTInfo,
998         LCID lcid,
999         ITypeInfo** ppTInfo);
1000
1001     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1002         IPictureDisp* This,
1003         REFIID riid,
1004         LPOLESTR* rgszNames,
1005         UINT cNames,
1006         LCID lcid,
1007         DISPID* rgDispId);
1008
1009     HRESULT (STDMETHODCALLTYPE *Invoke)(
1010         IPictureDisp* This,
1011         DISPID dispIdMember,
1012         REFIID riid,
1013         LCID lcid,
1014         WORD wFlags,
1015         DISPPARAMS* pDispParams,
1016         VARIANT* pVarResult,
1017         EXCEPINFO* pExcepInfo,
1018         UINT* puArgErr);
1019
1020 };
1021
1022 /*** IUnknown methods ***/
1023 #define IPictureDisp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1024 #define IPictureDisp_AddRef(p) (p)->lpVtbl->AddRef(p)
1025 #define IPictureDisp_Release(p) (p)->lpVtbl->Release(p)
1026 /*** IDispatch methods ***/
1027 #define IPictureDisp_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
1028 #define IPictureDisp_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
1029 #define IPictureDisp_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
1030 #define IPictureDisp_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
1031
1032 #endif
1033
1034 #define IPictureDisp_METHODS \
1035     ICOM_MSVTABLE_COMPAT_FIELDS \
1036     /*** IUnknown methods ***/ \
1037     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1038     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1039     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1040     /*** IDispatch methods ***/ \
1041     STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ UINT* pctinfo) PURE; \
1042     STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) PURE; \
1043     STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) PURE; \
1044     STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) PURE;
1045
1046
1047 #endif  /* __IPictureDisp_INTERFACE_DEFINED__ */
1048
1049 #ifndef __IOleControl_FWD_DEFINED__
1050 #define __IOleControl_FWD_DEFINED__
1051 typedef struct IOleControl IOleControl;
1052 #endif
1053
1054 typedef IOleControl *LPOLECONTROL;
1055
1056 typedef struct tagCONTROLINFO {
1057     ULONG cb;
1058     HACCEL hAccel;
1059     USHORT cAccel;
1060     DWORD dwFlags;
1061 } CONTROLINFO, *LPCONTROLINFO;
1062
1063 typedef enum tagCTRLINFO {
1064     CTRLINFO_EATS_RETURN = 1,
1065     CTRLINFO_EATS_ESCAPE = 2
1066 } CTRLINFO;
1067
1068 /*****************************************************************************
1069  * IOleControl interface
1070  */
1071 #ifndef __IOleControl_INTERFACE_DEFINED__
1072 #define __IOleControl_INTERFACE_DEFINED__
1073
1074 DEFINE_GUID(IID_IOleControl, 0xb196b288, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
1075 #if defined(__cplusplus) && !defined(CINTERFACE)
1076 struct IOleControl : public IUnknown
1077 {
1078     virtual HRESULT STDMETHODCALLTYPE GetControlInfo(
1079         CONTROLINFO* pCI) = 0;
1080
1081     virtual HRESULT STDMETHODCALLTYPE OnMnemonic(
1082         MSG* pMsg) = 0;
1083
1084     virtual HRESULT STDMETHODCALLTYPE OnAmbientPropertyChange(
1085         DISPID dispID) = 0;
1086
1087     virtual HRESULT STDMETHODCALLTYPE FreezeEvents(
1088         BOOL bFreeze) = 0;
1089
1090 };
1091 #else
1092 typedef struct IOleControlVtbl IOleControlVtbl;
1093 struct IOleControl {
1094     const IOleControlVtbl* lpVtbl;
1095 };
1096 struct IOleControlVtbl {
1097     ICOM_MSVTABLE_COMPAT_FIELDS
1098
1099     /*** IUnknown methods ***/
1100     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1101         IOleControl* This,
1102         REFIID riid,
1103         void** ppvObject);
1104
1105     ULONG (STDMETHODCALLTYPE *AddRef)(
1106         IOleControl* This);
1107
1108     ULONG (STDMETHODCALLTYPE *Release)(
1109         IOleControl* This);
1110
1111     /*** IOleControl methods ***/
1112     HRESULT (STDMETHODCALLTYPE *GetControlInfo)(
1113         IOleControl* This,
1114         CONTROLINFO* pCI);
1115
1116     HRESULT (STDMETHODCALLTYPE *OnMnemonic)(
1117         IOleControl* This,
1118         MSG* pMsg);
1119
1120     HRESULT (STDMETHODCALLTYPE *OnAmbientPropertyChange)(
1121         IOleControl* This,
1122         DISPID dispID);
1123
1124     HRESULT (STDMETHODCALLTYPE *FreezeEvents)(
1125         IOleControl* This,
1126         BOOL bFreeze);
1127
1128 };
1129
1130 /*** IUnknown methods ***/
1131 #define IOleControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1132 #define IOleControl_AddRef(p) (p)->lpVtbl->AddRef(p)
1133 #define IOleControl_Release(p) (p)->lpVtbl->Release(p)
1134 /*** IOleControl methods ***/
1135 #define IOleControl_GetControlInfo(p,a) (p)->lpVtbl->GetControlInfo(p,a)
1136 #define IOleControl_OnMnemonic(p,a) (p)->lpVtbl->OnMnemonic(p,a)
1137 #define IOleControl_OnAmbientPropertyChange(p,a) (p)->lpVtbl->OnAmbientPropertyChange(p,a)
1138 #define IOleControl_FreezeEvents(p,a) (p)->lpVtbl->FreezeEvents(p,a)
1139
1140 #endif
1141
1142 #define IOleControl_METHODS \
1143     ICOM_MSVTABLE_COMPAT_FIELDS \
1144     /*** IUnknown methods ***/ \
1145     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1146     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1147     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1148     /*** IOleControl methods ***/ \
1149     STDMETHOD_(HRESULT,GetControlInfo)(THIS_ CONTROLINFO* pCI) PURE; \
1150     STDMETHOD_(HRESULT,OnMnemonic)(THIS_ MSG* pMsg) PURE; \
1151     STDMETHOD_(HRESULT,OnAmbientPropertyChange)(THIS_ DISPID dispID) PURE; \
1152     STDMETHOD_(HRESULT,FreezeEvents)(THIS_ BOOL bFreeze) PURE;
1153
1154 HRESULT CALLBACK IOleControl_GetControlInfo_Proxy(
1155     IOleControl* This,
1156     CONTROLINFO* pCI);
1157 void __RPC_STUB IOleControl_GetControlInfo_Stub(
1158     struct IRpcStubBuffer* This,
1159     struct IRpcChannelBuffer* pRpcChannelBuffer,
1160     PRPC_MESSAGE pRpcMessage,
1161     DWORD* pdwStubPhase);
1162 HRESULT CALLBACK IOleControl_OnMnemonic_Proxy(
1163     IOleControl* This,
1164     MSG* pMsg);
1165 void __RPC_STUB IOleControl_OnMnemonic_Stub(
1166     struct IRpcStubBuffer* This,
1167     struct IRpcChannelBuffer* pRpcChannelBuffer,
1168     PRPC_MESSAGE pRpcMessage,
1169     DWORD* pdwStubPhase);
1170 HRESULT CALLBACK IOleControl_OnAmbientPropertyChange_Proxy(
1171     IOleControl* This,
1172     DISPID dispID);
1173 void __RPC_STUB IOleControl_OnAmbientPropertyChange_Stub(
1174     struct IRpcStubBuffer* This,
1175     struct IRpcChannelBuffer* pRpcChannelBuffer,
1176     PRPC_MESSAGE pRpcMessage,
1177     DWORD* pdwStubPhase);
1178 HRESULT CALLBACK IOleControl_FreezeEvents_Proxy(
1179     IOleControl* This,
1180     BOOL bFreeze);
1181 void __RPC_STUB IOleControl_FreezeEvents_Stub(
1182     struct IRpcStubBuffer* This,
1183     struct IRpcChannelBuffer* pRpcChannelBuffer,
1184     PRPC_MESSAGE pRpcMessage,
1185     DWORD* pdwStubPhase);
1186
1187 #endif  /* __IOleControl_INTERFACE_DEFINED__ */
1188
1189 #ifndef __IOleControlSite_FWD_DEFINED__
1190 #define __IOleControlSite_FWD_DEFINED__
1191 typedef struct IOleControlSite IOleControlSite;
1192 #endif
1193
1194 typedef IOleControlSite *LPOLECONTROLSITE;
1195
1196 typedef struct tagPOINTF {
1197     FLOAT x;
1198     FLOAT y;
1199 } POINTF, *LPPOINTF;
1200
1201 typedef enum tagXFORMCOORDS {
1202     XFORMCOORDS_POSITION = 0x1,
1203     XFORMCOORDS_SIZE = 0x2,
1204     XFORMCOORDS_HIMETRICTOCONTAINER = 0x4,
1205     XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8,
1206     XFORMCOORDS_EVENTCOMPAT = 0x10
1207 } XFORMCOORDS;
1208
1209 /*****************************************************************************
1210  * IOleControlSite interface
1211  */
1212 #ifndef __IOleControlSite_INTERFACE_DEFINED__
1213 #define __IOleControlSite_INTERFACE_DEFINED__
1214
1215 DEFINE_GUID(IID_IOleControlSite, 0xb196b289, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
1216 #if defined(__cplusplus) && !defined(CINTERFACE)
1217 struct IOleControlSite : public IUnknown
1218 {
1219     virtual HRESULT STDMETHODCALLTYPE OnControlInfoChanged(
1220         ) = 0;
1221
1222     virtual HRESULT STDMETHODCALLTYPE LockInPlaceActive(
1223         BOOL fLock) = 0;
1224
1225     virtual HRESULT STDMETHODCALLTYPE GetExtendedControl(
1226         IDispatch** ppDisp) = 0;
1227
1228     virtual HRESULT STDMETHODCALLTYPE TransformCoords(
1229         POINTL* pPtlHimetric,
1230         POINTF* pPtfContainer,
1231         DWORD dwFlags) = 0;
1232
1233     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
1234         MSG* pMsg,
1235         DWORD grfModifiers) = 0;
1236
1237     virtual HRESULT STDMETHODCALLTYPE OnFocus(
1238         BOOL fGotFocus) = 0;
1239
1240     virtual HRESULT STDMETHODCALLTYPE ShowPropertyFrame(
1241         ) = 0;
1242
1243 };
1244 #else
1245 typedef struct IOleControlSiteVtbl IOleControlSiteVtbl;
1246 struct IOleControlSite {
1247     const IOleControlSiteVtbl* lpVtbl;
1248 };
1249 struct IOleControlSiteVtbl {
1250     ICOM_MSVTABLE_COMPAT_FIELDS
1251
1252     /*** IUnknown methods ***/
1253     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1254         IOleControlSite* This,
1255         REFIID riid,
1256         void** ppvObject);
1257
1258     ULONG (STDMETHODCALLTYPE *AddRef)(
1259         IOleControlSite* This);
1260
1261     ULONG (STDMETHODCALLTYPE *Release)(
1262         IOleControlSite* This);
1263
1264     /*** IOleControlSite methods ***/
1265     HRESULT (STDMETHODCALLTYPE *OnControlInfoChanged)(
1266         IOleControlSite* This);
1267
1268     HRESULT (STDMETHODCALLTYPE *LockInPlaceActive)(
1269         IOleControlSite* This,
1270         BOOL fLock);
1271
1272     HRESULT (STDMETHODCALLTYPE *GetExtendedControl)(
1273         IOleControlSite* This,
1274         IDispatch** ppDisp);
1275
1276     HRESULT (STDMETHODCALLTYPE *TransformCoords)(
1277         IOleControlSite* This,
1278         POINTL* pPtlHimetric,
1279         POINTF* pPtfContainer,
1280         DWORD dwFlags);
1281
1282     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
1283         IOleControlSite* This,
1284         MSG* pMsg,
1285         DWORD grfModifiers);
1286
1287     HRESULT (STDMETHODCALLTYPE *OnFocus)(
1288         IOleControlSite* This,
1289         BOOL fGotFocus);
1290
1291     HRESULT (STDMETHODCALLTYPE *ShowPropertyFrame)(
1292         IOleControlSite* This);
1293
1294 };
1295
1296 /*** IUnknown methods ***/
1297 #define IOleControlSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1298 #define IOleControlSite_AddRef(p) (p)->lpVtbl->AddRef(p)
1299 #define IOleControlSite_Release(p) (p)->lpVtbl->Release(p)
1300 /*** IOleControlSite methods ***/
1301 #define IOleControlSite_OnControlInfoChanged(p) (p)->lpVtbl->OnControlInfoChanged(p)
1302 #define IOleControlSite_LockInPlaceActive(p,a) (p)->lpVtbl->LockInPlaceActive(p,a)
1303 #define IOleControlSite_GetExtendedControl(p,a) (p)->lpVtbl->GetExtendedControl(p,a)
1304 #define IOleControlSite_TransformCoords(p,a,b,c) (p)->lpVtbl->TransformCoords(p,a,b,c)
1305 #define IOleControlSite_TranslateAccelerator(p,a,b) (p)->lpVtbl->TranslateAccelerator(p,a,b)
1306 #define IOleControlSite_OnFocus(p,a) (p)->lpVtbl->OnFocus(p,a)
1307 #define IOleControlSite_ShowPropertyFrame(p) (p)->lpVtbl->ShowPropertyFrame(p)
1308
1309 #endif
1310
1311 #define IOleControlSite_METHODS \
1312     ICOM_MSVTABLE_COMPAT_FIELDS \
1313     /*** IUnknown methods ***/ \
1314     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1315     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1316     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1317     /*** IOleControlSite methods ***/ \
1318     STDMETHOD_(HRESULT,OnControlInfoChanged)(THIS) PURE; \
1319     STDMETHOD_(HRESULT,LockInPlaceActive)(THIS_ BOOL fLock) PURE; \
1320     STDMETHOD_(HRESULT,GetExtendedControl)(THIS_ IDispatch** ppDisp) PURE; \
1321     STDMETHOD_(HRESULT,TransformCoords)(THIS_ POINTL* pPtlHimetric, POINTF* pPtfContainer, DWORD dwFlags) PURE; \
1322     STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pMsg, DWORD grfModifiers) PURE; \
1323     STDMETHOD_(HRESULT,OnFocus)(THIS_ BOOL fGotFocus) PURE; \
1324     STDMETHOD_(HRESULT,ShowPropertyFrame)(THIS) PURE;
1325
1326 HRESULT CALLBACK IOleControlSite_OnControlInfoChanged_Proxy(
1327     IOleControlSite* This);
1328 void __RPC_STUB IOleControlSite_OnControlInfoChanged_Stub(
1329     struct IRpcStubBuffer* This,
1330     struct IRpcChannelBuffer* pRpcChannelBuffer,
1331     PRPC_MESSAGE pRpcMessage,
1332     DWORD* pdwStubPhase);
1333 HRESULT CALLBACK IOleControlSite_LockInPlaceActive_Proxy(
1334     IOleControlSite* This,
1335     BOOL fLock);
1336 void __RPC_STUB IOleControlSite_LockInPlaceActive_Stub(
1337     struct IRpcStubBuffer* This,
1338     struct IRpcChannelBuffer* pRpcChannelBuffer,
1339     PRPC_MESSAGE pRpcMessage,
1340     DWORD* pdwStubPhase);
1341 HRESULT CALLBACK IOleControlSite_GetExtendedControl_Proxy(
1342     IOleControlSite* This,
1343     IDispatch** ppDisp);
1344 void __RPC_STUB IOleControlSite_GetExtendedControl_Stub(
1345     struct IRpcStubBuffer* This,
1346     struct IRpcChannelBuffer* pRpcChannelBuffer,
1347     PRPC_MESSAGE pRpcMessage,
1348     DWORD* pdwStubPhase);
1349 HRESULT CALLBACK IOleControlSite_TransformCoords_Proxy(
1350     IOleControlSite* This,
1351     POINTL* pPtlHimetric,
1352     POINTF* pPtfContainer,
1353     DWORD dwFlags);
1354 void __RPC_STUB IOleControlSite_TransformCoords_Stub(
1355     struct IRpcStubBuffer* This,
1356     struct IRpcChannelBuffer* pRpcChannelBuffer,
1357     PRPC_MESSAGE pRpcMessage,
1358     DWORD* pdwStubPhase);
1359 HRESULT CALLBACK IOleControlSite_TranslateAccelerator_Proxy(
1360     IOleControlSite* This,
1361     MSG* pMsg,
1362     DWORD grfModifiers);
1363 void __RPC_STUB IOleControlSite_TranslateAccelerator_Stub(
1364     struct IRpcStubBuffer* This,
1365     struct IRpcChannelBuffer* pRpcChannelBuffer,
1366     PRPC_MESSAGE pRpcMessage,
1367     DWORD* pdwStubPhase);
1368 HRESULT CALLBACK IOleControlSite_OnFocus_Proxy(
1369     IOleControlSite* This,
1370     BOOL fGotFocus);
1371 void __RPC_STUB IOleControlSite_OnFocus_Stub(
1372     struct IRpcStubBuffer* This,
1373     struct IRpcChannelBuffer* pRpcChannelBuffer,
1374     PRPC_MESSAGE pRpcMessage,
1375     DWORD* pdwStubPhase);
1376 HRESULT CALLBACK IOleControlSite_ShowPropertyFrame_Proxy(
1377     IOleControlSite* This);
1378 void __RPC_STUB IOleControlSite_ShowPropertyFrame_Stub(
1379     struct IRpcStubBuffer* This,
1380     struct IRpcChannelBuffer* pRpcChannelBuffer,
1381     PRPC_MESSAGE pRpcMessage,
1382     DWORD* pdwStubPhase);
1383
1384 #endif  /* __IOleControlSite_INTERFACE_DEFINED__ */
1385
1386 #ifndef __IOleInPlaceSiteEx_FWD_DEFINED__
1387 #define __IOleInPlaceSiteEx_FWD_DEFINED__
1388 typedef struct IOleInPlaceSiteEx IOleInPlaceSiteEx;
1389 #endif
1390
1391 typedef IOleInPlaceSiteEx *LPOLEINPLACESITEEX;
1392
1393 typedef enum tagACTIVATEFLAGS {
1394     ACTIVATE_WINDOWLESS = 1
1395 } ACTIVATE_FLAGS;
1396
1397 /*****************************************************************************
1398  * IOleInPlaceSiteEx interface
1399  */
1400 #ifndef __IOleInPlaceSiteEx_INTERFACE_DEFINED__
1401 #define __IOleInPlaceSiteEx_INTERFACE_DEFINED__
1402
1403 DEFINE_GUID(IID_IOleInPlaceSiteEx, 0x9c2cad80, 0x3424, 0x11cf, 0xb6,0x70, 0x00,0xaa,0x00,0x4c,0xd6,0xd8);
1404 #if defined(__cplusplus) && !defined(CINTERFACE)
1405 struct IOleInPlaceSiteEx : public IOleInPlaceSite
1406 {
1407     virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivateEx(
1408         BOOL* pfNoRedraw,
1409         DWORD dwFlags) = 0;
1410
1411     virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivateEx(
1412         BOOL fNoRedraw) = 0;
1413
1414     virtual HRESULT STDMETHODCALLTYPE RequestUIActivate(
1415         ) = 0;
1416
1417 };
1418 #else
1419 typedef struct IOleInPlaceSiteExVtbl IOleInPlaceSiteExVtbl;
1420 struct IOleInPlaceSiteEx {
1421     const IOleInPlaceSiteExVtbl* lpVtbl;
1422 };
1423 struct IOleInPlaceSiteExVtbl {
1424     ICOM_MSVTABLE_COMPAT_FIELDS
1425
1426     /*** IUnknown methods ***/
1427     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1428         IOleInPlaceSiteEx* This,
1429         REFIID riid,
1430         void** ppvObject);
1431
1432     ULONG (STDMETHODCALLTYPE *AddRef)(
1433         IOleInPlaceSiteEx* This);
1434
1435     ULONG (STDMETHODCALLTYPE *Release)(
1436         IOleInPlaceSiteEx* This);
1437
1438     /*** IOleWindow methods ***/
1439     HRESULT (STDMETHODCALLTYPE *GetWindow)(
1440         IOleInPlaceSiteEx* This,
1441         HWND* phwnd);
1442
1443     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1444         IOleInPlaceSiteEx* This,
1445         BOOL fEnterMode);
1446
1447     /*** IOleInPlaceSite methods ***/
1448     HRESULT (STDMETHODCALLTYPE *CanInPlaceActivate)(
1449         IOleInPlaceSiteEx* This);
1450
1451     HRESULT (STDMETHODCALLTYPE *OnInPlaceActivate)(
1452         IOleInPlaceSiteEx* This);
1453
1454     HRESULT (STDMETHODCALLTYPE *OnUIActivate)(
1455         IOleInPlaceSiteEx* This);
1456
1457     HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
1458         IOleInPlaceSiteEx* This,
1459         IOleInPlaceFrame** ppFrame,
1460         IOleInPlaceUIWindow** ppDoc,
1461         LPRECT lprcPosRect,
1462         LPRECT lprcClipRect,
1463         LPOLEINPLACEFRAMEINFO lpFrameInfo);
1464
1465     HRESULT (STDMETHODCALLTYPE *Scroll)(
1466         IOleInPlaceSiteEx* This,
1467         SIZE scrollExtant);
1468
1469     HRESULT (STDMETHODCALLTYPE *OnUIDeactivate)(
1470         IOleInPlaceSiteEx* This,
1471         BOOL fUndoable);
1472
1473     HRESULT (STDMETHODCALLTYPE *OnInPlaceDeactivate)(
1474         IOleInPlaceSiteEx* This);
1475
1476     HRESULT (STDMETHODCALLTYPE *DiscardUndoState)(
1477         IOleInPlaceSiteEx* This);
1478
1479     HRESULT (STDMETHODCALLTYPE *DeactivateAndUndo)(
1480         IOleInPlaceSiteEx* This);
1481
1482     HRESULT (STDMETHODCALLTYPE *OnPosRectChange)(
1483         IOleInPlaceSiteEx* This,
1484         LPCRECT lprcPosRect);
1485
1486     /*** IOleInPlaceSiteEx methods ***/
1487     HRESULT (STDMETHODCALLTYPE *OnInPlaceActivateEx)(
1488         IOleInPlaceSiteEx* This,
1489         BOOL* pfNoRedraw,
1490         DWORD dwFlags);
1491
1492     HRESULT (STDMETHODCALLTYPE *OnInPlaceDeactivateEx)(
1493         IOleInPlaceSiteEx* This,
1494         BOOL fNoRedraw);
1495
1496     HRESULT (STDMETHODCALLTYPE *RequestUIActivate)(
1497         IOleInPlaceSiteEx* This);
1498
1499 };
1500
1501 /*** IUnknown methods ***/
1502 #define IOleInPlaceSiteEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1503 #define IOleInPlaceSiteEx_AddRef(p) (p)->lpVtbl->AddRef(p)
1504 #define IOleInPlaceSiteEx_Release(p) (p)->lpVtbl->Release(p)
1505 /*** IOleWindow methods ***/
1506 #define IOleInPlaceSiteEx_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1507 #define IOleInPlaceSiteEx_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1508 /*** IOleInPlaceSite methods ***/
1509 #define IOleInPlaceSiteEx_CanInPlaceActivate(p) (p)->lpVtbl->CanInPlaceActivate(p)
1510 #define IOleInPlaceSiteEx_OnInPlaceActivate(p) (p)->lpVtbl->OnInPlaceActivate(p)
1511 #define IOleInPlaceSiteEx_OnUIActivate(p) (p)->lpVtbl->OnUIActivate(p)
1512 #define IOleInPlaceSiteEx_GetWindowContext(p,a,b,c,d,e) (p)->lpVtbl->GetWindowContext(p,a,b,c,d,e)
1513 #define IOleInPlaceSiteEx_Scroll(p,a) (p)->lpVtbl->Scroll(p,a)
1514 #define IOleInPlaceSiteEx_OnUIDeactivate(p,a) (p)->lpVtbl->OnUIDeactivate(p,a)
1515 #define IOleInPlaceSiteEx_OnInPlaceDeactivate(p) (p)->lpVtbl->OnInPlaceDeactivate(p)
1516 #define IOleInPlaceSiteEx_DiscardUndoState(p) (p)->lpVtbl->DiscardUndoState(p)
1517 #define IOleInPlaceSiteEx_DeactivateAndUndo(p) (p)->lpVtbl->DeactivateAndUndo(p)
1518 #define IOleInPlaceSiteEx_OnPosRectChange(p,a) (p)->lpVtbl->OnPosRectChange(p,a)
1519 /*** IOleInPlaceSiteEx methods ***/
1520 #define IOleInPlaceSiteEx_OnInPlaceActivateEx(p,a,b) (p)->lpVtbl->OnInPlaceActivateEx(p,a,b)
1521 #define IOleInPlaceSiteEx_OnInPlaceDeactivateEx(p,a) (p)->lpVtbl->OnInPlaceDeactivateEx(p,a)
1522 #define IOleInPlaceSiteEx_RequestUIActivate(p) (p)->lpVtbl->RequestUIActivate(p)
1523
1524 #endif
1525
1526 #define IOleInPlaceSiteEx_METHODS \
1527     ICOM_MSVTABLE_COMPAT_FIELDS \
1528     /*** IUnknown methods ***/ \
1529     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1530     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1531     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1532     /*** IOleWindow methods ***/ \
1533     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1534     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1535     /*** IOleInPlaceSite methods ***/ \
1536     STDMETHOD_(HRESULT,CanInPlaceActivate)(THIS) PURE; \
1537     STDMETHOD_(HRESULT,OnInPlaceActivate)(THIS) PURE; \
1538     STDMETHOD_(HRESULT,OnUIActivate)(THIS) PURE; \
1539     STDMETHOD_(HRESULT,GetWindowContext)(THIS_ IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) PURE; \
1540     STDMETHOD_(HRESULT,Scroll)(THIS_ SIZE scrollExtant) PURE; \
1541     STDMETHOD_(HRESULT,OnUIDeactivate)(THIS_ BOOL fUndoable) PURE; \
1542     STDMETHOD_(HRESULT,OnInPlaceDeactivate)(THIS) PURE; \
1543     STDMETHOD_(HRESULT,DiscardUndoState)(THIS) PURE; \
1544     STDMETHOD_(HRESULT,DeactivateAndUndo)(THIS) PURE; \
1545     STDMETHOD_(HRESULT,OnPosRectChange)(THIS_ LPCRECT lprcPosRect) PURE; \
1546     /*** IOleInPlaceSiteEx methods ***/ \
1547     STDMETHOD_(HRESULT,OnInPlaceActivateEx)(THIS_ BOOL* pfNoRedraw, DWORD dwFlags) PURE; \
1548     STDMETHOD_(HRESULT,OnInPlaceDeactivateEx)(THIS_ BOOL fNoRedraw) PURE; \
1549     STDMETHOD_(HRESULT,RequestUIActivate)(THIS) PURE;
1550
1551 HRESULT CALLBACK IOleInPlaceSiteEx_OnInPlaceActivateEx_Proxy(
1552     IOleInPlaceSiteEx* This,
1553     BOOL* pfNoRedraw,
1554     DWORD dwFlags);
1555 void __RPC_STUB IOleInPlaceSiteEx_OnInPlaceActivateEx_Stub(
1556     struct IRpcStubBuffer* This,
1557     struct IRpcChannelBuffer* pRpcChannelBuffer,
1558     PRPC_MESSAGE pRpcMessage,
1559     DWORD* pdwStubPhase);
1560 HRESULT CALLBACK IOleInPlaceSiteEx_OnInPlaceDeactivateEx_Proxy(
1561     IOleInPlaceSiteEx* This,
1562     BOOL fNoRedraw);
1563 void __RPC_STUB IOleInPlaceSiteEx_OnInPlaceDeactivateEx_Stub(
1564     struct IRpcStubBuffer* This,
1565     struct IRpcChannelBuffer* pRpcChannelBuffer,
1566     PRPC_MESSAGE pRpcMessage,
1567     DWORD* pdwStubPhase);
1568 HRESULT CALLBACK IOleInPlaceSiteEx_RequestUIActivate_Proxy(
1569     IOleInPlaceSiteEx* This);
1570 void __RPC_STUB IOleInPlaceSiteEx_RequestUIActivate_Stub(
1571     struct IRpcStubBuffer* This,
1572     struct IRpcChannelBuffer* pRpcChannelBuffer,
1573     PRPC_MESSAGE pRpcMessage,
1574     DWORD* pdwStubPhase);
1575
1576 #endif  /* __IOleInPlaceSiteEx_INTERFACE_DEFINED__ */
1577
1578 #ifndef __IOleInPlaceSiteWindowless_FWD_DEFINED__
1579 #define __IOleInPlaceSiteWindowless_FWD_DEFINED__
1580 typedef struct IOleInPlaceSiteWindowless IOleInPlaceSiteWindowless;
1581 #endif
1582
1583 typedef IOleInPlaceSiteWindowless *LPOLEINPLACESITEWINDOWLESS;
1584
1585 typedef enum tagOLEDCFLAGS {
1586     OLEDC_NODRAW = 0x1,
1587     OLEDC_PAINTBKGND = 0x2,
1588     OLEDC_OFFSCREEN = 0x4
1589 } OLEDCFLAGS;
1590
1591 /*****************************************************************************
1592  * IOleInPlaceSiteWindowless interface
1593  */
1594 #ifndef __IOleInPlaceSiteWindowless_INTERFACE_DEFINED__
1595 #define __IOleInPlaceSiteWindowless_INTERFACE_DEFINED__
1596
1597 DEFINE_GUID(IID_IOleInPlaceSiteWindowless, 0x922eada0, 0x3424, 0x11cf, 0xb6,0x70, 0x00,0xaa,0x00,0x4c,0xd6,0xd8);
1598 #if defined(__cplusplus) && !defined(CINTERFACE)
1599 struct IOleInPlaceSiteWindowless : public IOleInPlaceSiteEx
1600 {
1601     virtual HRESULT STDMETHODCALLTYPE CanWindowlessActivate(
1602         ) = 0;
1603
1604     virtual HRESULT STDMETHODCALLTYPE GetCapture(
1605         ) = 0;
1606
1607     virtual HRESULT STDMETHODCALLTYPE SetCapture(
1608         BOOL fCapture) = 0;
1609
1610     virtual HRESULT STDMETHODCALLTYPE GetFocus(
1611         ) = 0;
1612
1613     virtual HRESULT STDMETHODCALLTYPE SetFocus(
1614         BOOL fFocus) = 0;
1615
1616     virtual HRESULT STDMETHODCALLTYPE GetDC(
1617         LPCRECT pRect,
1618         DWORD grfFlags,
1619         HDC* phDC) = 0;
1620
1621     virtual HRESULT STDMETHODCALLTYPE ReleaseDC(
1622         HDC hDC) = 0;
1623
1624     virtual HRESULT STDMETHODCALLTYPE InvalidateRect(
1625         LPCRECT pRect,
1626         BOOL fErase) = 0;
1627
1628     virtual HRESULT STDMETHODCALLTYPE InvalidateRgn(
1629         HRGN hRGN,
1630         BOOL fErase) = 0;
1631
1632     virtual HRESULT STDMETHODCALLTYPE ScrollRect(
1633         INT dx,
1634         INT dy,
1635         LPCRECT pRectScroll,
1636         LPCRECT pRectClip) = 0;
1637
1638     virtual HRESULT STDMETHODCALLTYPE AdjustRect(
1639         LPRECT prc) = 0;
1640
1641     virtual HRESULT STDMETHODCALLTYPE OnDefWindowMessage(
1642         UINT msg,
1643         WPARAM wParam,
1644         LPARAM lParam,
1645         LRESULT* plResult) = 0;
1646
1647 };
1648 #else
1649 typedef struct IOleInPlaceSiteWindowlessVtbl IOleInPlaceSiteWindowlessVtbl;
1650 struct IOleInPlaceSiteWindowless {
1651     const IOleInPlaceSiteWindowlessVtbl* lpVtbl;
1652 };
1653 struct IOleInPlaceSiteWindowlessVtbl {
1654     ICOM_MSVTABLE_COMPAT_FIELDS
1655
1656     /*** IUnknown methods ***/
1657     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1658         IOleInPlaceSiteWindowless* This,
1659         REFIID riid,
1660         void** ppvObject);
1661
1662     ULONG (STDMETHODCALLTYPE *AddRef)(
1663         IOleInPlaceSiteWindowless* This);
1664
1665     ULONG (STDMETHODCALLTYPE *Release)(
1666         IOleInPlaceSiteWindowless* This);
1667
1668     /*** IOleWindow methods ***/
1669     HRESULT (STDMETHODCALLTYPE *GetWindow)(
1670         IOleInPlaceSiteWindowless* This,
1671         HWND* phwnd);
1672
1673     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
1674         IOleInPlaceSiteWindowless* This,
1675         BOOL fEnterMode);
1676
1677     /*** IOleInPlaceSite methods ***/
1678     HRESULT (STDMETHODCALLTYPE *CanInPlaceActivate)(
1679         IOleInPlaceSiteWindowless* This);
1680
1681     HRESULT (STDMETHODCALLTYPE *OnInPlaceActivate)(
1682         IOleInPlaceSiteWindowless* This);
1683
1684     HRESULT (STDMETHODCALLTYPE *OnUIActivate)(
1685         IOleInPlaceSiteWindowless* This);
1686
1687     HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
1688         IOleInPlaceSiteWindowless* This,
1689         IOleInPlaceFrame** ppFrame,
1690         IOleInPlaceUIWindow** ppDoc,
1691         LPRECT lprcPosRect,
1692         LPRECT lprcClipRect,
1693         LPOLEINPLACEFRAMEINFO lpFrameInfo);
1694
1695     HRESULT (STDMETHODCALLTYPE *Scroll)(
1696         IOleInPlaceSiteWindowless* This,
1697         SIZE scrollExtant);
1698
1699     HRESULT (STDMETHODCALLTYPE *OnUIDeactivate)(
1700         IOleInPlaceSiteWindowless* This,
1701         BOOL fUndoable);
1702
1703     HRESULT (STDMETHODCALLTYPE *OnInPlaceDeactivate)(
1704         IOleInPlaceSiteWindowless* This);
1705
1706     HRESULT (STDMETHODCALLTYPE *DiscardUndoState)(
1707         IOleInPlaceSiteWindowless* This);
1708
1709     HRESULT (STDMETHODCALLTYPE *DeactivateAndUndo)(
1710         IOleInPlaceSiteWindowless* This);
1711
1712     HRESULT (STDMETHODCALLTYPE *OnPosRectChange)(
1713         IOleInPlaceSiteWindowless* This,
1714         LPCRECT lprcPosRect);
1715
1716     /*** IOleInPlaceSiteEx methods ***/
1717     HRESULT (STDMETHODCALLTYPE *OnInPlaceActivateEx)(
1718         IOleInPlaceSiteWindowless* This,
1719         BOOL* pfNoRedraw,
1720         DWORD dwFlags);
1721
1722     HRESULT (STDMETHODCALLTYPE *OnInPlaceDeactivateEx)(
1723         IOleInPlaceSiteWindowless* This,
1724         BOOL fNoRedraw);
1725
1726     HRESULT (STDMETHODCALLTYPE *RequestUIActivate)(
1727         IOleInPlaceSiteWindowless* This);
1728
1729     /*** IOleInPlaceSiteWindowless methods ***/
1730     HRESULT (STDMETHODCALLTYPE *CanWindowlessActivate)(
1731         IOleInPlaceSiteWindowless* This);
1732
1733     HRESULT (STDMETHODCALLTYPE *GetCapture)(
1734         IOleInPlaceSiteWindowless* This);
1735
1736     HRESULT (STDMETHODCALLTYPE *SetCapture)(
1737         IOleInPlaceSiteWindowless* This,
1738         BOOL fCapture);
1739
1740     HRESULT (STDMETHODCALLTYPE *GetFocus)(
1741         IOleInPlaceSiteWindowless* This);
1742
1743     HRESULT (STDMETHODCALLTYPE *SetFocus)(
1744         IOleInPlaceSiteWindowless* This,
1745         BOOL fFocus);
1746
1747     HRESULT (STDMETHODCALLTYPE *GetDC)(
1748         IOleInPlaceSiteWindowless* This,
1749         LPCRECT pRect,
1750         DWORD grfFlags,
1751         HDC* phDC);
1752
1753     HRESULT (STDMETHODCALLTYPE *ReleaseDC)(
1754         IOleInPlaceSiteWindowless* This,
1755         HDC hDC);
1756
1757     HRESULT (STDMETHODCALLTYPE *InvalidateRect)(
1758         IOleInPlaceSiteWindowless* This,
1759         LPCRECT pRect,
1760         BOOL fErase);
1761
1762     HRESULT (STDMETHODCALLTYPE *InvalidateRgn)(
1763         IOleInPlaceSiteWindowless* This,
1764         HRGN hRGN,
1765         BOOL fErase);
1766
1767     HRESULT (STDMETHODCALLTYPE *ScrollRect)(
1768         IOleInPlaceSiteWindowless* This,
1769         INT dx,
1770         INT dy,
1771         LPCRECT pRectScroll,
1772         LPCRECT pRectClip);
1773
1774     HRESULT (STDMETHODCALLTYPE *AdjustRect)(
1775         IOleInPlaceSiteWindowless* This,
1776         LPRECT prc);
1777
1778     HRESULT (STDMETHODCALLTYPE *OnDefWindowMessage)(
1779         IOleInPlaceSiteWindowless* This,
1780         UINT msg,
1781         WPARAM wParam,
1782         LPARAM lParam,
1783         LRESULT* plResult);
1784
1785 };
1786
1787 /*** IUnknown methods ***/
1788 #define IOleInPlaceSiteWindowless_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1789 #define IOleInPlaceSiteWindowless_AddRef(p) (p)->lpVtbl->AddRef(p)
1790 #define IOleInPlaceSiteWindowless_Release(p) (p)->lpVtbl->Release(p)
1791 /*** IOleWindow methods ***/
1792 #define IOleInPlaceSiteWindowless_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
1793 #define IOleInPlaceSiteWindowless_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
1794 /*** IOleInPlaceSite methods ***/
1795 #define IOleInPlaceSiteWindowless_CanInPlaceActivate(p) (p)->lpVtbl->CanInPlaceActivate(p)
1796 #define IOleInPlaceSiteWindowless_OnInPlaceActivate(p) (p)->lpVtbl->OnInPlaceActivate(p)
1797 #define IOleInPlaceSiteWindowless_OnUIActivate(p) (p)->lpVtbl->OnUIActivate(p)
1798 #define IOleInPlaceSiteWindowless_GetWindowContext(p,a,b,c,d,e) (p)->lpVtbl->GetWindowContext(p,a,b,c,d,e)
1799 #define IOleInPlaceSiteWindowless_Scroll(p,a) (p)->lpVtbl->Scroll(p,a)
1800 #define IOleInPlaceSiteWindowless_OnUIDeactivate(p,a) (p)->lpVtbl->OnUIDeactivate(p,a)
1801 #define IOleInPlaceSiteWindowless_OnInPlaceDeactivate(p) (p)->lpVtbl->OnInPlaceDeactivate(p)
1802 #define IOleInPlaceSiteWindowless_DiscardUndoState(p) (p)->lpVtbl->DiscardUndoState(p)
1803 #define IOleInPlaceSiteWindowless_DeactivateAndUndo(p) (p)->lpVtbl->DeactivateAndUndo(p)
1804 #define IOleInPlaceSiteWindowless_OnPosRectChange(p,a) (p)->lpVtbl->OnPosRectChange(p,a)
1805 /*** IOleInPlaceSiteEx methods ***/
1806 #define IOleInPlaceSiteWindowless_OnInPlaceActivateEx(p,a,b) (p)->lpVtbl->OnInPlaceActivateEx(p,a,b)
1807 #define IOleInPlaceSiteWindowless_OnInPlaceDeactivateEx(p,a) (p)->lpVtbl->OnInPlaceDeactivateEx(p,a)
1808 #define IOleInPlaceSiteWindowless_RequestUIActivate(p) (p)->lpVtbl->RequestUIActivate(p)
1809 /*** IOleInPlaceSiteWindowless methods ***/
1810 #define IOleInPlaceSiteWindowless_CanWindowlessActivate(p) (p)->lpVtbl->CanWindowlessActivate(p)
1811 #define IOleInPlaceSiteWindowless_GetCapture(p) (p)->lpVtbl->GetCapture(p)
1812 #define IOleInPlaceSiteWindowless_SetCapture(p,a) (p)->lpVtbl->SetCapture(p,a)
1813 #define IOleInPlaceSiteWindowless_GetFocus(p) (p)->lpVtbl->GetFocus(p)
1814 #define IOleInPlaceSiteWindowless_SetFocus(p,a) (p)->lpVtbl->SetFocus(p,a)
1815 #define IOleInPlaceSiteWindowless_GetDC(p,a,b,c) (p)->lpVtbl->GetDC(p,a,b,c)
1816 #define IOleInPlaceSiteWindowless_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
1817 #define IOleInPlaceSiteWindowless_InvalidateRect(p,a,b) (p)->lpVtbl->InvalidateRect(p,a,b)
1818 #define IOleInPlaceSiteWindowless_InvalidateRgn(p,a,b) (p)->lpVtbl->InvalidateRgn(p,a,b)
1819 #define IOleInPlaceSiteWindowless_ScrollRect(p,a,b,c,d) (p)->lpVtbl->ScrollRect(p,a,b,c,d)
1820 #define IOleInPlaceSiteWindowless_AdjustRect(p,a) (p)->lpVtbl->AdjustRect(p,a)
1821 #define IOleInPlaceSiteWindowless_OnDefWindowMessage(p,a,b,c,d) (p)->lpVtbl->OnDefWindowMessage(p,a,b,c,d)
1822
1823 #endif
1824
1825 #define IOleInPlaceSiteWindowless_METHODS \
1826     ICOM_MSVTABLE_COMPAT_FIELDS \
1827     /*** IUnknown methods ***/ \
1828     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1829     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1830     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1831     /*** IOleWindow methods ***/ \
1832     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
1833     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
1834     /*** IOleInPlaceSite methods ***/ \
1835     STDMETHOD_(HRESULT,CanInPlaceActivate)(THIS) PURE; \
1836     STDMETHOD_(HRESULT,OnInPlaceActivate)(THIS) PURE; \
1837     STDMETHOD_(HRESULT,OnUIActivate)(THIS) PURE; \
1838     STDMETHOD_(HRESULT,GetWindowContext)(THIS_ IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) PURE; \
1839     STDMETHOD_(HRESULT,Scroll)(THIS_ SIZE scrollExtant) PURE; \
1840     STDMETHOD_(HRESULT,OnUIDeactivate)(THIS_ BOOL fUndoable) PURE; \
1841     STDMETHOD_(HRESULT,OnInPlaceDeactivate)(THIS) PURE; \
1842     STDMETHOD_(HRESULT,DiscardUndoState)(THIS) PURE; \
1843     STDMETHOD_(HRESULT,DeactivateAndUndo)(THIS) PURE; \
1844     STDMETHOD_(HRESULT,OnPosRectChange)(THIS_ LPCRECT lprcPosRect) PURE; \
1845     /*** IOleInPlaceSiteEx methods ***/ \
1846     STDMETHOD_(HRESULT,OnInPlaceActivateEx)(THIS_ BOOL* pfNoRedraw, DWORD dwFlags) PURE; \
1847     STDMETHOD_(HRESULT,OnInPlaceDeactivateEx)(THIS_ BOOL fNoRedraw) PURE; \
1848     STDMETHOD_(HRESULT,RequestUIActivate)(THIS) PURE; \
1849     /*** IOleInPlaceSiteWindowless methods ***/ \
1850     STDMETHOD_(HRESULT,CanWindowlessActivate)(THIS) PURE; \
1851     STDMETHOD_(HRESULT,GetCapture)(THIS) PURE; \
1852     STDMETHOD_(HRESULT,SetCapture)(THIS_ BOOL fCapture) PURE; \
1853     STDMETHOD_(HRESULT,GetFocus)(THIS) PURE; \
1854     STDMETHOD_(HRESULT,SetFocus)(THIS_ BOOL fFocus) PURE; \
1855     STDMETHOD_(HRESULT,GetDC)(THIS_ LPCRECT pRect, DWORD grfFlags, HDC* phDC) PURE; \
1856     STDMETHOD_(HRESULT,ReleaseDC)(THIS_ HDC hDC) PURE; \
1857     STDMETHOD_(HRESULT,InvalidateRect)(THIS_ LPCRECT pRect, BOOL fErase) PURE; \
1858     STDMETHOD_(HRESULT,InvalidateRgn)(THIS_ HRGN hRGN, BOOL fErase) PURE; \
1859     STDMETHOD_(HRESULT,ScrollRect)(THIS_ INT dx, INT dy, LPCRECT pRectScroll, LPCRECT pRectClip) PURE; \
1860     STDMETHOD_(HRESULT,AdjustRect)(THIS_ LPRECT prc) PURE; \
1861     STDMETHOD_(HRESULT,OnDefWindowMessage)(THIS_ UINT msg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE;
1862
1863 HRESULT CALLBACK IOleInPlaceSiteWindowless_CanWindowlessActivate_Proxy(
1864     IOleInPlaceSiteWindowless* This);
1865 void __RPC_STUB IOleInPlaceSiteWindowless_CanWindowlessActivate_Stub(
1866     struct IRpcStubBuffer* This,
1867     struct IRpcChannelBuffer* pRpcChannelBuffer,
1868     PRPC_MESSAGE pRpcMessage,
1869     DWORD* pdwStubPhase);
1870 HRESULT CALLBACK IOleInPlaceSiteWindowless_GetCapture_Proxy(
1871     IOleInPlaceSiteWindowless* This);
1872 void __RPC_STUB IOleInPlaceSiteWindowless_GetCapture_Stub(
1873     struct IRpcStubBuffer* This,
1874     struct IRpcChannelBuffer* pRpcChannelBuffer,
1875     PRPC_MESSAGE pRpcMessage,
1876     DWORD* pdwStubPhase);
1877 HRESULT CALLBACK IOleInPlaceSiteWindowless_SetCapture_Proxy(
1878     IOleInPlaceSiteWindowless* This,
1879     BOOL fCapture);
1880 void __RPC_STUB IOleInPlaceSiteWindowless_SetCapture_Stub(
1881     struct IRpcStubBuffer* This,
1882     struct IRpcChannelBuffer* pRpcChannelBuffer,
1883     PRPC_MESSAGE pRpcMessage,
1884     DWORD* pdwStubPhase);
1885 HRESULT CALLBACK IOleInPlaceSiteWindowless_GetFocus_Proxy(
1886     IOleInPlaceSiteWindowless* This);
1887 void __RPC_STUB IOleInPlaceSiteWindowless_GetFocus_Stub(
1888     struct IRpcStubBuffer* This,
1889     struct IRpcChannelBuffer* pRpcChannelBuffer,
1890     PRPC_MESSAGE pRpcMessage,
1891     DWORD* pdwStubPhase);
1892 HRESULT CALLBACK IOleInPlaceSiteWindowless_SetFocus_Proxy(
1893     IOleInPlaceSiteWindowless* This,
1894     BOOL fFocus);
1895 void __RPC_STUB IOleInPlaceSiteWindowless_SetFocus_Stub(
1896     struct IRpcStubBuffer* This,
1897     struct IRpcChannelBuffer* pRpcChannelBuffer,
1898     PRPC_MESSAGE pRpcMessage,
1899     DWORD* pdwStubPhase);
1900 HRESULT CALLBACK IOleInPlaceSiteWindowless_GetDC_Proxy(
1901     IOleInPlaceSiteWindowless* This,
1902     LPCRECT pRect,
1903     DWORD grfFlags,
1904     HDC* phDC);
1905 void __RPC_STUB IOleInPlaceSiteWindowless_GetDC_Stub(
1906     struct IRpcStubBuffer* This,
1907     struct IRpcChannelBuffer* pRpcChannelBuffer,
1908     PRPC_MESSAGE pRpcMessage,
1909     DWORD* pdwStubPhase);
1910 HRESULT CALLBACK IOleInPlaceSiteWindowless_ReleaseDC_Proxy(
1911     IOleInPlaceSiteWindowless* This,
1912     HDC hDC);
1913 void __RPC_STUB IOleInPlaceSiteWindowless_ReleaseDC_Stub(
1914     struct IRpcStubBuffer* This,
1915     struct IRpcChannelBuffer* pRpcChannelBuffer,
1916     PRPC_MESSAGE pRpcMessage,
1917     DWORD* pdwStubPhase);
1918 HRESULT CALLBACK IOleInPlaceSiteWindowless_InvalidateRect_Proxy(
1919     IOleInPlaceSiteWindowless* This,
1920     LPCRECT pRect,
1921     BOOL fErase);
1922 void __RPC_STUB IOleInPlaceSiteWindowless_InvalidateRect_Stub(
1923     struct IRpcStubBuffer* This,
1924     struct IRpcChannelBuffer* pRpcChannelBuffer,
1925     PRPC_MESSAGE pRpcMessage,
1926     DWORD* pdwStubPhase);
1927 HRESULT CALLBACK IOleInPlaceSiteWindowless_InvalidateRgn_Proxy(
1928     IOleInPlaceSiteWindowless* This,
1929     HRGN hRGN,
1930     BOOL fErase);
1931 void __RPC_STUB IOleInPlaceSiteWindowless_InvalidateRgn_Stub(
1932     struct IRpcStubBuffer* This,
1933     struct IRpcChannelBuffer* pRpcChannelBuffer,
1934     PRPC_MESSAGE pRpcMessage,
1935     DWORD* pdwStubPhase);
1936 HRESULT CALLBACK IOleInPlaceSiteWindowless_ScrollRect_Proxy(
1937     IOleInPlaceSiteWindowless* This,
1938     INT dx,
1939     INT dy,
1940     LPCRECT pRectScroll,
1941     LPCRECT pRectClip);
1942 void __RPC_STUB IOleInPlaceSiteWindowless_ScrollRect_Stub(
1943     struct IRpcStubBuffer* This,
1944     struct IRpcChannelBuffer* pRpcChannelBuffer,
1945     PRPC_MESSAGE pRpcMessage,
1946     DWORD* pdwStubPhase);
1947 HRESULT CALLBACK IOleInPlaceSiteWindowless_AdjustRect_Proxy(
1948     IOleInPlaceSiteWindowless* This,
1949     LPRECT prc);
1950 void __RPC_STUB IOleInPlaceSiteWindowless_AdjustRect_Stub(
1951     struct IRpcStubBuffer* This,
1952     struct IRpcChannelBuffer* pRpcChannelBuffer,
1953     PRPC_MESSAGE pRpcMessage,
1954     DWORD* pdwStubPhase);
1955 HRESULT CALLBACK IOleInPlaceSiteWindowless_OnDefWindowMessage_Proxy(
1956     IOleInPlaceSiteWindowless* This,
1957     UINT msg,
1958     WPARAM wParam,
1959     LPARAM lParam,
1960     LRESULT* plResult);
1961 void __RPC_STUB IOleInPlaceSiteWindowless_OnDefWindowMessage_Stub(
1962     struct IRpcStubBuffer* This,
1963     struct IRpcChannelBuffer* pRpcChannelBuffer,
1964     PRPC_MESSAGE pRpcMessage,
1965     DWORD* pdwStubPhase);
1966
1967 #endif  /* __IOleInPlaceSiteWindowless_INTERFACE_DEFINED__ */
1968
1969 #ifndef __IOleInPlaceObjectWindowless_FWD_DEFINED__
1970 #define __IOleInPlaceObjectWindowless_FWD_DEFINED__
1971 typedef struct IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless;
1972 #endif
1973
1974 typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS;
1975
1976 /*****************************************************************************
1977  * IOleInPlaceObjectWindowless interface
1978  */
1979 #ifndef __IOleInPlaceObjectWindowless_INTERFACE_DEFINED__
1980 #define __IOleInPlaceObjectWindowless_INTERFACE_DEFINED__
1981
1982 DEFINE_GUID(IID_IOleInPlaceObjectWindowless, 0x1c2056cc, 0x5ef4, 0x101b, 0x8b,0xc8, 0x00,0xaa,0x00,0x3e,0x3b,0x29);
1983 #if defined(__cplusplus) && !defined(CINTERFACE)
1984 struct IOleInPlaceObjectWindowless : public IOleInPlaceObject
1985 {
1986     virtual HRESULT STDMETHODCALLTYPE OnWindowMessage(
1987         UINT msg,
1988         WPARAM wParam,
1989         LPARAM lParam,
1990         LRESULT* plResult) = 0;
1991
1992     virtual HRESULT STDMETHODCALLTYPE GetDropTarget(
1993         IDropTarget** ppDropTarget) = 0;
1994
1995 };
1996 #else
1997 typedef struct IOleInPlaceObjectWindowlessVtbl IOleInPlaceObjectWindowlessVtbl;
1998 struct IOleInPlaceObjectWindowless {
1999     const IOleInPlaceObjectWindowlessVtbl* lpVtbl;
2000 };
2001 struct IOleInPlaceObjectWindowlessVtbl {
2002     ICOM_MSVTABLE_COMPAT_FIELDS
2003
2004     /*** IUnknown methods ***/
2005     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2006         IOleInPlaceObjectWindowless* This,
2007         REFIID riid,
2008         void** ppvObject);
2009
2010     ULONG (STDMETHODCALLTYPE *AddRef)(
2011         IOleInPlaceObjectWindowless* This);
2012
2013     ULONG (STDMETHODCALLTYPE *Release)(
2014         IOleInPlaceObjectWindowless* This);
2015
2016     /*** IOleWindow methods ***/
2017     HRESULT (STDMETHODCALLTYPE *GetWindow)(
2018         IOleInPlaceObjectWindowless* This,
2019         HWND* phwnd);
2020
2021     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
2022         IOleInPlaceObjectWindowless* This,
2023         BOOL fEnterMode);
2024
2025     /*** IOleInPlaceObject methods ***/
2026     HRESULT (STDMETHODCALLTYPE *InPlaceDeactivate)(
2027         IOleInPlaceObjectWindowless* This);
2028
2029     HRESULT (STDMETHODCALLTYPE *UIDeactivate)(
2030         IOleInPlaceObjectWindowless* This);
2031
2032     HRESULT (STDMETHODCALLTYPE *SetObjectRects)(
2033         IOleInPlaceObjectWindowless* This,
2034         LPCRECT lprcPosRect,
2035         LPCRECT lprcClipRect);
2036
2037     HRESULT (STDMETHODCALLTYPE *ReactivateAndUndo)(
2038         IOleInPlaceObjectWindowless* This);
2039
2040     /*** IOleInPlaceObjectWindowless methods ***/
2041     HRESULT (STDMETHODCALLTYPE *OnWindowMessage)(
2042         IOleInPlaceObjectWindowless* This,
2043         UINT msg,
2044         WPARAM wParam,
2045         LPARAM lParam,
2046         LRESULT* plResult);
2047
2048     HRESULT (STDMETHODCALLTYPE *GetDropTarget)(
2049         IOleInPlaceObjectWindowless* This,
2050         IDropTarget** ppDropTarget);
2051
2052 };
2053
2054 /*** IUnknown methods ***/
2055 #define IOleInPlaceObjectWindowless_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2056 #define IOleInPlaceObjectWindowless_AddRef(p) (p)->lpVtbl->AddRef(p)
2057 #define IOleInPlaceObjectWindowless_Release(p) (p)->lpVtbl->Release(p)
2058 /*** IOleWindow methods ***/
2059 #define IOleInPlaceObjectWindowless_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
2060 #define IOleInPlaceObjectWindowless_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
2061 /*** IOleInPlaceObject methods ***/
2062 #define IOleInPlaceObjectWindowless_InPlaceDeactivate(p) (p)->lpVtbl->InPlaceDeactivate(p)
2063 #define IOleInPlaceObjectWindowless_UIDeactivate(p) (p)->lpVtbl->UIDeactivate(p)
2064 #define IOleInPlaceObjectWindowless_SetObjectRects(p,a,b) (p)->lpVtbl->SetObjectRects(p,a,b)
2065 #define IOleInPlaceObjectWindowless_ReactivateAndUndo(p) (p)->lpVtbl->ReactivateAndUndo(p)
2066 /*** IOleInPlaceObjectWindowless methods ***/
2067 #define IOleInPlaceObjectWindowless_OnWindowMessage(p,a,b,c,d) (p)->lpVtbl->OnWindowMessage(p,a,b,c,d)
2068 #define IOleInPlaceObjectWindowless_GetDropTarget(p,a) (p)->lpVtbl->GetDropTarget(p,a)
2069
2070 #endif
2071
2072 #define IOleInPlaceObjectWindowless_METHODS \
2073     ICOM_MSVTABLE_COMPAT_FIELDS \
2074     /*** IUnknown methods ***/ \
2075     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2076     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2077     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2078     /*** IOleWindow methods ***/ \
2079     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
2080     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
2081     /*** IOleInPlaceObject methods ***/ \
2082     STDMETHOD_(HRESULT,InPlaceDeactivate)(THIS) PURE; \
2083     STDMETHOD_(HRESULT,UIDeactivate)(THIS) PURE; \
2084     STDMETHOD_(HRESULT,SetObjectRects)(THIS_ LPCRECT lprcPosRect, LPCRECT lprcClipRect) PURE; \
2085     STDMETHOD_(HRESULT,ReactivateAndUndo)(THIS) PURE; \
2086     /*** IOleInPlaceObjectWindowless methods ***/ \
2087     STDMETHOD_(HRESULT,OnWindowMessage)(THIS_ UINT msg, WPARAM wParam, LPARAM lParam, LRESULT* plResult) PURE; \
2088     STDMETHOD_(HRESULT,GetDropTarget)(THIS_ IDropTarget** ppDropTarget) PURE;
2089
2090 HRESULT CALLBACK IOleInPlaceObjectWindowless_OnWindowMessage_Proxy(
2091     IOleInPlaceObjectWindowless* This,
2092     UINT msg,
2093     WPARAM wParam,
2094     LPARAM lParam,
2095     LRESULT* plResult);
2096 void __RPC_STUB IOleInPlaceObjectWindowless_OnWindowMessage_Stub(
2097     struct IRpcStubBuffer* This,
2098     struct IRpcChannelBuffer* pRpcChannelBuffer,
2099     PRPC_MESSAGE pRpcMessage,
2100     DWORD* pdwStubPhase);
2101 HRESULT CALLBACK IOleInPlaceObjectWindowless_GetDropTarget_Proxy(
2102     IOleInPlaceObjectWindowless* This,
2103     IDropTarget** ppDropTarget);
2104 void __RPC_STUB IOleInPlaceObjectWindowless_GetDropTarget_Stub(
2105     struct IRpcStubBuffer* This,
2106     struct IRpcChannelBuffer* pRpcChannelBuffer,
2107     PRPC_MESSAGE pRpcMessage,
2108     DWORD* pdwStubPhase);
2109
2110 #endif  /* __IOleInPlaceObjectWindowless_INTERFACE_DEFINED__ */
2111
2112 #ifndef __IClassFactory2_FWD_DEFINED__
2113 #define __IClassFactory2_FWD_DEFINED__
2114 typedef struct IClassFactory2 IClassFactory2;
2115 #endif
2116
2117 typedef IClassFactory2 *LPCLASSFACTORY2;
2118
2119 typedef struct tagLICINFO {
2120     LONG cbLicInfo;
2121     BOOL fRuntimeKeyAvail;
2122     BOOL fLicVerified;
2123 } LICINFO, *LPLICINFO;
2124
2125 /*****************************************************************************
2126  * IClassFactory2 interface
2127  */
2128 #ifndef __IClassFactory2_INTERFACE_DEFINED__
2129 #define __IClassFactory2_INTERFACE_DEFINED__
2130
2131 DEFINE_GUID(IID_IClassFactory2, 0xb196b28f, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
2132 #if defined(__cplusplus) && !defined(CINTERFACE)
2133 struct IClassFactory2 : public IClassFactory
2134 {
2135     virtual HRESULT STDMETHODCALLTYPE GetLicInfo(
2136         LICINFO* pLicInfo) = 0;
2137
2138     virtual HRESULT STDMETHODCALLTYPE RequestLicKey(
2139         DWORD dwReserved,
2140         BSTR* pBstrKey) = 0;
2141
2142     virtual HRESULT STDMETHODCALLTYPE CreateInstanceLic(
2143         IUnknown* pUnkOuter,
2144         IUnknown* pUnkReserved,
2145         REFIID riid,
2146         BSTR bstrKey,
2147         PVOID* ppvObj) = 0;
2148
2149 };
2150 #else
2151 typedef struct IClassFactory2Vtbl IClassFactory2Vtbl;
2152 struct IClassFactory2 {
2153     const IClassFactory2Vtbl* lpVtbl;
2154 };
2155 struct IClassFactory2Vtbl {
2156     ICOM_MSVTABLE_COMPAT_FIELDS
2157
2158     /*** IUnknown methods ***/
2159     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2160         IClassFactory2* This,
2161         REFIID riid,
2162         void** ppvObject);
2163
2164     ULONG (STDMETHODCALLTYPE *AddRef)(
2165         IClassFactory2* This);
2166
2167     ULONG (STDMETHODCALLTYPE *Release)(
2168         IClassFactory2* This);
2169
2170     /*** IClassFactory methods ***/
2171     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
2172         IClassFactory2* This,
2173         IUnknown* pUnkOuter,
2174         REFIID riid,
2175         void** ppvObject);
2176
2177     HRESULT (STDMETHODCALLTYPE *LockServer)(
2178         IClassFactory2* This,
2179         BOOL fLock);
2180
2181     /*** IClassFactory2 methods ***/
2182     HRESULT (STDMETHODCALLTYPE *GetLicInfo)(
2183         IClassFactory2* This,
2184         LICINFO* pLicInfo);
2185
2186     HRESULT (STDMETHODCALLTYPE *RequestLicKey)(
2187         IClassFactory2* This,
2188         DWORD dwReserved,
2189         BSTR* pBstrKey);
2190
2191     HRESULT (STDMETHODCALLTYPE *CreateInstanceLic)(
2192         IClassFactory2* This,
2193         IUnknown* pUnkOuter,
2194         IUnknown* pUnkReserved,
2195         REFIID riid,
2196         BSTR bstrKey,
2197         PVOID* ppvObj);
2198
2199 };
2200
2201 /*** IUnknown methods ***/
2202 #define IClassFactory2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2203 #define IClassFactory2_AddRef(p) (p)->lpVtbl->AddRef(p)
2204 #define IClassFactory2_Release(p) (p)->lpVtbl->Release(p)
2205 /*** IClassFactory methods ***/
2206 #define IClassFactory2_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
2207 #define IClassFactory2_LockServer(p,a) (p)->lpVtbl->LockServer(p,a)
2208 /*** IClassFactory2 methods ***/
2209 #define IClassFactory2_GetLicInfo(p,a) (p)->lpVtbl->GetLicInfo(p,a)
2210 #define IClassFactory2_RequestLicKey(p,a,b) (p)->lpVtbl->RequestLicKey(p,a,b)
2211 #define IClassFactory2_CreateInstanceLic(p,a,b,c,d,e) (p)->lpVtbl->CreateInstanceLic(p,a,b,c,d,e)
2212
2213 #endif
2214
2215 #define IClassFactory2_METHODS \
2216     ICOM_MSVTABLE_COMPAT_FIELDS \
2217     /*** IUnknown methods ***/ \
2218     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2219     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2220     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2221     /*** IClassFactory methods ***/ \
2222     STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, void** ppvObject) PURE; \
2223     STDMETHOD_(HRESULT,LockServer)(THIS_ BOOL fLock) PURE; \
2224     /*** IClassFactory2 methods ***/ \
2225     STDMETHOD_(HRESULT,GetLicInfo)(THIS_ LICINFO* pLicInfo) PURE; \
2226     STDMETHOD_(HRESULT,RequestLicKey)(THIS_ DWORD dwReserved, BSTR* pBstrKey) PURE; \
2227     STDMETHOD_(HRESULT,CreateInstanceLic)(THIS_ IUnknown* pUnkOuter, IUnknown* pUnkReserved, REFIID riid, BSTR bstrKey, PVOID* ppvObj) PURE;
2228
2229 HRESULT CALLBACK IClassFactory2_GetLicInfo_Proxy(
2230     IClassFactory2* This,
2231     LICINFO* pLicInfo);
2232 void __RPC_STUB IClassFactory2_GetLicInfo_Stub(
2233     struct IRpcStubBuffer* This,
2234     struct IRpcChannelBuffer* pRpcChannelBuffer,
2235     PRPC_MESSAGE pRpcMessage,
2236     DWORD* pdwStubPhase);
2237 HRESULT CALLBACK IClassFactory2_RequestLicKey_Proxy(
2238     IClassFactory2* This,
2239     DWORD dwReserved,
2240     BSTR* pBstrKey);
2241 void __RPC_STUB IClassFactory2_RequestLicKey_Stub(
2242     struct IRpcStubBuffer* This,
2243     struct IRpcChannelBuffer* pRpcChannelBuffer,
2244     PRPC_MESSAGE pRpcMessage,
2245     DWORD* pdwStubPhase);
2246 HRESULT CALLBACK IClassFactory2_RemoteCreateInstanceLic_Proxy(
2247     IClassFactory2* This,
2248     REFIID riid,
2249     BSTR bstrKey,
2250     IUnknown** ppvObj);
2251 void __RPC_STUB IClassFactory2_RemoteCreateInstanceLic_Stub(
2252     struct IRpcStubBuffer* This,
2253     struct IRpcChannelBuffer* pRpcChannelBuffer,
2254     PRPC_MESSAGE pRpcMessage,
2255     DWORD* pdwStubPhase);
2256 HRESULT CALLBACK IClassFactory2_CreateInstanceLic_Proxy(
2257     IClassFactory2* This,
2258     IUnknown* pUnkOuter,
2259     IUnknown* pUnkReserved,
2260     REFIID riid,
2261     BSTR bstrKey,
2262     PVOID* ppvObj);
2263 HRESULT __RPC_STUB IClassFactory2_CreateInstanceLic_Stub(
2264     IClassFactory2* This,
2265     REFIID riid,
2266     BSTR bstrKey,
2267     IUnknown** ppvObj);
2268
2269 #endif  /* __IClassFactory2_INTERFACE_DEFINED__ */
2270
2271 #ifndef __IViewObjectEx_FWD_DEFINED__
2272 #define __IViewObjectEx_FWD_DEFINED__
2273 typedef struct IViewObjectEx IViewObjectEx;
2274 #endif
2275
2276 typedef IViewObjectEx *LPVIEWOBJECTEX;
2277
2278 typedef enum tagVIEWSTATUS {
2279     VIEWSTATUS_OPAQUE = 1,
2280     VIEWSTATUS_SOLIDBKGND = 2,
2281     VIEWSTATUS_DVASPECTOPAQUE = 4,
2282     VIEWSTATUS_DVASPECTTRANSPARENT = 8,
2283     VIEWSTATUS_SURFACE = 16,
2284     VIEWSTATUS_3DSURFACE = 32
2285 } VIEWSTATUS;
2286
2287 typedef enum tagHITRESULT {
2288     HITRESULT_OUTSIDE = 0,
2289     HITRESULT_TRANSPARENT = 1,
2290     HITRESULT_CLOSE = 2,
2291     HITRESULT_HIT = 3
2292 } HITRESULT;
2293
2294 typedef enum tagDVASPECT2 {
2295     DVASPECT_OPAQUE = 16,
2296     DVASPECT_TRANSPARENT = 32
2297 } DVASPECT2;
2298
2299 typedef struct tagExtentInfo {
2300     ULONG cb;
2301     DWORD dwExtentMode;
2302     SIZEL sizelProposed;
2303 } DVEXTENTINFO;
2304
2305 typedef enum tagAspectInfoFlag {
2306     DVASPECTINFOFLAG_CANOPTIMIZE = 1
2307 } DVASPECTINFOFLAG;
2308
2309 typedef struct tagAspectInfo {
2310     ULONG cb;
2311     DWORD dwFlags;
2312 } DVASPECTINFO;
2313
2314 /*****************************************************************************
2315  * IViewObjectEx interface
2316  */
2317 #ifndef __IViewObjectEx_INTERFACE_DEFINED__
2318 #define __IViewObjectEx_INTERFACE_DEFINED__
2319
2320 DEFINE_GUID(IID_IViewObjectEx, 0x3af24292, 0x0c96, 0x11ce, 0xa0,0xcf, 0x00,0xaa,0x00,0x60,0x0a,0xb8);
2321 #if defined(__cplusplus) && !defined(CINTERFACE)
2322 struct IViewObjectEx : public IViewObject2
2323 {
2324     virtual HRESULT STDMETHODCALLTYPE GetRect(
2325         DWORD dwAspect,
2326         LPRECTL pRect) = 0;
2327
2328     virtual HRESULT STDMETHODCALLTYPE GetViewStatus(
2329         DWORD* pdwStatus) = 0;
2330
2331     virtual HRESULT STDMETHODCALLTYPE QueryHitPoint(
2332         DWORD dwAspect,
2333         LPCRECT pRectBounds,
2334         POINT ptlLoc,
2335         LONG lCloseHint,
2336         DWORD* pHitResult) = 0;
2337
2338     virtual HRESULT STDMETHODCALLTYPE QueryHitRect(
2339         DWORD dwAspect,
2340         LPCRECT pRectBounds,
2341         LPCRECT pRectLoc,
2342         LONG lCloseHint,
2343         DWORD* pHitResult) = 0;
2344
2345     virtual HRESULT STDMETHODCALLTYPE GetNaturalExtent(
2346         DWORD dwAspect,
2347         LONG lindex,
2348         DVTARGETDEVICE* ptd,
2349         HDC hicTargetDev,
2350         DVEXTENTINFO* pExtentInfo,
2351         LPSIZEL pSizel) = 0;
2352
2353 };
2354 #else
2355 typedef struct IViewObjectExVtbl IViewObjectExVtbl;
2356 struct IViewObjectEx {
2357     const IViewObjectExVtbl* lpVtbl;
2358 };
2359 struct IViewObjectExVtbl {
2360     ICOM_MSVTABLE_COMPAT_FIELDS
2361
2362     /*** IUnknown methods ***/
2363     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2364         IViewObjectEx* This,
2365         REFIID riid,
2366         void** ppvObject);
2367
2368     ULONG (STDMETHODCALLTYPE *AddRef)(
2369         IViewObjectEx* This);
2370
2371     ULONG (STDMETHODCALLTYPE *Release)(
2372         IViewObjectEx* This);
2373
2374     /*** IViewObject methods ***/
2375     HRESULT (STDMETHODCALLTYPE *Draw)(
2376         IViewObjectEx* This,
2377         DWORD dwDrawAspect,
2378         LONG lindex,
2379         void* pvAspect,
2380         DVTARGETDEVICE* ptd,
2381         HDC hdcTargetDev,
2382         HDC hdcDraw,
2383         LPCRECTL lprcBounds,
2384         LPCRECTL lprcWBounds,
2385         BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue),
2386         ULONG_PTR dwContinue);
2387
2388     HRESULT (STDMETHODCALLTYPE *GetColorSet)(
2389         IViewObjectEx* This,
2390         DWORD dwDrawAspect,
2391         LONG lindex,
2392         void* pvAspect,
2393         DVTARGETDEVICE* ptd,
2394         HDC hicTargetDev,
2395         LOGPALETTE** ppColorSet);
2396
2397     HRESULT (STDMETHODCALLTYPE *Freeze)(
2398         IViewObjectEx* This,
2399         DWORD dwDrawAspect,
2400         LONG lindex,
2401         void* pvAspect,
2402         DWORD* pdwFreeze);
2403
2404     HRESULT (STDMETHODCALLTYPE *Unfreeze)(
2405         IViewObjectEx* This,
2406         DWORD dwFreeze);
2407
2408     HRESULT (STDMETHODCALLTYPE *SetAdvise)(
2409         IViewObjectEx* This,
2410         DWORD aspects,
2411         DWORD advf,
2412         IAdviseSink* pAdvSink);
2413
2414     HRESULT (STDMETHODCALLTYPE *GetAdvise)(
2415         IViewObjectEx* This,
2416         DWORD* pAspects,
2417         DWORD* pAdvf,
2418         IAdviseSink** ppAdvSink);
2419
2420     /*** IViewObject2 methods ***/
2421     HRESULT (STDMETHODCALLTYPE *GetExtent)(
2422         IViewObjectEx* This,
2423         DWORD dwDrawAspect,
2424         LONG lindex,
2425         DVTARGETDEVICE* ptd,
2426         LPSIZEL lpsizel);
2427
2428     /*** IViewObjectEx methods ***/
2429     HRESULT (STDMETHODCALLTYPE *GetRect)(
2430         IViewObjectEx* This,
2431         DWORD dwAspect,
2432         LPRECTL pRect);
2433
2434     HRESULT (STDMETHODCALLTYPE *GetViewStatus)(
2435         IViewObjectEx* This,
2436         DWORD* pdwStatus);
2437
2438     HRESULT (STDMETHODCALLTYPE *QueryHitPoint)(
2439         IViewObjectEx* This,
2440         DWORD dwAspect,
2441         LPCRECT pRectBounds,
2442         POINT ptlLoc,
2443         LONG lCloseHint,
2444         DWORD* pHitResult);
2445
2446     HRESULT (STDMETHODCALLTYPE *QueryHitRect)(
2447         IViewObjectEx* This,
2448         DWORD dwAspect,
2449         LPCRECT pRectBounds,
2450         LPCRECT pRectLoc,
2451         LONG lCloseHint,
2452         DWORD* pHitResult);
2453
2454     HRESULT (STDMETHODCALLTYPE *GetNaturalExtent)(
2455         IViewObjectEx* This,
2456         DWORD dwAspect,
2457         LONG lindex,
2458         DVTARGETDEVICE* ptd,
2459         HDC hicTargetDev,
2460         DVEXTENTINFO* pExtentInfo,
2461         LPSIZEL pSizel);
2462
2463 };
2464
2465 /*** IUnknown methods ***/
2466 #define IViewObjectEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2467 #define IViewObjectEx_AddRef(p) (p)->lpVtbl->AddRef(p)
2468 #define IViewObjectEx_Release(p) (p)->lpVtbl->Release(p)
2469 /*** IViewObject methods ***/
2470 #define IViewObjectEx_Draw(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Draw(p,a,b,c,d,e,f,g,h,i,j)
2471 #define IViewObjectEx_GetColorSet(p,a,b,c,d,e,f) (p)->lpVtbl->GetColorSet(p,a,b,c,d,e,f)
2472 #define IViewObjectEx_Freeze(p,a,b,c,d) (p)->lpVtbl->Freeze(p,a,b,c,d)
2473 #define IViewObjectEx_Unfreeze(p,a) (p)->lpVtbl->Unfreeze(p,a)
2474 #define IViewObjectEx_SetAdvise(p,a,b,c) (p)->lpVtbl->SetAdvise(p,a,b,c)
2475 #define IViewObjectEx_GetAdvise(p,a,b,c) (p)->lpVtbl->GetAdvise(p,a,b,c)
2476 /*** IViewObject2 methods ***/
2477 #define IViewObjectEx_GetExtent(p,a,b,c,d) (p)->lpVtbl->GetExtent(p,a,b,c,d)
2478 /*** IViewObjectEx methods ***/
2479 #define IViewObjectEx_GetRect(p,a,b) (p)->lpVtbl->GetRect(p,a,b)
2480 #define IViewObjectEx_GetViewStatus(p,a) (p)->lpVtbl->GetViewStatus(p,a)
2481 #define IViewObjectEx_QueryHitPoint(p,a,b,c,d,e) (p)->lpVtbl->QueryHitPoint(p,a,b,c,d,e)
2482 #define IViewObjectEx_QueryHitRect(p,a,b,c,d,e) (p)->lpVtbl->QueryHitRect(p,a,b,c,d,e)
2483 #define IViewObjectEx_GetNaturalExtent(p,a,b,c,d,e,f) (p)->lpVtbl->GetNaturalExtent(p,a,b,c,d,e,f)
2484
2485 #endif
2486
2487 #define IViewObjectEx_METHODS \
2488     ICOM_MSVTABLE_COMPAT_FIELDS \
2489     /*** IUnknown methods ***/ \
2490     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2491     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2492     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2493     /*** IViewObject methods ***/ \
2494     STDMETHOD_(HRESULT,Draw)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE* ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue) PURE; \
2495     STDMETHOD_(HRESULT,GetColorSet)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE* ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet) PURE; \
2496     STDMETHOD_(HRESULT,Freeze)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze) PURE; \
2497     STDMETHOD_(HRESULT,Unfreeze)(THIS_ DWORD dwFreeze) PURE; \
2498     STDMETHOD_(HRESULT,SetAdvise)(THIS_ DWORD aspects, DWORD advf, IAdviseSink* pAdvSink) PURE; \
2499     STDMETHOD_(HRESULT,GetAdvise)(THIS_ DWORD* pAspects, DWORD* pAdvf, IAdviseSink** ppAdvSink) PURE; \
2500     /*** IViewObject2 methods ***/ \
2501     STDMETHOD_(HRESULT,GetExtent)(THIS_ DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE* ptd, LPSIZEL lpsizel) PURE; \
2502     /*** IViewObjectEx methods ***/ \
2503     STDMETHOD_(HRESULT,GetRect)(THIS_ DWORD dwAspect, LPRECTL pRect) PURE; \
2504     STDMETHOD_(HRESULT,GetViewStatus)(THIS_ DWORD* pdwStatus) PURE; \
2505     STDMETHOD_(HRESULT,QueryHitPoint)(THIS_ DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD* pHitResult) PURE; \
2506     STDMETHOD_(HRESULT,QueryHitRect)(THIS_ DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD* pHitResult) PURE; \
2507     STDMETHOD_(HRESULT,GetNaturalExtent)(THIS_ DWORD dwAspect, LONG lindex, DVTARGETDEVICE* ptd, HDC hicTargetDev, DVEXTENTINFO* pExtentInfo, LPSIZEL pSizel) PURE;
2508
2509 HRESULT CALLBACK IViewObjectEx_GetRect_Proxy(
2510     IViewObjectEx* This,
2511     DWORD dwAspect,
2512     LPRECTL pRect);
2513 void __RPC_STUB IViewObjectEx_GetRect_Stub(
2514     struct IRpcStubBuffer* This,
2515     struct IRpcChannelBuffer* pRpcChannelBuffer,
2516     PRPC_MESSAGE pRpcMessage,
2517     DWORD* pdwStubPhase);
2518 HRESULT CALLBACK IViewObjectEx_GetViewStatus_Proxy(
2519     IViewObjectEx* This,
2520     DWORD* pdwStatus);
2521 void __RPC_STUB IViewObjectEx_GetViewStatus_Stub(
2522     struct IRpcStubBuffer* This,
2523     struct IRpcChannelBuffer* pRpcChannelBuffer,
2524     PRPC_MESSAGE pRpcMessage,
2525     DWORD* pdwStubPhase);
2526 HRESULT CALLBACK IViewObjectEx_QueryHitPoint_Proxy(
2527     IViewObjectEx* This,
2528     DWORD dwAspect,
2529     LPCRECT pRectBounds,
2530     POINT ptlLoc,
2531     LONG lCloseHint,
2532     DWORD* pHitResult);
2533 void __RPC_STUB IViewObjectEx_QueryHitPoint_Stub(
2534     struct IRpcStubBuffer* This,
2535     struct IRpcChannelBuffer* pRpcChannelBuffer,
2536     PRPC_MESSAGE pRpcMessage,
2537     DWORD* pdwStubPhase);
2538 HRESULT CALLBACK IViewObjectEx_QueryHitRect_Proxy(
2539     IViewObjectEx* This,
2540     DWORD dwAspect,
2541     LPCRECT pRectBounds,
2542     LPCRECT pRectLoc,
2543     LONG lCloseHint,
2544     DWORD* pHitResult);
2545 void __RPC_STUB IViewObjectEx_QueryHitRect_Stub(
2546     struct IRpcStubBuffer* This,
2547     struct IRpcChannelBuffer* pRpcChannelBuffer,
2548     PRPC_MESSAGE pRpcMessage,
2549     DWORD* pdwStubPhase);
2550 HRESULT CALLBACK IViewObjectEx_GetNaturalExtent_Proxy(
2551     IViewObjectEx* This,
2552     DWORD dwAspect,
2553     LONG lindex,
2554     DVTARGETDEVICE* ptd,
2555     HDC hicTargetDev,
2556     DVEXTENTINFO* pExtentInfo,
2557     LPSIZEL pSizel);
2558 void __RPC_STUB IViewObjectEx_GetNaturalExtent_Stub(
2559     struct IRpcStubBuffer* This,
2560     struct IRpcChannelBuffer* pRpcChannelBuffer,
2561     PRPC_MESSAGE pRpcMessage,
2562     DWORD* pdwStubPhase);
2563
2564 #endif  /* __IViewObjectEx_INTERFACE_DEFINED__ */
2565
2566 #ifndef __IProvideClassInfo_FWD_DEFINED__
2567 #define __IProvideClassInfo_FWD_DEFINED__
2568 typedef struct IProvideClassInfo IProvideClassInfo;
2569 #endif
2570
2571 typedef IProvideClassInfo *LPPROVIDECLASSINFO;
2572
2573 #ifdef __WINESRC__
2574 #undef GetClassInfo
2575 #endif
2576 /*****************************************************************************
2577  * IProvideClassInfo interface
2578  */
2579 #ifndef __IProvideClassInfo_INTERFACE_DEFINED__
2580 #define __IProvideClassInfo_INTERFACE_DEFINED__
2581
2582 DEFINE_GUID(IID_IProvideClassInfo, 0xb196b283, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
2583 #if defined(__cplusplus) && !defined(CINTERFACE)
2584 struct IProvideClassInfo : public IUnknown
2585 {
2586     virtual HRESULT STDMETHODCALLTYPE GetClassInfo(
2587         ITypeInfo** ppTI) = 0;
2588
2589 };
2590 #else
2591 typedef struct IProvideClassInfoVtbl IProvideClassInfoVtbl;
2592 struct IProvideClassInfo {
2593     const IProvideClassInfoVtbl* lpVtbl;
2594 };
2595 struct IProvideClassInfoVtbl {
2596     ICOM_MSVTABLE_COMPAT_FIELDS
2597
2598     /*** IUnknown methods ***/
2599     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2600         IProvideClassInfo* This,
2601         REFIID riid,
2602         void** ppvObject);
2603
2604     ULONG (STDMETHODCALLTYPE *AddRef)(
2605         IProvideClassInfo* This);
2606
2607     ULONG (STDMETHODCALLTYPE *Release)(
2608         IProvideClassInfo* This);
2609
2610     /*** IProvideClassInfo methods ***/
2611     HRESULT (STDMETHODCALLTYPE *GetClassInfo)(
2612         IProvideClassInfo* This,
2613         ITypeInfo** ppTI);
2614
2615 };
2616
2617 /*** IUnknown methods ***/
2618 #define IProvideClassInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2619 #define IProvideClassInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
2620 #define IProvideClassInfo_Release(p) (p)->lpVtbl->Release(p)
2621 /*** IProvideClassInfo methods ***/
2622 #define IProvideClassInfo_GetClassInfo(p,a) (p)->lpVtbl->GetClassInfo(p,a)
2623
2624 #endif
2625
2626 #define IProvideClassInfo_METHODS \
2627     ICOM_MSVTABLE_COMPAT_FIELDS \
2628     /*** IUnknown methods ***/ \
2629     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2630     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2631     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2632     /*** IProvideClassInfo methods ***/ \
2633     STDMETHOD_(HRESULT,GetClassInfo)(THIS_ ITypeInfo** ppTI) PURE;
2634
2635 HRESULT CALLBACK IProvideClassInfo_GetClassInfo_Proxy(
2636     IProvideClassInfo* This,
2637     ITypeInfo** ppTI);
2638 void __RPC_STUB IProvideClassInfo_GetClassInfo_Stub(
2639     struct IRpcStubBuffer* This,
2640     struct IRpcChannelBuffer* pRpcChannelBuffer,
2641     PRPC_MESSAGE pRpcMessage,
2642     DWORD* pdwStubPhase);
2643
2644 #endif  /* __IProvideClassInfo_INTERFACE_DEFINED__ */
2645
2646 #ifndef __IProvideClassInfo2_FWD_DEFINED__
2647 #define __IProvideClassInfo2_FWD_DEFINED__
2648 typedef struct IProvideClassInfo2 IProvideClassInfo2;
2649 #endif
2650
2651 typedef IProvideClassInfo2 *LPPROVIDECLASSINFO2;
2652
2653 typedef enum tagGUIDKIND {
2654     GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1
2655 } GUIDKIND;
2656
2657 /*****************************************************************************
2658  * IProvideClassInfo2 interface
2659  */
2660 #ifndef __IProvideClassInfo2_INTERFACE_DEFINED__
2661 #define __IProvideClassInfo2_INTERFACE_DEFINED__
2662
2663 DEFINE_GUID(IID_IProvideClassInfo2, 0xa6bc3ac0, 0xdbaa, 0x11ce, 0x9d,0xe3, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
2664 #if defined(__cplusplus) && !defined(CINTERFACE)
2665 struct IProvideClassInfo2 : public IProvideClassInfo
2666 {
2667     virtual HRESULT STDMETHODCALLTYPE GetGUID(
2668         DWORD dwGuidKind,
2669         GUID* pGUID) = 0;
2670
2671 };
2672 #else
2673 typedef struct IProvideClassInfo2Vtbl IProvideClassInfo2Vtbl;
2674 struct IProvideClassInfo2 {
2675     const IProvideClassInfo2Vtbl* lpVtbl;
2676 };
2677 struct IProvideClassInfo2Vtbl {
2678     ICOM_MSVTABLE_COMPAT_FIELDS
2679
2680     /*** IUnknown methods ***/
2681     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2682         IProvideClassInfo2* This,
2683         REFIID riid,
2684         void** ppvObject);
2685
2686     ULONG (STDMETHODCALLTYPE *AddRef)(
2687         IProvideClassInfo2* This);
2688
2689     ULONG (STDMETHODCALLTYPE *Release)(
2690         IProvideClassInfo2* This);
2691
2692     /*** IProvideClassInfo methods ***/
2693     HRESULT (STDMETHODCALLTYPE *GetClassInfo)(
2694         IProvideClassInfo2* This,
2695         ITypeInfo** ppTI);
2696
2697     /*** IProvideClassInfo2 methods ***/
2698     HRESULT (STDMETHODCALLTYPE *GetGUID)(
2699         IProvideClassInfo2* This,
2700         DWORD dwGuidKind,
2701         GUID* pGUID);
2702
2703 };
2704
2705 /*** IUnknown methods ***/
2706 #define IProvideClassInfo2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2707 #define IProvideClassInfo2_AddRef(p) (p)->lpVtbl->AddRef(p)
2708 #define IProvideClassInfo2_Release(p) (p)->lpVtbl->Release(p)
2709 /*** IProvideClassInfo methods ***/
2710 #define IProvideClassInfo2_GetClassInfo(p,a) (p)->lpVtbl->GetClassInfo(p,a)
2711 /*** IProvideClassInfo2 methods ***/
2712 #define IProvideClassInfo2_GetGUID(p,a,b) (p)->lpVtbl->GetGUID(p,a,b)
2713
2714 #endif
2715
2716 #define IProvideClassInfo2_METHODS \
2717     ICOM_MSVTABLE_COMPAT_FIELDS \
2718     /*** IUnknown methods ***/ \
2719     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2720     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2721     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2722     /*** IProvideClassInfo methods ***/ \
2723     STDMETHOD_(HRESULT,GetClassInfo)(THIS_ ITypeInfo** ppTI) PURE; \
2724     /*** IProvideClassInfo2 methods ***/ \
2725     STDMETHOD_(HRESULT,GetGUID)(THIS_ DWORD dwGuidKind, GUID* pGUID) PURE;
2726
2727 HRESULT CALLBACK IProvideClassInfo2_GetGUID_Proxy(
2728     IProvideClassInfo2* This,
2729     DWORD dwGuidKind,
2730     GUID* pGUID);
2731 void __RPC_STUB IProvideClassInfo2_GetGUID_Stub(
2732     struct IRpcStubBuffer* This,
2733     struct IRpcChannelBuffer* pRpcChannelBuffer,
2734     PRPC_MESSAGE pRpcMessage,
2735     DWORD* pdwStubPhase);
2736
2737 #endif  /* __IProvideClassInfo2_INTERFACE_DEFINED__ */
2738
2739 #ifndef __IConnectionPointContainer_FWD_DEFINED__
2740 #define __IConnectionPointContainer_FWD_DEFINED__
2741 typedef struct IConnectionPointContainer IConnectionPointContainer;
2742 #endif
2743
2744 #ifndef __IEnumConnections_FWD_DEFINED__
2745 #define __IEnumConnections_FWD_DEFINED__
2746 typedef struct IEnumConnections IEnumConnections;
2747 #endif
2748
2749 #ifndef __IConnectionPoint_FWD_DEFINED__
2750 #define __IConnectionPoint_FWD_DEFINED__
2751 typedef struct IConnectionPoint IConnectionPoint;
2752 #endif
2753
2754 typedef IConnectionPoint *PCONNECTIONPOINT, *LPCONNECTIONPOINT;
2755
2756 /*****************************************************************************
2757  * IConnectionPoint interface
2758  */
2759 #ifndef __IConnectionPoint_INTERFACE_DEFINED__
2760 #define __IConnectionPoint_INTERFACE_DEFINED__
2761
2762 DEFINE_GUID(IID_IConnectionPoint, 0xb196b286, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
2763 #if defined(__cplusplus) && !defined(CINTERFACE)
2764 struct IConnectionPoint : public IUnknown
2765 {
2766     virtual HRESULT STDMETHODCALLTYPE GetConnectionInterface(
2767         IID* pIID) = 0;
2768
2769     virtual HRESULT STDMETHODCALLTYPE GetConnectionPointContainer(
2770         IConnectionPointContainer** ppCPC) = 0;
2771
2772     virtual HRESULT STDMETHODCALLTYPE Advise(
2773         IUnknown* pUnkSink,
2774         DWORD* pdwCookie) = 0;
2775
2776     virtual HRESULT STDMETHODCALLTYPE Unadvise(
2777         DWORD dwCookie) = 0;
2778
2779     virtual HRESULT STDMETHODCALLTYPE EnumConnections(
2780         IEnumConnections** ppEnum) = 0;
2781
2782 };
2783 #else
2784 typedef struct IConnectionPointVtbl IConnectionPointVtbl;
2785 struct IConnectionPoint {
2786     const IConnectionPointVtbl* lpVtbl;
2787 };
2788 struct IConnectionPointVtbl {
2789     ICOM_MSVTABLE_COMPAT_FIELDS
2790
2791     /*** IUnknown methods ***/
2792     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2793         IConnectionPoint* This,
2794         REFIID riid,
2795         void** ppvObject);
2796
2797     ULONG (STDMETHODCALLTYPE *AddRef)(
2798         IConnectionPoint* This);
2799
2800     ULONG (STDMETHODCALLTYPE *Release)(
2801         IConnectionPoint* This);
2802
2803     /*** IConnectionPoint methods ***/
2804     HRESULT (STDMETHODCALLTYPE *GetConnectionInterface)(
2805         IConnectionPoint* This,
2806         IID* pIID);
2807
2808     HRESULT (STDMETHODCALLTYPE *GetConnectionPointContainer)(
2809         IConnectionPoint* This,
2810         IConnectionPointContainer** ppCPC);
2811
2812     HRESULT (STDMETHODCALLTYPE *Advise)(
2813         IConnectionPoint* This,
2814         IUnknown* pUnkSink,
2815         DWORD* pdwCookie);
2816
2817     HRESULT (STDMETHODCALLTYPE *Unadvise)(
2818         IConnectionPoint* This,
2819         DWORD dwCookie);
2820
2821     HRESULT (STDMETHODCALLTYPE *EnumConnections)(
2822         IConnectionPoint* This,
2823         IEnumConnections** ppEnum);
2824
2825 };
2826
2827 /*** IUnknown methods ***/
2828 #define IConnectionPoint_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2829 #define IConnectionPoint_AddRef(p) (p)->lpVtbl->AddRef(p)
2830 #define IConnectionPoint_Release(p) (p)->lpVtbl->Release(p)
2831 /*** IConnectionPoint methods ***/
2832 #define IConnectionPoint_GetConnectionInterface(p,a) (p)->lpVtbl->GetConnectionInterface(p,a)
2833 #define IConnectionPoint_GetConnectionPointContainer(p,a) (p)->lpVtbl->GetConnectionPointContainer(p,a)
2834 #define IConnectionPoint_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b)
2835 #define IConnectionPoint_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
2836 #define IConnectionPoint_EnumConnections(p,a) (p)->lpVtbl->EnumConnections(p,a)
2837
2838 #endif
2839
2840 #define IConnectionPoint_METHODS \
2841     ICOM_MSVTABLE_COMPAT_FIELDS \
2842     /*** IUnknown methods ***/ \
2843     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2844     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2845     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2846     /*** IConnectionPoint methods ***/ \
2847     STDMETHOD_(HRESULT,GetConnectionInterface)(THIS_ IID* pIID) PURE; \
2848     STDMETHOD_(HRESULT,GetConnectionPointContainer)(THIS_ IConnectionPointContainer** ppCPC) PURE; \
2849     STDMETHOD_(HRESULT,Advise)(THIS_ IUnknown* pUnkSink, DWORD* pdwCookie) PURE; \
2850     STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD dwCookie) PURE; \
2851     STDMETHOD_(HRESULT,EnumConnections)(THIS_ IEnumConnections** ppEnum) PURE;
2852
2853 HRESULT CALLBACK IConnectionPoint_GetConnectionInterface_Proxy(
2854     IConnectionPoint* This,
2855     IID* pIID);
2856 void __RPC_STUB IConnectionPoint_GetConnectionInterface_Stub(
2857     struct IRpcStubBuffer* This,
2858     struct IRpcChannelBuffer* pRpcChannelBuffer,
2859     PRPC_MESSAGE pRpcMessage,
2860     DWORD* pdwStubPhase);
2861 HRESULT CALLBACK IConnectionPoint_GetConnectionPointContainer_Proxy(
2862     IConnectionPoint* This,
2863     IConnectionPointContainer** ppCPC);
2864 void __RPC_STUB IConnectionPoint_GetConnectionPointContainer_Stub(
2865     struct IRpcStubBuffer* This,
2866     struct IRpcChannelBuffer* pRpcChannelBuffer,
2867     PRPC_MESSAGE pRpcMessage,
2868     DWORD* pdwStubPhase);
2869 HRESULT CALLBACK IConnectionPoint_Advise_Proxy(
2870     IConnectionPoint* This,
2871     IUnknown* pUnkSink,
2872     DWORD* pdwCookie);
2873 void __RPC_STUB IConnectionPoint_Advise_Stub(
2874     struct IRpcStubBuffer* This,
2875     struct IRpcChannelBuffer* pRpcChannelBuffer,
2876     PRPC_MESSAGE pRpcMessage,
2877     DWORD* pdwStubPhase);
2878 HRESULT CALLBACK IConnectionPoint_Unadvise_Proxy(
2879     IConnectionPoint* This,
2880     DWORD dwCookie);
2881 void __RPC_STUB IConnectionPoint_Unadvise_Stub(
2882     struct IRpcStubBuffer* This,
2883     struct IRpcChannelBuffer* pRpcChannelBuffer,
2884     PRPC_MESSAGE pRpcMessage,
2885     DWORD* pdwStubPhase);
2886 HRESULT CALLBACK IConnectionPoint_EnumConnections_Proxy(
2887     IConnectionPoint* This,
2888     IEnumConnections** ppEnum);
2889 void __RPC_STUB IConnectionPoint_EnumConnections_Stub(
2890     struct IRpcStubBuffer* This,
2891     struct IRpcChannelBuffer* pRpcChannelBuffer,
2892     PRPC_MESSAGE pRpcMessage,
2893     DWORD* pdwStubPhase);
2894
2895 #endif  /* __IConnectionPoint_INTERFACE_DEFINED__ */
2896
2897 #ifndef __IEnumConnectionPoints_FWD_DEFINED__
2898 #define __IEnumConnectionPoints_FWD_DEFINED__
2899 typedef struct IEnumConnectionPoints IEnumConnectionPoints;
2900 #endif
2901
2902 typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER, *LPCONNECTIONPOINTCONTAINER;
2903
2904 /*****************************************************************************
2905  * IConnectionPointContainer interface
2906  */
2907 #ifndef __IConnectionPointContainer_INTERFACE_DEFINED__
2908 #define __IConnectionPointContainer_INTERFACE_DEFINED__
2909
2910 DEFINE_GUID(IID_IConnectionPointContainer, 0xb196b284, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
2911 #if defined(__cplusplus) && !defined(CINTERFACE)
2912 struct IConnectionPointContainer : public IUnknown
2913 {
2914     virtual HRESULT STDMETHODCALLTYPE EnumConnectionPoints(
2915         IEnumConnectionPoints** ppEnum) = 0;
2916
2917     virtual HRESULT STDMETHODCALLTYPE FindConnectionPoint(
2918         REFIID riid,
2919         IConnectionPoint** ppCP) = 0;
2920
2921 };
2922 #else
2923 typedef struct IConnectionPointContainerVtbl IConnectionPointContainerVtbl;
2924 struct IConnectionPointContainer {
2925     const IConnectionPointContainerVtbl* lpVtbl;
2926 };
2927 struct IConnectionPointContainerVtbl {
2928     ICOM_MSVTABLE_COMPAT_FIELDS
2929
2930     /*** IUnknown methods ***/
2931     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2932         IConnectionPointContainer* This,
2933         REFIID riid,
2934         void** ppvObject);
2935
2936     ULONG (STDMETHODCALLTYPE *AddRef)(
2937         IConnectionPointContainer* This);
2938
2939     ULONG (STDMETHODCALLTYPE *Release)(
2940         IConnectionPointContainer* This);
2941
2942     /*** IConnectionPointContainer methods ***/
2943     HRESULT (STDMETHODCALLTYPE *EnumConnectionPoints)(
2944         IConnectionPointContainer* This,
2945         IEnumConnectionPoints** ppEnum);
2946
2947     HRESULT (STDMETHODCALLTYPE *FindConnectionPoint)(
2948         IConnectionPointContainer* This,
2949         REFIID riid,
2950         IConnectionPoint** ppCP);
2951
2952 };
2953
2954 /*** IUnknown methods ***/
2955 #define IConnectionPointContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2956 #define IConnectionPointContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
2957 #define IConnectionPointContainer_Release(p) (p)->lpVtbl->Release(p)
2958 /*** IConnectionPointContainer methods ***/
2959 #define IConnectionPointContainer_EnumConnectionPoints(p,a) (p)->lpVtbl->EnumConnectionPoints(p,a)
2960 #define IConnectionPointContainer_FindConnectionPoint(p,a,b) (p)->lpVtbl->FindConnectionPoint(p,a,b)
2961
2962 #endif
2963
2964 #define IConnectionPointContainer_METHODS \
2965     ICOM_MSVTABLE_COMPAT_FIELDS \
2966     /*** IUnknown methods ***/ \
2967     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2968     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2969     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2970     /*** IConnectionPointContainer methods ***/ \
2971     STDMETHOD_(HRESULT,EnumConnectionPoints)(THIS_ IEnumConnectionPoints** ppEnum) PURE; \
2972     STDMETHOD_(HRESULT,FindConnectionPoint)(THIS_ REFIID riid, IConnectionPoint** ppCP) PURE;
2973
2974 HRESULT CALLBACK IConnectionPointContainer_EnumConnectionPoints_Proxy(
2975     IConnectionPointContainer* This,
2976     IEnumConnectionPoints** ppEnum);
2977 void __RPC_STUB IConnectionPointContainer_EnumConnectionPoints_Stub(
2978     struct IRpcStubBuffer* This,
2979     struct IRpcChannelBuffer* pRpcChannelBuffer,
2980     PRPC_MESSAGE pRpcMessage,
2981     DWORD* pdwStubPhase);
2982 HRESULT CALLBACK IConnectionPointContainer_FindConnectionPoint_Proxy(
2983     IConnectionPointContainer* This,
2984     REFIID riid,
2985     IConnectionPoint** ppCP);
2986 void __RPC_STUB IConnectionPointContainer_FindConnectionPoint_Stub(
2987     struct IRpcStubBuffer* This,
2988     struct IRpcChannelBuffer* pRpcChannelBuffer,
2989     PRPC_MESSAGE pRpcMessage,
2990     DWORD* pdwStubPhase);
2991
2992 #endif  /* __IConnectionPointContainer_INTERFACE_DEFINED__ */
2993
2994 typedef IEnumConnections *PENUMCONNECTIONS, *LPENUMCONNECTIONS;
2995
2996 typedef struct tagCONNECTDATA {
2997     IUnknown *pUnk;
2998     DWORD dwCookie;
2999 } CONNECTDATA, *PCONNECTDATA, *LPCONNECTDATA;
3000
3001 /*****************************************************************************
3002  * IEnumConnections interface
3003  */
3004 #ifndef __IEnumConnections_INTERFACE_DEFINED__
3005 #define __IEnumConnections_INTERFACE_DEFINED__
3006
3007 DEFINE_GUID(IID_IEnumConnections, 0xb196b287, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
3008 #if defined(__cplusplus) && !defined(CINTERFACE)
3009 struct IEnumConnections : public IUnknown
3010 {
3011     virtual HRESULT STDMETHODCALLTYPE Next(
3012         ULONG cConnections,
3013         LPCONNECTDATA rgcd,
3014         ULONG* pcFetched) = 0;
3015
3016     virtual HRESULT STDMETHODCALLTYPE Skip(
3017         ULONG cConnections) = 0;
3018
3019     virtual HRESULT STDMETHODCALLTYPE Reset(
3020         ) = 0;
3021
3022     virtual HRESULT STDMETHODCALLTYPE Clone(
3023         IEnumConnections** ppEnum) = 0;
3024
3025 };
3026 #else
3027 typedef struct IEnumConnectionsVtbl IEnumConnectionsVtbl;
3028 struct IEnumConnections {
3029     const IEnumConnectionsVtbl* lpVtbl;
3030 };
3031 struct IEnumConnectionsVtbl {
3032     ICOM_MSVTABLE_COMPAT_FIELDS
3033
3034     /*** IUnknown methods ***/
3035     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3036         IEnumConnections* This,
3037         REFIID riid,
3038         void** ppvObject);
3039
3040     ULONG (STDMETHODCALLTYPE *AddRef)(
3041         IEnumConnections* This);
3042
3043     ULONG (STDMETHODCALLTYPE *Release)(
3044         IEnumConnections* This);
3045
3046     /*** IEnumConnections methods ***/
3047     HRESULT (STDMETHODCALLTYPE *Next)(
3048         IEnumConnections* This,
3049         ULONG cConnections,
3050         LPCONNECTDATA rgcd,
3051         ULONG* pcFetched);
3052
3053     HRESULT (STDMETHODCALLTYPE *Skip)(
3054         IEnumConnections* This,
3055         ULONG cConnections);
3056
3057     HRESULT (STDMETHODCALLTYPE *Reset)(
3058         IEnumConnections* This);
3059
3060     HRESULT (STDMETHODCALLTYPE *Clone)(
3061         IEnumConnections* This,
3062         IEnumConnections** ppEnum);
3063
3064 };
3065
3066 /*** IUnknown methods ***/
3067 #define IEnumConnections_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3068 #define IEnumConnections_AddRef(p) (p)->lpVtbl->AddRef(p)
3069 #define IEnumConnections_Release(p) (p)->lpVtbl->Release(p)
3070 /*** IEnumConnections methods ***/
3071 #define IEnumConnections_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3072 #define IEnumConnections_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3073 #define IEnumConnections_Reset(p) (p)->lpVtbl->Reset(p)
3074 #define IEnumConnections_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3075
3076 #endif
3077
3078 #define IEnumConnections_METHODS \
3079     ICOM_MSVTABLE_COMPAT_FIELDS \
3080     /*** IUnknown methods ***/ \
3081     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3082     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3083     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3084     /*** IEnumConnections methods ***/ \
3085     STDMETHOD_(HRESULT,Next)(THIS_ ULONG cConnections, LPCONNECTDATA rgcd, ULONG* pcFetched) PURE; \
3086     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cConnections) PURE; \
3087     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3088     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumConnections** ppEnum) PURE;
3089
3090 HRESULT CALLBACK IEnumConnections_RemoteNext_Proxy(
3091     IEnumConnections* This,
3092     ULONG cConnections,
3093     LPCONNECTDATA rgcd,
3094     ULONG* pcFetched);
3095 void __RPC_STUB IEnumConnections_RemoteNext_Stub(
3096     struct IRpcStubBuffer* This,
3097     struct IRpcChannelBuffer* pRpcChannelBuffer,
3098     PRPC_MESSAGE pRpcMessage,
3099     DWORD* pdwStubPhase);
3100 HRESULT CALLBACK IEnumConnections_Next_Proxy(
3101     IEnumConnections* This,
3102     ULONG cConnections,
3103     LPCONNECTDATA rgcd,
3104     ULONG* pcFetched);
3105 HRESULT __RPC_STUB IEnumConnections_Next_Stub(
3106     IEnumConnections* This,
3107     ULONG cConnections,
3108     LPCONNECTDATA rgcd,
3109     ULONG* pcFetched);
3110 HRESULT CALLBACK IEnumConnections_Skip_Proxy(
3111     IEnumConnections* This,
3112     ULONG cConnections);
3113 void __RPC_STUB IEnumConnections_Skip_Stub(
3114     struct IRpcStubBuffer* This,
3115     struct IRpcChannelBuffer* pRpcChannelBuffer,
3116     PRPC_MESSAGE pRpcMessage,
3117     DWORD* pdwStubPhase);
3118 HRESULT CALLBACK IEnumConnections_Reset_Proxy(
3119     IEnumConnections* This);
3120 void __RPC_STUB IEnumConnections_Reset_Stub(
3121     struct IRpcStubBuffer* This,
3122     struct IRpcChannelBuffer* pRpcChannelBuffer,
3123     PRPC_MESSAGE pRpcMessage,
3124     DWORD* pdwStubPhase);
3125 HRESULT CALLBACK IEnumConnections_Clone_Proxy(
3126     IEnumConnections* This,
3127     IEnumConnections** ppEnum);
3128 void __RPC_STUB IEnumConnections_Clone_Stub(
3129     struct IRpcStubBuffer* This,
3130     struct IRpcChannelBuffer* pRpcChannelBuffer,
3131     PRPC_MESSAGE pRpcMessage,
3132     DWORD* pdwStubPhase);
3133
3134 #endif  /* __IEnumConnections_INTERFACE_DEFINED__ */
3135
3136 typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS, *LPENUMCONNECTIONPOINTS;
3137
3138 /*****************************************************************************
3139  * IEnumConnectionPoints interface
3140  */
3141 #ifndef __IEnumConnectionPoints_INTERFACE_DEFINED__
3142 #define __IEnumConnectionPoints_INTERFACE_DEFINED__
3143
3144 DEFINE_GUID(IID_IEnumConnectionPoints, 0xb196b285, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
3145 #if defined(__cplusplus) && !defined(CINTERFACE)
3146 struct IEnumConnectionPoints : public IUnknown
3147 {
3148     virtual HRESULT STDMETHODCALLTYPE Next(
3149         ULONG cConnections,
3150         LPCONNECTIONPOINT* ppCP,
3151         ULONG* pcFetched) = 0;
3152
3153     virtual HRESULT STDMETHODCALLTYPE Skip(
3154         ULONG cConnections) = 0;
3155
3156     virtual HRESULT STDMETHODCALLTYPE Reset(
3157         ) = 0;
3158
3159     virtual HRESULT STDMETHODCALLTYPE Clone(
3160         IEnumConnectionPoints** ppEnum) = 0;
3161
3162 };
3163 #else
3164 typedef struct IEnumConnectionPointsVtbl IEnumConnectionPointsVtbl;
3165 struct IEnumConnectionPoints {
3166     const IEnumConnectionPointsVtbl* lpVtbl;
3167 };
3168 struct IEnumConnectionPointsVtbl {
3169     ICOM_MSVTABLE_COMPAT_FIELDS
3170
3171     /*** IUnknown methods ***/
3172     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3173         IEnumConnectionPoints* This,
3174         REFIID riid,
3175         void** ppvObject);
3176
3177     ULONG (STDMETHODCALLTYPE *AddRef)(
3178         IEnumConnectionPoints* This);
3179
3180     ULONG (STDMETHODCALLTYPE *Release)(
3181         IEnumConnectionPoints* This);
3182
3183     /*** IEnumConnectionPoints methods ***/
3184     HRESULT (STDMETHODCALLTYPE *Next)(
3185         IEnumConnectionPoints* This,
3186         ULONG cConnections,
3187         LPCONNECTIONPOINT* ppCP,
3188         ULONG* pcFetched);
3189
3190     HRESULT (STDMETHODCALLTYPE *Skip)(
3191         IEnumConnectionPoints* This,
3192         ULONG cConnections);
3193
3194     HRESULT (STDMETHODCALLTYPE *Reset)(
3195         IEnumConnectionPoints* This);
3196
3197     HRESULT (STDMETHODCALLTYPE *Clone)(
3198         IEnumConnectionPoints* This,
3199         IEnumConnectionPoints** ppEnum);
3200
3201 };
3202
3203 /*** IUnknown methods ***/
3204 #define IEnumConnectionPoints_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3205 #define IEnumConnectionPoints_AddRef(p) (p)->lpVtbl->AddRef(p)
3206 #define IEnumConnectionPoints_Release(p) (p)->lpVtbl->Release(p)
3207 /*** IEnumConnectionPoints methods ***/
3208 #define IEnumConnectionPoints_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3209 #define IEnumConnectionPoints_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3210 #define IEnumConnectionPoints_Reset(p) (p)->lpVtbl->Reset(p)
3211 #define IEnumConnectionPoints_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3212
3213 #endif
3214
3215 #define IEnumConnectionPoints_METHODS \
3216     ICOM_MSVTABLE_COMPAT_FIELDS \
3217     /*** IUnknown methods ***/ \
3218     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3219     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3220     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3221     /*** IEnumConnectionPoints methods ***/ \
3222     STDMETHOD_(HRESULT,Next)(THIS_ ULONG cConnections, LPCONNECTIONPOINT* ppCP, ULONG* pcFetched) PURE; \
3223     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cConnections) PURE; \
3224     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3225     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumConnectionPoints** ppEnum) PURE;
3226
3227 HRESULT CALLBACK IEnumConnectionPoints_RemoteNext_Proxy(
3228     IEnumConnectionPoints* This,
3229     ULONG cConnections,
3230     LPCONNECTIONPOINT* ppCP,
3231     ULONG* pcFetched);
3232 void __RPC_STUB IEnumConnectionPoints_RemoteNext_Stub(
3233     struct IRpcStubBuffer* This,
3234     struct IRpcChannelBuffer* pRpcChannelBuffer,
3235     PRPC_MESSAGE pRpcMessage,
3236     DWORD* pdwStubPhase);
3237 HRESULT CALLBACK IEnumConnectionPoints_Next_Proxy(
3238     IEnumConnectionPoints* This,
3239     ULONG cConnections,
3240     LPCONNECTIONPOINT* ppCP,
3241     ULONG* pcFetched);
3242 HRESULT __RPC_STUB IEnumConnectionPoints_Next_Stub(
3243     IEnumConnectionPoints* This,
3244     ULONG cConnections,
3245     LPCONNECTIONPOINT* ppCP,
3246     ULONG* pcFetched);
3247 HRESULT CALLBACK IEnumConnectionPoints_Skip_Proxy(
3248     IEnumConnectionPoints* This,
3249     ULONG cConnections);
3250 void __RPC_STUB IEnumConnectionPoints_Skip_Stub(
3251     struct IRpcStubBuffer* This,
3252     struct IRpcChannelBuffer* pRpcChannelBuffer,
3253     PRPC_MESSAGE pRpcMessage,
3254     DWORD* pdwStubPhase);
3255 HRESULT CALLBACK IEnumConnectionPoints_Reset_Proxy(
3256     IEnumConnectionPoints* This);
3257 void __RPC_STUB IEnumConnectionPoints_Reset_Stub(
3258     struct IRpcStubBuffer* This,
3259     struct IRpcChannelBuffer* pRpcChannelBuffer,
3260     PRPC_MESSAGE pRpcMessage,
3261     DWORD* pdwStubPhase);
3262 HRESULT CALLBACK IEnumConnectionPoints_Clone_Proxy(
3263     IEnumConnectionPoints* This,
3264     IEnumConnectionPoints** ppEnum);
3265 void __RPC_STUB IEnumConnectionPoints_Clone_Stub(
3266     struct IRpcStubBuffer* This,
3267     struct IRpcChannelBuffer* pRpcChannelBuffer,
3268     PRPC_MESSAGE pRpcMessage,
3269     DWORD* pdwStubPhase);
3270
3271 #endif  /* __IEnumConnectionPoints_INTERFACE_DEFINED__ */
3272
3273 #ifndef __IPropertyPageSite_FWD_DEFINED__
3274 #define __IPropertyPageSite_FWD_DEFINED__
3275 typedef struct IPropertyPageSite IPropertyPageSite;
3276 #endif
3277
3278 #ifndef __IPropertyPage_FWD_DEFINED__
3279 #define __IPropertyPage_FWD_DEFINED__
3280 typedef struct IPropertyPage IPropertyPage;
3281 #endif
3282
3283 typedef IPropertyPage *LPPROPERTYPAGE;
3284
3285 typedef struct tagPROPPAGEINFO {
3286     ULONG cb;
3287     LPOLESTR pszTitle;
3288     SIZE size;
3289     LPOLESTR pszDocString;
3290     LPOLESTR pszHelpFile;
3291     DWORD dwHelpContext;
3292 } PROPPAGEINFO, *LPPROPPAGEINFO;
3293
3294 /*****************************************************************************
3295  * IPropertyPage interface
3296  */
3297 #ifndef __IPropertyPage_INTERFACE_DEFINED__
3298 #define __IPropertyPage_INTERFACE_DEFINED__
3299
3300 DEFINE_GUID(IID_IPropertyPage, 0xb196b28d, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
3301 #if defined(__cplusplus) && !defined(CINTERFACE)
3302 struct IPropertyPage : public IUnknown
3303 {
3304     virtual HRESULT STDMETHODCALLTYPE SetPageSite(
3305         IPropertyPageSite* pPageSite) = 0;
3306
3307     virtual HRESULT STDMETHODCALLTYPE Activate(
3308         HWND hWndParent,
3309         LPCRECT pRect,
3310         BOOL bModal) = 0;
3311
3312     virtual HRESULT STDMETHODCALLTYPE Deactivate(
3313         ) = 0;
3314
3315     virtual HRESULT STDMETHODCALLTYPE GetPageInfo(
3316         PROPPAGEINFO* pPageInfo) = 0;
3317
3318     virtual HRESULT STDMETHODCALLTYPE SetObjects(
3319         ULONG cObjects,
3320         IUnknown** ppUnk) = 0;
3321
3322     virtual HRESULT STDMETHODCALLTYPE Show(
3323         UINT nCmdShow) = 0;
3324
3325     virtual HRESULT STDMETHODCALLTYPE Move(
3326         LPCRECT pRect) = 0;
3327
3328     virtual HRESULT STDMETHODCALLTYPE IsPageDirty(
3329         ) = 0;
3330
3331     virtual HRESULT STDMETHODCALLTYPE Apply(
3332         ) = 0;
3333
3334     virtual HRESULT STDMETHODCALLTYPE Help(
3335         LPCOLESTR pszHelpDir) = 0;
3336
3337     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
3338         MSG* pMsg) = 0;
3339
3340 };
3341 #else
3342 typedef struct IPropertyPageVtbl IPropertyPageVtbl;
3343 struct IPropertyPage {
3344     const IPropertyPageVtbl* lpVtbl;
3345 };
3346 struct IPropertyPageVtbl {
3347     ICOM_MSVTABLE_COMPAT_FIELDS
3348
3349     /*** IUnknown methods ***/
3350     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3351         IPropertyPage* This,
3352         REFIID riid,
3353         void** ppvObject);
3354
3355     ULONG (STDMETHODCALLTYPE *AddRef)(
3356         IPropertyPage* This);
3357
3358     ULONG (STDMETHODCALLTYPE *Release)(
3359         IPropertyPage* This);
3360
3361     /*** IPropertyPage methods ***/
3362     HRESULT (STDMETHODCALLTYPE *SetPageSite)(
3363         IPropertyPage* This,
3364         IPropertyPageSite* pPageSite);
3365
3366     HRESULT (STDMETHODCALLTYPE *Activate)(
3367         IPropertyPage* This,
3368         HWND hWndParent,
3369         LPCRECT pRect,
3370         BOOL bModal);
3371
3372     HRESULT (STDMETHODCALLTYPE *Deactivate)(
3373         IPropertyPage* This);
3374
3375     HRESULT (STDMETHODCALLTYPE *GetPageInfo)(
3376         IPropertyPage* This,
3377         PROPPAGEINFO* pPageInfo);
3378
3379     HRESULT (STDMETHODCALLTYPE *SetObjects)(
3380         IPropertyPage* This,
3381         ULONG cObjects,
3382         IUnknown** ppUnk);
3383
3384     HRESULT (STDMETHODCALLTYPE *Show)(
3385         IPropertyPage* This,
3386         UINT nCmdShow);
3387
3388     HRESULT (STDMETHODCALLTYPE *Move)(
3389         IPropertyPage* This,
3390         LPCRECT pRect);
3391
3392     HRESULT (STDMETHODCALLTYPE *IsPageDirty)(
3393         IPropertyPage* This);
3394
3395     HRESULT (STDMETHODCALLTYPE *Apply)(
3396         IPropertyPage* This);
3397
3398     HRESULT (STDMETHODCALLTYPE *Help)(
3399         IPropertyPage* This,
3400         LPCOLESTR pszHelpDir);
3401
3402     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
3403         IPropertyPage* This,
3404         MSG* pMsg);
3405
3406 };
3407
3408 /*** IUnknown methods ***/
3409 #define IPropertyPage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3410 #define IPropertyPage_AddRef(p) (p)->lpVtbl->AddRef(p)
3411 #define IPropertyPage_Release(p) (p)->lpVtbl->Release(p)
3412 /*** IPropertyPage methods ***/
3413 #define IPropertyPage_SetPageSite(p,a) (p)->lpVtbl->SetPageSite(p,a)
3414 #define IPropertyPage_Activate(p,a,b,c) (p)->lpVtbl->Activate(p,a,b,c)
3415 #define IPropertyPage_Deactivate(p) (p)->lpVtbl->Deactivate(p)
3416 #define IPropertyPage_GetPageInfo(p,a) (p)->lpVtbl->GetPageInfo(p,a)
3417 #define IPropertyPage_SetObjects(p,a,b) (p)->lpVtbl->SetObjects(p,a,b)
3418 #define IPropertyPage_Show(p,a) (p)->lpVtbl->Show(p,a)
3419 #define IPropertyPage_Move(p,a) (p)->lpVtbl->Move(p,a)
3420 #define IPropertyPage_IsPageDirty(p) (p)->lpVtbl->IsPageDirty(p)
3421 #define IPropertyPage_Apply(p) (p)->lpVtbl->Apply(p)
3422 #define IPropertyPage_Help(p,a) (p)->lpVtbl->Help(p,a)
3423 #define IPropertyPage_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
3424
3425 #endif
3426
3427 #define IPropertyPage_METHODS \
3428     ICOM_MSVTABLE_COMPAT_FIELDS \
3429     /*** IUnknown methods ***/ \
3430     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3431     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3432     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3433     /*** IPropertyPage methods ***/ \
3434     STDMETHOD_(HRESULT,SetPageSite)(THIS_ IPropertyPageSite* pPageSite) PURE; \
3435     STDMETHOD_(HRESULT,Activate)(THIS_ HWND hWndParent, LPCRECT pRect, BOOL bModal) PURE; \
3436     STDMETHOD_(HRESULT,Deactivate)(THIS) PURE; \
3437     STDMETHOD_(HRESULT,GetPageInfo)(THIS_ PROPPAGEINFO* pPageInfo) PURE; \
3438     STDMETHOD_(HRESULT,SetObjects)(THIS_ ULONG cObjects, IUnknown** ppUnk) PURE; \
3439     STDMETHOD_(HRESULT,Show)(THIS_ UINT nCmdShow) PURE; \
3440     STDMETHOD_(HRESULT,Move)(THIS_ LPCRECT pRect) PURE; \
3441     STDMETHOD_(HRESULT,IsPageDirty)(THIS) PURE; \
3442     STDMETHOD_(HRESULT,Apply)(THIS) PURE; \
3443     STDMETHOD_(HRESULT,Help)(THIS_ LPCOLESTR pszHelpDir) PURE; \
3444     STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pMsg) PURE;
3445
3446 HRESULT CALLBACK IPropertyPage_SetPageSite_Proxy(
3447     IPropertyPage* This,
3448     IPropertyPageSite* pPageSite);
3449 void __RPC_STUB IPropertyPage_SetPageSite_Stub(
3450     struct IRpcStubBuffer* This,
3451     struct IRpcChannelBuffer* pRpcChannelBuffer,
3452     PRPC_MESSAGE pRpcMessage,
3453     DWORD* pdwStubPhase);
3454 HRESULT CALLBACK IPropertyPage_Activate_Proxy(
3455     IPropertyPage* This,
3456     HWND hWndParent,
3457     LPCRECT pRect,
3458     BOOL bModal);
3459 void __RPC_STUB IPropertyPage_Activate_Stub(
3460     struct IRpcStubBuffer* This,
3461     struct IRpcChannelBuffer* pRpcChannelBuffer,
3462     PRPC_MESSAGE pRpcMessage,
3463     DWORD* pdwStubPhase);
3464 HRESULT CALLBACK IPropertyPage_Deactivate_Proxy(
3465     IPropertyPage* This);
3466 void __RPC_STUB IPropertyPage_Deactivate_Stub(
3467     struct IRpcStubBuffer* This,
3468     struct IRpcChannelBuffer* pRpcChannelBuffer,
3469     PRPC_MESSAGE pRpcMessage,
3470     DWORD* pdwStubPhase);
3471 HRESULT CALLBACK IPropertyPage_GetPageInfo_Proxy(
3472     IPropertyPage* This,
3473     PROPPAGEINFO* pPageInfo);
3474 void __RPC_STUB IPropertyPage_GetPageInfo_Stub(
3475     struct IRpcStubBuffer* This,
3476     struct IRpcChannelBuffer* pRpcChannelBuffer,
3477     PRPC_MESSAGE pRpcMessage,
3478     DWORD* pdwStubPhase);
3479 HRESULT CALLBACK IPropertyPage_SetObjects_Proxy(
3480     IPropertyPage* This,
3481     ULONG cObjects,
3482     IUnknown** ppUnk);
3483 void __RPC_STUB IPropertyPage_SetObjects_Stub(
3484     struct IRpcStubBuffer* This,
3485     struct IRpcChannelBuffer* pRpcChannelBuffer,
3486     PRPC_MESSAGE pRpcMessage,
3487     DWORD* pdwStubPhase);
3488 HRESULT CALLBACK IPropertyPage_Show_Proxy(
3489     IPropertyPage* This,
3490     UINT nCmdShow);
3491 void __RPC_STUB IPropertyPage_Show_Stub(
3492     struct IRpcStubBuffer* This,
3493     struct IRpcChannelBuffer* pRpcChannelBuffer,
3494     PRPC_MESSAGE pRpcMessage,
3495     DWORD* pdwStubPhase);
3496 HRESULT CALLBACK IPropertyPage_Move_Proxy(
3497     IPropertyPage* This,
3498     LPCRECT pRect);
3499 void __RPC_STUB IPropertyPage_Move_Stub(
3500     struct IRpcStubBuffer* This,
3501     struct IRpcChannelBuffer* pRpcChannelBuffer,
3502     PRPC_MESSAGE pRpcMessage,
3503     DWORD* pdwStubPhase);
3504 HRESULT CALLBACK IPropertyPage_IsPageDirty_Proxy(
3505     IPropertyPage* This);
3506 void __RPC_STUB IPropertyPage_IsPageDirty_Stub(
3507     struct IRpcStubBuffer* This,
3508     struct IRpcChannelBuffer* pRpcChannelBuffer,
3509     PRPC_MESSAGE pRpcMessage,
3510     DWORD* pdwStubPhase);
3511 HRESULT CALLBACK IPropertyPage_Apply_Proxy(
3512     IPropertyPage* This);
3513 void __RPC_STUB IPropertyPage_Apply_Stub(
3514     struct IRpcStubBuffer* This,
3515     struct IRpcChannelBuffer* pRpcChannelBuffer,
3516     PRPC_MESSAGE pRpcMessage,
3517     DWORD* pdwStubPhase);
3518 HRESULT CALLBACK IPropertyPage_Help_Proxy(
3519     IPropertyPage* This,
3520     LPCOLESTR pszHelpDir);
3521 void __RPC_STUB IPropertyPage_Help_Stub(
3522     struct IRpcStubBuffer* This,
3523     struct IRpcChannelBuffer* pRpcChannelBuffer,
3524     PRPC_MESSAGE pRpcMessage,
3525     DWORD* pdwStubPhase);
3526 HRESULT CALLBACK IPropertyPage_TranslateAccelerator_Proxy(
3527     IPropertyPage* This,
3528     MSG* pMsg);
3529 void __RPC_STUB IPropertyPage_TranslateAccelerator_Stub(
3530     struct IRpcStubBuffer* This,
3531     struct IRpcChannelBuffer* pRpcChannelBuffer,
3532     PRPC_MESSAGE pRpcMessage,
3533     DWORD* pdwStubPhase);
3534
3535 #endif  /* __IPropertyPage_INTERFACE_DEFINED__ */
3536
3537 #ifndef __IPropertyPage2_FWD_DEFINED__
3538 #define __IPropertyPage2_FWD_DEFINED__
3539 typedef struct IPropertyPage2 IPropertyPage2;
3540 #endif
3541
3542 typedef IPropertyPage2 *LPPROPERTYPAGE2;
3543
3544 /*****************************************************************************
3545  * IPropertyPage2 interface
3546  */
3547 #ifndef __IPropertyPage2_INTERFACE_DEFINED__
3548 #define __IPropertyPage2_INTERFACE_DEFINED__
3549
3550 DEFINE_GUID(IID_IPropertyPage2, 0x01e44665, 0x24ac, 0x101b, 0x84,0xed, 0x08,0x00,0x2b,0x2e,0xc7,0x13);
3551 #if defined(__cplusplus) && !defined(CINTERFACE)
3552 struct IPropertyPage2 : public IPropertyPage
3553 {
3554     virtual HRESULT STDMETHODCALLTYPE EditProperty(
3555         DISPID dispID) = 0;
3556
3557 };
3558 #else
3559 typedef struct IPropertyPage2Vtbl IPropertyPage2Vtbl;
3560 struct IPropertyPage2 {
3561     const IPropertyPage2Vtbl* lpVtbl;
3562 };
3563 struct IPropertyPage2Vtbl {
3564     ICOM_MSVTABLE_COMPAT_FIELDS
3565
3566     /*** IUnknown methods ***/
3567     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3568         IPropertyPage2* This,
3569         REFIID riid,
3570         void** ppvObject);
3571
3572     ULONG (STDMETHODCALLTYPE *AddRef)(
3573         IPropertyPage2* This);
3574
3575     ULONG (STDMETHODCALLTYPE *Release)(
3576         IPropertyPage2* This);
3577
3578     /*** IPropertyPage methods ***/
3579     HRESULT (STDMETHODCALLTYPE *SetPageSite)(
3580         IPropertyPage2* This,
3581         IPropertyPageSite* pPageSite);
3582
3583     HRESULT (STDMETHODCALLTYPE *Activate)(
3584         IPropertyPage2* This,
3585         HWND hWndParent,
3586         LPCRECT pRect,
3587         BOOL bModal);
3588
3589     HRESULT (STDMETHODCALLTYPE *Deactivate)(
3590         IPropertyPage2* This);
3591
3592     HRESULT (STDMETHODCALLTYPE *GetPageInfo)(
3593         IPropertyPage2* This,
3594         PROPPAGEINFO* pPageInfo);
3595
3596     HRESULT (STDMETHODCALLTYPE *SetObjects)(
3597         IPropertyPage2* This,
3598         ULONG cObjects,
3599         IUnknown** ppUnk);
3600
3601     HRESULT (STDMETHODCALLTYPE *Show)(
3602         IPropertyPage2* This,
3603         UINT nCmdShow);
3604
3605     HRESULT (STDMETHODCALLTYPE *Move)(
3606         IPropertyPage2* This,
3607         LPCRECT pRect);
3608
3609     HRESULT (STDMETHODCALLTYPE *IsPageDirty)(
3610         IPropertyPage2* This);
3611
3612     HRESULT (STDMETHODCALLTYPE *Apply)(
3613         IPropertyPage2* This);
3614
3615     HRESULT (STDMETHODCALLTYPE *Help)(
3616         IPropertyPage2* This,
3617         LPCOLESTR pszHelpDir);
3618
3619     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
3620         IPropertyPage2* This,
3621         MSG* pMsg);
3622
3623     /*** IPropertyPage2 methods ***/
3624     HRESULT (STDMETHODCALLTYPE *EditProperty)(
3625         IPropertyPage2* This,
3626         DISPID dispID);
3627
3628 };
3629
3630 /*** IUnknown methods ***/
3631 #define IPropertyPage2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3632 #define IPropertyPage2_AddRef(p) (p)->lpVtbl->AddRef(p)
3633 #define IPropertyPage2_Release(p) (p)->lpVtbl->Release(p)
3634 /*** IPropertyPage methods ***/
3635 #define IPropertyPage2_SetPageSite(p,a) (p)->lpVtbl->SetPageSite(p,a)
3636 #define IPropertyPage2_Activate(p,a,b,c) (p)->lpVtbl->Activate(p,a,b,c)
3637 #define IPropertyPage2_Deactivate(p) (p)->lpVtbl->Deactivate(p)
3638 #define IPropertyPage2_GetPageInfo(p,a) (p)->lpVtbl->GetPageInfo(p,a)
3639 #define IPropertyPage2_SetObjects(p,a,b) (p)->lpVtbl->SetObjects(p,a,b)
3640 #define IPropertyPage2_Show(p,a) (p)->lpVtbl->Show(p,a)
3641 #define IPropertyPage2_Move(p,a) (p)->lpVtbl->Move(p,a)
3642 #define IPropertyPage2_IsPageDirty(p) (p)->lpVtbl->IsPageDirty(p)
3643 #define IPropertyPage2_Apply(p) (p)->lpVtbl->Apply(p)
3644 #define IPropertyPage2_Help(p,a) (p)->lpVtbl->Help(p,a)
3645 #define IPropertyPage2_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
3646 /*** IPropertyPage2 methods ***/
3647 #define IPropertyPage2_EditProperty(p,a) (p)->lpVtbl->EditProperty(p,a)
3648
3649 #endif
3650
3651 #define IPropertyPage2_METHODS \
3652     ICOM_MSVTABLE_COMPAT_FIELDS \
3653     /*** IUnknown methods ***/ \
3654     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3655     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3656     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3657     /*** IPropertyPage methods ***/ \
3658     STDMETHOD_(HRESULT,SetPageSite)(THIS_ IPropertyPageSite* pPageSite) PURE; \
3659     STDMETHOD_(HRESULT,Activate)(THIS_ HWND hWndParent, LPCRECT pRect, BOOL bModal) PURE; \
3660     STDMETHOD_(HRESULT,Deactivate)(THIS) PURE; \
3661     STDMETHOD_(HRESULT,GetPageInfo)(THIS_ PROPPAGEINFO* pPageInfo) PURE; \
3662     STDMETHOD_(HRESULT,SetObjects)(THIS_ ULONG cObjects, IUnknown** ppUnk) PURE; \
3663     STDMETHOD_(HRESULT,Show)(THIS_ UINT nCmdShow) PURE; \
3664     STDMETHOD_(HRESULT,Move)(THIS_ LPCRECT pRect) PURE; \
3665     STDMETHOD_(HRESULT,IsPageDirty)(THIS) PURE; \
3666     STDMETHOD_(HRESULT,Apply)(THIS) PURE; \
3667     STDMETHOD_(HRESULT,Help)(THIS_ LPCOLESTR pszHelpDir) PURE; \
3668     STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pMsg) PURE; \
3669     /*** IPropertyPage2 methods ***/ \
3670     STDMETHOD_(HRESULT,EditProperty)(THIS_ DISPID dispID) PURE;
3671
3672 HRESULT CALLBACK IPropertyPage2_EditProperty_Proxy(
3673     IPropertyPage2* This,
3674     DISPID dispID);
3675 void __RPC_STUB IPropertyPage2_EditProperty_Stub(
3676     struct IRpcStubBuffer* This,
3677     struct IRpcChannelBuffer* pRpcChannelBuffer,
3678     PRPC_MESSAGE pRpcMessage,
3679     DWORD* pdwStubPhase);
3680
3681 #endif  /* __IPropertyPage2_INTERFACE_DEFINED__ */
3682
3683 typedef IPropertyPageSite *LPPROPERTYPAGESITE;
3684
3685 typedef enum tagPROPPAGESTATUS {
3686     PROPPAGESTATUS_DIRTY = 0x1,
3687     PROPPAGESTATUS_VALIDATE = 0x2,
3688     PROPPAGESTATUS_CLEAN = 0x4
3689 } PROPPAGESTATUS;
3690
3691 /*****************************************************************************
3692  * IPropertyPageSite interface
3693  */
3694 #ifndef __IPropertyPageSite_INTERFACE_DEFINED__
3695 #define __IPropertyPageSite_INTERFACE_DEFINED__
3696
3697 DEFINE_GUID(IID_IPropertyPageSite, 0xb196b28c, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
3698 #if defined(__cplusplus) && !defined(CINTERFACE)
3699 struct IPropertyPageSite : public IUnknown
3700 {
3701     virtual HRESULT STDMETHODCALLTYPE OnStatusChange(
3702         DWORD dwFlags) = 0;
3703
3704     virtual HRESULT STDMETHODCALLTYPE GetLocaleID(
3705         LCID* pLocaleID) = 0;
3706
3707     virtual HRESULT STDMETHODCALLTYPE GetPageContainer(
3708         IUnknown** ppUnk) = 0;
3709
3710     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
3711         MSG* pMsg) = 0;
3712
3713 };
3714 #else
3715 typedef struct IPropertyPageSiteVtbl IPropertyPageSiteVtbl;
3716 struct IPropertyPageSite {
3717     const IPropertyPageSiteVtbl* lpVtbl;
3718 };
3719 struct IPropertyPageSiteVtbl {
3720     ICOM_MSVTABLE_COMPAT_FIELDS
3721
3722     /*** IUnknown methods ***/
3723     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3724         IPropertyPageSite* This,
3725         REFIID riid,
3726         void** ppvObject);
3727
3728     ULONG (STDMETHODCALLTYPE *AddRef)(
3729         IPropertyPageSite* This);
3730
3731     ULONG (STDMETHODCALLTYPE *Release)(
3732         IPropertyPageSite* This);
3733
3734     /*** IPropertyPageSite methods ***/
3735     HRESULT (STDMETHODCALLTYPE *OnStatusChange)(
3736         IPropertyPageSite* This,
3737         DWORD dwFlags);
3738
3739     HRESULT (STDMETHODCALLTYPE *GetLocaleID)(
3740         IPropertyPageSite* This,
3741         LCID* pLocaleID);
3742
3743     HRESULT (STDMETHODCALLTYPE *GetPageContainer)(
3744         IPropertyPageSite* This,
3745         IUnknown** ppUnk);
3746
3747     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
3748         IPropertyPageSite* This,
3749         MSG* pMsg);
3750
3751 };
3752
3753 /*** IUnknown methods ***/
3754 #define IPropertyPageSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3755 #define IPropertyPageSite_AddRef(p) (p)->lpVtbl->AddRef(p)
3756 #define IPropertyPageSite_Release(p) (p)->lpVtbl->Release(p)
3757 /*** IPropertyPageSite methods ***/
3758 #define IPropertyPageSite_OnStatusChange(p,a) (p)->lpVtbl->OnStatusChange(p,a)
3759 #define IPropertyPageSite_GetLocaleID(p,a) (p)->lpVtbl->GetLocaleID(p,a)
3760 #define IPropertyPageSite_GetPageContainer(p,a) (p)->lpVtbl->GetPageContainer(p,a)
3761 #define IPropertyPageSite_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
3762
3763 #endif
3764
3765 #define IPropertyPageSite_METHODS \
3766     ICOM_MSVTABLE_COMPAT_FIELDS \
3767     /*** IUnknown methods ***/ \
3768     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3769     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3770     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3771     /*** IPropertyPageSite methods ***/ \
3772     STDMETHOD_(HRESULT,OnStatusChange)(THIS_ DWORD dwFlags) PURE; \
3773     STDMETHOD_(HRESULT,GetLocaleID)(THIS_ LCID* pLocaleID) PURE; \
3774     STDMETHOD_(HRESULT,GetPageContainer)(THIS_ IUnknown** ppUnk) PURE; \
3775     STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ MSG* pMsg) PURE;
3776
3777 HRESULT CALLBACK IPropertyPageSite_OnStatusChange_Proxy(
3778     IPropertyPageSite* This,
3779     DWORD dwFlags);
3780 void __RPC_STUB IPropertyPageSite_OnStatusChange_Stub(
3781     struct IRpcStubBuffer* This,
3782     struct IRpcChannelBuffer* pRpcChannelBuffer,
3783     PRPC_MESSAGE pRpcMessage,
3784     DWORD* pdwStubPhase);
3785 HRESULT CALLBACK IPropertyPageSite_GetLocaleID_Proxy(
3786     IPropertyPageSite* This,
3787     LCID* pLocaleID);
3788 void __RPC_STUB IPropertyPageSite_GetLocaleID_Stub(
3789     struct IRpcStubBuffer* This,
3790     struct IRpcChannelBuffer* pRpcChannelBuffer,
3791     PRPC_MESSAGE pRpcMessage,
3792     DWORD* pdwStubPhase);
3793 HRESULT CALLBACK IPropertyPageSite_GetPageContainer_Proxy(
3794     IPropertyPageSite* This,
3795     IUnknown** ppUnk);
3796 void __RPC_STUB IPropertyPageSite_GetPageContainer_Stub(
3797     struct IRpcStubBuffer* This,
3798     struct IRpcChannelBuffer* pRpcChannelBuffer,
3799     PRPC_MESSAGE pRpcMessage,
3800     DWORD* pdwStubPhase);
3801 HRESULT CALLBACK IPropertyPageSite_TranslateAccelerator_Proxy(
3802     IPropertyPageSite* This,
3803     MSG* pMsg);
3804 void __RPC_STUB IPropertyPageSite_TranslateAccelerator_Stub(
3805     struct IRpcStubBuffer* This,
3806     struct IRpcChannelBuffer* pRpcChannelBuffer,
3807     PRPC_MESSAGE pRpcMessage,
3808     DWORD* pdwStubPhase);
3809
3810 #endif  /* __IPropertyPageSite_INTERFACE_DEFINED__ */
3811
3812 #ifndef __IPropertyNotifySink_FWD_DEFINED__
3813 #define __IPropertyNotifySink_FWD_DEFINED__
3814 typedef struct IPropertyNotifySink IPropertyNotifySink;
3815 #endif
3816
3817 typedef IPropertyNotifySink *LPPROPERTYNOTIFYSINK;
3818
3819 /*****************************************************************************
3820  * IPropertyNotifySink interface
3821  */
3822 #ifndef __IPropertyNotifySink_INTERFACE_DEFINED__
3823 #define __IPropertyNotifySink_INTERFACE_DEFINED__
3824
3825 DEFINE_GUID(IID_IPropertyNotifySink, 0x9bfbbc02, 0xeff1, 0x101a, 0x84,0xed, 0x00,0xaa,0x00,0x34,0x1d,0x07);
3826 #if defined(__cplusplus) && !defined(CINTERFACE)
3827 struct IPropertyNotifySink : public IUnknown
3828 {
3829     virtual HRESULT STDMETHODCALLTYPE OnChanged(
3830         DISPID dispID) = 0;
3831
3832     virtual HRESULT STDMETHODCALLTYPE OnRequestEdit(
3833         DISPID dispID) = 0;
3834
3835 };
3836 #else
3837 typedef struct IPropertyNotifySinkVtbl IPropertyNotifySinkVtbl;
3838 struct IPropertyNotifySink {
3839     const IPropertyNotifySinkVtbl* lpVtbl;
3840 };
3841 struct IPropertyNotifySinkVtbl {
3842     ICOM_MSVTABLE_COMPAT_FIELDS
3843
3844     /*** IUnknown methods ***/
3845     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3846         IPropertyNotifySink* This,
3847         REFIID riid,
3848         void** ppvObject);
3849
3850     ULONG (STDMETHODCALLTYPE *AddRef)(
3851         IPropertyNotifySink* This);
3852
3853     ULONG (STDMETHODCALLTYPE *Release)(
3854         IPropertyNotifySink* This);
3855
3856     /*** IPropertyNotifySink methods ***/
3857     HRESULT (STDMETHODCALLTYPE *OnChanged)(
3858         IPropertyNotifySink* This,
3859         DISPID dispID);
3860
3861     HRESULT (STDMETHODCALLTYPE *OnRequestEdit)(
3862         IPropertyNotifySink* This,
3863         DISPID dispID);
3864
3865 };
3866
3867 /*** IUnknown methods ***/
3868 #define IPropertyNotifySink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3869 #define IPropertyNotifySink_AddRef(p) (p)->lpVtbl->AddRef(p)
3870 #define IPropertyNotifySink_Release(p) (p)->lpVtbl->Release(p)
3871 /*** IPropertyNotifySink methods ***/
3872 #define IPropertyNotifySink_OnChanged(p,a) (p)->lpVtbl->OnChanged(p,a)
3873 #define IPropertyNotifySink_OnRequestEdit(p,a) (p)->lpVtbl->OnRequestEdit(p,a)
3874
3875 #endif
3876
3877 #define IPropertyNotifySink_METHODS \
3878     ICOM_MSVTABLE_COMPAT_FIELDS \
3879     /*** IUnknown methods ***/ \
3880     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3881     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3882     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3883     /*** IPropertyNotifySink methods ***/ \
3884     STDMETHOD_(HRESULT,OnChanged)(THIS_ DISPID dispID) PURE; \
3885     STDMETHOD_(HRESULT,OnRequestEdit)(THIS_ DISPID dispID) PURE;
3886
3887 HRESULT CALLBACK IPropertyNotifySink_OnChanged_Proxy(
3888     IPropertyNotifySink* This,
3889     DISPID dispID);
3890 void __RPC_STUB IPropertyNotifySink_OnChanged_Stub(
3891     struct IRpcStubBuffer* This,
3892     struct IRpcChannelBuffer* pRpcChannelBuffer,
3893     PRPC_MESSAGE pRpcMessage,
3894     DWORD* pdwStubPhase);
3895 HRESULT CALLBACK IPropertyNotifySink_OnRequestEdit_Proxy(
3896     IPropertyNotifySink* This,
3897     DISPID dispID);
3898 void __RPC_STUB IPropertyNotifySink_OnRequestEdit_Stub(
3899     struct IRpcStubBuffer* This,
3900     struct IRpcChannelBuffer* pRpcChannelBuffer,
3901     PRPC_MESSAGE pRpcMessage,
3902     DWORD* pdwStubPhase);
3903
3904 #endif  /* __IPropertyNotifySink_INTERFACE_DEFINED__ */
3905
3906 #ifndef __ISimpleFrameSite_FWD_DEFINED__
3907 #define __ISimpleFrameSite_FWD_DEFINED__
3908 typedef struct ISimpleFrameSite ISimpleFrameSite;
3909 #endif
3910
3911 typedef ISimpleFrameSite *LPSIMPLEFRAMESITE;
3912
3913 /*****************************************************************************
3914  * ISimpleFrameSite interface
3915  */
3916 #ifndef __ISimpleFrameSite_INTERFACE_DEFINED__
3917 #define __ISimpleFrameSite_INTERFACE_DEFINED__
3918
3919 DEFINE_GUID(IID_ISimpleFrameSite, 0x742b0e01, 0x14e6, 0x101b, 0x91,0x4e, 0x00,0xaa,0x00,0x30,0x0c,0xab);
3920 #if defined(__cplusplus) && !defined(CINTERFACE)
3921 struct ISimpleFrameSite : public IUnknown
3922 {
3923     virtual HRESULT STDMETHODCALLTYPE PreMessageFilter(
3924         HWND hWnd,
3925         UINT msg,
3926         WPARAM wp,
3927         LPARAM lp,
3928         LRESULT* plResult,
3929         DWORD* pdwCookie) = 0;
3930
3931     virtual HRESULT STDMETHODCALLTYPE PostMessageFilter(
3932         HWND hWnd,
3933         UINT msg,
3934         WPARAM wp,
3935         LPARAM lp,
3936         LRESULT* plResult,
3937         DWORD dwCookie) = 0;
3938
3939 };
3940 #else
3941 typedef struct ISimpleFrameSiteVtbl ISimpleFrameSiteVtbl;
3942 struct ISimpleFrameSite {
3943     const ISimpleFrameSiteVtbl* lpVtbl;
3944 };
3945 struct ISimpleFrameSiteVtbl {
3946     ICOM_MSVTABLE_COMPAT_FIELDS
3947
3948     /*** IUnknown methods ***/
3949     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3950         ISimpleFrameSite* This,
3951         REFIID riid,
3952         void** ppvObject);
3953
3954     ULONG (STDMETHODCALLTYPE *AddRef)(
3955         ISimpleFrameSite* This);
3956
3957     ULONG (STDMETHODCALLTYPE *Release)(
3958         ISimpleFrameSite* This);
3959
3960     /*** ISimpleFrameSite methods ***/
3961     HRESULT (STDMETHODCALLTYPE *PreMessageFilter)(
3962         ISimpleFrameSite* This,
3963         HWND hWnd,
3964         UINT msg,
3965         WPARAM wp,
3966         LPARAM lp,
3967         LRESULT* plResult,
3968         DWORD* pdwCookie);
3969
3970     HRESULT (STDMETHODCALLTYPE *PostMessageFilter)(
3971         ISimpleFrameSite* This,
3972         HWND hWnd,
3973         UINT msg,
3974         WPARAM wp,
3975         LPARAM lp,
3976         LRESULT* plResult,
3977         DWORD dwCookie);
3978
3979 };
3980
3981 /*** IUnknown methods ***/
3982 #define ISimpleFrameSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3983 #define ISimpleFrameSite_AddRef(p) (p)->lpVtbl->AddRef(p)
3984 #define ISimpleFrameSite_Release(p) (p)->lpVtbl->Release(p)
3985 /*** ISimpleFrameSite methods ***/
3986 #define ISimpleFrameSite_PreMessageFilter(p,a,b,c,d,e,f) (p)->lpVtbl->PreMessageFilter(p,a,b,c,d,e,f)
3987 #define ISimpleFrameSite_PostMessageFilter(p,a,b,c,d,e,f) (p)->lpVtbl->PostMessageFilter(p,a,b,c,d,e,f)
3988
3989 #endif
3990
3991 #define ISimpleFrameSite_METHODS \
3992     ICOM_MSVTABLE_COMPAT_FIELDS \
3993     /*** IUnknown methods ***/ \
3994     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3995     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3996     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3997     /*** ISimpleFrameSite methods ***/ \
3998     STDMETHOD_(HRESULT,PreMessageFilter)(THIS_ HWND hWnd, UINT msg, WPARAM wp, LPARAM lp, LRESULT* plResult, DWORD* pdwCookie) PURE; \
3999     STDMETHOD_(HRESULT,PostMessageFilter)(THIS_ HWND hWnd, UINT msg, WPARAM wp, LPARAM lp, LRESULT* plResult, DWORD dwCookie) PURE;
4000
4001 HRESULT CALLBACK ISimpleFrameSite_PreMessageFilter_Proxy(
4002     ISimpleFrameSite* This,
4003     HWND hWnd,
4004     UINT msg,
4005     WPARAM wp,
4006     LPARAM lp,
4007     LRESULT* plResult,
4008     DWORD* pdwCookie);
4009 void __RPC_STUB ISimpleFrameSite_PreMessageFilter_Stub(
4010     struct IRpcStubBuffer* This,
4011     struct IRpcChannelBuffer* pRpcChannelBuffer,
4012     PRPC_MESSAGE pRpcMessage,
4013     DWORD* pdwStubPhase);
4014 HRESULT CALLBACK ISimpleFrameSite_PostMessageFilter_Proxy(
4015     ISimpleFrameSite* This,
4016     HWND hWnd,
4017     UINT msg,
4018     WPARAM wp,
4019     LPARAM lp,
4020     LRESULT* plResult,
4021     DWORD dwCookie);
4022 void __RPC_STUB ISimpleFrameSite_PostMessageFilter_Stub(
4023     struct IRpcStubBuffer* This,
4024     struct IRpcChannelBuffer* pRpcChannelBuffer,
4025     PRPC_MESSAGE pRpcMessage,
4026     DWORD* pdwStubPhase);
4027
4028 #endif  /* __ISimpleFrameSite_INTERFACE_DEFINED__ */
4029
4030 #ifndef __IPersistStreamInit_FWD_DEFINED__
4031 #define __IPersistStreamInit_FWD_DEFINED__
4032 typedef struct IPersistStreamInit IPersistStreamInit;
4033 #endif
4034
4035 typedef IPersistStreamInit *LPPERSISTSTREAMINIT;
4036
4037 /*****************************************************************************
4038  * IPersistStreamInit interface
4039  */
4040 #ifndef __IPersistStreamInit_INTERFACE_DEFINED__
4041 #define __IPersistStreamInit_INTERFACE_DEFINED__
4042
4043 DEFINE_GUID(IID_IPersistStreamInit, 0x7fd52380, 0x4e07, 0x101b, 0xae,0x2d, 0x08,0x00,0x2b,0x2e,0xc7,0x13);
4044 #if defined(__cplusplus) && !defined(CINTERFACE)
4045 struct IPersistStreamInit : public IPersist
4046 {
4047     virtual HRESULT STDMETHODCALLTYPE IsDirty(
4048         ) = 0;
4049
4050     virtual HRESULT STDMETHODCALLTYPE Load(
4051         LPSTREAM pStm) = 0;
4052
4053     virtual HRESULT STDMETHODCALLTYPE Save(
4054         LPSTREAM pStm,
4055         BOOL fClearDirty) = 0;
4056
4057     virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
4058         ULARGE_INTEGER* pcbSize) = 0;
4059
4060     virtual HRESULT STDMETHODCALLTYPE InitNew(
4061         ) = 0;
4062
4063 };
4064 #else
4065 typedef struct IPersistStreamInitVtbl IPersistStreamInitVtbl;
4066 struct IPersistStreamInit {
4067     const IPersistStreamInitVtbl* lpVtbl;
4068 };
4069 struct IPersistStreamInitVtbl {
4070     ICOM_MSVTABLE_COMPAT_FIELDS
4071
4072     /*** IUnknown methods ***/
4073     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4074         IPersistStreamInit* This,
4075         REFIID riid,
4076         void** ppvObject);
4077
4078     ULONG (STDMETHODCALLTYPE *AddRef)(
4079         IPersistStreamInit* This);
4080
4081     ULONG (STDMETHODCALLTYPE *Release)(
4082         IPersistStreamInit* This);
4083
4084     /*** IPersist methods ***/
4085     HRESULT (STDMETHODCALLTYPE *GetClassID)(
4086         IPersistStreamInit* This,
4087         CLSID* pClassID);
4088
4089     /*** IPersistStreamInit methods ***/
4090     HRESULT (STDMETHODCALLTYPE *IsDirty)(
4091         IPersistStreamInit* This);
4092
4093     HRESULT (STDMETHODCALLTYPE *Load)(
4094         IPersistStreamInit* This,
4095         LPSTREAM pStm);
4096
4097     HRESULT (STDMETHODCALLTYPE *Save)(
4098         IPersistStreamInit* This,
4099         LPSTREAM pStm,
4100         BOOL fClearDirty);
4101
4102     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
4103         IPersistStreamInit* This,
4104         ULARGE_INTEGER* pcbSize);
4105
4106     HRESULT (STDMETHODCALLTYPE *InitNew)(
4107         IPersistStreamInit* This);
4108
4109 };
4110
4111 /*** IUnknown methods ***/
4112 #define IPersistStreamInit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4113 #define IPersistStreamInit_AddRef(p) (p)->lpVtbl->AddRef(p)
4114 #define IPersistStreamInit_Release(p) (p)->lpVtbl->Release(p)
4115 /*** IPersist methods ***/
4116 #define IPersistStreamInit_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4117 /*** IPersistStreamInit methods ***/
4118 #define IPersistStreamInit_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4119 #define IPersistStreamInit_Load(p,a) (p)->lpVtbl->Load(p,a)
4120 #define IPersistStreamInit_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
4121 #define IPersistStreamInit_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
4122 #define IPersistStreamInit_InitNew(p) (p)->lpVtbl->InitNew(p)
4123
4124 #endif
4125
4126 #define IPersistStreamInit_METHODS \
4127     ICOM_MSVTABLE_COMPAT_FIELDS \
4128     /*** IUnknown methods ***/ \
4129     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4130     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4131     STDMETHOD_(ULONG,Release)(THIS) PURE; \
4132     /*** IPersist methods ***/ \
4133     STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4134     /*** IPersistStreamInit methods ***/ \
4135     STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
4136     STDMETHOD_(HRESULT,Load)(THIS_ LPSTREAM pStm) PURE; \
4137     STDMETHOD_(HRESULT,Save)(THIS_ LPSTREAM pStm, BOOL fClearDirty) PURE; \
4138     STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULARGE_INTEGER* pcbSize) PURE; \
4139     STDMETHOD_(HRESULT,InitNew)(THIS) PURE;
4140
4141 HRESULT CALLBACK IPersistStreamInit_IsDirty_Proxy(
4142     IPersistStreamInit* This);
4143 void __RPC_STUB IPersistStreamInit_IsDirty_Stub(
4144     struct IRpcStubBuffer* This,
4145     struct IRpcChannelBuffer* pRpcChannelBuffer,
4146     PRPC_MESSAGE pRpcMessage,
4147     DWORD* pdwStubPhase);
4148 HRESULT CALLBACK IPersistStreamInit_Load_Proxy(
4149     IPersistStreamInit* This,
4150     LPSTREAM pStm);
4151 void __RPC_STUB IPersistStreamInit_Load_Stub(
4152     struct IRpcStubBuffer* This,
4153     struct IRpcChannelBuffer* pRpcChannelBuffer,
4154     PRPC_MESSAGE pRpcMessage,
4155     DWORD* pdwStubPhase);
4156 HRESULT CALLBACK IPersistStreamInit_Save_Proxy(
4157     IPersistStreamInit* This,
4158     LPSTREAM pStm,
4159     BOOL fClearDirty);
4160 void __RPC_STUB IPersistStreamInit_Save_Stub(
4161     struct IRpcStubBuffer* This,
4162     struct IRpcChannelBuffer* pRpcChannelBuffer,
4163     PRPC_MESSAGE pRpcMessage,
4164     DWORD* pdwStubPhase);
4165 HRESULT CALLBACK IPersistStreamInit_GetSizeMax_Proxy(
4166     IPersistStreamInit* This,
4167     ULARGE_INTEGER* pcbSize);
4168 void __RPC_STUB IPersistStreamInit_GetSizeMax_Stub(
4169     struct IRpcStubBuffer* This,
4170     struct IRpcChannelBuffer* pRpcChannelBuffer,
4171     PRPC_MESSAGE pRpcMessage,
4172     DWORD* pdwStubPhase);
4173 HRESULT CALLBACK IPersistStreamInit_InitNew_Proxy(
4174     IPersistStreamInit* This);
4175 void __RPC_STUB IPersistStreamInit_InitNew_Stub(
4176     struct IRpcStubBuffer* This,
4177     struct IRpcChannelBuffer* pRpcChannelBuffer,
4178     PRPC_MESSAGE pRpcMessage,
4179     DWORD* pdwStubPhase);
4180
4181 #endif  /* __IPersistStreamInit_INTERFACE_DEFINED__ */
4182
4183 #ifndef __IPersistMemory_FWD_DEFINED__
4184 #define __IPersistMemory_FWD_DEFINED__
4185 typedef struct IPersistMemory IPersistMemory;
4186 #endif
4187
4188 typedef IPersistMemory *LPPERSISTMEMORY;
4189
4190 /*****************************************************************************
4191  * IPersistMemory interface
4192  */
4193 #ifndef __IPersistMemory_INTERFACE_DEFINED__
4194 #define __IPersistMemory_INTERFACE_DEFINED__
4195
4196 DEFINE_GUID(IID_IPersistMemory, 0xbd1ae5e0, 0xa6ae, 0x11ce, 0xbd,0x37, 0x50,0x42,0x00,0xc1,0x00,0x00);
4197 #if defined(__cplusplus) && !defined(CINTERFACE)
4198 struct IPersistMemory : public IPersist
4199 {
4200     virtual HRESULT STDMETHODCALLTYPE IsDirty(
4201         ) = 0;
4202
4203     virtual HRESULT STDMETHODCALLTYPE Load(
4204         LPVOID pMem,
4205         ULONG cbSize) = 0;
4206
4207     virtual HRESULT STDMETHODCALLTYPE Save(
4208         LPVOID pMem,
4209         BOOL fClearDirty,
4210         ULONG cbSize) = 0;
4211
4212     virtual HRESULT STDMETHODCALLTYPE GetSizeMax(
4213         ULONG* pCbSize) = 0;
4214
4215     virtual HRESULT STDMETHODCALLTYPE InitNew(
4216         ) = 0;
4217
4218 };
4219 #else
4220 typedef struct IPersistMemoryVtbl IPersistMemoryVtbl;
4221 struct IPersistMemory {
4222     const IPersistMemoryVtbl* lpVtbl;
4223 };
4224 struct IPersistMemoryVtbl {
4225     ICOM_MSVTABLE_COMPAT_FIELDS
4226
4227     /*** IUnknown methods ***/
4228     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4229         IPersistMemory* This,
4230         REFIID riid,
4231         void** ppvObject);
4232
4233     ULONG (STDMETHODCALLTYPE *AddRef)(
4234         IPersistMemory* This);
4235
4236     ULONG (STDMETHODCALLTYPE *Release)(
4237         IPersistMemory* This);
4238
4239     /*** IPersist methods ***/
4240     HRESULT (STDMETHODCALLTYPE *GetClassID)(
4241         IPersistMemory* This,
4242         CLSID* pClassID);
4243
4244     /*** IPersistMemory methods ***/
4245     HRESULT (STDMETHODCALLTYPE *IsDirty)(
4246         IPersistMemory* This);
4247
4248     HRESULT (STDMETHODCALLTYPE *Load)(
4249         IPersistMemory* This,
4250         LPVOID pMem,
4251         ULONG cbSize);
4252
4253     HRESULT (STDMETHODCALLTYPE *Save)(
4254         IPersistMemory* This,
4255         LPVOID pMem,
4256         BOOL fClearDirty,
4257         ULONG cbSize);
4258
4259     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
4260         IPersistMemory* This,
4261         ULONG* pCbSize);
4262
4263     HRESULT (STDMETHODCALLTYPE *InitNew)(
4264         IPersistMemory* This);
4265
4266 };
4267
4268 /*** IUnknown methods ***/
4269 #define IPersistMemory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4270 #define IPersistMemory_AddRef(p) (p)->lpVtbl->AddRef(p)
4271 #define IPersistMemory_Release(p) (p)->lpVtbl->Release(p)
4272 /*** IPersist methods ***/
4273 #define IPersistMemory_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4274 /*** IPersistMemory methods ***/
4275 #define IPersistMemory_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4276 #define IPersistMemory_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4277 #define IPersistMemory_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
4278 #define IPersistMemory_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
4279 #define IPersistMemory_InitNew(p) (p)->lpVtbl->InitNew(p)
4280
4281 #endif
4282
4283 #define IPersistMemory_METHODS \
4284     ICOM_MSVTABLE_COMPAT_FIELDS \
4285     /*** IUnknown methods ***/ \
4286     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4287     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4288     STDMETHOD_(ULONG,Release)(THIS) PURE; \
4289     /*** IPersist methods ***/ \
4290     STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4291     /*** IPersistMemory methods ***/ \
4292     STDMETHOD_(HRESULT,IsDirty)(THIS) PURE; \
4293     STDMETHOD_(HRESULT,Load)(THIS_ LPVOID pMem, ULONG cbSize) PURE; \
4294     STDMETHOD_(HRESULT,Save)(THIS_ LPVOID pMem, BOOL fClearDirty, ULONG cbSize) PURE; \
4295     STDMETHOD_(HRESULT,GetSizeMax)(THIS_ ULONG* pCbSize) PURE; \
4296     STDMETHOD_(HRESULT,InitNew)(THIS) PURE;
4297
4298 HRESULT CALLBACK IPersistMemory_IsDirty_Proxy(
4299     IPersistMemory* This);
4300 void __RPC_STUB IPersistMemory_IsDirty_Stub(
4301     struct IRpcStubBuffer* This,
4302     struct IRpcChannelBuffer* pRpcChannelBuffer,
4303     PRPC_MESSAGE pRpcMessage,
4304     DWORD* pdwStubPhase);
4305 HRESULT CALLBACK IPersistMemory_RemoteLoad_Proxy(
4306     IPersistMemory* This,
4307     BYTE* pMem,
4308     ULONG cbSize);
4309 void __RPC_STUB IPersistMemory_RemoteLoad_Stub(
4310     struct IRpcStubBuffer* This,
4311     struct IRpcChannelBuffer* pRpcChannelBuffer,
4312     PRPC_MESSAGE pRpcMessage,
4313     DWORD* pdwStubPhase);
4314 HRESULT CALLBACK IPersistMemory_Load_Proxy(
4315     IPersistMemory* This,
4316     LPVOID pMem,
4317     ULONG cbSize);
4318 HRESULT __RPC_STUB IPersistMemory_Load_Stub(
4319     IPersistMemory* This,
4320     BYTE* pMem,
4321     ULONG cbSize);
4322 HRESULT CALLBACK IPersistMemory_RemoteSave_Proxy(
4323     IPersistMemory* This,
4324     BYTE* pMem,
4325     BOOL fClearDirty,
4326     ULONG cbSize);
4327 void __RPC_STUB IPersistMemory_RemoteSave_Stub(
4328     struct IRpcStubBuffer* This,
4329     struct IRpcChannelBuffer* pRpcChannelBuffer,
4330     PRPC_MESSAGE pRpcMessage,
4331     DWORD* pdwStubPhase);
4332 HRESULT CALLBACK IPersistMemory_Save_Proxy(
4333     IPersistMemory* This,
4334     LPVOID pMem,
4335     BOOL fClearDirty,
4336     ULONG cbSize);
4337 HRESULT __RPC_STUB IPersistMemory_Save_Stub(
4338     IPersistMemory* This,
4339     BYTE* pMem,
4340     BOOL fClearDirty,
4341     ULONG cbSize);
4342 HRESULT CALLBACK IPersistMemory_GetSizeMax_Proxy(
4343     IPersistMemory* This,
4344     ULONG* pCbSize);
4345 void __RPC_STUB IPersistMemory_GetSizeMax_Stub(
4346     struct IRpcStubBuffer* This,
4347     struct IRpcChannelBuffer* pRpcChannelBuffer,
4348     PRPC_MESSAGE pRpcMessage,
4349     DWORD* pdwStubPhase);
4350 HRESULT CALLBACK IPersistMemory_InitNew_Proxy(
4351     IPersistMemory* This);
4352 void __RPC_STUB IPersistMemory_InitNew_Stub(
4353     struct IRpcStubBuffer* This,
4354     struct IRpcChannelBuffer* pRpcChannelBuffer,
4355     PRPC_MESSAGE pRpcMessage,
4356     DWORD* pdwStubPhase);
4357
4358 #endif  /* __IPersistMemory_INTERFACE_DEFINED__ */
4359
4360 #ifndef __IPersistPropertyBag_FWD_DEFINED__
4361 #define __IPersistPropertyBag_FWD_DEFINED__
4362 typedef struct IPersistPropertyBag IPersistPropertyBag;
4363 #endif
4364
4365 typedef IPersistPropertyBag *LPPERSISTPROPERTYBAG;
4366
4367 /*****************************************************************************
4368  * IPersistPropertyBag interface
4369  */
4370 #ifndef __IPersistPropertyBag_INTERFACE_DEFINED__
4371 #define __IPersistPropertyBag_INTERFACE_DEFINED__
4372
4373 DEFINE_GUID(IID_IPersistPropertyBag, 0x37d84f60, 0x42cb, 0x11ce, 0x81,0x35, 0x00,0xaa,0x00,0x4b,0xb8,0x51);
4374 #if defined(__cplusplus) && !defined(CINTERFACE)
4375 struct IPersistPropertyBag : public IPersist
4376 {
4377     virtual HRESULT STDMETHODCALLTYPE InitNew(
4378         ) = 0;
4379
4380     virtual HRESULT STDMETHODCALLTYPE Load(
4381         IPropertyBag* pPropBag,
4382         IErrorLog* pErrorLog) = 0;
4383
4384     virtual HRESULT STDMETHODCALLTYPE Save(
4385         IPropertyBag* pPropBag,
4386         BOOL fClearDirty,
4387         BOOL fSaveAllProperties) = 0;
4388
4389 };
4390 #else
4391 typedef struct IPersistPropertyBagVtbl IPersistPropertyBagVtbl;
4392 struct IPersistPropertyBag {
4393     const IPersistPropertyBagVtbl* lpVtbl;
4394 };
4395 struct IPersistPropertyBagVtbl {
4396     ICOM_MSVTABLE_COMPAT_FIELDS
4397
4398     /*** IUnknown methods ***/
4399     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4400         IPersistPropertyBag* This,
4401         REFIID riid,
4402         void** ppvObject);
4403
4404     ULONG (STDMETHODCALLTYPE *AddRef)(
4405         IPersistPropertyBag* This);
4406
4407     ULONG (STDMETHODCALLTYPE *Release)(
4408         IPersistPropertyBag* This);
4409
4410     /*** IPersist methods ***/
4411     HRESULT (STDMETHODCALLTYPE *GetClassID)(
4412         IPersistPropertyBag* This,
4413         CLSID* pClassID);
4414
4415     /*** IPersistPropertyBag methods ***/
4416     HRESULT (STDMETHODCALLTYPE *InitNew)(
4417         IPersistPropertyBag* This);
4418
4419     HRESULT (STDMETHODCALLTYPE *Load)(
4420         IPersistPropertyBag* This,
4421         IPropertyBag* pPropBag,
4422         IErrorLog* pErrorLog);
4423
4424     HRESULT (STDMETHODCALLTYPE *Save)(
4425         IPersistPropertyBag* This,
4426         IPropertyBag* pPropBag,
4427         BOOL fClearDirty,
4428         BOOL fSaveAllProperties);
4429
4430 };
4431
4432 /*** IUnknown methods ***/
4433 #define IPersistPropertyBag_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4434 #define IPersistPropertyBag_AddRef(p) (p)->lpVtbl->AddRef(p)
4435 #define IPersistPropertyBag_Release(p) (p)->lpVtbl->Release(p)
4436 /*** IPersist methods ***/
4437 #define IPersistPropertyBag_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4438 /*** IPersistPropertyBag methods ***/
4439 #define IPersistPropertyBag_InitNew(p) (p)->lpVtbl->InitNew(p)
4440 #define IPersistPropertyBag_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4441 #define IPersistPropertyBag_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
4442
4443 #endif
4444
4445 #define IPersistPropertyBag_METHODS \
4446     ICOM_MSVTABLE_COMPAT_FIELDS \
4447     /*** IUnknown methods ***/ \
4448     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4449     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4450     STDMETHOD_(ULONG,Release)(THIS) PURE; \
4451     /*** IPersist methods ***/ \
4452     STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4453     /*** IPersistPropertyBag methods ***/ \
4454     STDMETHOD_(HRESULT,InitNew)(THIS) PURE; \
4455     STDMETHOD_(HRESULT,Load)(THIS_ IPropertyBag* pPropBag, IErrorLog* pErrorLog) PURE; \
4456     STDMETHOD_(HRESULT,Save)(THIS_ IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) PURE;
4457
4458 HRESULT CALLBACK IPersistPropertyBag_InitNew_Proxy(
4459     IPersistPropertyBag* This);
4460 void __RPC_STUB IPersistPropertyBag_InitNew_Stub(
4461     struct IRpcStubBuffer* This,
4462     struct IRpcChannelBuffer* pRpcChannelBuffer,
4463     PRPC_MESSAGE pRpcMessage,
4464     DWORD* pdwStubPhase);
4465 HRESULT CALLBACK IPersistPropertyBag_Load_Proxy(
4466     IPersistPropertyBag* This,
4467     IPropertyBag* pPropBag,
4468     IErrorLog* pErrorLog);
4469 void __RPC_STUB IPersistPropertyBag_Load_Stub(
4470     struct IRpcStubBuffer* This,
4471     struct IRpcChannelBuffer* pRpcChannelBuffer,
4472     PRPC_MESSAGE pRpcMessage,
4473     DWORD* pdwStubPhase);
4474 HRESULT CALLBACK IPersistPropertyBag_Save_Proxy(
4475     IPersistPropertyBag* This,
4476     IPropertyBag* pPropBag,
4477     BOOL fClearDirty,
4478     BOOL fSaveAllProperties);
4479 void __RPC_STUB IPersistPropertyBag_Save_Stub(
4480     struct IRpcStubBuffer* This,
4481     struct IRpcChannelBuffer* pRpcChannelBuffer,
4482     PRPC_MESSAGE pRpcMessage,
4483     DWORD* pdwStubPhase);
4484
4485 #endif  /* __IPersistPropertyBag_INTERFACE_DEFINED__ */
4486
4487 #ifndef __IPropertyBag2_FWD_DEFINED__
4488 #define __IPropertyBag2_FWD_DEFINED__
4489 typedef struct IPropertyBag2 IPropertyBag2;
4490 #endif
4491
4492 typedef IPropertyBag2 *LPPROPERTYBAG2;
4493
4494 typedef enum tagPROPBAG2_TYPE {
4495     PROPBAG2_TYPE_UNDEFINED = 0,
4496     PROPBAG2_TYPE_DATA = 1,
4497     PROPBAG2_TYPE_URL = 2,
4498     PROPBAG2_TYPE_OBJECT = 3,
4499     PROPBAG2_TYPE_STREAM = 4,
4500     PROPBAG2_TYPE_STORAGE = 5,
4501     PROPBAG2_TYPE_MONIKER = 6
4502 } PROPBAG2_TYPE;
4503
4504 typedef struct tagPROPBAG2 {
4505     DWORD dwType;
4506     VARTYPE vt;
4507     CLIPFORMAT cfType;
4508     DWORD dwHint;
4509     LPOLESTR pstrName;
4510     CLSID clsid;
4511 } PROPBAG2;
4512
4513 /*****************************************************************************
4514  * IPropertyBag2 interface
4515  */
4516 #ifndef __IPropertyBag2_INTERFACE_DEFINED__
4517 #define __IPropertyBag2_INTERFACE_DEFINED__
4518
4519 DEFINE_GUID(IID_IPropertyBag2, 0x22f55882, 0x280b, 0x11d0, 0xa8,0xa9, 0x00,0xa0,0xc9,0x0c,0x20,0x04);
4520 #if defined(__cplusplus) && !defined(CINTERFACE)
4521 struct IPropertyBag2 : public IUnknown
4522 {
4523     virtual HRESULT STDMETHODCALLTYPE Read(
4524         ULONG cProperties,
4525         PROPBAG2* pPropBag,
4526         IErrorLog* pErrLog,
4527         VARIANT* pvarValue,
4528         HRESULT* phrError) = 0;
4529
4530     virtual HRESULT STDMETHODCALLTYPE Write(
4531         ULONG cProperties,
4532         PROPBAG2* pPropBag,
4533         VARIANT* pvarValue) = 0;
4534
4535     virtual HRESULT STDMETHODCALLTYPE CountProperties(
4536         ULONG* pcProperties) = 0;
4537
4538     virtual HRESULT STDMETHODCALLTYPE GetPropertyInfo(
4539         ULONG iProperty,
4540         ULONG cProperties,
4541         PROPBAG2* pPropBag,
4542         ULONG* pcProperties) = 0;
4543
4544     virtual HRESULT STDMETHODCALLTYPE LoadObject(
4545         LPCOLESTR pstrName,
4546         DWORD dwHint,
4547         IUnknown* pUnkObject,
4548         IErrorLog* pErrLog) = 0;
4549
4550 };
4551 #else
4552 typedef struct IPropertyBag2Vtbl IPropertyBag2Vtbl;
4553 struct IPropertyBag2 {
4554     const IPropertyBag2Vtbl* lpVtbl;
4555 };
4556 struct IPropertyBag2Vtbl {
4557     ICOM_MSVTABLE_COMPAT_FIELDS
4558
4559     /*** IUnknown methods ***/
4560     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4561         IPropertyBag2* This,
4562         REFIID riid,
4563         void** ppvObject);
4564
4565     ULONG (STDMETHODCALLTYPE *AddRef)(
4566         IPropertyBag2* This);
4567
4568     ULONG (STDMETHODCALLTYPE *Release)(
4569         IPropertyBag2* This);
4570
4571     /*** IPropertyBag2 methods ***/
4572     HRESULT (STDMETHODCALLTYPE *Read)(
4573         IPropertyBag2* This,
4574         ULONG cProperties,
4575         PROPBAG2* pPropBag,
4576         IErrorLog* pErrLog,
4577         VARIANT* pvarValue,
4578         HRESULT* phrError);
4579
4580     HRESULT (STDMETHODCALLTYPE *Write)(
4581         IPropertyBag2* This,
4582         ULONG cProperties,
4583         PROPBAG2* pPropBag,
4584         VARIANT* pvarValue);
4585
4586     HRESULT (STDMETHODCALLTYPE *CountProperties)(
4587         IPropertyBag2* This,
4588         ULONG* pcProperties);
4589
4590     HRESULT (STDMETHODCALLTYPE *GetPropertyInfo)(
4591         IPropertyBag2* This,
4592         ULONG iProperty,
4593         ULONG cProperties,
4594         PROPBAG2* pPropBag,
4595         ULONG* pcProperties);
4596
4597     HRESULT (STDMETHODCALLTYPE *LoadObject)(
4598         IPropertyBag2* This,
4599         LPCOLESTR pstrName,
4600         DWORD dwHint,
4601         IUnknown* pUnkObject,
4602         IErrorLog* pErrLog);
4603
4604 };
4605
4606 /*** IUnknown methods ***/
4607 #define IPropertyBag2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4608 #define IPropertyBag2_AddRef(p) (p)->lpVtbl->AddRef(p)
4609 #define IPropertyBag2_Release(p) (p)->lpVtbl->Release(p)
4610 /*** IPropertyBag2 methods ***/
4611 #define IPropertyBag2_Read(p,a,b,c,d,e) (p)->lpVtbl->Read(p,a,b,c,d,e)
4612 #define IPropertyBag2_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
4613 #define IPropertyBag2_CountProperties(p,a) (p)->lpVtbl->CountProperties(p,a)
4614 #define IPropertyBag2_GetPropertyInfo(p,a,b,c,d) (p)->lpVtbl->GetPropertyInfo(p,a,b,c,d)
4615 #define IPropertyBag2_LoadObject(p,a,b,c,d) (p)->lpVtbl->LoadObject(p,a,b,c,d)
4616
4617 #endif
4618
4619 #define IPropertyBag2_METHODS \
4620     ICOM_MSVTABLE_COMPAT_FIELDS \
4621     /*** IUnknown methods ***/ \
4622     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4623     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4624     STDMETHOD_(ULONG,Release)(THIS) PURE; \
4625     /*** IPropertyBag2 methods ***/ \
4626     STDMETHOD_(HRESULT,Read)(THIS_ ULONG cProperties, PROPBAG2* pPropBag, IErrorLog* pErrLog, VARIANT* pvarValue, HRESULT* phrError) PURE; \
4627     STDMETHOD_(HRESULT,Write)(THIS_ ULONG cProperties, PROPBAG2* pPropBag, VARIANT* pvarValue) PURE; \
4628     STDMETHOD_(HRESULT,CountProperties)(THIS_ ULONG* pcProperties) PURE; \
4629     STDMETHOD_(HRESULT,GetPropertyInfo)(THIS_ ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties) PURE; \
4630     STDMETHOD_(HRESULT,LoadObject)(THIS_ LPCOLESTR pstrName, DWORD dwHint, IUnknown* pUnkObject, IErrorLog* pErrLog) PURE;
4631
4632 HRESULT CALLBACK IPropertyBag2_Read_Proxy(
4633     IPropertyBag2* This,
4634     ULONG cProperties,
4635     PROPBAG2* pPropBag,
4636     IErrorLog* pErrLog,
4637     VARIANT* pvarValue,
4638     HRESULT* phrError);
4639 void __RPC_STUB IPropertyBag2_Read_Stub(
4640     struct IRpcStubBuffer* This,
4641     struct IRpcChannelBuffer* pRpcChannelBuffer,
4642     PRPC_MESSAGE pRpcMessage,
4643     DWORD* pdwStubPhase);
4644 HRESULT CALLBACK IPropertyBag2_Write_Proxy(
4645     IPropertyBag2* This,
4646     ULONG cProperties,
4647     PROPBAG2* pPropBag,
4648     VARIANT* pvarValue);
4649 void __RPC_STUB IPropertyBag2_Write_Stub(
4650     struct IRpcStubBuffer* This,
4651     struct IRpcChannelBuffer* pRpcChannelBuffer,
4652     PRPC_MESSAGE pRpcMessage,
4653     DWORD* pdwStubPhase);
4654 HRESULT CALLBACK IPropertyBag2_CountProperties_Proxy(
4655     IPropertyBag2* This,
4656     ULONG* pcProperties);
4657 void __RPC_STUB IPropertyBag2_CountProperties_Stub(
4658     struct IRpcStubBuffer* This,
4659     struct IRpcChannelBuffer* pRpcChannelBuffer,
4660     PRPC_MESSAGE pRpcMessage,
4661     DWORD* pdwStubPhase);
4662 HRESULT CALLBACK IPropertyBag2_GetPropertyInfo_Proxy(
4663     IPropertyBag2* This,
4664     ULONG iProperty,
4665     ULONG cProperties,
4666     PROPBAG2* pPropBag,
4667     ULONG* pcProperties);
4668 void __RPC_STUB IPropertyBag2_GetPropertyInfo_Stub(
4669     struct IRpcStubBuffer* This,
4670     struct IRpcChannelBuffer* pRpcChannelBuffer,
4671     PRPC_MESSAGE pRpcMessage,
4672     DWORD* pdwStubPhase);
4673 HRESULT CALLBACK IPropertyBag2_LoadObject_Proxy(
4674     IPropertyBag2* This,
4675     LPCOLESTR pstrName,
4676     DWORD dwHint,
4677     IUnknown* pUnkObject,
4678     IErrorLog* pErrLog);
4679 void __RPC_STUB IPropertyBag2_LoadObject_Stub(
4680     struct IRpcStubBuffer* This,
4681     struct IRpcChannelBuffer* pRpcChannelBuffer,
4682     PRPC_MESSAGE pRpcMessage,
4683     DWORD* pdwStubPhase);
4684
4685 #endif  /* __IPropertyBag2_INTERFACE_DEFINED__ */
4686
4687 #ifndef __IPersistPropertyBag2_FWD_DEFINED__
4688 #define __IPersistPropertyBag2_FWD_DEFINED__
4689 typedef struct IPersistPropertyBag2 IPersistPropertyBag2;
4690 #endif
4691
4692 typedef IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2;
4693
4694 /*****************************************************************************
4695  * IPersistPropertyBag2 interface
4696  */
4697 #ifndef __IPersistPropertyBag2_INTERFACE_DEFINED__
4698 #define __IPersistPropertyBag2_INTERFACE_DEFINED__
4699
4700 DEFINE_GUID(IID_IPersistPropertyBag2, 0x22f55881, 0x280b, 0x11d0, 0xa8,0xa9, 0x00,0xa0,0xc9,0x0c,0x20,0x04);
4701 #if defined(__cplusplus) && !defined(CINTERFACE)
4702 struct IPersistPropertyBag2 : public IPersist
4703 {
4704     virtual HRESULT STDMETHODCALLTYPE InitNew(
4705         ) = 0;
4706
4707     virtual HRESULT STDMETHODCALLTYPE Load(
4708         IPropertyBag2* pPropBag,
4709         IErrorLog* pErrorLog) = 0;
4710
4711     virtual HRESULT STDMETHODCALLTYPE Save(
4712         IPropertyBag2* pPropBag,
4713         BOOL fClearDirty,
4714         BOOL fSaveAllProperties) = 0;
4715
4716     virtual HRESULT STDMETHODCALLTYPE IsDirty(
4717         ) = 0;
4718
4719 };
4720 #else
4721 typedef struct IPersistPropertyBag2Vtbl IPersistPropertyBag2Vtbl;
4722 struct IPersistPropertyBag2 {
4723     const IPersistPropertyBag2Vtbl* lpVtbl;
4724 };
4725 struct IPersistPropertyBag2Vtbl {
4726     ICOM_MSVTABLE_COMPAT_FIELDS
4727
4728     /*** IUnknown methods ***/
4729     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4730         IPersistPropertyBag2* This,
4731         REFIID riid,
4732         void** ppvObject);
4733
4734     ULONG (STDMETHODCALLTYPE *AddRef)(
4735         IPersistPropertyBag2* This);
4736
4737     ULONG (STDMETHODCALLTYPE *Release)(
4738         IPersistPropertyBag2* This);
4739
4740     /*** IPersist methods ***/
4741     HRESULT (STDMETHODCALLTYPE *GetClassID)(
4742         IPersistPropertyBag2* This,
4743         CLSID* pClassID);
4744
4745     /*** IPersistPropertyBag2 methods ***/
4746     HRESULT (STDMETHODCALLTYPE *InitNew)(
4747         IPersistPropertyBag2* This);
4748
4749     HRESULT (STDMETHODCALLTYPE *Load)(
4750         IPersistPropertyBag2* This,
4751         IPropertyBag2* pPropBag,
4752         IErrorLog* pErrorLog);
4753
4754     HRESULT (STDMETHODCALLTYPE *Save)(
4755         IPersistPropertyBag2* This,
4756         IPropertyBag2* pPropBag,
4757         BOOL fClearDirty,
4758         BOOL fSaveAllProperties);
4759
4760     HRESULT (STDMETHODCALLTYPE *IsDirty)(
4761         IPersistPropertyBag2* This);
4762
4763 };
4764
4765 /*** IUnknown methods ***/
4766 #define IPersistPropertyBag2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4767 #define IPersistPropertyBag2_AddRef(p) (p)->lpVtbl->AddRef(p)
4768 #define IPersistPropertyBag2_Release(p) (p)->lpVtbl->Release(p)
4769 /*** IPersist methods ***/
4770 #define IPersistPropertyBag2_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
4771 /*** IPersistPropertyBag2 methods ***/
4772 #define IPersistPropertyBag2_InitNew(p) (p)->lpVtbl->InitNew(p)
4773 #define IPersistPropertyBag2_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4774 #define IPersistPropertyBag2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
4775 #define IPersistPropertyBag2_IsDirty(p) (p)->lpVtbl->IsDirty(p)
4776
4777 #endif
4778
4779 #define IPersistPropertyBag2_METHODS \
4780     ICOM_MSVTABLE_COMPAT_FIELDS \
4781     /*** IUnknown methods ***/ \
4782     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4783     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4784     STDMETHOD_(ULONG,Release)(THIS) PURE; \
4785     /*** IPersist methods ***/ \
4786     STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
4787     /*** IPersistPropertyBag2 methods ***/ \
4788     STDMETHOD_(HRESULT,InitNew)(THIS) PURE; \
4789     STDMETHOD_(HRESULT,Load)(THIS_ IPropertyBag2* pPropBag, IErrorLog* pErrorLog) PURE; \
4790     STDMETHOD_(HRESULT,Save)(THIS_ IPropertyBag2* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) PURE; \
4791     STDMETHOD_(HRESULT,IsDirty)(THIS) PURE;
4792
4793 HRESULT CALLBACK IPersistPropertyBag2_InitNew_Proxy(
4794     IPersistPropertyBag2* This);
4795 void __RPC_STUB IPersistPropertyBag2_InitNew_Stub(
4796     struct IRpcStubBuffer* This,
4797     struct IRpcChannelBuffer* pRpcChannelBuffer,
4798     PRPC_MESSAGE pRpcMessage,
4799     DWORD* pdwStubPhase);
4800 HRESULT CALLBACK IPersistPropertyBag2_Load_Proxy(
4801     IPersistPropertyBag2* This,
4802     IPropertyBag2* pPropBag,
4803     IErrorLog* pErrorLog);
4804 void __RPC_STUB IPersistPropertyBag2_Load_Stub(
4805     struct IRpcStubBuffer* This,
4806     struct IRpcChannelBuffer* pRpcChannelBuffer,
4807     PRPC_MESSAGE pRpcMessage,
4808     DWORD* pdwStubPhase);
4809 HRESULT CALLBACK IPersistPropertyBag2_Save_Proxy(
4810     IPersistPropertyBag2* This,
4811     IPropertyBag2* pPropBag,
4812     BOOL fClearDirty,
4813     BOOL fSaveAllProperties);
4814 void __RPC_STUB IPersistPropertyBag2_Save_Stub(
4815     struct IRpcStubBuffer* This,
4816     struct IRpcChannelBuffer* pRpcChannelBuffer,
4817     PRPC_MESSAGE pRpcMessage,
4818     DWORD* pdwStubPhase);
4819 HRESULT CALLBACK IPersistPropertyBag2_IsDirty_Proxy(
4820     IPersistPropertyBag2* This);
4821 void __RPC_STUB IPersistPropertyBag2_IsDirty_Stub(
4822     struct IRpcStubBuffer* This,
4823     struct IRpcChannelBuffer* pRpcChannelBuffer,
4824     PRPC_MESSAGE pRpcMessage,
4825     DWORD* pdwStubPhase);
4826
4827 #endif  /* __IPersistPropertyBag2_INTERFACE_DEFINED__ */
4828
4829 #ifndef __ISpecifyPropertyPages_FWD_DEFINED__
4830 #define __ISpecifyPropertyPages_FWD_DEFINED__
4831 typedef struct ISpecifyPropertyPages ISpecifyPropertyPages;
4832 #endif
4833
4834 typedef ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
4835
4836 typedef struct tagCAUUID {
4837     ULONG cElems;
4838     GUID *pElems;
4839 } CAUUID, *LPCAUUID;
4840
4841 /*****************************************************************************
4842  * ISpecifyPropertyPages interface
4843  */
4844 #ifndef __ISpecifyPropertyPages_INTERFACE_DEFINED__
4845 #define __ISpecifyPropertyPages_INTERFACE_DEFINED__
4846
4847 DEFINE_GUID(IID_ISpecifyPropertyPages, 0xb196b28b, 0xbab4, 0x101a, 0xb6,0x9c, 0x00,0xaa,0x00,0x34,0x1d,0x07);
4848 #if defined(__cplusplus) && !defined(CINTERFACE)
4849 struct ISpecifyPropertyPages : public IUnknown
4850 {
4851     virtual HRESULT STDMETHODCALLTYPE GetPages(
4852         CAUUID* pPages) = 0;
4853
4854 };
4855 #else
4856 typedef struct ISpecifyPropertyPagesVtbl ISpecifyPropertyPagesVtbl;
4857 struct ISpecifyPropertyPages {
4858     const ISpecifyPropertyPagesVtbl* lpVtbl;
4859 };
4860 struct ISpecifyPropertyPagesVtbl {
4861     ICOM_MSVTABLE_COMPAT_FIELDS
4862
4863     /*** IUnknown methods ***/
4864     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4865         ISpecifyPropertyPages* This,
4866         REFIID riid,
4867         void** ppvObject);
4868
4869     ULONG (STDMETHODCALLTYPE *AddRef)(
4870         ISpecifyPropertyPages* This);
4871
4872     ULONG (STDMETHODCALLTYPE *Release)(
4873         ISpecifyPropertyPages* This);
4874
4875     /*** ISpecifyPropertyPages methods ***/
4876     HRESULT (STDMETHODCALLTYPE *GetPages)(
4877         ISpecifyPropertyPages* This,
4878         CAUUID* pPages);
4879
4880 };
4881
4882 /*** IUnknown methods ***/
4883 #define ISpecifyPropertyPages_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4884 #define ISpecifyPropertyPages_AddRef(p) (p)->lpVtbl->AddRef(p)
4885 #define ISpecifyPropertyPages_Release(p) (p)->lpVtbl->Release(p)
4886 /*** ISpecifyPropertyPages methods ***/
4887 #define ISpecifyPropertyPages_GetPages(p,a) (p)->lpVtbl->GetPages(p,a)
4888
4889 #endif
4890
4891 #define ISpecifyPropertyPages_METHODS \
4892     ICOM_MSVTABLE_COMPAT_FIELDS \
4893     /*** IUnknown methods ***/ \
4894     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4895     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4896     STDMETHOD_(ULONG,Release)(THIS) PURE; \
4897     /*** ISpecifyPropertyPages methods ***/ \
4898     STDMETHOD_(HRESULT,GetPages)(THIS_ CAUUID* pPages) PURE;
4899
4900 HRESULT CALLBACK ISpecifyPropertyPages_GetPages_Proxy(
4901     ISpecifyPropertyPages* This,
4902     CAUUID* pPages);
4903 void __RPC_STUB ISpecifyPropertyPages_GetPages_Stub(
4904     struct IRpcStubBuffer* This,
4905     struct IRpcChannelBuffer* pRpcChannelBuffer,
4906     PRPC_MESSAGE pRpcMessage,
4907     DWORD* pdwStubPhase);
4908
4909 #endif  /* __ISpecifyPropertyPages_INTERFACE_DEFINED__ */
4910
4911 #ifndef __IPerPropertyBrowsing_FWD_DEFINED__
4912 #define __IPerPropertyBrowsing_FWD_DEFINED__
4913 typedef struct IPerPropertyBrowsing IPerPropertyBrowsing;
4914 #endif
4915
4916 typedef IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
4917
4918 typedef struct tagCALPOLESTR {
4919     ULONG cElems;
4920     LPOLESTR *pElems;
4921 } CALPOLESTR, *LPCALPOLESTR;
4922
4923 typedef struct tagCADWORD {
4924     ULONG cElems;
4925     DWORD *pElems;
4926 } CADWORD, *LPCADWORD;
4927
4928 /*****************************************************************************
4929  * IPerPropertyBrowsing interface
4930  */
4931 #ifndef __IPerPropertyBrowsing_INTERFACE_DEFINED__
4932 #define __IPerPropertyBrowsing_INTERFACE_DEFINED__
4933
4934 DEFINE_GUID(IID_IPerPropertyBrowsing, 0x376bd3aa, 0x3845, 0x101b, 0x84,0xed, 0x08,0x00,0x2b,0x2e,0xc7,0x13);
4935 #if defined(__cplusplus) && !defined(CINTERFACE)
4936 struct IPerPropertyBrowsing : public IUnknown
4937 {
4938     virtual HRESULT STDMETHODCALLTYPE GetDisplayString(
4939         DISPID dispID,
4940         BSTR* pBstr) = 0;
4941
4942     virtual HRESULT STDMETHODCALLTYPE MapPropertyToPage(
4943         DISPID dispID,
4944         CLSID* pClsid) = 0;
4945
4946     virtual HRESULT STDMETHODCALLTYPE GetPredefinedStrings(
4947         DISPID dispID,
4948         CALPOLESTR* pCaStringsOut,
4949         CADWORD* pCaCookiesOut) = 0;
4950
4951     virtual HRESULT STDMETHODCALLTYPE GetPredefinedValue(
4952         DISPID dispID,
4953         DWORD dwCookie,
4954         VARIANT* pVarOut) = 0;
4955
4956 };
4957 #else
4958 typedef struct IPerPropertyBrowsingVtbl IPerPropertyBrowsingVtbl;
4959 struct IPerPropertyBrowsing {
4960     const IPerPropertyBrowsingVtbl* lpVtbl;
4961 };
4962 struct IPerPropertyBrowsingVtbl {
4963     ICOM_MSVTABLE_COMPAT_FIELDS
4964
4965     /*** IUnknown methods ***/
4966     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4967         IPerPropertyBrowsing* This,
4968         REFIID riid,
4969         void** ppvObject);
4970
4971     ULONG (STDMETHODCALLTYPE *AddRef)(
4972         IPerPropertyBrowsing* This);
4973
4974     ULONG (STDMETHODCALLTYPE *Release)(
4975         IPerPropertyBrowsing* This);
4976
4977     /*** IPerPropertyBrowsing methods ***/
4978     HRESULT (STDMETHODCALLTYPE *GetDisplayString)(
4979         IPerPropertyBrowsing* This,
4980         DISPID dispID,
4981         BSTR* pBstr);
4982
4983     HRESULT (STDMETHODCALLTYPE *MapPropertyToPage)(
4984         IPerPropertyBrowsing* This,
4985         DISPID dispID,
4986         CLSID* pClsid);
4987
4988     HRESULT (STDMETHODCALLTYPE *GetPredefinedStrings)(
4989         IPerPropertyBrowsing* This,
4990         DISPID dispID,
4991         CALPOLESTR* pCaStringsOut,
4992         CADWORD* pCaCookiesOut);
4993
4994     HRESULT (STDMETHODCALLTYPE *GetPredefinedValue)(
4995         IPerPropertyBrowsing* This,
4996         DISPID dispID,
4997         DWORD dwCookie,
4998         VARIANT* pVarOut);
4999
5000 };
5001
5002 /*** IUnknown methods ***/
5003 #define IPerPropertyBrowsing_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5004 #define IPerPropertyBrowsing_AddRef(p) (p)->lpVtbl->AddRef(p)
5005 #define IPerPropertyBrowsing_Release(p) (p)->lpVtbl->Release(p)
5006 /*** IPerPropertyBrowsing methods ***/
5007 #define IPerPropertyBrowsing_GetDisplayString(p,a,b) (p)->lpVtbl->GetDisplayString(p,a,b)
5008 #define IPerPropertyBrowsing_MapPropertyToPage(p,a,b) (p)->lpVtbl->MapPropertyToPage(p,a,b)
5009 #define IPerPropertyBrowsing_GetPredefinedStrings(p,a,b,c) (p)->lpVtbl->GetPredefinedStrings(p,a,b,c)
5010 #define IPerPropertyBrowsing_GetPredefinedValue(p,a,b,c) (p)->lpVtbl->GetPredefinedValue(p,a,b,c)
5011
5012 #endif
5013
5014 #define IPerPropertyBrowsing_METHODS \
5015     ICOM_MSVTABLE_COMPAT_FIELDS \
5016     /*** IUnknown methods ***/ \
5017     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5018     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5019     STDMETHOD_(ULONG,Release)(THIS) PURE; \
5020     /*** IPerPropertyBrowsing methods ***/ \
5021     STDMETHOD_(HRESULT,GetDisplayString)(THIS_ DISPID dispID, BSTR* pBstr) PURE; \
5022     STDMETHOD_(HRESULT,MapPropertyToPage)(THIS_ DISPID dispID, CLSID* pClsid) PURE; \
5023     STDMETHOD_(HRESULT,GetPredefinedStrings)(THIS_ DISPID dispID, CALPOLESTR* pCaStringsOut, CADWORD* pCaCookiesOut) PURE; \
5024     STDMETHOD_(HRESULT,GetPredefinedValue)(THIS_ DISPID dispID, DWORD dwCookie, VARIANT* pVarOut) PURE;
5025
5026 HRESULT CALLBACK IPerPropertyBrowsing_GetDisplayString_Proxy(
5027     IPerPropertyBrowsing* This,
5028     DISPID dispID,
5029     BSTR* pBstr);
5030 void __RPC_STUB IPerPropertyBrowsing_GetDisplayString_Stub(
5031     struct IRpcStubBuffer* This,
5032     struct IRpcChannelBuffer* pRpcChannelBuffer,
5033     PRPC_MESSAGE pRpcMessage,
5034     DWORD* pdwStubPhase);
5035 HRESULT CALLBACK IPerPropertyBrowsing_MapPropertyToPage_Proxy(
5036     IPerPropertyBrowsing* This,
5037     DISPID dispID,
5038     CLSID* pClsid);
5039 void __RPC_STUB IPerPropertyBrowsing_MapPropertyToPage_Stub(
5040     struct IRpcStubBuffer* This,
5041     struct IRpcChannelBuffer* pRpcChannelBuffer,
5042     PRPC_MESSAGE pRpcMessage,
5043     DWORD* pdwStubPhase);
5044 HRESULT CALLBACK IPerPropertyBrowsing_GetPredefinedStrings_Proxy(
5045     IPerPropertyBrowsing* This,
5046     DISPID dispID,
5047     CALPOLESTR* pCaStringsOut,
5048     CADWORD* pCaCookiesOut);
5049 void __RPC_STUB IPerPropertyBrowsing_GetPredefinedStrings_Stub(
5050     struct IRpcStubBuffer* This,
5051     struct IRpcChannelBuffer* pRpcChannelBuffer,
5052     PRPC_MESSAGE pRpcMessage,
5053     DWORD* pdwStubPhase);
5054 HRESULT CALLBACK IPerPropertyBrowsing_GetPredefinedValue_Proxy(
5055     IPerPropertyBrowsing* This,
5056     DISPID dispID,
5057     DWORD dwCookie,
5058     VARIANT* pVarOut);
5059 void __RPC_STUB IPerPropertyBrowsing_GetPredefinedValue_Stub(
5060     struct IRpcStubBuffer* This,
5061     struct IRpcChannelBuffer* pRpcChannelBuffer,
5062     PRPC_MESSAGE pRpcMessage,
5063     DWORD* pdwStubPhase);
5064
5065 #endif  /* __IPerPropertyBrowsing_INTERFACE_DEFINED__ */
5066
5067 #ifndef __IAdviseSinkEx_FWD_DEFINED__
5068 #define __IAdviseSinkEx_FWD_DEFINED__
5069 typedef struct IAdviseSinkEx IAdviseSinkEx;
5070 #endif
5071
5072 typedef IAdviseSinkEx *LPADVISESINKEX;
5073
5074 /*****************************************************************************
5075  * IAdviseSinkEx interface
5076  */
5077 #ifndef __IAdviseSinkEx_INTERFACE_DEFINED__
5078 #define __IAdviseSinkEx_INTERFACE_DEFINED__
5079
5080 DEFINE_GUID(IID_IAdviseSinkEx, 0x3af24290, 0x0c96, 0x11ce, 0xa0,0xcf, 0x00,0xaa,0x00,0x60,0x0a,0xb8);
5081 #if defined(__cplusplus) && !defined(CINTERFACE)
5082 struct IAdviseSinkEx : public IAdviseSink
5083 {
5084     virtual void STDMETHODCALLTYPE OnViewStatusChange(
5085         DWORD dwViewStatus) = 0;
5086
5087 };
5088 #else
5089 typedef struct IAdviseSinkExVtbl IAdviseSinkExVtbl;
5090 struct IAdviseSinkEx {
5091     const IAdviseSinkExVtbl* lpVtbl;
5092 };
5093 struct IAdviseSinkExVtbl {
5094     ICOM_MSVTABLE_COMPAT_FIELDS
5095
5096     /*** IUnknown methods ***/
5097     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5098         IAdviseSinkEx* This,
5099         REFIID riid,
5100         void** ppvObject);
5101
5102     ULONG (STDMETHODCALLTYPE *AddRef)(
5103         IAdviseSinkEx* This);
5104
5105     ULONG (STDMETHODCALLTYPE *Release)(
5106         IAdviseSinkEx* This);
5107
5108     /*** IAdviseSink methods ***/
5109     void (STDMETHODCALLTYPE *OnDataChange)(
5110         IAdviseSinkEx* This,
5111         FORMATETC* pFormatetc,
5112         STGMEDIUM* pStgmed);
5113
5114     void (STDMETHODCALLTYPE *OnViewChange)(
5115         IAdviseSinkEx* This,
5116         DWORD dwAspect,
5117         LONG lindex);
5118
5119     void (STDMETHODCALLTYPE *OnRename)(
5120         IAdviseSinkEx* This,
5121         IMoniker* pmk);
5122
5123     void (STDMETHODCALLTYPE *OnSave)(
5124         IAdviseSinkEx* This);
5125
5126     void (STDMETHODCALLTYPE *OnClose)(
5127         IAdviseSinkEx* This);
5128
5129     /*** IAdviseSinkEx methods ***/
5130     void (STDMETHODCALLTYPE *OnViewStatusChange)(
5131         IAdviseSinkEx* This,
5132         DWORD dwViewStatus);
5133
5134 };
5135
5136 /*** IUnknown methods ***/
5137 #define IAdviseSinkEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5138 #define IAdviseSinkEx_AddRef(p) (p)->lpVtbl->AddRef(p)
5139 #define IAdviseSinkEx_Release(p) (p)->lpVtbl->Release(p)
5140 /*** IAdviseSink methods ***/
5141 #define IAdviseSinkEx_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
5142 #define IAdviseSinkEx_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
5143 #define IAdviseSinkEx_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
5144 #define IAdviseSinkEx_OnSave(p) (p)->lpVtbl->OnSave(p)
5145 #define IAdviseSinkEx_OnClose(p) (p)->lpVtbl->OnClose(p)
5146 /*** IAdviseSinkEx methods ***/
5147 #define IAdviseSinkEx_OnViewStatusChange(p,a) (p)->lpVtbl->OnViewStatusChange(p,a)
5148
5149 #endif
5150
5151 #define IAdviseSinkEx_METHODS \
5152     ICOM_MSVTABLE_COMPAT_FIELDS \
5153     /*** IUnknown methods ***/ \
5154     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5155     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5156     STDMETHOD_(ULONG,Release)(THIS) PURE; \
5157     /*** IAdviseSink methods ***/ \
5158     STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC* pFormatetc, STGMEDIUM* pStgmed) PURE; \
5159     STDMETHOD_(void,OnViewChange)(THIS_ DWORD dwAspect, LONG lindex) PURE; \
5160     STDMETHOD_(void,OnRename)(THIS_ IMoniker* pmk) PURE; \
5161     STDMETHOD_(void,OnSave)(THIS) PURE; \
5162     STDMETHOD_(void,OnClose)(THIS) PURE; \
5163     /*** IAdviseSinkEx methods ***/ \
5164     STDMETHOD_(void,OnViewStatusChange)(THIS_ DWORD dwViewStatus) PURE;
5165
5166 HRESULT CALLBACK IAdviseSinkEx_RemoteOnViewStatusChange_Proxy(
5167     IAdviseSinkEx* This,
5168     DWORD dwViewStatus);
5169 void __RPC_STUB IAdviseSinkEx_RemoteOnViewStatusChange_Stub(
5170     struct IRpcStubBuffer* This,
5171     struct IRpcChannelBuffer* pRpcChannelBuffer,
5172     PRPC_MESSAGE pRpcMessage,
5173     DWORD* pdwStubPhase);
5174 void CALLBACK IAdviseSinkEx_OnViewStatusChange_Proxy(
5175     IAdviseSinkEx* This,
5176     DWORD dwViewStatus);
5177 HRESULT __RPC_STUB IAdviseSinkEx_OnViewStatusChange_Stub(
5178     IAdviseSinkEx* This,
5179     DWORD dwViewStatus);
5180
5181 #endif  /* __IAdviseSinkEx_INTERFACE_DEFINED__ */
5182
5183 #ifndef __IPointerInactive_FWD_DEFINED__
5184 #define __IPointerInactive_FWD_DEFINED__
5185 typedef struct IPointerInactive IPointerInactive;
5186 #endif
5187
5188 typedef IPointerInactive *LPPOINTERINACTIVE;
5189
5190 /*****************************************************************************
5191  * IPointerInactive interface
5192  */
5193 #ifndef __IPointerInactive_INTERFACE_DEFINED__
5194 #define __IPointerInactive_INTERFACE_DEFINED__
5195
5196 DEFINE_GUID(IID_IPointerInactive, 0x55980ba0, 0x35aa, 0x11cf, 0xb6,0x71, 0x00,0xaa,0x00,0x4c,0xd6,0xd8);
5197 #if defined(__cplusplus) && !defined(CINTERFACE)
5198 struct IPointerInactive : public IUnknown
5199 {
5200     virtual HRESULT STDMETHODCALLTYPE GetActivationPolicy(
5201         DWORD* pdwPolicy) = 0;
5202
5203     virtual HRESULT STDMETHODCALLTYPE OnInactiveMouseMove(
5204         LPCRECT pRectBounds,
5205         LONG x,
5206         LONG y,
5207         DWORD grfKeyState) = 0;
5208
5209     virtual HRESULT STDMETHODCALLTYPE OnInactiveSetCursor(
5210         LPCRECT pRectBounds,
5211         LONG x,
5212         LONG y,
5213         DWORD dwMouseMsg,
5214         BOOL fSetAlways) = 0;
5215
5216 };
5217 #else
5218 typedef struct IPointerInactiveVtbl IPointerInactiveVtbl;
5219 struct IPointerInactive {
5220     const IPointerInactiveVtbl* lpVtbl;
5221 };
5222 struct IPointerInactiveVtbl {
5223     ICOM_MSVTABLE_COMPAT_FIELDS
5224
5225     /*** IUnknown methods ***/
5226     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5227         IPointerInactive* This,
5228         REFIID riid,
5229         void** ppvObject);
5230
5231     ULONG (STDMETHODCALLTYPE *AddRef)(
5232         IPointerInactive* This);
5233
5234     ULONG (STDMETHODCALLTYPE *Release)(
5235         IPointerInactive* This);
5236
5237     /*** IPointerInactive methods ***/
5238     HRESULT (STDMETHODCALLTYPE *GetActivationPolicy)(
5239         IPointerInactive* This,
5240         DWORD* pdwPolicy);
5241
5242     HRESULT (STDMETHODCALLTYPE *OnInactiveMouseMove)(
5243         IPointerInactive* This,
5244         LPCRECT pRectBounds,
5245         LONG x,
5246         LONG y,
5247         DWORD grfKeyState);
5248
5249     HRESULT (STDMETHODCALLTYPE *OnInactiveSetCursor)(
5250         IPointerInactive* This,
5251         LPCRECT pRectBounds,
5252         LONG x,
5253         LONG y,
5254         DWORD dwMouseMsg,
5255         BOOL fSetAlways);
5256
5257 };
5258
5259 /*** IUnknown methods ***/
5260 #define IPointerInactive_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5261 #define IPointerInactive_AddRef(p) (p)->lpVtbl->AddRef(p)
5262 #define IPointerInactive_Release(p) (p)->lpVtbl->Release(p)
5263 /*** IPointerInactive methods ***/
5264 #define IPointerInactive_GetActivationPolicy(p,a) (p)->lpVtbl->GetActivationPolicy(p,a)
5265 #define IPointerInactive_OnInactiveMouseMove(p,a,b,c,d) (p)->lpVtbl->OnInactiveMouseMove(p,a,b,c,d)
5266 #define IPointerInactive_OnInactiveSetCursor(p,a,b,c,d,e) (p)->lpVtbl->OnInactiveSetCursor(p,a,b,c,d,e)
5267
5268 #endif
5269
5270 #define IPointerInactive_METHODS \
5271     ICOM_MSVTABLE_COMPAT_FIELDS \
5272     /*** IUnknown methods ***/ \
5273     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5274     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5275     STDMETHOD_(ULONG,Release)(THIS) PURE; \
5276     /*** IPointerInactive methods ***/ \
5277     STDMETHOD_(HRESULT,GetActivationPolicy)(THIS_ DWORD* pdwPolicy) PURE; \
5278     STDMETHOD_(HRESULT,OnInactiveMouseMove)(THIS_ LPCRECT pRectBounds, LONG x, LONG y, DWORD grfKeyState) PURE; \
5279     STDMETHOD_(HRESULT,OnInactiveSetCursor)(THIS_ LPCRECT pRectBounds, LONG x, LONG y, DWORD dwMouseMsg, BOOL fSetAlways) PURE;
5280
5281 HRESULT CALLBACK IPointerInactive_GetActivationPolicy_Proxy(
5282     IPointerInactive* This,
5283     DWORD* pdwPolicy);
5284 void __RPC_STUB IPointerInactive_GetActivationPolicy_Stub(
5285     struct IRpcStubBuffer* This,
5286     struct IRpcChannelBuffer* pRpcChannelBuffer,
5287     PRPC_MESSAGE pRpcMessage,
5288     DWORD* pdwStubPhase);
5289 HRESULT CALLBACK IPointerInactive_OnInactiveMouseMove_Proxy(
5290     IPointerInactive* This,
5291     LPCRECT pRectBounds,
5292     LONG x,
5293     LONG y,
5294     DWORD grfKeyState);
5295 void __RPC_STUB IPointerInactive_OnInactiveMouseMove_Stub(
5296     struct IRpcStubBuffer* This,
5297     struct IRpcChannelBuffer* pRpcChannelBuffer,
5298     PRPC_MESSAGE pRpcMessage,
5299     DWORD* pdwStubPhase);
5300 HRESULT CALLBACK IPointerInactive_OnInactiveSetCursor_Proxy(
5301     IPointerInactive* This,
5302     LPCRECT pRectBounds,
5303     LONG x,
5304     LONG y,
5305     DWORD dwMouseMsg,
5306     BOOL fSetAlways);
5307 void __RPC_STUB IPointerInactive_OnInactiveSetCursor_Stub(
5308     struct IRpcStubBuffer* This,
5309     struct IRpcChannelBuffer* pRpcChannelBuffer,
5310     PRPC_MESSAGE pRpcMessage,
5311     DWORD* pdwStubPhase);
5312
5313 #endif  /* __IPointerInactive_INTERFACE_DEFINED__ */
5314
5315 #ifndef __IObjectWithSite_FWD_DEFINED__
5316 #define __IObjectWithSite_FWD_DEFINED__
5317 typedef struct IObjectWithSite IObjectWithSite;
5318 #endif
5319
5320 typedef IObjectWithSite *LPOBJECTWITHSITE;
5321
5322 /*****************************************************************************
5323  * IObjectWithSite interface
5324  */
5325 #ifndef __IObjectWithSite_INTERFACE_DEFINED__
5326 #define __IObjectWithSite_INTERFACE_DEFINED__
5327
5328 DEFINE_GUID(IID_IObjectWithSite, 0xfc4801a3, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52);
5329 #if defined(__cplusplus) && !defined(CINTERFACE)
5330 struct IObjectWithSite : public IUnknown
5331 {
5332     virtual HRESULT STDMETHODCALLTYPE SetSite(
5333         IUnknown* pUnkSite) = 0;
5334
5335     virtual HRESULT STDMETHODCALLTYPE GetSite(
5336         REFIID riid,
5337         PVOID* ppvSite) = 0;
5338
5339 };
5340 #else
5341 typedef struct IObjectWithSiteVtbl IObjectWithSiteVtbl;
5342 struct IObjectWithSite {
5343     const IObjectWithSiteVtbl* lpVtbl;
5344 };
5345 struct IObjectWithSiteVtbl {
5346     ICOM_MSVTABLE_COMPAT_FIELDS
5347
5348     /*** IUnknown methods ***/
5349     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5350         IObjectWithSite* This,
5351         REFIID riid,
5352         void** ppvObject);
5353
5354     ULONG (STDMETHODCALLTYPE *AddRef)(
5355         IObjectWithSite* This);
5356
5357     ULONG (STDMETHODCALLTYPE *Release)(
5358         IObjectWithSite* This);
5359
5360     /*** IObjectWithSite methods ***/
5361     HRESULT (STDMETHODCALLTYPE *SetSite)(
5362         IObjectWithSite* This,
5363         IUnknown* pUnkSite);
5364
5365     HRESULT (STDMETHODCALLTYPE *GetSite)(
5366         IObjectWithSite* This,
5367         REFIID riid,
5368         PVOID* ppvSite);
5369
5370 };
5371
5372 /*** IUnknown methods ***/
5373 #define IObjectWithSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5374 #define IObjectWithSite_AddRef(p) (p)->lpVtbl->AddRef(p)
5375 #define IObjectWithSite_Release(p) (p)->lpVtbl->Release(p)
5376 /*** IObjectWithSite methods ***/
5377 #define IObjectWithSite_SetSite(p,a) (p)->lpVtbl->SetSite(p,a)
5378 #define IObjectWithSite_GetSite(p,a,b) (p)->lpVtbl->GetSite(p,a,b)
5379
5380 #endif
5381
5382 #define IObjectWithSite_METHODS \
5383     ICOM_MSVTABLE_COMPAT_FIELDS \
5384     /*** IUnknown methods ***/ \
5385     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5386     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5387     STDMETHOD_(ULONG,Release)(THIS) PURE; \
5388     /*** IObjectWithSite methods ***/ \
5389     STDMETHOD_(HRESULT,SetSite)(THIS_ IUnknown* pUnkSite) PURE; \
5390     STDMETHOD_(HRESULT,GetSite)(THIS_ REFIID riid, PVOID* ppvSite) PURE;
5391
5392 HRESULT CALLBACK IObjectWithSite_SetSite_Proxy(
5393     IObjectWithSite* This,
5394     IUnknown* pUnkSite);
5395 void __RPC_STUB IObjectWithSite_SetSite_Stub(
5396     struct IRpcStubBuffer* This,
5397     struct IRpcChannelBuffer* pRpcChannelBuffer,
5398     PRPC_MESSAGE pRpcMessage,
5399     DWORD* pdwStubPhase);
5400 HRESULT CALLBACK IObjectWithSite_GetSite_Proxy(
5401     IObjectWithSite* This,
5402     REFIID riid,
5403     PVOID* ppvSite);
5404 void __RPC_STUB IObjectWithSite_GetSite_Stub(
5405     struct IRpcStubBuffer* This,
5406     struct IRpcChannelBuffer* pRpcChannelBuffer,
5407     PRPC_MESSAGE pRpcMessage,
5408     DWORD* pdwStubPhase);
5409
5410 #endif  /* __IObjectWithSite_INTERFACE_DEFINED__ */
5411
5412 #ifndef __IOleUndoManager_FWD_DEFINED__
5413 #define __IOleUndoManager_FWD_DEFINED__
5414 typedef struct IOleUndoManager IOleUndoManager;
5415 #endif
5416
5417 #ifndef __IOleUndoUnit_FWD_DEFINED__
5418 #define __IOleUndoUnit_FWD_DEFINED__
5419 typedef struct IOleUndoUnit IOleUndoUnit;
5420 #endif
5421
5422 typedef IOleUndoUnit *LPOLEUNDOUNIT;
5423
5424 /*****************************************************************************
5425  * IOleUndoUnit interface
5426  */
5427 #ifndef __IOleUndoUnit_INTERFACE_DEFINED__
5428 #define __IOleUndoUnit_INTERFACE_DEFINED__
5429
5430 DEFINE_GUID(IID_IOleUndoUnit, 0x894ad3b0, 0xef97, 0x11ce, 0x9b,0xc9, 0x00,0xaa,0x00,0x60,0x8e,0x01);
5431 #if defined(__cplusplus) && !defined(CINTERFACE)
5432 struct IOleUndoUnit : public IUnknown
5433 {
5434     virtual HRESULT STDMETHODCALLTYPE Do(
5435         IOleUndoManager* pUndoManager) = 0;
5436
5437     virtual HRESULT STDMETHODCALLTYPE GetDescription(
5438         BSTR* pBstr) = 0;
5439
5440     virtual HRESULT STDMETHODCALLTYPE GetUnitType(
5441         CLSID* pClsid,
5442         LONG* plID) = 0;
5443
5444     virtual HRESULT STDMETHODCALLTYPE OnNextAdd(
5445         ) = 0;
5446
5447 };
5448 #else
5449 typedef struct IOleUndoUnitVtbl IOleUndoUnitVtbl;
5450 struct IOleUndoUnit {
5451     const IOleUndoUnitVtbl* lpVtbl;
5452 };
5453 struct IOleUndoUnitVtbl {
5454     ICOM_MSVTABLE_COMPAT_FIELDS
5455
5456     /*** IUnknown methods ***/
5457     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5458         IOleUndoUnit* This,
5459         REFIID riid,
5460         void** ppvObject);
5461
5462     ULONG (STDMETHODCALLTYPE *AddRef)(
5463         IOleUndoUnit* This);
5464
5465     ULONG (STDMETHODCALLTYPE *Release)(
5466         IOleUndoUnit* This);
5467
5468     /*** IOleUndoUnit methods ***/
5469     HRESULT (STDMETHODCALLTYPE *Do)(
5470         IOleUndoUnit* This,
5471         IOleUndoManager* pUndoManager);
5472
5473     HRESULT (STDMETHODCALLTYPE *GetDescription)(
5474         IOleUndoUnit* This,
5475         BSTR* pBstr);
5476
5477     HRESULT (STDMETHODCALLTYPE *GetUnitType)(
5478         IOleUndoUnit* This,
5479         CLSID* pClsid,
5480         LONG* plID);
5481
5482     HRESULT (STDMETHODCALLTYPE *OnNextAdd)(
5483         IOleUndoUnit* This);
5484
5485 };
5486
5487 /*** IUnknown methods ***/
5488 #define IOleUndoUnit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5489 #define IOleUndoUnit_AddRef(p) (p)->lpVtbl->AddRef(p)
5490 #define IOleUndoUnit_Release(p) (p)->lpVtbl->Release(p)
5491 /*** IOleUndoUnit methods ***/
5492 #define IOleUndoUnit_Do(p,a) (p)->lpVtbl->Do(p,a)
5493 #define IOleUndoUnit_GetDescription(p,a) (p)->lpVtbl->GetDescription(p,a)
5494 #define IOleUndoUnit_GetUnitType(p,a,b) (p)->lpVtbl->GetUnitType(p,a,b)
5495 #define IOleUndoUnit_OnNextAdd(p) (p)->lpVtbl->OnNextAdd(p)
5496
5497 #endif
5498
5499 #define IOleUndoUnit_METHODS \
5500     ICOM_MSVTABLE_COMPAT_FIELDS \
5501     /*** IUnknown methods ***/ \
5502     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5503     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5504     STDMETHOD_(ULONG,Release)(THIS) PURE; \
5505     /*** IOleUndoUnit methods ***/ \
5506     STDMETHOD_(HRESULT,Do)(THIS_ IOleUndoManager* pUndoManager) PURE; \
5507     STDMETHOD_(HRESULT,GetDescription)(THIS_ BSTR* pBstr) PURE; \
5508     STDMETHOD_(HRESULT,GetUnitType)(THIS_ CLSID* pClsid, LONG* plID) PURE; \
5509     STDMETHOD_(HRESULT,OnNextAdd)(THIS) PURE;
5510
5511 HRESULT CALLBACK IOleUndoUnit_Do_Proxy(
5512     IOleUndoUnit* This,
5513     IOleUndoManager* pUndoManager);
5514 void __RPC_STUB IOleUndoUnit_Do_Stub(
5515     struct IRpcStubBuffer* This,
5516     struct IRpcChannelBuffer* pRpcChannelBuffer,
5517     PRPC_MESSAGE pRpcMessage,
5518     DWORD* pdwStubPhase);
5519 HRESULT CALLBACK IOleUndoUnit_GetDescription_Proxy(
5520     IOleUndoUnit* This,
5521     BSTR* pBstr);
5522 void __RPC_STUB IOleUndoUnit_GetDescription_Stub(
5523     struct IRpcStubBuffer* This,
5524     struct IRpcChannelBuffer* pRpcChannelBuffer,
5525     PRPC_MESSAGE pRpcMessage,
5526     DWORD* pdwStubPhase);
5527 HRESULT CALLBACK IOleUndoUnit_GetUnitType_Proxy(
5528     IOleUndoUnit* This,
5529     CLSID* pClsid,
5530     LONG* plID);
5531 void __RPC_STUB IOleUndoUnit_GetUnitType_Stub(
5532     struct IRpcStubBuffer* This,
5533     struct IRpcChannelBuffer* pRpcChannelBuffer,
5534     PRPC_MESSAGE pRpcMessage,
5535     DWORD* pdwStubPhase);
5536 HRESULT CALLBACK IOleUndoUnit_OnNextAdd_Proxy(
5537     IOleUndoUnit* This);
5538 void __RPC_STUB IOleUndoUnit_OnNextAdd_Stub(
5539     struct IRpcStubBuffer* This,
5540     struct IRpcChannelBuffer* pRpcChannelBuffer,
5541     PRPC_MESSAGE pRpcMessage,
5542     DWORD* pdwStubPhase);
5543
5544 #endif  /* __IOleUndoUnit_INTERFACE_DEFINED__ */
5545
5546 #ifndef __IOleParentUndoUnit_FWD_DEFINED__
5547 #define __IOleParentUndoUnit_FWD_DEFINED__
5548 typedef struct IOleParentUndoUnit IOleParentUndoUnit;
5549 #endif
5550
5551 typedef IOleParentUndoUnit *LPOLEPARENTUNDOUNIT;
5552
5553 /*****************************************************************************
5554  * IOleParentUndoUnit interface
5555  */
5556 #ifndef __IOleParentUndoUnit_INTERFACE_DEFINED__
5557 #define __IOleParentUndoUnit_INTERFACE_DEFINED__
5558
5559 DEFINE_GUID(IID_IOleParentUndoUnit, 0xa1faf330, 0xef97, 0x11ce, 0x9b,0xc9, 0x00,0xaa,0x00,0x60,0x8e,0x01);
5560 #if defined(__cplusplus) && !defined(CINTERFACE)
5561 struct IOleParentUndoUnit : public IOleUndoUnit
5562 {
5563     virtual HRESULT STDMETHODCALLTYPE Open(
5564         IOleParentUndoUnit* pPUU) = 0;
5565
5566     virtual HRESULT STDMETHODCALLTYPE Close(
5567         IOleParentUndoUnit* pPUU,
5568         BOOL fCommit) = 0;
5569
5570     virtual HRESULT STDMETHODCALLTYPE Add(
5571         IOleUndoUnit* pUU) = 0;
5572
5573     virtual HRESULT STDMETHODCALLTYPE FindUnit(
5574         IOleUndoUnit* pUU) = 0;
5575
5576     virtual HRESULT STDMETHODCALLTYPE GetParentState(
5577         DWORD* pdwState) = 0;
5578
5579 };
5580 #else
5581 typedef struct IOleParentUndoUnitVtbl IOleParentUndoUnitVtbl;
5582 struct IOleParentUndoUnit {
5583     const IOleParentUndoUnitVtbl* lpVtbl;
5584 };
5585 struct IOleParentUndoUnitVtbl {
5586     ICOM_MSVTABLE_COMPAT_FIELDS
5587
5588     /*** IUnknown methods ***/
5589     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5590         IOleParentUndoUnit* This,
5591         REFIID riid,
5592         void** ppvObject);
5593
5594     ULONG (STDMETHODCALLTYPE *AddRef)(
5595         IOleParentUndoUnit* This);
5596
5597     ULONG (STDMETHODCALLTYPE *Release)(
5598         IOleParentUndoUnit* This);
5599
5600     /*** IOleUndoUnit methods ***/
5601     HRESULT (STDMETHODCALLTYPE *Do)(
5602         IOleParentUndoUnit* This,
5603         IOleUndoManager* pUndoManager);
5604
5605     HRESULT (STDMETHODCALLTYPE *GetDescription)(
5606         IOleParentUndoUnit* This,
5607         BSTR* pBstr);
5608
5609     HRESULT (STDMETHODCALLTYPE *GetUnitType)(
5610         IOleParentUndoUnit* This,
5611         CLSID* pClsid,
5612         LONG* plID);
5613
5614     HRESULT (STDMETHODCALLTYPE *OnNextAdd)(
5615         IOleParentUndoUnit* This);
5616
5617     /*** IOleParentUndoUnit methods ***/
5618     HRESULT (STDMETHODCALLTYPE *Open)(
5619         IOleParentUndoUnit* This,
5620         IOleParentUndoUnit* pPUU);
5621
5622     HRESULT (STDMETHODCALLTYPE *Close)(
5623         IOleParentUndoUnit* This,
5624         IOleParentUndoUnit* pPUU,
5625         BOOL fCommit);
5626
5627     HRESULT (STDMETHODCALLTYPE *Add)(
5628         IOleParentUndoUnit* This,
5629         IOleUndoUnit* pUU);
5630
5631     HRESULT (STDMETHODCALLTYPE *FindUnit)(
5632         IOleParentUndoUnit* This,
5633         IOleUndoUnit* pUU);
5634
5635     HRESULT (STDMETHODCALLTYPE *GetParentState)(
5636         IOleParentUndoUnit* This,
5637         DWORD* pdwState);
5638
5639 };
5640
5641 /*** IUnknown methods ***/
5642 #define IOleParentUndoUnit_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5643 #define IOleParentUndoUnit_AddRef(p) (p)->lpVtbl->AddRef(p)
5644 #define IOleParentUndoUnit_Release(p) (p)->lpVtbl->Release(p)
5645 /*** IOleUndoUnit methods ***/
5646 #define IOleParentUndoUnit_Do(p,a) (p)->lpVtbl->Do(p,a)
5647 #define IOleParentUndoUnit_GetDescription(p,a) (p)->lpVtbl->GetDescription(p,a)
5648 #define IOleParentUndoUnit_GetUnitType(p,a,b) (p)->lpVtbl->GetUnitType(p,a,b)
5649 #define IOleParentUndoUnit_OnNextAdd(p) (p)->lpVtbl->OnNextAdd(p)
5650 /*** IOleParentUndoUnit methods ***/
5651 #define IOleParentUndoUnit_Open(p,a) (p)->lpVtbl->Open(p,a)
5652 #define IOleParentUndoUnit_Close(p,a,b) (p)->lpVtbl->Close(p,a,b)
5653 #define IOleParentUndoUnit_Add(p,a) (p)->lpVtbl->Add(p,a)
5654 #define IOleParentUndoUnit_FindUnit(p,a) (p)->lpVtbl->FindUnit(p,a)
5655 #define IOleParentUndoUnit_GetParentState(p,a) (p)->lpVtbl->GetParentState(p,a)
5656
5657 #endif
5658
5659 #define IOleParentUndoUnit_METHODS \
5660     ICOM_MSVTABLE_COMPAT_FIELDS \
5661     /*** IUnknown methods ***/ \
5662     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5663     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5664     STDMETHOD_(ULONG,Release)(THIS) PURE; \
5665     /*** IOleUndoUnit methods ***/ \
5666     STDMETHOD_(HRESULT,Do)(THIS_ IOleUndoManager* pUndoManager) PURE; \
5667     STDMETHOD_(HRESULT,GetDescription)(THIS_ BSTR* pBstr) PURE; \
5668     STDMETHOD_(HRESULT,GetUnitType)(THIS_ CLSID* pClsid, LONG* plID) PURE; \
5669     STDMETHOD_(HRESULT,OnNextAdd)(THIS) PURE; \
5670     /*** IOleParentUndoUnit methods ***/ \
5671     STDMETHOD_(HRESULT,Open)(THIS_ IOleParentUndoUnit* pPUU) PURE; \
5672     STDMETHOD_(HRESULT,Close)(THIS_ IOleParentUndoUnit* pPUU, BOOL fCommit) PURE; \
5673     STDMETHOD_(HRESULT,Add)(THIS_ IOleUndoUnit* pUU) PURE; \
5674     STDMETHOD_(HRESULT,FindUnit)(THIS_ IOleUndoUnit* pUU) PURE; \
5675     STDMETHOD_(HRESULT,GetParentState)(THIS_ DWORD* pdwState) PURE;
5676
5677 HRESULT CALLBACK IOleParentUndoUnit_Open_Proxy(
5678     IOleParentUndoUnit* This,
5679     IOleParentUndoUnit* pPUU);
5680 void __RPC_STUB IOleParentUndoUnit_Open_Stub(
5681     struct IRpcStubBuffer* This,
5682     struct IRpcChannelBuffer* pRpcChannelBuffer,
5683     PRPC_MESSAGE pRpcMessage,
5684     DWORD* pdwStubPhase);
5685 HRESULT CALLBACK IOleParentUndoUnit_Close_Proxy(
5686     IOleParentUndoUnit* This,
5687     IOleParentUndoUnit* pPUU,
5688     BOOL fCommit);
5689 void __RPC_STUB IOleParentUndoUnit_Close_Stub(
5690     struct IRpcStubBuffer* This,
5691     struct IRpcChannelBuffer* pRpcChannelBuffer,
5692     PRPC_MESSAGE pRpcMessage,
5693     DWORD* pdwStubPhase);
5694 HRESULT CALLBACK IOleParentUndoUnit_Add_Proxy(
5695     IOleParentUndoUnit* This,
5696     IOleUndoUnit* pUU);
5697 void __RPC_STUB IOleParentUndoUnit_Add_Stub(
5698     struct IRpcStubBuffer* This,
5699     struct IRpcChannelBuffer* pRpcChannelBuffer,
5700     PRPC_MESSAGE pRpcMessage,
5701     DWORD* pdwStubPhase);
5702 HRESULT CALLBACK IOleParentUndoUnit_FindUnit_Proxy(
5703     IOleParentUndoUnit* This,
5704     IOleUndoUnit* pUU);
5705 void __RPC_STUB IOleParentUndoUnit_FindUnit_Stub(
5706     struct IRpcStubBuffer* This,
5707     struct IRpcChannelBuffer* pRpcChannelBuffer,
5708     PRPC_MESSAGE pRpcMessage,
5709     DWORD* pdwStubPhase);
5710 HRESULT CALLBACK IOleParentUndoUnit_GetParentState_Proxy(
5711     IOleParentUndoUnit* This,
5712     DWORD* pdwState);
5713 void __RPC_STUB IOleParentUndoUnit_GetParentState_Stub(
5714     struct IRpcStubBuffer* This,
5715     struct IRpcChannelBuffer* pRpcChannelBuffer,
5716     PRPC_MESSAGE pRpcMessage,
5717     DWORD* pdwStubPhase);
5718
5719 #endif  /* __IOleParentUndoUnit_INTERFACE_DEFINED__ */
5720
5721 #ifndef __IEnumOleUndoUnits_FWD_DEFINED__
5722 #define __IEnumOleUndoUnits_FWD_DEFINED__
5723 typedef struct IEnumOleUndoUnits IEnumOleUndoUnits;
5724 #endif
5725
5726 typedef IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
5727
5728 /*****************************************************************************
5729  * IEnumOleUndoUnits interface
5730  */
5731 #ifndef __IEnumOleUndoUnits_INTERFACE_DEFINED__
5732 #define __IEnumOleUndoUnits_INTERFACE_DEFINED__
5733
5734 DEFINE_GUID(IID_IEnumOleUndoUnits, 0xb3e7c340, 0xef97, 0x11ce, 0x9b,0xc9, 0x00,0xaa,0x00,0x60,0x8e,0x01);
5735 #if defined(__cplusplus) && !defined(CINTERFACE)
5736 struct IEnumOleUndoUnits : public IUnknown
5737 {
5738     virtual HRESULT STDMETHODCALLTYPE Next(
5739         ULONG cElt,
5740         IOleUndoUnit** rgElt,
5741         ULONG* pcEltFetched) = 0;
5742
5743     virtual HRESULT STDMETHODCALLTYPE Skip(
5744         ULONG cElt) = 0;
5745
5746     virtual HRESULT STDMETHODCALLTYPE Reset(
5747         ) = 0;
5748
5749     virtual HRESULT STDMETHODCALLTYPE Clone(
5750         IEnumOleUndoUnits** ppEnum) = 0;
5751
5752 };
5753 #else
5754 typedef struct IEnumOleUndoUnitsVtbl IEnumOleUndoUnitsVtbl;
5755 struct IEnumOleUndoUnits {
5756     const IEnumOleUndoUnitsVtbl* lpVtbl;
5757 };
5758 struct IEnumOleUndoUnitsVtbl {
5759     ICOM_MSVTABLE_COMPAT_FIELDS
5760
5761     /*** IUnknown methods ***/
5762     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5763         IEnumOleUndoUnits* This,
5764         REFIID riid,
5765         void** ppvObject);
5766
5767     ULONG (STDMETHODCALLTYPE *AddRef)(
5768         IEnumOleUndoUnits* This);
5769
5770     ULONG (STDMETHODCALLTYPE *Release)(
5771         IEnumOleUndoUnits* This);
5772
5773     /*** IEnumOleUndoUnits methods ***/
5774     HRESULT (STDMETHODCALLTYPE *Next)(
5775         IEnumOleUndoUnits* This,
5776         ULONG cElt,
5777         IOleUndoUnit** rgElt,
5778         ULONG* pcEltFetched);
5779
5780     HRESULT (STDMETHODCALLTYPE *Skip)(
5781         IEnumOleUndoUnits* This,
5782         ULONG cElt);
5783
5784     HRESULT (STDMETHODCALLTYPE *Reset)(
5785         IEnumOleUndoUnits* This);
5786
5787     HRESULT (STDMETHODCALLTYPE *Clone)(
5788         IEnumOleUndoUnits* This,
5789         IEnumOleUndoUnits** ppEnum);
5790
5791 };
5792
5793 /*** IUnknown methods ***/
5794 #define IEnumOleUndoUnits_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5795 #define IEnumOleUndoUnits_AddRef(p) (p)->lpVtbl->AddRef(p)
5796 #define IEnumOleUndoUnits_Release(p) (p)->lpVtbl->Release(p)
5797 /*** IEnumOleUndoUnits methods ***/
5798 #define IEnumOleUndoUnits_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
5799 #define IEnumOleUndoUnits_Skip(p,a) (p)->lpVtbl->Skip(p,a)
5800 #define IEnumOleUndoUnits_Reset(p) (p)->lpVtbl->Reset(p)
5801 #define IEnumOleUndoUnits_Clone(p,a) (p)->lpVtbl->Clone(p,a)
5802
5803 #endif
5804
5805 #define IEnumOleUndoUnits_METHODS \
5806     ICOM_MSVTABLE_COMPAT_FIELDS \
5807     /*** IUnknown methods ***/ \
5808     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5809     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5810     STDMETHOD_(ULONG,Release)(THIS) PURE; \
5811     /*** IEnumOleUndoUnits methods ***/ \
5812     STDMETHOD_(HRESULT,Next)(THIS_ ULONG cElt, IOleUndoUnit** rgElt, ULONG* pcEltFetched) PURE; \
5813     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cElt) PURE; \
5814     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
5815     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumOleUndoUnits** ppEnum) PURE;
5816
5817 HRESULT CALLBACK IEnumOleUndoUnits_RemoteNext_Proxy(
5818     IEnumOleUndoUnits* This,
5819     ULONG cElt,
5820     IOleUndoUnit** rgElt,
5821     ULONG* pcEltFetched);
5822 void __RPC_STUB IEnumOleUndoUnits_RemoteNext_Stub(
5823     struct IRpcStubBuffer* This,
5824     struct IRpcChannelBuffer* pRpcChannelBuffer,
5825     PRPC_MESSAGE pRpcMessage,
5826     DWORD* pdwStubPhase);
5827 HRESULT CALLBACK IEnumOleUndoUnits_Next_Proxy(
5828     IEnumOleUndoUnits* This,
5829     ULONG cElt,
5830     IOleUndoUnit** rgElt,
5831     ULONG* pcEltFetched);
5832 HRESULT __RPC_STUB IEnumOleUndoUnits_Next_Stub(
5833     IEnumOleUndoUnits* This,
5834     ULONG cElt,
5835     IOleUndoUnit** rgElt,
5836     ULONG* pcEltFetched);
5837 HRESULT CALLBACK IEnumOleUndoUnits_Skip_Proxy(
5838     IEnumOleUndoUnits* This,
5839     ULONG cElt);
5840 void __RPC_STUB IEnumOleUndoUnits_Skip_Stub(
5841     struct IRpcStubBuffer* This,
5842     struct IRpcChannelBuffer* pRpcChannelBuffer,
5843     PRPC_MESSAGE pRpcMessage,
5844     DWORD* pdwStubPhase);
5845 HRESULT CALLBACK IEnumOleUndoUnits_Reset_Proxy(
5846     IEnumOleUndoUnits* This);
5847 void __RPC_STUB IEnumOleUndoUnits_Reset_Stub(
5848     struct IRpcStubBuffer* This,
5849     struct IRpcChannelBuffer* pRpcChannelBuffer,
5850     PRPC_MESSAGE pRpcMessage,
5851     DWORD* pdwStubPhase);
5852 HRESULT CALLBACK IEnumOleUndoUnits_Clone_Proxy(
5853     IEnumOleUndoUnits* This,
5854     IEnumOleUndoUnits** ppEnum);
5855 void __RPC_STUB IEnumOleUndoUnits_Clone_Stub(
5856     struct IRpcStubBuffer* This,
5857     struct IRpcChannelBuffer* pRpcChannelBuffer,
5858     PRPC_MESSAGE pRpcMessage,
5859     DWORD* pdwStubPhase);
5860
5861 #endif  /* __IEnumOleUndoUnits_INTERFACE_DEFINED__ */
5862
5863 typedef IOleUndoManager *LPOLEUNDOMANAGER;
5864
5865 /*****************************************************************************
5866  * IOleUndoManager interface
5867  */
5868 #ifndef __IOleUndoManager_INTERFACE_DEFINED__
5869 #define __IOleUndoManager_INTERFACE_DEFINED__
5870
5871 DEFINE_GUID(IID_IOleUndoManager, 0xd001f200, 0xef97, 0x11ce, 0x9b,0xc9, 0x00,0xaa,0x00,0x60,0x8e,0x01);
5872 #if defined(__cplusplus) && !defined(CINTERFACE)
5873 struct IOleUndoManager : public IUnknown
5874 {
5875     virtual HRESULT STDMETHODCALLTYPE Open(
5876         IOleParentUndoUnit* pPUU) = 0;
5877
5878     virtual HRESULT STDMETHODCALLTYPE Close(
5879         IOleParentUndoUnit* pPUU,
5880         BOOL fCommit) = 0;
5881
5882     virtual HRESULT STDMETHODCALLTYPE Add(
5883         IOleUndoUnit* pUU) = 0;
5884
5885     virtual HRESULT STDMETHODCALLTYPE GetOpenParentState(
5886         DWORD* pdwState) = 0;
5887
5888     virtual HRESULT STDMETHODCALLTYPE DiscardFrom(
5889         IOleUndoUnit* pUU) = 0;
5890
5891     virtual HRESULT STDMETHODCALLTYPE UndoTo(
5892         IOleUndoUnit* pUU) = 0;
5893
5894     virtual HRESULT STDMETHODCALLTYPE RedoTo(
5895         IOleUndoUnit* pUU) = 0;
5896
5897     virtual HRESULT STDMETHODCALLTYPE EnumUndoable(
5898         IEnumOleUndoUnits** ppEnum) = 0;
5899
5900     virtual HRESULT STDMETHODCALLTYPE EnumRedoable(
5901         IEnumOleUndoUnits** ppEnum) = 0;
5902
5903     virtual HRESULT STDMETHODCALLTYPE GetLastUndoDescription(
5904         BSTR* pBstr) = 0;
5905
5906     virtual HRESULT STDMETHODCALLTYPE GetLastRedoDescription(
5907         BSTR* pBstr) = 0;
5908
5909     virtual HRESULT STDMETHODCALLTYPE Enable(
5910         BOOL fEnable) = 0;
5911
5912 };
5913 #else
5914 typedef struct IOleUndoManagerVtbl IOleUndoManagerVtbl;
5915 struct IOleUndoManager {
5916     const IOleUndoManagerVtbl* lpVtbl;
5917 };
5918 struct IOleUndoManagerVtbl {
5919     ICOM_MSVTABLE_COMPAT_FIELDS
5920
5921     /*** IUnknown methods ***/
5922     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5923         IOleUndoManager* This,
5924         REFIID riid,
5925         void** ppvObject);
5926
5927     ULONG (STDMETHODCALLTYPE *AddRef)(
5928         IOleUndoManager* This);
5929
5930     ULONG (STDMETHODCALLTYPE *Release)(
5931         IOleUndoManager* This);
5932
5933     /*** IOleUndoManager methods ***/
5934     HRESULT (STDMETHODCALLTYPE *Open)(
5935         IOleUndoManager* This,
5936         IOleParentUndoUnit* pPUU);
5937
5938     HRESULT (STDMETHODCALLTYPE *Close)(
5939         IOleUndoManager* This,
5940         IOleParentUndoUnit* pPUU,
5941         BOOL fCommit);
5942
5943     HRESULT (STDMETHODCALLTYPE *Add)(
5944         IOleUndoManager* This,
5945         IOleUndoUnit* pUU);
5946
5947     HRESULT (STDMETHODCALLTYPE *GetOpenParentState)(
5948         IOleUndoManager* This,
5949         DWORD* pdwState);
5950
5951     HRESULT (STDMETHODCALLTYPE *DiscardFrom)(
5952         IOleUndoManager* This,
5953         IOleUndoUnit* pUU);
5954
5955     HRESULT (STDMETHODCALLTYPE *UndoTo)(
5956         IOleUndoManager* This,
5957         IOleUndoUnit* pUU);
5958
5959     HRESULT (STDMETHODCALLTYPE *RedoTo)(
5960         IOleUndoManager* This,
5961         IOleUndoUnit* pUU);
5962
5963     HRESULT (STDMETHODCALLTYPE *EnumUndoable)(
5964         IOleUndoManager* This,
5965         IEnumOleUndoUnits** ppEnum);
5966
5967     HRESULT (STDMETHODCALLTYPE *EnumRedoable)(
5968         IOleUndoManager* This,
5969         IEnumOleUndoUnits** ppEnum);
5970
5971     HRESULT (STDMETHODCALLTYPE *GetLastUndoDescription)(
5972         IOleUndoManager* This,
5973         BSTR* pBstr);
5974
5975     HRESULT (STDMETHODCALLTYPE *GetLastRedoDescription)(
5976         IOleUndoManager* This,
5977         BSTR* pBstr);
5978
5979     HRESULT (STDMETHODCALLTYPE *Enable)(
5980         IOleUndoManager* This,
5981         BOOL fEnable);
5982
5983 };
5984
5985 /*** IUnknown methods ***/
5986 #define IOleUndoManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5987 #define IOleUndoManager_AddRef(p) (p)->lpVtbl->AddRef(p)
5988 #define IOleUndoManager_Release(p) (p)->lpVtbl->Release(p)
5989 /*** IOleUndoManager methods ***/
5990 #define IOleUndoManager_Open(p,a) (p)->lpVtbl->Open(p,a)
5991 #define IOleUndoManager_Close(p,a,b) (p)->lpVtbl->Close(p,a,b)
5992 #define IOleUndoManager_Add(p,a) (p)->lpVtbl->Add(p,a)
5993 #define IOleUndoManager_GetOpenParentState(p,a) (p)->lpVtbl->GetOpenParentState(p,a)
5994 #define IOleUndoManager_DiscardFrom(p,a) (p)->lpVtbl->DiscardFrom(p,a)
5995 #define IOleUndoManager_UndoTo(p,a) (p)->lpVtbl->UndoTo(p,a)
5996 #define IOleUndoManager_RedoTo(p,a) (p)->lpVtbl->RedoTo(p,a)
5997 #define IOleUndoManager_EnumUndoable(p,a) (p)->lpVtbl->EnumUndoable(p,a)
5998 #define IOleUndoManager_EnumRedoable(p,a) (p)->lpVtbl->EnumRedoable(p,a)
5999 #define IOleUndoManager_GetLastUndoDescription(p,a) (p)->lpVtbl->GetLastUndoDescription(p,a)
6000 #define IOleUndoManager_GetLastRedoDescription(p,a) (p)->lpVtbl->GetLastRedoDescription(p,a)
6001 #define IOleUndoManager_Enable(p,a) (p)->lpVtbl->Enable(p,a)
6002
6003 #endif
6004
6005 #define IOleUndoManager_METHODS \
6006     ICOM_MSVTABLE_COMPAT_FIELDS \
6007     /*** IUnknown methods ***/ \
6008     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6009     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6010     STDMETHOD_(ULONG,Release)(THIS) PURE; \
6011     /*** IOleUndoManager methods ***/ \
6012     STDMETHOD_(HRESULT,Open)(THIS_ IOleParentUndoUnit* pPUU) PURE; \
6013     STDMETHOD_(HRESULT,Close)(THIS_ IOleParentUndoUnit* pPUU, BOOL fCommit) PURE; \
6014     STDMETHOD_(HRESULT,Add)(THIS_ IOleUndoUnit* pUU) PURE; \
6015     STDMETHOD_(HRESULT,GetOpenParentState)(THIS_ DWORD* pdwState) PURE; \
6016     STDMETHOD_(HRESULT,DiscardFrom)(THIS_ IOleUndoUnit* pUU) PURE; \
6017     STDMETHOD_(HRESULT,UndoTo)(THIS_ IOleUndoUnit* pUU) PURE; \
6018     STDMETHOD_(HRESULT,RedoTo)(THIS_ IOleUndoUnit* pUU) PURE; \
6019     STDMETHOD_(HRESULT,EnumUndoable)(THIS_ IEnumOleUndoUnits** ppEnum) PURE; \
6020     STDMETHOD_(HRESULT,EnumRedoable)(THIS_ IEnumOleUndoUnits** ppEnum) PURE; \
6021     STDMETHOD_(HRESULT,GetLastUndoDescription)(THIS_ BSTR* pBstr) PURE; \
6022     STDMETHOD_(HRESULT,GetLastRedoDescription)(THIS_ BSTR* pBstr) PURE; \
6023     STDMETHOD_(HRESULT,Enable)(THIS_ BOOL fEnable) PURE;
6024
6025 HRESULT CALLBACK IOleUndoManager_Open_Proxy(
6026     IOleUndoManager* This,
6027     IOleParentUndoUnit* pPUU);
6028 void __RPC_STUB IOleUndoManager_Open_Stub(
6029     struct IRpcStubBuffer* This,
6030     struct IRpcChannelBuffer* pRpcChannelBuffer,
6031     PRPC_MESSAGE pRpcMessage,
6032     DWORD* pdwStubPhase);
6033 HRESULT CALLBACK IOleUndoManager_Close_Proxy(
6034     IOleUndoManager* This,
6035     IOleParentUndoUnit* pPUU,
6036     BOOL fCommit);
6037 void __RPC_STUB IOleUndoManager_Close_Stub(
6038     struct IRpcStubBuffer* This,
6039     struct IRpcChannelBuffer* pRpcChannelBuffer,
6040     PRPC_MESSAGE pRpcMessage,
6041     DWORD* pdwStubPhase);
6042 HRESULT CALLBACK IOleUndoManager_Add_Proxy(
6043     IOleUndoManager* This,
6044     IOleUndoUnit* pUU);
6045 void __RPC_STUB IOleUndoManager_Add_Stub(
6046     struct IRpcStubBuffer* This,
6047     struct IRpcChannelBuffer* pRpcChannelBuffer,
6048     PRPC_MESSAGE pRpcMessage,
6049     DWORD* pdwStubPhase);
6050 HRESULT CALLBACK IOleUndoManager_GetOpenParentState_Proxy(
6051     IOleUndoManager* This,
6052     DWORD* pdwState);
6053 void __RPC_STUB IOleUndoManager_GetOpenParentState_Stub(
6054     struct IRpcStubBuffer* This,
6055     struct IRpcChannelBuffer* pRpcChannelBuffer,
6056     PRPC_MESSAGE pRpcMessage,
6057     DWORD* pdwStubPhase);
6058 HRESULT CALLBACK IOleUndoManager_DiscardFrom_Proxy(
6059     IOleUndoManager* This,
6060     IOleUndoUnit* pUU);
6061 void __RPC_STUB IOleUndoManager_DiscardFrom_Stub(
6062     struct IRpcStubBuffer* This,
6063     struct IRpcChannelBuffer* pRpcChannelBuffer,
6064     PRPC_MESSAGE pRpcMessage,
6065     DWORD* pdwStubPhase);
6066 HRESULT CALLBACK IOleUndoManager_UndoTo_Proxy(
6067     IOleUndoManager* This,
6068     IOleUndoUnit* pUU);
6069 void __RPC_STUB IOleUndoManager_UndoTo_Stub(
6070     struct IRpcStubBuffer* This,
6071     struct IRpcChannelBuffer* pRpcChannelBuffer,
6072     PRPC_MESSAGE pRpcMessage,
6073     DWORD* pdwStubPhase);
6074 HRESULT CALLBACK IOleUndoManager_RedoTo_Proxy(
6075     IOleUndoManager* This,
6076     IOleUndoUnit* pUU);
6077 void __RPC_STUB IOleUndoManager_RedoTo_Stub(
6078     struct IRpcStubBuffer* This,
6079     struct IRpcChannelBuffer* pRpcChannelBuffer,
6080     PRPC_MESSAGE pRpcMessage,
6081     DWORD* pdwStubPhase);
6082 HRESULT CALLBACK IOleUndoManager_EnumUndoable_Proxy(
6083     IOleUndoManager* This,
6084     IEnumOleUndoUnits** ppEnum);
6085 void __RPC_STUB IOleUndoManager_EnumUndoable_Stub(
6086     struct IRpcStubBuffer* This,
6087     struct IRpcChannelBuffer* pRpcChannelBuffer,
6088     PRPC_MESSAGE pRpcMessage,
6089     DWORD* pdwStubPhase);
6090 HRESULT CALLBACK IOleUndoManager_EnumRedoable_Proxy(
6091     IOleUndoManager* This,
6092     IEnumOleUndoUnits** ppEnum);
6093 void __RPC_STUB IOleUndoManager_EnumRedoable_Stub(
6094     struct IRpcStubBuffer* This,
6095     struct IRpcChannelBuffer* pRpcChannelBuffer,
6096     PRPC_MESSAGE pRpcMessage,
6097     DWORD* pdwStubPhase);
6098 HRESULT CALLBACK IOleUndoManager_GetLastUndoDescription_Proxy(
6099     IOleUndoManager* This,
6100     BSTR* pBstr);
6101 void __RPC_STUB IOleUndoManager_GetLastUndoDescription_Stub(
6102     struct IRpcStubBuffer* This,
6103     struct IRpcChannelBuffer* pRpcChannelBuffer,
6104     PRPC_MESSAGE pRpcMessage,
6105     DWORD* pdwStubPhase);
6106 HRESULT CALLBACK IOleUndoManager_GetLastRedoDescription_Proxy(
6107     IOleUndoManager* This,
6108     BSTR* pBstr);
6109 void __RPC_STUB IOleUndoManager_GetLastRedoDescription_Stub(
6110     struct IRpcStubBuffer* This,
6111     struct IRpcChannelBuffer* pRpcChannelBuffer,
6112     PRPC_MESSAGE pRpcMessage,
6113     DWORD* pdwStubPhase);
6114 HRESULT CALLBACK IOleUndoManager_Enable_Proxy(
6115     IOleUndoManager* This,
6116     BOOL fEnable);
6117 void __RPC_STUB IOleUndoManager_Enable_Stub(
6118     struct IRpcStubBuffer* This,
6119     struct IRpcChannelBuffer* pRpcChannelBuffer,
6120     PRPC_MESSAGE pRpcMessage,
6121     DWORD* pdwStubPhase);
6122
6123 #endif  /* __IOleUndoManager_INTERFACE_DEFINED__ */
6124
6125 #ifndef __IQuickActivate_FWD_DEFINED__
6126 #define __IQuickActivate_FWD_DEFINED__
6127 typedef struct IQuickActivate IQuickActivate;
6128 #endif
6129
6130 typedef IQuickActivate *LPQUICKACTIVATE;
6131
6132 typedef enum tagQACONTAINERFLAGS {
6133     QACONTAINER_SHOWHATCHING = 0x1,
6134     QACONTAINER_SHOWGRABHANDLES = 0x2,
6135     QACONTAINER_USERMODE = 0x4,
6136     QACONTAINER_DISPLAYASDEFAULT = 0x8,
6137     QACONTAINER_UIDEAD = 0x10,
6138     QACONTAINER_AUTOCLIP = 0x20,
6139     QACONTAINER_MESSAGEREFLECT = 0x40,
6140     QACONTAINER_SUPPORTSMNEMONICS = 0x80
6141 } QACONTAINERFLAGS;
6142
6143 typedef DWORD OLE_COLOR;
6144
6145 typedef struct tagQACONTAINER {
6146     ULONG cbSize;
6147     IOleClientSite *pClientSite;
6148     IAdviseSinkEx *pAdviseSink;
6149     IPropertyNotifySink *pPropertyNotifySink;
6150     IUnknown *pUnkEventSink;
6151     DWORD dwAmbientFlags;
6152     OLE_COLOR colorFore;
6153     OLE_COLOR colorBack;
6154     IFont *pFont;
6155     IOleUndoManager *pUndoMgr;
6156     DWORD dwAppearance;
6157     LONG lcid;
6158     HPALETTE hpal;
6159     IBindHost *pBindHost;
6160     IOleControlSite *pOleControlSite;
6161     IServiceProvider *pServiceProvider;
6162 } QACONTAINER;
6163
6164 typedef struct tagQACONTROL {
6165     ULONG cbSize;
6166     DWORD dwMiscStatus;
6167     DWORD dwViewStatus;
6168     DWORD dwEventCookie;
6169     DWORD dwPropNotifyCookie;
6170     DWORD dwPointerActivationPolicy;
6171 } QACONTROL;
6172
6173 /*****************************************************************************
6174  * IQuickActivate interface
6175  */
6176 #ifndef __IQuickActivate_INTERFACE_DEFINED__
6177 #define __IQuickActivate_INTERFACE_DEFINED__
6178
6179 DEFINE_GUID(IID_IQuickActivate, 0xcf51ed10, 0x62fe, 0x11cf, 0xbf,0x86, 0x00,0xa0,0xc9,0x03,0x48,0x36);
6180 #if defined(__cplusplus) && !defined(CINTERFACE)
6181 struct IQuickActivate : public IUnknown
6182 {
6183     virtual HRESULT STDMETHODCALLTYPE QuickActivate(
6184         QACONTAINER* pQaContainer,
6185         QACONTROL* pQaControl) = 0;
6186
6187     virtual HRESULT STDMETHODCALLTYPE SetContentExtent(
6188         LPSIZEL pSizel) = 0;
6189
6190     virtual HRESULT STDMETHODCALLTYPE GetContentExtent(
6191         LPSIZEL pSizel) = 0;
6192
6193 };
6194 #else
6195 typedef struct IQuickActivateVtbl IQuickActivateVtbl;
6196 struct IQuickActivate {
6197     const IQuickActivateVtbl* lpVtbl;
6198 };
6199 struct IQuickActivateVtbl {
6200     ICOM_MSVTABLE_COMPAT_FIELDS
6201
6202     /*** IUnknown methods ***/
6203     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6204         IQuickActivate* This,
6205         REFIID riid,
6206         void** ppvObject);
6207
6208     ULONG (STDMETHODCALLTYPE *AddRef)(
6209         IQuickActivate* This);
6210
6211     ULONG (STDMETHODCALLTYPE *Release)(
6212         IQuickActivate* This);
6213
6214     /*** IQuickActivate methods ***/
6215     HRESULT (STDMETHODCALLTYPE *QuickActivate)(
6216         IQuickActivate* This,
6217         QACONTAINER* pQaContainer,
6218         QACONTROL* pQaControl);
6219
6220     HRESULT (STDMETHODCALLTYPE *SetContentExtent)(
6221         IQuickActivate* This,
6222         LPSIZEL pSizel);
6223
6224     HRESULT (STDMETHODCALLTYPE *GetContentExtent)(
6225         IQuickActivate* This,
6226         LPSIZEL pSizel);
6227
6228 };
6229
6230 /*** IUnknown methods ***/
6231 #define IQuickActivate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6232 #define IQuickActivate_AddRef(p) (p)->lpVtbl->AddRef(p)
6233 #define IQuickActivate_Release(p) (p)->lpVtbl->Release(p)
6234 /*** IQuickActivate methods ***/
6235 #define IQuickActivate_QuickActivate(p,a,b) (p)->lpVtbl->QuickActivate(p,a,b)
6236 #define IQuickActivate_SetContentExtent(p,a) (p)->lpVtbl->SetContentExtent(p,a)
6237 #define IQuickActivate_GetContentExtent(p,a) (p)->lpVtbl->GetContentExtent(p,a)
6238
6239 #endif
6240
6241 #define IQuickActivate_METHODS \
6242     ICOM_MSVTABLE_COMPAT_FIELDS \
6243     /*** IUnknown methods ***/ \
6244     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6245     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6246     STDMETHOD_(ULONG,Release)(THIS) PURE; \
6247     /*** IQuickActivate methods ***/ \
6248     STDMETHOD_(HRESULT,QuickActivate)(THIS_ QACONTAINER* pQaContainer, QACONTROL* pQaControl) PURE; \
6249     STDMETHOD_(HRESULT,SetContentExtent)(THIS_ LPSIZEL pSizel) PURE; \
6250     STDMETHOD_(HRESULT,GetContentExtent)(THIS_ LPSIZEL pSizel) PURE;
6251
6252 HRESULT CALLBACK IQuickActivate_RemoteQuickActivate_Proxy(
6253     IQuickActivate* This,
6254     QACONTAINER* pQaContainer,
6255     QACONTROL* pQaControl);
6256 void __RPC_STUB IQuickActivate_RemoteQuickActivate_Stub(
6257     struct IRpcStubBuffer* This,
6258     struct IRpcChannelBuffer* pRpcChannelBuffer,
6259     PRPC_MESSAGE pRpcMessage,
6260     DWORD* pdwStubPhase);
6261 HRESULT CALLBACK IQuickActivate_QuickActivate_Proxy(
6262     IQuickActivate* This,
6263     QACONTAINER* pQaContainer,
6264     QACONTROL* pQaControl);
6265 HRESULT __RPC_STUB IQuickActivate_QuickActivate_Stub(
6266     IQuickActivate* This,
6267     QACONTAINER* pQaContainer,
6268     QACONTROL* pQaControl);
6269 HRESULT CALLBACK IQuickActivate_SetContentExtent_Proxy(
6270     IQuickActivate* This,
6271     LPSIZEL pSizel);
6272 void __RPC_STUB IQuickActivate_SetContentExtent_Stub(
6273     struct IRpcStubBuffer* This,
6274     struct IRpcChannelBuffer* pRpcChannelBuffer,
6275     PRPC_MESSAGE pRpcMessage,
6276     DWORD* pdwStubPhase);
6277 HRESULT CALLBACK IQuickActivate_GetContentExtent_Proxy(
6278     IQuickActivate* This,
6279     LPSIZEL pSizel);
6280 void __RPC_STUB IQuickActivate_GetContentExtent_Stub(
6281     struct IRpcStubBuffer* This,
6282     struct IRpcChannelBuffer* pRpcChannelBuffer,
6283     PRPC_MESSAGE pRpcMessage,
6284     DWORD* pdwStubPhase);
6285
6286 #endif  /* __IQuickActivate_INTERFACE_DEFINED__ */
6287
6288 #ifdef __cplusplus
6289 }
6290 #endif
6291 #endif /* __WIDL_OCIDL_H */