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