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