1/*** Autogenerated by WIDL 1.6 from include/shldisp.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __shldisp_h__
16#define __shldisp_h__
17
18/* Forward declarations */
19
20#ifndef __IFolderViewOC_FWD_DEFINED__
21#define __IFolderViewOC_FWD_DEFINED__
22typedef interface IFolderViewOC IFolderViewOC;
23#endif
24
25#ifndef __DShellFolderViewEvents_FWD_DEFINED__
26#define __DShellFolderViewEvents_FWD_DEFINED__
27typedef interface DShellFolderViewEvents DShellFolderViewEvents;
28#endif
29
30#ifndef __ShellFolderViewOC_FWD_DEFINED__
31#define __ShellFolderViewOC_FWD_DEFINED__
32#ifdef __cplusplus
33typedef class ShellFolderViewOC ShellFolderViewOC;
34#else
35typedef struct ShellFolderViewOC ShellFolderViewOC;
36#endif /* defined __cplusplus */
37#endif /* defined __ShellFolderViewOC_FWD_DEFINED__ */
38
39#ifndef __DFConstraint_FWD_DEFINED__
40#define __DFConstraint_FWD_DEFINED__
41typedef interface DFConstraint DFConstraint;
42#endif
43
44#ifndef __Folder_FWD_DEFINED__
45#define __Folder_FWD_DEFINED__
46typedef interface Folder Folder;
47#endif
48
49#ifndef __Folder2_FWD_DEFINED__
50#define __Folder2_FWD_DEFINED__
51typedef interface Folder2 Folder2;
52#endif
53
54#ifndef __Folder3_FWD_DEFINED__
55#define __Folder3_FWD_DEFINED__
56typedef interface Folder3 Folder3;
57#endif
58
59#ifndef __FolderItem_FWD_DEFINED__
60#define __FolderItem_FWD_DEFINED__
61typedef interface FolderItem FolderItem;
62#endif
63
64#ifndef __FolderItem2_FWD_DEFINED__
65#define __FolderItem2_FWD_DEFINED__
66typedef interface FolderItem2 FolderItem2;
67#endif
68
69#ifndef __ShellFolderItem_FWD_DEFINED__
70#define __ShellFolderItem_FWD_DEFINED__
71#ifdef __cplusplus
72typedef class ShellFolderItem ShellFolderItem;
73#else
74typedef struct ShellFolderItem ShellFolderItem;
75#endif /* defined __cplusplus */
76#endif /* defined __ShellFolderItem_FWD_DEFINED__ */
77
78#ifndef __FolderItems_FWD_DEFINED__
79#define __FolderItems_FWD_DEFINED__
80typedef interface FolderItems FolderItems;
81#endif
82
83#ifndef __FolderItems2_FWD_DEFINED__
84#define __FolderItems2_FWD_DEFINED__
85typedef interface FolderItems2 FolderItems2;
86#endif
87
88#ifndef __FolderItems3_FWD_DEFINED__
89#define __FolderItems3_FWD_DEFINED__
90typedef interface FolderItems3 FolderItems3;
91#endif
92
93#ifndef __FolderItemVerb_FWD_DEFINED__
94#define __FolderItemVerb_FWD_DEFINED__
95typedef interface FolderItemVerb FolderItemVerb;
96#endif
97
98#ifndef __FolderItemVerbs_FWD_DEFINED__
99#define __FolderItemVerbs_FWD_DEFINED__
100typedef interface FolderItemVerbs FolderItemVerbs;
101#endif
102
103#ifndef __IShellLinkDual_FWD_DEFINED__
104#define __IShellLinkDual_FWD_DEFINED__
105typedef interface IShellLinkDual IShellLinkDual;
106#endif
107
108#ifndef __IShellLinkDual2_FWD_DEFINED__
109#define __IShellLinkDual2_FWD_DEFINED__
110typedef interface IShellLinkDual2 IShellLinkDual2;
111#endif
112
113#ifndef __ShellLinkObject_FWD_DEFINED__
114#define __ShellLinkObject_FWD_DEFINED__
115#ifdef __cplusplus
116typedef class ShellLinkObject ShellLinkObject;
117#else
118typedef struct ShellLinkObject ShellLinkObject;
119#endif /* defined __cplusplus */
120#endif /* defined __ShellLinkObject_FWD_DEFINED__ */
121
122#ifndef __IShellFolderViewDual_FWD_DEFINED__
123#define __IShellFolderViewDual_FWD_DEFINED__
124typedef interface IShellFolderViewDual IShellFolderViewDual;
125#endif
126
127#ifndef __IShellFolderViewDual2_FWD_DEFINED__
128#define __IShellFolderViewDual2_FWD_DEFINED__
129typedef interface IShellFolderViewDual2 IShellFolderViewDual2;
130#endif
131
132#ifndef __IShellFolderViewDual3_FWD_DEFINED__
133#define __IShellFolderViewDual3_FWD_DEFINED__
134typedef interface IShellFolderViewDual3 IShellFolderViewDual3;
135#endif
136
137#ifndef __ShellFolderView_FWD_DEFINED__
138#define __ShellFolderView_FWD_DEFINED__
139#ifdef __cplusplus
140typedef class ShellFolderView ShellFolderView;
141#else
142typedef struct ShellFolderView ShellFolderView;
143#endif /* defined __cplusplus */
144#endif /* defined __ShellFolderView_FWD_DEFINED__ */
145
146#ifndef __IShellDispatch_FWD_DEFINED__
147#define __IShellDispatch_FWD_DEFINED__
148typedef interface IShellDispatch IShellDispatch;
149#endif
150
151#ifndef __IShellDispatch2_FWD_DEFINED__
152#define __IShellDispatch2_FWD_DEFINED__
153typedef interface IShellDispatch2 IShellDispatch2;
154#endif
155
156#ifndef __IShellDispatch3_FWD_DEFINED__
157#define __IShellDispatch3_FWD_DEFINED__
158typedef interface IShellDispatch3 IShellDispatch3;
159#endif
160
161#ifndef __IShellDispatch4_FWD_DEFINED__
162#define __IShellDispatch4_FWD_DEFINED__
163typedef interface IShellDispatch4 IShellDispatch4;
164#endif
165
166#ifndef __IShellDispatch5_FWD_DEFINED__
167#define __IShellDispatch5_FWD_DEFINED__
168typedef interface IShellDispatch5 IShellDispatch5;
169#endif
170
171#ifndef __IShellDispatch6_FWD_DEFINED__
172#define __IShellDispatch6_FWD_DEFINED__
173typedef interface IShellDispatch6 IShellDispatch6;
174#endif
175
176#ifndef __Shell_FWD_DEFINED__
177#define __Shell_FWD_DEFINED__
178#ifdef __cplusplus
179typedef class Shell Shell;
180#else
181typedef struct Shell Shell;
182#endif /* defined __cplusplus */
183#endif /* defined __Shell_FWD_DEFINED__ */
184
185#ifndef __ShellDispatchInproc_FWD_DEFINED__
186#define __ShellDispatchInproc_FWD_DEFINED__
187#ifdef __cplusplus
188typedef class ShellDispatchInproc ShellDispatchInproc;
189#else
190typedef struct ShellDispatchInproc ShellDispatchInproc;
191#endif /* defined __cplusplus */
192#endif /* defined __ShellDispatchInproc_FWD_DEFINED__ */
193
194#ifndef __IFileSearchBand_FWD_DEFINED__
195#define __IFileSearchBand_FWD_DEFINED__
196typedef interface IFileSearchBand IFileSearchBand;
197#endif
198
199#ifndef __FileSearchBand_FWD_DEFINED__
200#define __FileSearchBand_FWD_DEFINED__
201#ifdef __cplusplus
202typedef class FileSearchBand FileSearchBand;
203#else
204typedef struct FileSearchBand FileSearchBand;
205#endif /* defined __cplusplus */
206#endif /* defined __FileSearchBand_FWD_DEFINED__ */
207
208#ifndef __IWebWizardHost_FWD_DEFINED__
209#define __IWebWizardHost_FWD_DEFINED__
210typedef interface IWebWizardHost IWebWizardHost;
211#endif
212
213#ifndef __INewWDEvents_FWD_DEFINED__
214#define __INewWDEvents_FWD_DEFINED__
215typedef interface INewWDEvents INewWDEvents;
216#endif
217
218#ifndef __IAutoComplete_FWD_DEFINED__
219#define __IAutoComplete_FWD_DEFINED__
220typedef interface IAutoComplete IAutoComplete;
221#endif
222
223#ifndef __IAutoComplete2_FWD_DEFINED__
224#define __IAutoComplete2_FWD_DEFINED__
225typedef interface IAutoComplete2 IAutoComplete2;
226#endif
227
228#ifndef __IEnumACString_FWD_DEFINED__
229#define __IEnumACString_FWD_DEFINED__
230typedef interface IEnumACString IEnumACString;
231#endif
232
233#ifndef __IDataObjectAsyncCapability_FWD_DEFINED__
234#define __IDataObjectAsyncCapability_FWD_DEFINED__
235typedef interface IDataObjectAsyncCapability IDataObjectAsyncCapability;
236#endif
237
238/* Headers for imported files */
239
240#include <ocidl.h>
241
242#ifdef __cplusplus
243extern "C" {
244#endif
245
246#include <winapifamily.h>
247
248#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
249#ifndef __DShellFolderViewEvents_FWD_DEFINED__
250#define __DShellFolderViewEvents_FWD_DEFINED__
251typedef interface DShellFolderViewEvents DShellFolderViewEvents;
252#endif
253
254#ifndef __IAutoComplete_FWD_DEFINED__
255#define __IAutoComplete_FWD_DEFINED__
256typedef interface IAutoComplete IAutoComplete;
257#endif
258
259#ifndef __FolderItem_FWD_DEFINED__
260#define __FolderItem_FWD_DEFINED__
261typedef interface FolderItem FolderItem;
262#endif
263
264#ifndef __FolderItems_FWD_DEFINED__
265#define __FolderItems_FWD_DEFINED__
266typedef interface FolderItems FolderItems;
267#endif
268
269#ifndef __FolderItemVerb_FWD_DEFINED__
270#define __FolderItemVerb_FWD_DEFINED__
271typedef interface FolderItemVerb FolderItemVerb;
272#endif
273
274#ifndef __FolderItemVerbs_FWD_DEFINED__
275#define __FolderItemVerbs_FWD_DEFINED__
276typedef interface FolderItemVerbs FolderItemVerbs;
277#endif
278
279
280DEFINE_GUID(LIBID_Shell32, 0x50a7e9b0, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
281
282/*****************************************************************************
283 * IFolderViewOC interface
284 */
285#ifndef __IFolderViewOC_INTERFACE_DEFINED__
286#define __IFolderViewOC_INTERFACE_DEFINED__
287
288DEFINE_GUID(IID_IFolderViewOC, 0x9ba05970, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
289#if defined(__cplusplus) && !defined(CINTERFACE)
290MIDL_INTERFACE("9ba05970-f6a8-11cf-a442-00a0c90a8f39")
291IFolderViewOC : public IDispatch
292{
293    virtual HRESULT STDMETHODCALLTYPE SetFolderView(
294        IDispatch *pdisp) = 0;
295
296};
297#ifdef __CRT_UUID_DECL
298__CRT_UUID_DECL(IFolderViewOC, 0x9ba05970, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39)
299#endif
300#else
301typedef struct IFolderViewOCVtbl {
302    BEGIN_INTERFACE
303
304    /*** IUnknown methods ***/
305    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
306        IFolderViewOC* This,
307        REFIID riid,
308        void **ppvObject);
309
310    ULONG (STDMETHODCALLTYPE *AddRef)(
311        IFolderViewOC* This);
312
313    ULONG (STDMETHODCALLTYPE *Release)(
314        IFolderViewOC* This);
315
316    /*** IDispatch methods ***/
317    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
318        IFolderViewOC* This,
319        UINT *pctinfo);
320
321    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
322        IFolderViewOC* This,
323        UINT iTInfo,
324        LCID lcid,
325        ITypeInfo **ppTInfo);
326
327    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
328        IFolderViewOC* This,
329        REFIID riid,
330        LPOLESTR *rgszNames,
331        UINT cNames,
332        LCID lcid,
333        DISPID *rgDispId);
334
335    HRESULT (STDMETHODCALLTYPE *Invoke)(
336        IFolderViewOC* This,
337        DISPID dispIdMember,
338        REFIID riid,
339        LCID lcid,
340        WORD wFlags,
341        DISPPARAMS *pDispParams,
342        VARIANT *pVarResult,
343        EXCEPINFO *pExcepInfo,
344        UINT *puArgErr);
345
346    /*** IFolderViewOC methods ***/
347    HRESULT (STDMETHODCALLTYPE *SetFolderView)(
348        IFolderViewOC* This,
349        IDispatch *pdisp);
350
351    END_INTERFACE
352} IFolderViewOCVtbl;
353interface IFolderViewOC {
354    CONST_VTBL IFolderViewOCVtbl* lpVtbl;
355};
356
357#ifdef COBJMACROS
358#ifndef WIDL_C_INLINE_WRAPPERS
359/*** IUnknown methods ***/
360#define IFolderViewOC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
361#define IFolderViewOC_AddRef(This) (This)->lpVtbl->AddRef(This)
362#define IFolderViewOC_Release(This) (This)->lpVtbl->Release(This)
363/*** IDispatch methods ***/
364#define IFolderViewOC_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
365#define IFolderViewOC_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
366#define IFolderViewOC_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
367#define IFolderViewOC_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
368/*** IFolderViewOC methods ***/
369#define IFolderViewOC_SetFolderView(This,pdisp) (This)->lpVtbl->SetFolderView(This,pdisp)
370#else
371/*** IUnknown methods ***/
372static FORCEINLINE HRESULT IFolderViewOC_QueryInterface(IFolderViewOC* This,REFIID riid,void **ppvObject) {
373    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
374}
375static FORCEINLINE ULONG IFolderViewOC_AddRef(IFolderViewOC* This) {
376    return This->lpVtbl->AddRef(This);
377}
378static FORCEINLINE ULONG IFolderViewOC_Release(IFolderViewOC* This) {
379    return This->lpVtbl->Release(This);
380}
381/*** IDispatch methods ***/
382static FORCEINLINE HRESULT IFolderViewOC_GetTypeInfoCount(IFolderViewOC* This,UINT *pctinfo) {
383    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
384}
385static FORCEINLINE HRESULT IFolderViewOC_GetTypeInfo(IFolderViewOC* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
386    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
387}
388static FORCEINLINE HRESULT IFolderViewOC_GetIDsOfNames(IFolderViewOC* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
389    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
390}
391static FORCEINLINE HRESULT IFolderViewOC_Invoke(IFolderViewOC* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
392    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
393}
394/*** IFolderViewOC methods ***/
395static FORCEINLINE HRESULT IFolderViewOC_SetFolderView(IFolderViewOC* This,IDispatch *pdisp) {
396    return This->lpVtbl->SetFolderView(This,pdisp);
397}
398#endif
399#endif
400
401#endif
402
403HRESULT STDMETHODCALLTYPE IFolderViewOC_SetFolderView_Proxy(
404    IFolderViewOC* This,
405    IDispatch *pdisp);
406void __RPC_STUB IFolderViewOC_SetFolderView_Stub(
407    IRpcStubBuffer* This,
408    IRpcChannelBuffer* pRpcChannelBuffer,
409    PRPC_MESSAGE pRpcMessage,
410    DWORD* pdwStubPhase);
411
412#endif  /* __IFolderViewOC_INTERFACE_DEFINED__ */
413
414/*****************************************************************************
415 * DShellFolderViewEvents dispinterface
416 */
417#ifndef __DShellFolderViewEvents_DISPINTERFACE_DEFINED__
418#define __DShellFolderViewEvents_DISPINTERFACE_DEFINED__
419
420DEFINE_GUID(DIID_DShellFolderViewEvents, 0x62112aa2, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d);
421#if defined(__cplusplus) && !defined(CINTERFACE)
422MIDL_INTERFACE("62112aa2-ebe4-11cf-a5fb-0020afe7292d")
423DShellFolderViewEvents : public IDispatch
424{
425};
426#ifdef __CRT_UUID_DECL
427__CRT_UUID_DECL(DShellFolderViewEvents, 0x62112aa2, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d)
428#endif
429#else
430typedef struct DShellFolderViewEventsVtbl {
431    BEGIN_INTERFACE
432
433    /*** IUnknown methods ***/
434    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
435        DShellFolderViewEvents* This,
436        REFIID riid,
437        void **ppvObject);
438
439    ULONG (STDMETHODCALLTYPE *AddRef)(
440        DShellFolderViewEvents* This);
441
442    ULONG (STDMETHODCALLTYPE *Release)(
443        DShellFolderViewEvents* This);
444
445    /*** IDispatch methods ***/
446    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
447        DShellFolderViewEvents* This,
448        UINT *pctinfo);
449
450    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
451        DShellFolderViewEvents* This,
452        UINT iTInfo,
453        LCID lcid,
454        ITypeInfo **ppTInfo);
455
456    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
457        DShellFolderViewEvents* This,
458        REFIID riid,
459        LPOLESTR *rgszNames,
460        UINT cNames,
461        LCID lcid,
462        DISPID *rgDispId);
463
464    HRESULT (STDMETHODCALLTYPE *Invoke)(
465        DShellFolderViewEvents* This,
466        DISPID dispIdMember,
467        REFIID riid,
468        LCID lcid,
469        WORD wFlags,
470        DISPPARAMS *pDispParams,
471        VARIANT *pVarResult,
472        EXCEPINFO *pExcepInfo,
473        UINT *puArgErr);
474
475    END_INTERFACE
476} DShellFolderViewEventsVtbl;
477interface DShellFolderViewEvents {
478    CONST_VTBL DShellFolderViewEventsVtbl* lpVtbl;
479};
480
481#ifdef COBJMACROS
482#ifndef WIDL_C_INLINE_WRAPPERS
483/*** IUnknown methods ***/
484#define DShellFolderViewEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
485#define DShellFolderViewEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
486#define DShellFolderViewEvents_Release(This) (This)->lpVtbl->Release(This)
487/*** IDispatch methods ***/
488#define DShellFolderViewEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
489#define DShellFolderViewEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
490#define DShellFolderViewEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
491#define DShellFolderViewEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
492#else
493/*** IUnknown methods ***/
494static FORCEINLINE HRESULT DShellFolderViewEvents_QueryInterface(DShellFolderViewEvents* This,REFIID riid,void **ppvObject) {
495    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
496}
497static FORCEINLINE ULONG DShellFolderViewEvents_AddRef(DShellFolderViewEvents* This) {
498    return This->lpVtbl->AddRef(This);
499}
500static FORCEINLINE ULONG DShellFolderViewEvents_Release(DShellFolderViewEvents* This) {
501    return This->lpVtbl->Release(This);
502}
503/*** IDispatch methods ***/
504static FORCEINLINE HRESULT DShellFolderViewEvents_GetTypeInfoCount(DShellFolderViewEvents* This,UINT *pctinfo) {
505    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
506}
507static FORCEINLINE HRESULT DShellFolderViewEvents_GetTypeInfo(DShellFolderViewEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
508    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
509}
510static FORCEINLINE HRESULT DShellFolderViewEvents_GetIDsOfNames(DShellFolderViewEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
511    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
512}
513static FORCEINLINE HRESULT DShellFolderViewEvents_Invoke(DShellFolderViewEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
514    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
515}
516#endif
517#endif
518
519#endif
520
521#endif  /* __DShellFolderViewEvents_DISPINTERFACE_DEFINED__ */
522
523/*****************************************************************************
524 * ShellFolderViewOC coclass
525 */
526
527DEFINE_GUID(CLSID_ShellFolderViewOC, 0x9ba05971, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
528
529#ifdef __cplusplus
530class DECLSPEC_UUID("9ba05971-f6a8-11cf-a442-00a0c90a8f39") ShellFolderViewOC;
531#ifdef __CRT_UUID_DECL
532__CRT_UUID_DECL(ShellFolderViewOC, 0x9ba05971, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39)
533#endif
534#endif
535
536/*****************************************************************************
537 * DFConstraint interface
538 */
539#ifndef __DFConstraint_INTERFACE_DEFINED__
540#define __DFConstraint_INTERFACE_DEFINED__
541
542DEFINE_GUID(IID_DFConstraint, 0x4a3df050, 0x23bd, 0x11d2, 0x93,0x9f, 0x00,0xa0,0xc9,0x1e,0xed,0xba);
543#if defined(__cplusplus) && !defined(CINTERFACE)
544MIDL_INTERFACE("4a3df050-23bd-11d2-939f-00a0c91eedba")
545DFConstraint : public IDispatch
546{
547    virtual HRESULT STDMETHODCALLTYPE get_Name(
548        BSTR *pbs) = 0;
549
550    virtual HRESULT STDMETHODCALLTYPE get_Value(
551        VARIANT *pv) = 0;
552
553};
554#ifdef __CRT_UUID_DECL
555__CRT_UUID_DECL(DFConstraint, 0x4a3df050, 0x23bd, 0x11d2, 0x93,0x9f, 0x00,0xa0,0xc9,0x1e,0xed,0xba)
556#endif
557#else
558typedef struct DFConstraintVtbl {
559    BEGIN_INTERFACE
560
561    /*** IUnknown methods ***/
562    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
563        DFConstraint* This,
564        REFIID riid,
565        void **ppvObject);
566
567    ULONG (STDMETHODCALLTYPE *AddRef)(
568        DFConstraint* This);
569
570    ULONG (STDMETHODCALLTYPE *Release)(
571        DFConstraint* This);
572
573    /*** IDispatch methods ***/
574    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
575        DFConstraint* This,
576        UINT *pctinfo);
577
578    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
579        DFConstraint* This,
580        UINT iTInfo,
581        LCID lcid,
582        ITypeInfo **ppTInfo);
583
584    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
585        DFConstraint* This,
586        REFIID riid,
587        LPOLESTR *rgszNames,
588        UINT cNames,
589        LCID lcid,
590        DISPID *rgDispId);
591
592    HRESULT (STDMETHODCALLTYPE *Invoke)(
593        DFConstraint* This,
594        DISPID dispIdMember,
595        REFIID riid,
596        LCID lcid,
597        WORD wFlags,
598        DISPPARAMS *pDispParams,
599        VARIANT *pVarResult,
600        EXCEPINFO *pExcepInfo,
601        UINT *puArgErr);
602
603    /*** DFConstraint methods ***/
604    HRESULT (STDMETHODCALLTYPE *get_Name)(
605        DFConstraint* This,
606        BSTR *pbs);
607
608    HRESULT (STDMETHODCALLTYPE *get_Value)(
609        DFConstraint* This,
610        VARIANT *pv);
611
612    END_INTERFACE
613} DFConstraintVtbl;
614interface DFConstraint {
615    CONST_VTBL DFConstraintVtbl* lpVtbl;
616};
617
618#ifdef COBJMACROS
619#ifndef WIDL_C_INLINE_WRAPPERS
620/*** IUnknown methods ***/
621#define DFConstraint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
622#define DFConstraint_AddRef(This) (This)->lpVtbl->AddRef(This)
623#define DFConstraint_Release(This) (This)->lpVtbl->Release(This)
624/*** IDispatch methods ***/
625#define DFConstraint_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
626#define DFConstraint_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
627#define DFConstraint_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
628#define DFConstraint_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
629/*** DFConstraint methods ***/
630#define DFConstraint_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
631#define DFConstraint_get_Value(This,pv) (This)->lpVtbl->get_Value(This,pv)
632#else
633/*** IUnknown methods ***/
634static FORCEINLINE HRESULT DFConstraint_QueryInterface(DFConstraint* This,REFIID riid,void **ppvObject) {
635    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
636}
637static FORCEINLINE ULONG DFConstraint_AddRef(DFConstraint* This) {
638    return This->lpVtbl->AddRef(This);
639}
640static FORCEINLINE ULONG DFConstraint_Release(DFConstraint* This) {
641    return This->lpVtbl->Release(This);
642}
643/*** IDispatch methods ***/
644static FORCEINLINE HRESULT DFConstraint_GetTypeInfoCount(DFConstraint* This,UINT *pctinfo) {
645    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
646}
647static FORCEINLINE HRESULT DFConstraint_GetTypeInfo(DFConstraint* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
648    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
649}
650static FORCEINLINE HRESULT DFConstraint_GetIDsOfNames(DFConstraint* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
651    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
652}
653static FORCEINLINE HRESULT DFConstraint_Invoke(DFConstraint* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
654    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
655}
656/*** DFConstraint methods ***/
657static FORCEINLINE HRESULT DFConstraint_get_Name(DFConstraint* This,BSTR *pbs) {
658    return This->lpVtbl->get_Name(This,pbs);
659}
660static FORCEINLINE HRESULT DFConstraint_get_Value(DFConstraint* This,VARIANT *pv) {
661    return This->lpVtbl->get_Value(This,pv);
662}
663#endif
664#endif
665
666#endif
667
668HRESULT STDMETHODCALLTYPE DFConstraint_get_Name_Proxy(
669    DFConstraint* This,
670    BSTR *pbs);
671void __RPC_STUB DFConstraint_get_Name_Stub(
672    IRpcStubBuffer* This,
673    IRpcChannelBuffer* pRpcChannelBuffer,
674    PRPC_MESSAGE pRpcMessage,
675    DWORD* pdwStubPhase);
676HRESULT STDMETHODCALLTYPE DFConstraint_get_Value_Proxy(
677    DFConstraint* This,
678    VARIANT *pv);
679void __RPC_STUB DFConstraint_get_Value_Stub(
680    IRpcStubBuffer* This,
681    IRpcChannelBuffer* pRpcChannelBuffer,
682    PRPC_MESSAGE pRpcMessage,
683    DWORD* pdwStubPhase);
684
685#endif  /* __DFConstraint_INTERFACE_DEFINED__ */
686
687/*****************************************************************************
688 * Folder interface
689 */
690#ifndef __Folder_INTERFACE_DEFINED__
691#define __Folder_INTERFACE_DEFINED__
692
693DEFINE_GUID(IID_Folder, 0xbbcbde60, 0xc3ff, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
694#if defined(__cplusplus) && !defined(CINTERFACE)
695MIDL_INTERFACE("bbcbde60-c3ff-11ce-8350-444553540000")
696Folder : public IDispatch
697{
698    virtual HRESULT STDMETHODCALLTYPE get_Title(
699        BSTR *pbs) = 0;
700
701    virtual HRESULT STDMETHODCALLTYPE get_Application(
702        IDispatch **ppid) = 0;
703
704    virtual HRESULT STDMETHODCALLTYPE get_Parent(
705        IDispatch **ppid) = 0;
706
707    virtual HRESULT STDMETHODCALLTYPE get_ParentFolder(
708        Folder **ppsf) = 0;
709
710    virtual HRESULT STDMETHODCALLTYPE Items(
711        FolderItems **ppid) = 0;
712
713    virtual HRESULT STDMETHODCALLTYPE ParseName(
714        BSTR bName,
715        FolderItem **ppid) = 0;
716
717    virtual HRESULT STDMETHODCALLTYPE NewFolder(
718        BSTR bName,
719        VARIANT vOptions) = 0;
720
721    virtual HRESULT STDMETHODCALLTYPE MoveHere(
722        VARIANT vItem,
723        VARIANT vOptions) = 0;
724
725    virtual HRESULT STDMETHODCALLTYPE CopyHere(
726        VARIANT vItem,
727        VARIANT vOptions) = 0;
728
729    virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
730        VARIANT vItem,
731        int iColumn,
732        BSTR *pbs) = 0;
733
734};
735#ifdef __CRT_UUID_DECL
736__CRT_UUID_DECL(Folder, 0xbbcbde60, 0xc3ff, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
737#endif
738#else
739typedef struct FolderVtbl {
740    BEGIN_INTERFACE
741
742    /*** IUnknown methods ***/
743    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
744        Folder* This,
745        REFIID riid,
746        void **ppvObject);
747
748    ULONG (STDMETHODCALLTYPE *AddRef)(
749        Folder* This);
750
751    ULONG (STDMETHODCALLTYPE *Release)(
752        Folder* This);
753
754    /*** IDispatch methods ***/
755    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
756        Folder* This,
757        UINT *pctinfo);
758
759    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
760        Folder* This,
761        UINT iTInfo,
762        LCID lcid,
763        ITypeInfo **ppTInfo);
764
765    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
766        Folder* This,
767        REFIID riid,
768        LPOLESTR *rgszNames,
769        UINT cNames,
770        LCID lcid,
771        DISPID *rgDispId);
772
773    HRESULT (STDMETHODCALLTYPE *Invoke)(
774        Folder* This,
775        DISPID dispIdMember,
776        REFIID riid,
777        LCID lcid,
778        WORD wFlags,
779        DISPPARAMS *pDispParams,
780        VARIANT *pVarResult,
781        EXCEPINFO *pExcepInfo,
782        UINT *puArgErr);
783
784    /*** Folder methods ***/
785    HRESULT (STDMETHODCALLTYPE *get_Title)(
786        Folder* This,
787        BSTR *pbs);
788
789    HRESULT (STDMETHODCALLTYPE *get_Application)(
790        Folder* This,
791        IDispatch **ppid);
792
793    HRESULT (STDMETHODCALLTYPE *get_Parent)(
794        Folder* This,
795        IDispatch **ppid);
796
797    HRESULT (STDMETHODCALLTYPE *get_ParentFolder)(
798        Folder* This,
799        Folder **ppsf);
800
801    HRESULT (STDMETHODCALLTYPE *Items)(
802        Folder* This,
803        FolderItems **ppid);
804
805    HRESULT (STDMETHODCALLTYPE *ParseName)(
806        Folder* This,
807        BSTR bName,
808        FolderItem **ppid);
809
810    HRESULT (STDMETHODCALLTYPE *NewFolder)(
811        Folder* This,
812        BSTR bName,
813        VARIANT vOptions);
814
815    HRESULT (STDMETHODCALLTYPE *MoveHere)(
816        Folder* This,
817        VARIANT vItem,
818        VARIANT vOptions);
819
820    HRESULT (STDMETHODCALLTYPE *CopyHere)(
821        Folder* This,
822        VARIANT vItem,
823        VARIANT vOptions);
824
825    HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
826        Folder* This,
827        VARIANT vItem,
828        int iColumn,
829        BSTR *pbs);
830
831    END_INTERFACE
832} FolderVtbl;
833interface Folder {
834    CONST_VTBL FolderVtbl* lpVtbl;
835};
836
837#ifdef COBJMACROS
838#ifndef WIDL_C_INLINE_WRAPPERS
839/*** IUnknown methods ***/
840#define Folder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
841#define Folder_AddRef(This) (This)->lpVtbl->AddRef(This)
842#define Folder_Release(This) (This)->lpVtbl->Release(This)
843/*** IDispatch methods ***/
844#define Folder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
845#define Folder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
846#define Folder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
847#define Folder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
848/*** Folder methods ***/
849#define Folder_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
850#define Folder_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
851#define Folder_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
852#define Folder_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
853#define Folder_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
854#define Folder_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
855#define Folder_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
856#define Folder_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
857#define Folder_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
858#define Folder_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
859#else
860/*** IUnknown methods ***/
861static FORCEINLINE HRESULT Folder_QueryInterface(Folder* This,REFIID riid,void **ppvObject) {
862    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
863}
864static FORCEINLINE ULONG Folder_AddRef(Folder* This) {
865    return This->lpVtbl->AddRef(This);
866}
867static FORCEINLINE ULONG Folder_Release(Folder* This) {
868    return This->lpVtbl->Release(This);
869}
870/*** IDispatch methods ***/
871static FORCEINLINE HRESULT Folder_GetTypeInfoCount(Folder* This,UINT *pctinfo) {
872    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
873}
874static FORCEINLINE HRESULT Folder_GetTypeInfo(Folder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
875    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
876}
877static FORCEINLINE HRESULT Folder_GetIDsOfNames(Folder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
878    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
879}
880static FORCEINLINE HRESULT Folder_Invoke(Folder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
881    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
882}
883/*** Folder methods ***/
884static FORCEINLINE HRESULT Folder_get_Title(Folder* This,BSTR *pbs) {
885    return This->lpVtbl->get_Title(This,pbs);
886}
887static FORCEINLINE HRESULT Folder_get_Application(Folder* This,IDispatch **ppid) {
888    return This->lpVtbl->get_Application(This,ppid);
889}
890static FORCEINLINE HRESULT Folder_get_Parent(Folder* This,IDispatch **ppid) {
891    return This->lpVtbl->get_Parent(This,ppid);
892}
893static FORCEINLINE HRESULT Folder_get_ParentFolder(Folder* This,Folder **ppsf) {
894    return This->lpVtbl->get_ParentFolder(This,ppsf);
895}
896static FORCEINLINE HRESULT Folder_Items(Folder* This,FolderItems **ppid) {
897    return This->lpVtbl->Items(This,ppid);
898}
899static FORCEINLINE HRESULT Folder_ParseName(Folder* This,BSTR bName,FolderItem **ppid) {
900    return This->lpVtbl->ParseName(This,bName,ppid);
901}
902static FORCEINLINE HRESULT Folder_NewFolder(Folder* This,BSTR bName,VARIANT vOptions) {
903    return This->lpVtbl->NewFolder(This,bName,vOptions);
904}
905static FORCEINLINE HRESULT Folder_MoveHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
906    return This->lpVtbl->MoveHere(This,vItem,vOptions);
907}
908static FORCEINLINE HRESULT Folder_CopyHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
909    return This->lpVtbl->CopyHere(This,vItem,vOptions);
910}
911static FORCEINLINE HRESULT Folder_GetDetailsOf(Folder* This,VARIANT vItem,int iColumn,BSTR *pbs) {
912    return This->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs);
913}
914#endif
915#endif
916
917#endif
918
919HRESULT STDMETHODCALLTYPE Folder_get_Title_Proxy(
920    Folder* This,
921    BSTR *pbs);
922void __RPC_STUB Folder_get_Title_Stub(
923    IRpcStubBuffer* This,
924    IRpcChannelBuffer* pRpcChannelBuffer,
925    PRPC_MESSAGE pRpcMessage,
926    DWORD* pdwStubPhase);
927HRESULT STDMETHODCALLTYPE Folder_get_Application_Proxy(
928    Folder* This,
929    IDispatch **ppid);
930void __RPC_STUB Folder_get_Application_Stub(
931    IRpcStubBuffer* This,
932    IRpcChannelBuffer* pRpcChannelBuffer,
933    PRPC_MESSAGE pRpcMessage,
934    DWORD* pdwStubPhase);
935HRESULT STDMETHODCALLTYPE Folder_get_Parent_Proxy(
936    Folder* This,
937    IDispatch **ppid);
938void __RPC_STUB Folder_get_Parent_Stub(
939    IRpcStubBuffer* This,
940    IRpcChannelBuffer* pRpcChannelBuffer,
941    PRPC_MESSAGE pRpcMessage,
942    DWORD* pdwStubPhase);
943HRESULT STDMETHODCALLTYPE Folder_get_ParentFolder_Proxy(
944    Folder* This,
945    Folder **ppsf);
946void __RPC_STUB Folder_get_ParentFolder_Stub(
947    IRpcStubBuffer* This,
948    IRpcChannelBuffer* pRpcChannelBuffer,
949    PRPC_MESSAGE pRpcMessage,
950    DWORD* pdwStubPhase);
951HRESULT STDMETHODCALLTYPE Folder_Items_Proxy(
952    Folder* This,
953    FolderItems **ppid);
954void __RPC_STUB Folder_Items_Stub(
955    IRpcStubBuffer* This,
956    IRpcChannelBuffer* pRpcChannelBuffer,
957    PRPC_MESSAGE pRpcMessage,
958    DWORD* pdwStubPhase);
959HRESULT STDMETHODCALLTYPE Folder_ParseName_Proxy(
960    Folder* This,
961    BSTR bName,
962    FolderItem **ppid);
963void __RPC_STUB Folder_ParseName_Stub(
964    IRpcStubBuffer* This,
965    IRpcChannelBuffer* pRpcChannelBuffer,
966    PRPC_MESSAGE pRpcMessage,
967    DWORD* pdwStubPhase);
968HRESULT STDMETHODCALLTYPE Folder_NewFolder_Proxy(
969    Folder* This,
970    BSTR bName,
971    VARIANT vOptions);
972void __RPC_STUB Folder_NewFolder_Stub(
973    IRpcStubBuffer* This,
974    IRpcChannelBuffer* pRpcChannelBuffer,
975    PRPC_MESSAGE pRpcMessage,
976    DWORD* pdwStubPhase);
977HRESULT STDMETHODCALLTYPE Folder_MoveHere_Proxy(
978    Folder* This,
979    VARIANT vItem,
980    VARIANT vOptions);
981void __RPC_STUB Folder_MoveHere_Stub(
982    IRpcStubBuffer* This,
983    IRpcChannelBuffer* pRpcChannelBuffer,
984    PRPC_MESSAGE pRpcMessage,
985    DWORD* pdwStubPhase);
986HRESULT STDMETHODCALLTYPE Folder_CopyHere_Proxy(
987    Folder* This,
988    VARIANT vItem,
989    VARIANT vOptions);
990void __RPC_STUB Folder_CopyHere_Stub(
991    IRpcStubBuffer* This,
992    IRpcChannelBuffer* pRpcChannelBuffer,
993    PRPC_MESSAGE pRpcMessage,
994    DWORD* pdwStubPhase);
995HRESULT STDMETHODCALLTYPE Folder_GetDetailsOf_Proxy(
996    Folder* This,
997    VARIANT vItem,
998    int iColumn,
999    BSTR *pbs);
1000void __RPC_STUB Folder_GetDetailsOf_Stub(
1001    IRpcStubBuffer* This,
1002    IRpcChannelBuffer* pRpcChannelBuffer,
1003    PRPC_MESSAGE pRpcMessage,
1004    DWORD* pdwStubPhase);
1005
1006#endif  /* __Folder_INTERFACE_DEFINED__ */
1007
1008/*****************************************************************************
1009 * Folder2 interface
1010 */
1011#ifndef __Folder2_INTERFACE_DEFINED__
1012#define __Folder2_INTERFACE_DEFINED__
1013
1014DEFINE_GUID(IID_Folder2, 0xf0d2d8ef, 0x3890, 0x11d2, 0xbf,0x8b, 0x00,0xc0,0x4f,0xb9,0x36,0x61);
1015#if defined(__cplusplus) && !defined(CINTERFACE)
1016MIDL_INTERFACE("f0d2d8ef-3890-11d2-bf8b-00c04fb93661")
1017Folder2 : public Folder
1018{
1019    virtual HRESULT STDMETHODCALLTYPE get_Self(
1020        FolderItem **ppfi) = 0;
1021
1022    virtual HRESULT STDMETHODCALLTYPE get_OfflineStatus(
1023        LONG *pul) = 0;
1024
1025    virtual HRESULT STDMETHODCALLTYPE Synchronize(
1026        ) = 0;
1027
1028    virtual HRESULT STDMETHODCALLTYPE get_HaveToShowWebViewBarricade(
1029        VARIANT_BOOL *pbHaveToShowWebViewBarricade) = 0;
1030
1031    virtual HRESULT STDMETHODCALLTYPE DismissedWebViewBarricade(
1032        ) = 0;
1033
1034};
1035#ifdef __CRT_UUID_DECL
1036__CRT_UUID_DECL(Folder2, 0xf0d2d8ef, 0x3890, 0x11d2, 0xbf,0x8b, 0x00,0xc0,0x4f,0xb9,0x36,0x61)
1037#endif
1038#else
1039typedef struct Folder2Vtbl {
1040    BEGIN_INTERFACE
1041
1042    /*** IUnknown methods ***/
1043    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1044        Folder2* This,
1045        REFIID riid,
1046        void **ppvObject);
1047
1048    ULONG (STDMETHODCALLTYPE *AddRef)(
1049        Folder2* This);
1050
1051    ULONG (STDMETHODCALLTYPE *Release)(
1052        Folder2* This);
1053
1054    /*** IDispatch methods ***/
1055    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1056        Folder2* This,
1057        UINT *pctinfo);
1058
1059    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1060        Folder2* This,
1061        UINT iTInfo,
1062        LCID lcid,
1063        ITypeInfo **ppTInfo);
1064
1065    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1066        Folder2* This,
1067        REFIID riid,
1068        LPOLESTR *rgszNames,
1069        UINT cNames,
1070        LCID lcid,
1071        DISPID *rgDispId);
1072
1073    HRESULT (STDMETHODCALLTYPE *Invoke)(
1074        Folder2* This,
1075        DISPID dispIdMember,
1076        REFIID riid,
1077        LCID lcid,
1078        WORD wFlags,
1079        DISPPARAMS *pDispParams,
1080        VARIANT *pVarResult,
1081        EXCEPINFO *pExcepInfo,
1082        UINT *puArgErr);
1083
1084    /*** Folder methods ***/
1085    HRESULT (STDMETHODCALLTYPE *get_Title)(
1086        Folder2* This,
1087        BSTR *pbs);
1088
1089    HRESULT (STDMETHODCALLTYPE *get_Application)(
1090        Folder2* This,
1091        IDispatch **ppid);
1092
1093    HRESULT (STDMETHODCALLTYPE *get_Parent)(
1094        Folder2* This,
1095        IDispatch **ppid);
1096
1097    HRESULT (STDMETHODCALLTYPE *get_ParentFolder)(
1098        Folder2* This,
1099        Folder **ppsf);
1100
1101    HRESULT (STDMETHODCALLTYPE *Items)(
1102        Folder2* This,
1103        FolderItems **ppid);
1104
1105    HRESULT (STDMETHODCALLTYPE *ParseName)(
1106        Folder2* This,
1107        BSTR bName,
1108        FolderItem **ppid);
1109
1110    HRESULT (STDMETHODCALLTYPE *NewFolder)(
1111        Folder2* This,
1112        BSTR bName,
1113        VARIANT vOptions);
1114
1115    HRESULT (STDMETHODCALLTYPE *MoveHere)(
1116        Folder2* This,
1117        VARIANT vItem,
1118        VARIANT vOptions);
1119
1120    HRESULT (STDMETHODCALLTYPE *CopyHere)(
1121        Folder2* This,
1122        VARIANT vItem,
1123        VARIANT vOptions);
1124
1125    HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1126        Folder2* This,
1127        VARIANT vItem,
1128        int iColumn,
1129        BSTR *pbs);
1130
1131    /*** Folder2 methods ***/
1132    HRESULT (STDMETHODCALLTYPE *get_Self)(
1133        Folder2* This,
1134        FolderItem **ppfi);
1135
1136    HRESULT (STDMETHODCALLTYPE *get_OfflineStatus)(
1137        Folder2* This,
1138        LONG *pul);
1139
1140    HRESULT (STDMETHODCALLTYPE *Synchronize)(
1141        Folder2* This);
1142
1143    HRESULT (STDMETHODCALLTYPE *get_HaveToShowWebViewBarricade)(
1144        Folder2* This,
1145        VARIANT_BOOL *pbHaveToShowWebViewBarricade);
1146
1147    HRESULT (STDMETHODCALLTYPE *DismissedWebViewBarricade)(
1148        Folder2* This);
1149
1150    END_INTERFACE
1151} Folder2Vtbl;
1152interface Folder2 {
1153    CONST_VTBL Folder2Vtbl* lpVtbl;
1154};
1155
1156#ifdef COBJMACROS
1157#ifndef WIDL_C_INLINE_WRAPPERS
1158/*** IUnknown methods ***/
1159#define Folder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1160#define Folder2_AddRef(This) (This)->lpVtbl->AddRef(This)
1161#define Folder2_Release(This) (This)->lpVtbl->Release(This)
1162/*** IDispatch methods ***/
1163#define Folder2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1164#define Folder2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1165#define Folder2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1166#define Folder2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1167/*** Folder methods ***/
1168#define Folder2_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
1169#define Folder2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
1170#define Folder2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
1171#define Folder2_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
1172#define Folder2_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
1173#define Folder2_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
1174#define Folder2_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
1175#define Folder2_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
1176#define Folder2_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
1177#define Folder2_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
1178/*** Folder2 methods ***/
1179#define Folder2_get_Self(This,ppfi) (This)->lpVtbl->get_Self(This,ppfi)
1180#define Folder2_get_OfflineStatus(This,pul) (This)->lpVtbl->get_OfflineStatus(This,pul)
1181#define Folder2_Synchronize(This) (This)->lpVtbl->Synchronize(This)
1182#define Folder2_get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade) (This)->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
1183#define Folder2_DismissedWebViewBarricade(This) (This)->lpVtbl->DismissedWebViewBarricade(This)
1184#else
1185/*** IUnknown methods ***/
1186static FORCEINLINE HRESULT Folder2_QueryInterface(Folder2* This,REFIID riid,void **ppvObject) {
1187    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1188}
1189static FORCEINLINE ULONG Folder2_AddRef(Folder2* This) {
1190    return This->lpVtbl->AddRef(This);
1191}
1192static FORCEINLINE ULONG Folder2_Release(Folder2* This) {
1193    return This->lpVtbl->Release(This);
1194}
1195/*** IDispatch methods ***/
1196static FORCEINLINE HRESULT Folder2_GetTypeInfoCount(Folder2* This,UINT *pctinfo) {
1197    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1198}
1199static FORCEINLINE HRESULT Folder2_GetTypeInfo(Folder2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1200    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1201}
1202static FORCEINLINE HRESULT Folder2_GetIDsOfNames(Folder2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1203    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1204}
1205static FORCEINLINE HRESULT Folder2_Invoke(Folder2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1206    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1207}
1208/*** Folder methods ***/
1209static FORCEINLINE HRESULT Folder2_get_Title(Folder2* This,BSTR *pbs) {
1210    return This->lpVtbl->get_Title(This,pbs);
1211}
1212static FORCEINLINE HRESULT Folder2_get_Application(Folder2* This,IDispatch **ppid) {
1213    return This->lpVtbl->get_Application(This,ppid);
1214}
1215static FORCEINLINE HRESULT Folder2_get_Parent(Folder2* This,IDispatch **ppid) {
1216    return This->lpVtbl->get_Parent(This,ppid);
1217}
1218static FORCEINLINE HRESULT Folder2_get_ParentFolder(Folder2* This,Folder **ppsf) {
1219    return This->lpVtbl->get_ParentFolder(This,ppsf);
1220}
1221static FORCEINLINE HRESULT Folder2_Items(Folder2* This,FolderItems **ppid) {
1222    return This->lpVtbl->Items(This,ppid);
1223}
1224static FORCEINLINE HRESULT Folder2_ParseName(Folder2* This,BSTR bName,FolderItem **ppid) {
1225    return This->lpVtbl->ParseName(This,bName,ppid);
1226}
1227static FORCEINLINE HRESULT Folder2_NewFolder(Folder2* This,BSTR bName,VARIANT vOptions) {
1228    return This->lpVtbl->NewFolder(This,bName,vOptions);
1229}
1230static FORCEINLINE HRESULT Folder2_MoveHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
1231    return This->lpVtbl->MoveHere(This,vItem,vOptions);
1232}
1233static FORCEINLINE HRESULT Folder2_CopyHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
1234    return This->lpVtbl->CopyHere(This,vItem,vOptions);
1235}
1236static FORCEINLINE HRESULT Folder2_GetDetailsOf(Folder2* This,VARIANT vItem,int iColumn,BSTR *pbs) {
1237    return This->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs);
1238}
1239/*** Folder2 methods ***/
1240static FORCEINLINE HRESULT Folder2_get_Self(Folder2* This,FolderItem **ppfi) {
1241    return This->lpVtbl->get_Self(This,ppfi);
1242}
1243static FORCEINLINE HRESULT Folder2_get_OfflineStatus(Folder2* This,LONG *pul) {
1244    return This->lpVtbl->get_OfflineStatus(This,pul);
1245}
1246static FORCEINLINE HRESULT Folder2_Synchronize(Folder2* This) {
1247    return This->lpVtbl->Synchronize(This);
1248}
1249static FORCEINLINE HRESULT Folder2_get_HaveToShowWebViewBarricade(Folder2* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
1250    return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
1251}
1252static FORCEINLINE HRESULT Folder2_DismissedWebViewBarricade(Folder2* This) {
1253    return This->lpVtbl->DismissedWebViewBarricade(This);
1254}
1255#endif
1256#endif
1257
1258#endif
1259
1260HRESULT STDMETHODCALLTYPE Folder2_get_Self_Proxy(
1261    Folder2* This,
1262    FolderItem **ppfi);
1263void __RPC_STUB Folder2_get_Self_Stub(
1264    IRpcStubBuffer* This,
1265    IRpcChannelBuffer* pRpcChannelBuffer,
1266    PRPC_MESSAGE pRpcMessage,
1267    DWORD* pdwStubPhase);
1268HRESULT STDMETHODCALLTYPE Folder2_get_OfflineStatus_Proxy(
1269    Folder2* This,
1270    LONG *pul);
1271void __RPC_STUB Folder2_get_OfflineStatus_Stub(
1272    IRpcStubBuffer* This,
1273    IRpcChannelBuffer* pRpcChannelBuffer,
1274    PRPC_MESSAGE pRpcMessage,
1275    DWORD* pdwStubPhase);
1276HRESULT STDMETHODCALLTYPE Folder2_Synchronize_Proxy(
1277    Folder2* This);
1278void __RPC_STUB Folder2_Synchronize_Stub(
1279    IRpcStubBuffer* This,
1280    IRpcChannelBuffer* pRpcChannelBuffer,
1281    PRPC_MESSAGE pRpcMessage,
1282    DWORD* pdwStubPhase);
1283HRESULT STDMETHODCALLTYPE Folder2_get_HaveToShowWebViewBarricade_Proxy(
1284    Folder2* This,
1285    VARIANT_BOOL *pbHaveToShowWebViewBarricade);
1286void __RPC_STUB Folder2_get_HaveToShowWebViewBarricade_Stub(
1287    IRpcStubBuffer* This,
1288    IRpcChannelBuffer* pRpcChannelBuffer,
1289    PRPC_MESSAGE pRpcMessage,
1290    DWORD* pdwStubPhase);
1291HRESULT STDMETHODCALLTYPE Folder2_DismissedWebViewBarricade_Proxy(
1292    Folder2* This);
1293void __RPC_STUB Folder2_DismissedWebViewBarricade_Stub(
1294    IRpcStubBuffer* This,
1295    IRpcChannelBuffer* pRpcChannelBuffer,
1296    PRPC_MESSAGE pRpcMessage,
1297    DWORD* pdwStubPhase);
1298
1299#endif  /* __Folder2_INTERFACE_DEFINED__ */
1300
1301typedef enum OfflineFolderStatus {
1302    OFS_INACTIVE = -1,
1303    OFS_ONLINE = 0,
1304    OFS_OFFLINE = 1,
1305    OFS_SERVERBACK = 2,
1306    OFS_DIRTYCACHE = 3
1307} OfflineFolderStatus;
1308/*****************************************************************************
1309 * Folder3 interface
1310 */
1311#ifndef __Folder3_INTERFACE_DEFINED__
1312#define __Folder3_INTERFACE_DEFINED__
1313
1314DEFINE_GUID(IID_Folder3, 0xa7ae5f64, 0xc4d7, 0x4d7f, 0x93,0x07, 0x4d,0x24,0xee,0x54,0xb8,0x41);
1315#if defined(__cplusplus) && !defined(CINTERFACE)
1316MIDL_INTERFACE("a7ae5f64-c4d7-4d7f-9307-4d24ee54b841")
1317Folder3 : public Folder2
1318{
1319    virtual HRESULT STDMETHODCALLTYPE get_ShowWebViewBarricade(
1320        VARIANT_BOOL *pbShowWebViewBarricade) = 0;
1321
1322    virtual HRESULT STDMETHODCALLTYPE put_ShowWebViewBarricade(
1323        VARIANT_BOOL bShowWebViewBarricade) = 0;
1324
1325};
1326#ifdef __CRT_UUID_DECL
1327__CRT_UUID_DECL(Folder3, 0xa7ae5f64, 0xc4d7, 0x4d7f, 0x93,0x07, 0x4d,0x24,0xee,0x54,0xb8,0x41)
1328#endif
1329#else
1330typedef struct Folder3Vtbl {
1331    BEGIN_INTERFACE
1332
1333    /*** IUnknown methods ***/
1334    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1335        Folder3* This,
1336        REFIID riid,
1337        void **ppvObject);
1338
1339    ULONG (STDMETHODCALLTYPE *AddRef)(
1340        Folder3* This);
1341
1342    ULONG (STDMETHODCALLTYPE *Release)(
1343        Folder3* This);
1344
1345    /*** IDispatch methods ***/
1346    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1347        Folder3* This,
1348        UINT *pctinfo);
1349
1350    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1351        Folder3* This,
1352        UINT iTInfo,
1353        LCID lcid,
1354        ITypeInfo **ppTInfo);
1355
1356    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1357        Folder3* This,
1358        REFIID riid,
1359        LPOLESTR *rgszNames,
1360        UINT cNames,
1361        LCID lcid,
1362        DISPID *rgDispId);
1363
1364    HRESULT (STDMETHODCALLTYPE *Invoke)(
1365        Folder3* This,
1366        DISPID dispIdMember,
1367        REFIID riid,
1368        LCID lcid,
1369        WORD wFlags,
1370        DISPPARAMS *pDispParams,
1371        VARIANT *pVarResult,
1372        EXCEPINFO *pExcepInfo,
1373        UINT *puArgErr);
1374
1375    /*** Folder methods ***/
1376    HRESULT (STDMETHODCALLTYPE *get_Title)(
1377        Folder3* This,
1378        BSTR *pbs);
1379
1380    HRESULT (STDMETHODCALLTYPE *get_Application)(
1381        Folder3* This,
1382        IDispatch **ppid);
1383
1384    HRESULT (STDMETHODCALLTYPE *get_Parent)(
1385        Folder3* This,
1386        IDispatch **ppid);
1387
1388    HRESULT (STDMETHODCALLTYPE *get_ParentFolder)(
1389        Folder3* This,
1390        Folder **ppsf);
1391
1392    HRESULT (STDMETHODCALLTYPE *Items)(
1393        Folder3* This,
1394        FolderItems **ppid);
1395
1396    HRESULT (STDMETHODCALLTYPE *ParseName)(
1397        Folder3* This,
1398        BSTR bName,
1399        FolderItem **ppid);
1400
1401    HRESULT (STDMETHODCALLTYPE *NewFolder)(
1402        Folder3* This,
1403        BSTR bName,
1404        VARIANT vOptions);
1405
1406    HRESULT (STDMETHODCALLTYPE *MoveHere)(
1407        Folder3* This,
1408        VARIANT vItem,
1409        VARIANT vOptions);
1410
1411    HRESULT (STDMETHODCALLTYPE *CopyHere)(
1412        Folder3* This,
1413        VARIANT vItem,
1414        VARIANT vOptions);
1415
1416    HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
1417        Folder3* This,
1418        VARIANT vItem,
1419        int iColumn,
1420        BSTR *pbs);
1421
1422    /*** Folder2 methods ***/
1423    HRESULT (STDMETHODCALLTYPE *get_Self)(
1424        Folder3* This,
1425        FolderItem **ppfi);
1426
1427    HRESULT (STDMETHODCALLTYPE *get_OfflineStatus)(
1428        Folder3* This,
1429        LONG *pul);
1430
1431    HRESULT (STDMETHODCALLTYPE *Synchronize)(
1432        Folder3* This);
1433
1434    HRESULT (STDMETHODCALLTYPE *get_HaveToShowWebViewBarricade)(
1435        Folder3* This,
1436        VARIANT_BOOL *pbHaveToShowWebViewBarricade);
1437
1438    HRESULT (STDMETHODCALLTYPE *DismissedWebViewBarricade)(
1439        Folder3* This);
1440
1441    /*** Folder3 methods ***/
1442    HRESULT (STDMETHODCALLTYPE *get_ShowWebViewBarricade)(
1443        Folder3* This,
1444        VARIANT_BOOL *pbShowWebViewBarricade);
1445
1446    HRESULT (STDMETHODCALLTYPE *put_ShowWebViewBarricade)(
1447        Folder3* This,
1448        VARIANT_BOOL bShowWebViewBarricade);
1449
1450    END_INTERFACE
1451} Folder3Vtbl;
1452interface Folder3 {
1453    CONST_VTBL Folder3Vtbl* lpVtbl;
1454};
1455
1456#ifdef COBJMACROS
1457#ifndef WIDL_C_INLINE_WRAPPERS
1458/*** IUnknown methods ***/
1459#define Folder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1460#define Folder3_AddRef(This) (This)->lpVtbl->AddRef(This)
1461#define Folder3_Release(This) (This)->lpVtbl->Release(This)
1462/*** IDispatch methods ***/
1463#define Folder3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1464#define Folder3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1465#define Folder3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1466#define Folder3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1467/*** Folder methods ***/
1468#define Folder3_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
1469#define Folder3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
1470#define Folder3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
1471#define Folder3_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
1472#define Folder3_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
1473#define Folder3_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
1474#define Folder3_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
1475#define Folder3_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
1476#define Folder3_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
1477#define Folder3_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
1478/*** Folder2 methods ***/
1479#define Folder3_get_Self(This,ppfi) (This)->lpVtbl->get_Self(This,ppfi)
1480#define Folder3_get_OfflineStatus(This,pul) (This)->lpVtbl->get_OfflineStatus(This,pul)
1481#define Folder3_Synchronize(This) (This)->lpVtbl->Synchronize(This)
1482#define Folder3_get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade) (This)->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
1483#define Folder3_DismissedWebViewBarricade(This) (This)->lpVtbl->DismissedWebViewBarricade(This)
1484/*** Folder3 methods ***/
1485#define Folder3_get_ShowWebViewBarricade(This,pbShowWebViewBarricade) (This)->lpVtbl->get_ShowWebViewBarricade(This,pbShowWebViewBarricade)
1486#define Folder3_put_ShowWebViewBarricade(This,bShowWebViewBarricade) (This)->lpVtbl->put_ShowWebViewBarricade(This,bShowWebViewBarricade)
1487#else
1488/*** IUnknown methods ***/
1489static FORCEINLINE HRESULT Folder3_QueryInterface(Folder3* This,REFIID riid,void **ppvObject) {
1490    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1491}
1492static FORCEINLINE ULONG Folder3_AddRef(Folder3* This) {
1493    return This->lpVtbl->AddRef(This);
1494}
1495static FORCEINLINE ULONG Folder3_Release(Folder3* This) {
1496    return This->lpVtbl->Release(This);
1497}
1498/*** IDispatch methods ***/
1499static FORCEINLINE HRESULT Folder3_GetTypeInfoCount(Folder3* This,UINT *pctinfo) {
1500    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1501}
1502static FORCEINLINE HRESULT Folder3_GetTypeInfo(Folder3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1503    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1504}
1505static FORCEINLINE HRESULT Folder3_GetIDsOfNames(Folder3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1506    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1507}
1508static FORCEINLINE HRESULT Folder3_Invoke(Folder3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1509    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1510}
1511/*** Folder methods ***/
1512static FORCEINLINE HRESULT Folder3_get_Title(Folder3* This,BSTR *pbs) {
1513    return This->lpVtbl->get_Title(This,pbs);
1514}
1515static FORCEINLINE HRESULT Folder3_get_Application(Folder3* This,IDispatch **ppid) {
1516    return This->lpVtbl->get_Application(This,ppid);
1517}
1518static FORCEINLINE HRESULT Folder3_get_Parent(Folder3* This,IDispatch **ppid) {
1519    return This->lpVtbl->get_Parent(This,ppid);
1520}
1521static FORCEINLINE HRESULT Folder3_get_ParentFolder(Folder3* This,Folder **ppsf) {
1522    return This->lpVtbl->get_ParentFolder(This,ppsf);
1523}
1524static FORCEINLINE HRESULT Folder3_Items(Folder3* This,FolderItems **ppid) {
1525    return This->lpVtbl->Items(This,ppid);
1526}
1527static FORCEINLINE HRESULT Folder3_ParseName(Folder3* This,BSTR bName,FolderItem **ppid) {
1528    return This->lpVtbl->ParseName(This,bName,ppid);
1529}
1530static FORCEINLINE HRESULT Folder3_NewFolder(Folder3* This,BSTR bName,VARIANT vOptions) {
1531    return This->lpVtbl->NewFolder(This,bName,vOptions);
1532}
1533static FORCEINLINE HRESULT Folder3_MoveHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
1534    return This->lpVtbl->MoveHere(This,vItem,vOptions);
1535}
1536static FORCEINLINE HRESULT Folder3_CopyHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
1537    return This->lpVtbl->CopyHere(This,vItem,vOptions);
1538}
1539static FORCEINLINE HRESULT Folder3_GetDetailsOf(Folder3* This,VARIANT vItem,int iColumn,BSTR *pbs) {
1540    return This->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs);
1541}
1542/*** Folder2 methods ***/
1543static FORCEINLINE HRESULT Folder3_get_Self(Folder3* This,FolderItem **ppfi) {
1544    return This->lpVtbl->get_Self(This,ppfi);
1545}
1546static FORCEINLINE HRESULT Folder3_get_OfflineStatus(Folder3* This,LONG *pul) {
1547    return This->lpVtbl->get_OfflineStatus(This,pul);
1548}
1549static FORCEINLINE HRESULT Folder3_Synchronize(Folder3* This) {
1550    return This->lpVtbl->Synchronize(This);
1551}
1552static FORCEINLINE HRESULT Folder3_get_HaveToShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
1553    return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
1554}
1555static FORCEINLINE HRESULT Folder3_DismissedWebViewBarricade(Folder3* This) {
1556    return This->lpVtbl->DismissedWebViewBarricade(This);
1557}
1558/*** Folder3 methods ***/
1559static FORCEINLINE HRESULT Folder3_get_ShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbShowWebViewBarricade) {
1560    return This->lpVtbl->get_ShowWebViewBarricade(This,pbShowWebViewBarricade);
1561}
1562static FORCEINLINE HRESULT Folder3_put_ShowWebViewBarricade(Folder3* This,VARIANT_BOOL bShowWebViewBarricade) {
1563    return This->lpVtbl->put_ShowWebViewBarricade(This,bShowWebViewBarricade);
1564}
1565#endif
1566#endif
1567
1568#endif
1569
1570HRESULT STDMETHODCALLTYPE Folder3_get_ShowWebViewBarricade_Proxy(
1571    Folder3* This,
1572    VARIANT_BOOL *pbShowWebViewBarricade);
1573void __RPC_STUB Folder3_get_ShowWebViewBarricade_Stub(
1574    IRpcStubBuffer* This,
1575    IRpcChannelBuffer* pRpcChannelBuffer,
1576    PRPC_MESSAGE pRpcMessage,
1577    DWORD* pdwStubPhase);
1578HRESULT STDMETHODCALLTYPE Folder3_put_ShowWebViewBarricade_Proxy(
1579    Folder3* This,
1580    VARIANT_BOOL bShowWebViewBarricade);
1581void __RPC_STUB Folder3_put_ShowWebViewBarricade_Stub(
1582    IRpcStubBuffer* This,
1583    IRpcChannelBuffer* pRpcChannelBuffer,
1584    PRPC_MESSAGE pRpcMessage,
1585    DWORD* pdwStubPhase);
1586
1587#endif  /* __Folder3_INTERFACE_DEFINED__ */
1588
1589/*****************************************************************************
1590 * FolderItem interface
1591 */
1592#ifndef __FolderItem_INTERFACE_DEFINED__
1593#define __FolderItem_INTERFACE_DEFINED__
1594
1595typedef FolderItem *LPFOLDERITEM;
1596DEFINE_GUID(IID_FolderItem, 0xfac32c80, 0xcbe4, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
1597#if defined(__cplusplus) && !defined(CINTERFACE)
1598MIDL_INTERFACE("fac32c80-cbe4-11ce-8350-444553540000")
1599FolderItem : public IDispatch
1600{
1601    virtual HRESULT STDMETHODCALLTYPE get_Application(
1602        IDispatch **ppid) = 0;
1603
1604    virtual HRESULT STDMETHODCALLTYPE get_Parent(
1605        IDispatch **ppid) = 0;
1606
1607    virtual HRESULT STDMETHODCALLTYPE get_Name(
1608        BSTR *pbs) = 0;
1609
1610    virtual HRESULT STDMETHODCALLTYPE put_Name(
1611        BSTR bs) = 0;
1612
1613    virtual HRESULT STDMETHODCALLTYPE get_Path(
1614        BSTR *pbs) = 0;
1615
1616    virtual HRESULT STDMETHODCALLTYPE get_GetLink(
1617        IDispatch **ppid) = 0;
1618
1619    virtual HRESULT STDMETHODCALLTYPE get_GetFolder(
1620        IDispatch **ppid) = 0;
1621
1622    virtual HRESULT STDMETHODCALLTYPE get_IsLink(
1623        VARIANT_BOOL *pb) = 0;
1624
1625    virtual HRESULT STDMETHODCALLTYPE get_IsFolder(
1626        VARIANT_BOOL *pb) = 0;
1627
1628    virtual HRESULT STDMETHODCALLTYPE get_IsFileSystem(
1629        VARIANT_BOOL *pb) = 0;
1630
1631    virtual HRESULT STDMETHODCALLTYPE get_IsBrowsable(
1632        VARIANT_BOOL *pb) = 0;
1633
1634    virtual HRESULT STDMETHODCALLTYPE get_ModifyDate(
1635        DATE *pdt) = 0;
1636
1637    virtual HRESULT STDMETHODCALLTYPE put_ModifyDate(
1638        DATE dt) = 0;
1639
1640    virtual HRESULT STDMETHODCALLTYPE get_Size(
1641        LONG *pul) = 0;
1642
1643    virtual HRESULT STDMETHODCALLTYPE get_Type(
1644        BSTR *pbs) = 0;
1645
1646    virtual HRESULT STDMETHODCALLTYPE Verbs(
1647        FolderItemVerbs **ppfic) = 0;
1648
1649    virtual HRESULT STDMETHODCALLTYPE InvokeVerb(
1650        VARIANT vVerb) = 0;
1651
1652};
1653#ifdef __CRT_UUID_DECL
1654__CRT_UUID_DECL(FolderItem, 0xfac32c80, 0xcbe4, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
1655#endif
1656#else
1657typedef struct FolderItemVtbl {
1658    BEGIN_INTERFACE
1659
1660    /*** IUnknown methods ***/
1661    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1662        FolderItem* This,
1663        REFIID riid,
1664        void **ppvObject);
1665
1666    ULONG (STDMETHODCALLTYPE *AddRef)(
1667        FolderItem* This);
1668
1669    ULONG (STDMETHODCALLTYPE *Release)(
1670        FolderItem* This);
1671
1672    /*** IDispatch methods ***/
1673    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
1674        FolderItem* This,
1675        UINT *pctinfo);
1676
1677    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
1678        FolderItem* This,
1679        UINT iTInfo,
1680        LCID lcid,
1681        ITypeInfo **ppTInfo);
1682
1683    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
1684        FolderItem* This,
1685        REFIID riid,
1686        LPOLESTR *rgszNames,
1687        UINT cNames,
1688        LCID lcid,
1689        DISPID *rgDispId);
1690
1691    HRESULT (STDMETHODCALLTYPE *Invoke)(
1692        FolderItem* This,
1693        DISPID dispIdMember,
1694        REFIID riid,
1695        LCID lcid,
1696        WORD wFlags,
1697        DISPPARAMS *pDispParams,
1698        VARIANT *pVarResult,
1699        EXCEPINFO *pExcepInfo,
1700        UINT *puArgErr);
1701
1702    /*** FolderItem methods ***/
1703    HRESULT (STDMETHODCALLTYPE *get_Application)(
1704        FolderItem* This,
1705        IDispatch **ppid);
1706
1707    HRESULT (STDMETHODCALLTYPE *get_Parent)(
1708        FolderItem* This,
1709        IDispatch **ppid);
1710
1711    HRESULT (STDMETHODCALLTYPE *get_Name)(
1712        FolderItem* This,
1713        BSTR *pbs);
1714
1715    HRESULT (STDMETHODCALLTYPE *put_Name)(
1716        FolderItem* This,
1717        BSTR bs);
1718
1719    HRESULT (STDMETHODCALLTYPE *get_Path)(
1720        FolderItem* This,
1721        BSTR *pbs);
1722
1723    HRESULT (STDMETHODCALLTYPE *get_GetLink)(
1724        FolderItem* This,
1725        IDispatch **ppid);
1726
1727    HRESULT (STDMETHODCALLTYPE *get_GetFolder)(
1728        FolderItem* This,
1729        IDispatch **ppid);
1730
1731    HRESULT (STDMETHODCALLTYPE *get_IsLink)(
1732        FolderItem* This,
1733        VARIANT_BOOL *pb);
1734
1735    HRESULT (STDMETHODCALLTYPE *get_IsFolder)(
1736        FolderItem* This,
1737        VARIANT_BOOL *pb);
1738
1739    HRESULT (STDMETHODCALLTYPE *get_IsFileSystem)(
1740        FolderItem* This,
1741        VARIANT_BOOL *pb);
1742
1743    HRESULT (STDMETHODCALLTYPE *get_IsBrowsable)(
1744        FolderItem* This,
1745        VARIANT_BOOL *pb);
1746
1747    HRESULT (STDMETHODCALLTYPE *get_ModifyDate)(
1748        FolderItem* This,
1749        DATE *pdt);
1750
1751    HRESULT (STDMETHODCALLTYPE *put_ModifyDate)(
1752        FolderItem* This,
1753        DATE dt);
1754
1755    HRESULT (STDMETHODCALLTYPE *get_Size)(
1756        FolderItem* This,
1757        LONG *pul);
1758
1759    HRESULT (STDMETHODCALLTYPE *get_Type)(
1760        FolderItem* This,
1761        BSTR *pbs);
1762
1763    HRESULT (STDMETHODCALLTYPE *Verbs)(
1764        FolderItem* This,
1765        FolderItemVerbs **ppfic);
1766
1767    HRESULT (STDMETHODCALLTYPE *InvokeVerb)(
1768        FolderItem* This,
1769        VARIANT vVerb);
1770
1771    END_INTERFACE
1772} FolderItemVtbl;
1773interface FolderItem {
1774    CONST_VTBL FolderItemVtbl* lpVtbl;
1775};
1776
1777#ifdef COBJMACROS
1778#ifndef WIDL_C_INLINE_WRAPPERS
1779/*** IUnknown methods ***/
1780#define FolderItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1781#define FolderItem_AddRef(This) (This)->lpVtbl->AddRef(This)
1782#define FolderItem_Release(This) (This)->lpVtbl->Release(This)
1783/*** IDispatch methods ***/
1784#define FolderItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1785#define FolderItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1786#define FolderItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1787#define FolderItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1788/*** FolderItem methods ***/
1789#define FolderItem_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
1790#define FolderItem_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
1791#define FolderItem_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
1792#define FolderItem_put_Name(This,bs) (This)->lpVtbl->put_Name(This,bs)
1793#define FolderItem_get_Path(This,pbs) (This)->lpVtbl->get_Path(This,pbs)
1794#define FolderItem_get_GetLink(This,ppid) (This)->lpVtbl->get_GetLink(This,ppid)
1795#define FolderItem_get_GetFolder(This,ppid) (This)->lpVtbl->get_GetFolder(This,ppid)
1796#define FolderItem_get_IsLink(This,pb) (This)->lpVtbl->get_IsLink(This,pb)
1797#define FolderItem_get_IsFolder(This,pb) (This)->lpVtbl->get_IsFolder(This,pb)
1798#define FolderItem_get_IsFileSystem(This,pb) (This)->lpVtbl->get_IsFileSystem(This,pb)
1799#define FolderItem_get_IsBrowsable(This,pb) (This)->lpVtbl->get_IsBrowsable(This,pb)
1800#define FolderItem_get_ModifyDate(This,pdt) (This)->lpVtbl->get_ModifyDate(This,pdt)
1801#define FolderItem_put_ModifyDate(This,dt) (This)->lpVtbl->put_ModifyDate(This,dt)
1802#define FolderItem_get_Size(This,pul) (This)->lpVtbl->get_Size(This,pul)
1803#define FolderItem_get_Type(This,pbs) (This)->lpVtbl->get_Type(This,pbs)
1804#define FolderItem_Verbs(This,ppfic) (This)->lpVtbl->Verbs(This,ppfic)
1805#define FolderItem_InvokeVerb(This,vVerb) (This)->lpVtbl->InvokeVerb(This,vVerb)
1806#else
1807/*** IUnknown methods ***/
1808static FORCEINLINE HRESULT FolderItem_QueryInterface(FolderItem* This,REFIID riid,void **ppvObject) {
1809    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1810}
1811static FORCEINLINE ULONG FolderItem_AddRef(FolderItem* This) {
1812    return This->lpVtbl->AddRef(This);
1813}
1814static FORCEINLINE ULONG FolderItem_Release(FolderItem* This) {
1815    return This->lpVtbl->Release(This);
1816}
1817/*** IDispatch methods ***/
1818static FORCEINLINE HRESULT FolderItem_GetTypeInfoCount(FolderItem* This,UINT *pctinfo) {
1819    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1820}
1821static FORCEINLINE HRESULT FolderItem_GetTypeInfo(FolderItem* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1822    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1823}
1824static FORCEINLINE HRESULT FolderItem_GetIDsOfNames(FolderItem* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
1825    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
1826}
1827static FORCEINLINE HRESULT FolderItem_Invoke(FolderItem* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
1828    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
1829}
1830/*** FolderItem methods ***/
1831static FORCEINLINE HRESULT FolderItem_get_Application(FolderItem* This,IDispatch **ppid) {
1832    return This->lpVtbl->get_Application(This,ppid);
1833}
1834static FORCEINLINE HRESULT FolderItem_get_Parent(FolderItem* This,IDispatch **ppid) {
1835    return This->lpVtbl->get_Parent(This,ppid);
1836}
1837static FORCEINLINE HRESULT FolderItem_get_Name(FolderItem* This,BSTR *pbs) {
1838    return This->lpVtbl->get_Name(This,pbs);
1839}
1840static FORCEINLINE HRESULT FolderItem_put_Name(FolderItem* This,BSTR bs) {
1841    return This->lpVtbl->put_Name(This,bs);
1842}
1843static FORCEINLINE HRESULT FolderItem_get_Path(FolderItem* This,BSTR *pbs) {
1844    return This->lpVtbl->get_Path(This,pbs);
1845}
1846static FORCEINLINE HRESULT FolderItem_get_GetLink(FolderItem* This,IDispatch **ppid) {
1847    return This->lpVtbl->get_GetLink(This,ppid);
1848}
1849static FORCEINLINE HRESULT FolderItem_get_GetFolder(FolderItem* This,IDispatch **ppid) {
1850    return This->lpVtbl->get_GetFolder(This,ppid);
1851}
1852static FORCEINLINE HRESULT FolderItem_get_IsLink(FolderItem* This,VARIANT_BOOL *pb) {
1853    return This->lpVtbl->get_IsLink(This,pb);
1854}
1855static FORCEINLINE HRESULT FolderItem_get_IsFolder(FolderItem* This,VARIANT_BOOL *pb) {
1856    return This->lpVtbl->get_IsFolder(This,pb);
1857}
1858static FORCEINLINE HRESULT FolderItem_get_IsFileSystem(FolderItem* This,VARIANT_BOOL *pb) {
1859    return This->lpVtbl->get_IsFileSystem(This,pb);
1860}
1861static FORCEINLINE HRESULT FolderItem_get_IsBrowsable(FolderItem* This,VARIANT_BOOL *pb) {
1862    return This->lpVtbl->get_IsBrowsable(This,pb);
1863}
1864static FORCEINLINE HRESULT FolderItem_get_ModifyDate(FolderItem* This,DATE *pdt) {
1865    return This->lpVtbl->get_ModifyDate(This,pdt);
1866}
1867static FORCEINLINE HRESULT FolderItem_put_ModifyDate(FolderItem* This,DATE dt) {
1868    return This->lpVtbl->put_ModifyDate(This,dt);
1869}
1870static FORCEINLINE HRESULT FolderItem_get_Size(FolderItem* This,LONG *pul) {
1871    return This->lpVtbl->get_Size(This,pul);
1872}
1873static FORCEINLINE HRESULT FolderItem_get_Type(FolderItem* This,BSTR *pbs) {
1874    return This->lpVtbl->get_Type(This,pbs);
1875}
1876static FORCEINLINE HRESULT FolderItem_Verbs(FolderItem* This,FolderItemVerbs **ppfic) {
1877    return This->lpVtbl->Verbs(This,ppfic);
1878}
1879static FORCEINLINE HRESULT FolderItem_InvokeVerb(FolderItem* This,VARIANT vVerb) {
1880    return This->lpVtbl->InvokeVerb(This,vVerb);
1881}
1882#endif
1883#endif
1884
1885#endif
1886
1887HRESULT STDMETHODCALLTYPE FolderItem_get_Application_Proxy(
1888    FolderItem* This,
1889    IDispatch **ppid);
1890void __RPC_STUB FolderItem_get_Application_Stub(
1891    IRpcStubBuffer* This,
1892    IRpcChannelBuffer* pRpcChannelBuffer,
1893    PRPC_MESSAGE pRpcMessage,
1894    DWORD* pdwStubPhase);
1895HRESULT STDMETHODCALLTYPE FolderItem_get_Parent_Proxy(
1896    FolderItem* This,
1897    IDispatch **ppid);
1898void __RPC_STUB FolderItem_get_Parent_Stub(
1899    IRpcStubBuffer* This,
1900    IRpcChannelBuffer* pRpcChannelBuffer,
1901    PRPC_MESSAGE pRpcMessage,
1902    DWORD* pdwStubPhase);
1903HRESULT STDMETHODCALLTYPE FolderItem_get_Name_Proxy(
1904    FolderItem* This,
1905    BSTR *pbs);
1906void __RPC_STUB FolderItem_get_Name_Stub(
1907    IRpcStubBuffer* This,
1908    IRpcChannelBuffer* pRpcChannelBuffer,
1909    PRPC_MESSAGE pRpcMessage,
1910    DWORD* pdwStubPhase);
1911HRESULT STDMETHODCALLTYPE FolderItem_put_Name_Proxy(
1912    FolderItem* This,
1913    BSTR bs);
1914void __RPC_STUB FolderItem_put_Name_Stub(
1915    IRpcStubBuffer* This,
1916    IRpcChannelBuffer* pRpcChannelBuffer,
1917    PRPC_MESSAGE pRpcMessage,
1918    DWORD* pdwStubPhase);
1919HRESULT STDMETHODCALLTYPE FolderItem_get_Path_Proxy(
1920    FolderItem* This,
1921    BSTR *pbs);
1922void __RPC_STUB FolderItem_get_Path_Stub(
1923    IRpcStubBuffer* This,
1924    IRpcChannelBuffer* pRpcChannelBuffer,
1925    PRPC_MESSAGE pRpcMessage,
1926    DWORD* pdwStubPhase);
1927HRESULT STDMETHODCALLTYPE FolderItem_get_GetLink_Proxy(
1928    FolderItem* This,
1929    IDispatch **ppid);
1930void __RPC_STUB FolderItem_get_GetLink_Stub(
1931    IRpcStubBuffer* This,
1932    IRpcChannelBuffer* pRpcChannelBuffer,
1933    PRPC_MESSAGE pRpcMessage,
1934    DWORD* pdwStubPhase);
1935HRESULT STDMETHODCALLTYPE FolderItem_get_GetFolder_Proxy(
1936    FolderItem* This,
1937    IDispatch **ppid);
1938void __RPC_STUB FolderItem_get_GetFolder_Stub(
1939    IRpcStubBuffer* This,
1940    IRpcChannelBuffer* pRpcChannelBuffer,
1941    PRPC_MESSAGE pRpcMessage,
1942    DWORD* pdwStubPhase);
1943HRESULT STDMETHODCALLTYPE FolderItem_get_IsLink_Proxy(
1944    FolderItem* This,
1945    VARIANT_BOOL *pb);
1946void __RPC_STUB FolderItem_get_IsLink_Stub(
1947    IRpcStubBuffer* This,
1948    IRpcChannelBuffer* pRpcChannelBuffer,
1949    PRPC_MESSAGE pRpcMessage,
1950    DWORD* pdwStubPhase);
1951HRESULT STDMETHODCALLTYPE FolderItem_get_IsFolder_Proxy(
1952    FolderItem* This,
1953    VARIANT_BOOL *pb);
1954void __RPC_STUB FolderItem_get_IsFolder_Stub(
1955    IRpcStubBuffer* This,
1956    IRpcChannelBuffer* pRpcChannelBuffer,
1957    PRPC_MESSAGE pRpcMessage,
1958    DWORD* pdwStubPhase);
1959HRESULT STDMETHODCALLTYPE FolderItem_get_IsFileSystem_Proxy(
1960    FolderItem* This,
1961    VARIANT_BOOL *pb);
1962void __RPC_STUB FolderItem_get_IsFileSystem_Stub(
1963    IRpcStubBuffer* This,
1964    IRpcChannelBuffer* pRpcChannelBuffer,
1965    PRPC_MESSAGE pRpcMessage,
1966    DWORD* pdwStubPhase);
1967HRESULT STDMETHODCALLTYPE FolderItem_get_IsBrowsable_Proxy(
1968    FolderItem* This,
1969    VARIANT_BOOL *pb);
1970void __RPC_STUB FolderItem_get_IsBrowsable_Stub(
1971    IRpcStubBuffer* This,
1972    IRpcChannelBuffer* pRpcChannelBuffer,
1973    PRPC_MESSAGE pRpcMessage,
1974    DWORD* pdwStubPhase);
1975HRESULT STDMETHODCALLTYPE FolderItem_get_ModifyDate_Proxy(
1976    FolderItem* This,
1977    DATE *pdt);
1978void __RPC_STUB FolderItem_get_ModifyDate_Stub(
1979    IRpcStubBuffer* This,
1980    IRpcChannelBuffer* pRpcChannelBuffer,
1981    PRPC_MESSAGE pRpcMessage,
1982    DWORD* pdwStubPhase);
1983HRESULT STDMETHODCALLTYPE FolderItem_put_ModifyDate_Proxy(
1984    FolderItem* This,
1985    DATE dt);
1986void __RPC_STUB FolderItem_put_ModifyDate_Stub(
1987    IRpcStubBuffer* This,
1988    IRpcChannelBuffer* pRpcChannelBuffer,
1989    PRPC_MESSAGE pRpcMessage,
1990    DWORD* pdwStubPhase);
1991HRESULT STDMETHODCALLTYPE FolderItem_get_Size_Proxy(
1992    FolderItem* This,
1993    LONG *pul);
1994void __RPC_STUB FolderItem_get_Size_Stub(
1995    IRpcStubBuffer* This,
1996    IRpcChannelBuffer* pRpcChannelBuffer,
1997    PRPC_MESSAGE pRpcMessage,
1998    DWORD* pdwStubPhase);
1999HRESULT STDMETHODCALLTYPE FolderItem_get_Type_Proxy(
2000    FolderItem* This,
2001    BSTR *pbs);
2002void __RPC_STUB FolderItem_get_Type_Stub(
2003    IRpcStubBuffer* This,
2004    IRpcChannelBuffer* pRpcChannelBuffer,
2005    PRPC_MESSAGE pRpcMessage,
2006    DWORD* pdwStubPhase);
2007HRESULT STDMETHODCALLTYPE FolderItem_Verbs_Proxy(
2008    FolderItem* This,
2009    FolderItemVerbs **ppfic);
2010void __RPC_STUB FolderItem_Verbs_Stub(
2011    IRpcStubBuffer* This,
2012    IRpcChannelBuffer* pRpcChannelBuffer,
2013    PRPC_MESSAGE pRpcMessage,
2014    DWORD* pdwStubPhase);
2015HRESULT STDMETHODCALLTYPE FolderItem_InvokeVerb_Proxy(
2016    FolderItem* This,
2017    VARIANT vVerb);
2018void __RPC_STUB FolderItem_InvokeVerb_Stub(
2019    IRpcStubBuffer* This,
2020    IRpcChannelBuffer* pRpcChannelBuffer,
2021    PRPC_MESSAGE pRpcMessage,
2022    DWORD* pdwStubPhase);
2023
2024#endif  /* __FolderItem_INTERFACE_DEFINED__ */
2025
2026/*****************************************************************************
2027 * FolderItem2 interface
2028 */
2029#ifndef __FolderItem2_INTERFACE_DEFINED__
2030#define __FolderItem2_INTERFACE_DEFINED__
2031
2032DEFINE_GUID(IID_FolderItem2, 0xedc817aa, 0x92b8, 0x11d1, 0xb0,0x75, 0x00,0xc0,0x4f,0xc3,0x3a,0xa5);
2033#if defined(__cplusplus) && !defined(CINTERFACE)
2034MIDL_INTERFACE("edc817aa-92b8-11d1-b075-00c04fc33aa5")
2035FolderItem2 : public FolderItem
2036{
2037    virtual HRESULT STDMETHODCALLTYPE InvokeVerbEx(
2038        VARIANT vVerb,
2039        VARIANT vArgs) = 0;
2040
2041    virtual HRESULT STDMETHODCALLTYPE ExtendedProperty(
2042        BSTR bstrPropName,
2043        VARIANT *pvRet) = 0;
2044
2045};
2046#ifdef __CRT_UUID_DECL
2047__CRT_UUID_DECL(FolderItem2, 0xedc817aa, 0x92b8, 0x11d1, 0xb0,0x75, 0x00,0xc0,0x4f,0xc3,0x3a,0xa5)
2048#endif
2049#else
2050typedef struct FolderItem2Vtbl {
2051    BEGIN_INTERFACE
2052
2053    /*** IUnknown methods ***/
2054    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2055        FolderItem2* This,
2056        REFIID riid,
2057        void **ppvObject);
2058
2059    ULONG (STDMETHODCALLTYPE *AddRef)(
2060        FolderItem2* This);
2061
2062    ULONG (STDMETHODCALLTYPE *Release)(
2063        FolderItem2* This);
2064
2065    /*** IDispatch methods ***/
2066    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2067        FolderItem2* This,
2068        UINT *pctinfo);
2069
2070    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2071        FolderItem2* This,
2072        UINT iTInfo,
2073        LCID lcid,
2074        ITypeInfo **ppTInfo);
2075
2076    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2077        FolderItem2* This,
2078        REFIID riid,
2079        LPOLESTR *rgszNames,
2080        UINT cNames,
2081        LCID lcid,
2082        DISPID *rgDispId);
2083
2084    HRESULT (STDMETHODCALLTYPE *Invoke)(
2085        FolderItem2* This,
2086        DISPID dispIdMember,
2087        REFIID riid,
2088        LCID lcid,
2089        WORD wFlags,
2090        DISPPARAMS *pDispParams,
2091        VARIANT *pVarResult,
2092        EXCEPINFO *pExcepInfo,
2093        UINT *puArgErr);
2094
2095    /*** FolderItem methods ***/
2096    HRESULT (STDMETHODCALLTYPE *get_Application)(
2097        FolderItem2* This,
2098        IDispatch **ppid);
2099
2100    HRESULT (STDMETHODCALLTYPE *get_Parent)(
2101        FolderItem2* This,
2102        IDispatch **ppid);
2103
2104    HRESULT (STDMETHODCALLTYPE *get_Name)(
2105        FolderItem2* This,
2106        BSTR *pbs);
2107
2108    HRESULT (STDMETHODCALLTYPE *put_Name)(
2109        FolderItem2* This,
2110        BSTR bs);
2111
2112    HRESULT (STDMETHODCALLTYPE *get_Path)(
2113        FolderItem2* This,
2114        BSTR *pbs);
2115
2116    HRESULT (STDMETHODCALLTYPE *get_GetLink)(
2117        FolderItem2* This,
2118        IDispatch **ppid);
2119
2120    HRESULT (STDMETHODCALLTYPE *get_GetFolder)(
2121        FolderItem2* This,
2122        IDispatch **ppid);
2123
2124    HRESULT (STDMETHODCALLTYPE *get_IsLink)(
2125        FolderItem2* This,
2126        VARIANT_BOOL *pb);
2127
2128    HRESULT (STDMETHODCALLTYPE *get_IsFolder)(
2129        FolderItem2* This,
2130        VARIANT_BOOL *pb);
2131
2132    HRESULT (STDMETHODCALLTYPE *get_IsFileSystem)(
2133        FolderItem2* This,
2134        VARIANT_BOOL *pb);
2135
2136    HRESULT (STDMETHODCALLTYPE *get_IsBrowsable)(
2137        FolderItem2* This,
2138        VARIANT_BOOL *pb);
2139
2140    HRESULT (STDMETHODCALLTYPE *get_ModifyDate)(
2141        FolderItem2* This,
2142        DATE *pdt);
2143
2144    HRESULT (STDMETHODCALLTYPE *put_ModifyDate)(
2145        FolderItem2* This,
2146        DATE dt);
2147
2148    HRESULT (STDMETHODCALLTYPE *get_Size)(
2149        FolderItem2* This,
2150        LONG *pul);
2151
2152    HRESULT (STDMETHODCALLTYPE *get_Type)(
2153        FolderItem2* This,
2154        BSTR *pbs);
2155
2156    HRESULT (STDMETHODCALLTYPE *Verbs)(
2157        FolderItem2* This,
2158        FolderItemVerbs **ppfic);
2159
2160    HRESULT (STDMETHODCALLTYPE *InvokeVerb)(
2161        FolderItem2* This,
2162        VARIANT vVerb);
2163
2164    /*** FolderItem2 methods ***/
2165    HRESULT (STDMETHODCALLTYPE *InvokeVerbEx)(
2166        FolderItem2* This,
2167        VARIANT vVerb,
2168        VARIANT vArgs);
2169
2170    HRESULT (STDMETHODCALLTYPE *ExtendedProperty)(
2171        FolderItem2* This,
2172        BSTR bstrPropName,
2173        VARIANT *pvRet);
2174
2175    END_INTERFACE
2176} FolderItem2Vtbl;
2177interface FolderItem2 {
2178    CONST_VTBL FolderItem2Vtbl* lpVtbl;
2179};
2180
2181#ifdef COBJMACROS
2182#ifndef WIDL_C_INLINE_WRAPPERS
2183/*** IUnknown methods ***/
2184#define FolderItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2185#define FolderItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
2186#define FolderItem2_Release(This) (This)->lpVtbl->Release(This)
2187/*** IDispatch methods ***/
2188#define FolderItem2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2189#define FolderItem2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2190#define FolderItem2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2191#define FolderItem2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2192/*** FolderItem methods ***/
2193#define FolderItem2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
2194#define FolderItem2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
2195#define FolderItem2_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
2196#define FolderItem2_put_Name(This,bs) (This)->lpVtbl->put_Name(This,bs)
2197#define FolderItem2_get_Path(This,pbs) (This)->lpVtbl->get_Path(This,pbs)
2198#define FolderItem2_get_GetLink(This,ppid) (This)->lpVtbl->get_GetLink(This,ppid)
2199#define FolderItem2_get_GetFolder(This,ppid) (This)->lpVtbl->get_GetFolder(This,ppid)
2200#define FolderItem2_get_IsLink(This,pb) (This)->lpVtbl->get_IsLink(This,pb)
2201#define FolderItem2_get_IsFolder(This,pb) (This)->lpVtbl->get_IsFolder(This,pb)
2202#define FolderItem2_get_IsFileSystem(This,pb) (This)->lpVtbl->get_IsFileSystem(This,pb)
2203#define FolderItem2_get_IsBrowsable(This,pb) (This)->lpVtbl->get_IsBrowsable(This,pb)
2204#define FolderItem2_get_ModifyDate(This,pdt) (This)->lpVtbl->get_ModifyDate(This,pdt)
2205#define FolderItem2_put_ModifyDate(This,dt) (This)->lpVtbl->put_ModifyDate(This,dt)
2206#define FolderItem2_get_Size(This,pul) (This)->lpVtbl->get_Size(This,pul)
2207#define FolderItem2_get_Type(This,pbs) (This)->lpVtbl->get_Type(This,pbs)
2208#define FolderItem2_Verbs(This,ppfic) (This)->lpVtbl->Verbs(This,ppfic)
2209#define FolderItem2_InvokeVerb(This,vVerb) (This)->lpVtbl->InvokeVerb(This,vVerb)
2210/*** FolderItem2 methods ***/
2211#define FolderItem2_InvokeVerbEx(This,vVerb,vArgs) (This)->lpVtbl->InvokeVerbEx(This,vVerb,vArgs)
2212#define FolderItem2_ExtendedProperty(This,bstrPropName,pvRet) (This)->lpVtbl->ExtendedProperty(This,bstrPropName,pvRet)
2213#else
2214/*** IUnknown methods ***/
2215static FORCEINLINE HRESULT FolderItem2_QueryInterface(FolderItem2* This,REFIID riid,void **ppvObject) {
2216    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2217}
2218static FORCEINLINE ULONG FolderItem2_AddRef(FolderItem2* This) {
2219    return This->lpVtbl->AddRef(This);
2220}
2221static FORCEINLINE ULONG FolderItem2_Release(FolderItem2* This) {
2222    return This->lpVtbl->Release(This);
2223}
2224/*** IDispatch methods ***/
2225static FORCEINLINE HRESULT FolderItem2_GetTypeInfoCount(FolderItem2* This,UINT *pctinfo) {
2226    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2227}
2228static FORCEINLINE HRESULT FolderItem2_GetTypeInfo(FolderItem2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2229    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2230}
2231static FORCEINLINE HRESULT FolderItem2_GetIDsOfNames(FolderItem2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2232    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2233}
2234static FORCEINLINE HRESULT FolderItem2_Invoke(FolderItem2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2235    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2236}
2237/*** FolderItem methods ***/
2238static FORCEINLINE HRESULT FolderItem2_get_Application(FolderItem2* This,IDispatch **ppid) {
2239    return This->lpVtbl->get_Application(This,ppid);
2240}
2241static FORCEINLINE HRESULT FolderItem2_get_Parent(FolderItem2* This,IDispatch **ppid) {
2242    return This->lpVtbl->get_Parent(This,ppid);
2243}
2244static FORCEINLINE HRESULT FolderItem2_get_Name(FolderItem2* This,BSTR *pbs) {
2245    return This->lpVtbl->get_Name(This,pbs);
2246}
2247static FORCEINLINE HRESULT FolderItem2_put_Name(FolderItem2* This,BSTR bs) {
2248    return This->lpVtbl->put_Name(This,bs);
2249}
2250static FORCEINLINE HRESULT FolderItem2_get_Path(FolderItem2* This,BSTR *pbs) {
2251    return This->lpVtbl->get_Path(This,pbs);
2252}
2253static FORCEINLINE HRESULT FolderItem2_get_GetLink(FolderItem2* This,IDispatch **ppid) {
2254    return This->lpVtbl->get_GetLink(This,ppid);
2255}
2256static FORCEINLINE HRESULT FolderItem2_get_GetFolder(FolderItem2* This,IDispatch **ppid) {
2257    return This->lpVtbl->get_GetFolder(This,ppid);
2258}
2259static FORCEINLINE HRESULT FolderItem2_get_IsLink(FolderItem2* This,VARIANT_BOOL *pb) {
2260    return This->lpVtbl->get_IsLink(This,pb);
2261}
2262static FORCEINLINE HRESULT FolderItem2_get_IsFolder(FolderItem2* This,VARIANT_BOOL *pb) {
2263    return This->lpVtbl->get_IsFolder(This,pb);
2264}
2265static FORCEINLINE HRESULT FolderItem2_get_IsFileSystem(FolderItem2* This,VARIANT_BOOL *pb) {
2266    return This->lpVtbl->get_IsFileSystem(This,pb);
2267}
2268static FORCEINLINE HRESULT FolderItem2_get_IsBrowsable(FolderItem2* This,VARIANT_BOOL *pb) {
2269    return This->lpVtbl->get_IsBrowsable(This,pb);
2270}
2271static FORCEINLINE HRESULT FolderItem2_get_ModifyDate(FolderItem2* This,DATE *pdt) {
2272    return This->lpVtbl->get_ModifyDate(This,pdt);
2273}
2274static FORCEINLINE HRESULT FolderItem2_put_ModifyDate(FolderItem2* This,DATE dt) {
2275    return This->lpVtbl->put_ModifyDate(This,dt);
2276}
2277static FORCEINLINE HRESULT FolderItem2_get_Size(FolderItem2* This,LONG *pul) {
2278    return This->lpVtbl->get_Size(This,pul);
2279}
2280static FORCEINLINE HRESULT FolderItem2_get_Type(FolderItem2* This,BSTR *pbs) {
2281    return This->lpVtbl->get_Type(This,pbs);
2282}
2283static FORCEINLINE HRESULT FolderItem2_Verbs(FolderItem2* This,FolderItemVerbs **ppfic) {
2284    return This->lpVtbl->Verbs(This,ppfic);
2285}
2286static FORCEINLINE HRESULT FolderItem2_InvokeVerb(FolderItem2* This,VARIANT vVerb) {
2287    return This->lpVtbl->InvokeVerb(This,vVerb);
2288}
2289/*** FolderItem2 methods ***/
2290static FORCEINLINE HRESULT FolderItem2_InvokeVerbEx(FolderItem2* This,VARIANT vVerb,VARIANT vArgs) {
2291    return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
2292}
2293static FORCEINLINE HRESULT FolderItem2_ExtendedProperty(FolderItem2* This,BSTR bstrPropName,VARIANT *pvRet) {
2294    return This->lpVtbl->ExtendedProperty(This,bstrPropName,pvRet);
2295}
2296#endif
2297#endif
2298
2299#endif
2300
2301HRESULT STDMETHODCALLTYPE FolderItem2_InvokeVerbEx_Proxy(
2302    FolderItem2* This,
2303    VARIANT vVerb,
2304    VARIANT vArgs);
2305void __RPC_STUB FolderItem2_InvokeVerbEx_Stub(
2306    IRpcStubBuffer* This,
2307    IRpcChannelBuffer* pRpcChannelBuffer,
2308    PRPC_MESSAGE pRpcMessage,
2309    DWORD* pdwStubPhase);
2310HRESULT STDMETHODCALLTYPE FolderItem2_ExtendedProperty_Proxy(
2311    FolderItem2* This,
2312    BSTR bstrPropName,
2313    VARIANT *pvRet);
2314void __RPC_STUB FolderItem2_ExtendedProperty_Stub(
2315    IRpcStubBuffer* This,
2316    IRpcChannelBuffer* pRpcChannelBuffer,
2317    PRPC_MESSAGE pRpcMessage,
2318    DWORD* pdwStubPhase);
2319
2320#endif  /* __FolderItem2_INTERFACE_DEFINED__ */
2321
2322/*****************************************************************************
2323 * ShellFolderItem coclass
2324 */
2325
2326DEFINE_GUID(CLSID_ShellFolderItem, 0x2fe352ea, 0xfd1f, 0x11d2, 0xb1,0xf4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
2327
2328#ifdef __cplusplus
2329class DECLSPEC_UUID("2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e") ShellFolderItem;
2330#ifdef __CRT_UUID_DECL
2331__CRT_UUID_DECL(ShellFolderItem, 0x2fe352ea, 0xfd1f, 0x11d2, 0xb1,0xf4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
2332#endif
2333#endif
2334
2335/*****************************************************************************
2336 * FolderItems interface
2337 */
2338#ifndef __FolderItems_INTERFACE_DEFINED__
2339#define __FolderItems_INTERFACE_DEFINED__
2340
2341DEFINE_GUID(IID_FolderItems, 0x744129e0, 0xcbe5, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
2342#if defined(__cplusplus) && !defined(CINTERFACE)
2343MIDL_INTERFACE("744129e0-cbe5-11ce-8350-444553540000")
2344FolderItems : public IDispatch
2345{
2346    virtual HRESULT STDMETHODCALLTYPE get_Count(
2347        LONG *plCount) = 0;
2348
2349    virtual HRESULT STDMETHODCALLTYPE get_Application(
2350        IDispatch **ppid) = 0;
2351
2352    virtual HRESULT STDMETHODCALLTYPE get_Parent(
2353        IDispatch **ppid) = 0;
2354
2355    virtual HRESULT STDMETHODCALLTYPE Item(
2356        VARIANT index,
2357        FolderItem **ppid) = 0;
2358
2359    virtual HRESULT STDMETHODCALLTYPE _NewEnum(
2360        IUnknown **ppunk) = 0;
2361
2362};
2363#ifdef __CRT_UUID_DECL
2364__CRT_UUID_DECL(FolderItems, 0x744129e0, 0xcbe5, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
2365#endif
2366#else
2367typedef struct FolderItemsVtbl {
2368    BEGIN_INTERFACE
2369
2370    /*** IUnknown methods ***/
2371    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2372        FolderItems* This,
2373        REFIID riid,
2374        void **ppvObject);
2375
2376    ULONG (STDMETHODCALLTYPE *AddRef)(
2377        FolderItems* This);
2378
2379    ULONG (STDMETHODCALLTYPE *Release)(
2380        FolderItems* This);
2381
2382    /*** IDispatch methods ***/
2383    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2384        FolderItems* This,
2385        UINT *pctinfo);
2386
2387    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2388        FolderItems* This,
2389        UINT iTInfo,
2390        LCID lcid,
2391        ITypeInfo **ppTInfo);
2392
2393    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2394        FolderItems* This,
2395        REFIID riid,
2396        LPOLESTR *rgszNames,
2397        UINT cNames,
2398        LCID lcid,
2399        DISPID *rgDispId);
2400
2401    HRESULT (STDMETHODCALLTYPE *Invoke)(
2402        FolderItems* This,
2403        DISPID dispIdMember,
2404        REFIID riid,
2405        LCID lcid,
2406        WORD wFlags,
2407        DISPPARAMS *pDispParams,
2408        VARIANT *pVarResult,
2409        EXCEPINFO *pExcepInfo,
2410        UINT *puArgErr);
2411
2412    /*** FolderItems methods ***/
2413    HRESULT (STDMETHODCALLTYPE *get_Count)(
2414        FolderItems* This,
2415        LONG *plCount);
2416
2417    HRESULT (STDMETHODCALLTYPE *get_Application)(
2418        FolderItems* This,
2419        IDispatch **ppid);
2420
2421    HRESULT (STDMETHODCALLTYPE *get_Parent)(
2422        FolderItems* This,
2423        IDispatch **ppid);
2424
2425    HRESULT (STDMETHODCALLTYPE *Item)(
2426        FolderItems* This,
2427        VARIANT index,
2428        FolderItem **ppid);
2429
2430    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
2431        FolderItems* This,
2432        IUnknown **ppunk);
2433
2434    END_INTERFACE
2435} FolderItemsVtbl;
2436interface FolderItems {
2437    CONST_VTBL FolderItemsVtbl* lpVtbl;
2438};
2439
2440#ifdef COBJMACROS
2441#ifndef WIDL_C_INLINE_WRAPPERS
2442/*** IUnknown methods ***/
2443#define FolderItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2444#define FolderItems_AddRef(This) (This)->lpVtbl->AddRef(This)
2445#define FolderItems_Release(This) (This)->lpVtbl->Release(This)
2446/*** IDispatch methods ***/
2447#define FolderItems_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2448#define FolderItems_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2449#define FolderItems_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2450#define FolderItems_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2451/*** FolderItems methods ***/
2452#define FolderItems_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
2453#define FolderItems_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
2454#define FolderItems_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
2455#define FolderItems_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
2456#define FolderItems__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
2457#else
2458/*** IUnknown methods ***/
2459static FORCEINLINE HRESULT FolderItems_QueryInterface(FolderItems* This,REFIID riid,void **ppvObject) {
2460    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2461}
2462static FORCEINLINE ULONG FolderItems_AddRef(FolderItems* This) {
2463    return This->lpVtbl->AddRef(This);
2464}
2465static FORCEINLINE ULONG FolderItems_Release(FolderItems* This) {
2466    return This->lpVtbl->Release(This);
2467}
2468/*** IDispatch methods ***/
2469static FORCEINLINE HRESULT FolderItems_GetTypeInfoCount(FolderItems* This,UINT *pctinfo) {
2470    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2471}
2472static FORCEINLINE HRESULT FolderItems_GetTypeInfo(FolderItems* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2473    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2474}
2475static FORCEINLINE HRESULT FolderItems_GetIDsOfNames(FolderItems* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2476    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2477}
2478static FORCEINLINE HRESULT FolderItems_Invoke(FolderItems* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2479    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2480}
2481/*** FolderItems methods ***/
2482static FORCEINLINE HRESULT FolderItems_get_Count(FolderItems* This,LONG *plCount) {
2483    return This->lpVtbl->get_Count(This,plCount);
2484}
2485static FORCEINLINE HRESULT FolderItems_get_Application(FolderItems* This,IDispatch **ppid) {
2486    return This->lpVtbl->get_Application(This,ppid);
2487}
2488static FORCEINLINE HRESULT FolderItems_get_Parent(FolderItems* This,IDispatch **ppid) {
2489    return This->lpVtbl->get_Parent(This,ppid);
2490}
2491static FORCEINLINE HRESULT FolderItems_Item(FolderItems* This,VARIANT index,FolderItem **ppid) {
2492    return This->lpVtbl->Item(This,index,ppid);
2493}
2494static FORCEINLINE HRESULT FolderItems__NewEnum(FolderItems* This,IUnknown **ppunk) {
2495    return This->lpVtbl->_NewEnum(This,ppunk);
2496}
2497#endif
2498#endif
2499
2500#endif
2501
2502HRESULT STDMETHODCALLTYPE FolderItems_get_Count_Proxy(
2503    FolderItems* This,
2504    LONG *plCount);
2505void __RPC_STUB FolderItems_get_Count_Stub(
2506    IRpcStubBuffer* This,
2507    IRpcChannelBuffer* pRpcChannelBuffer,
2508    PRPC_MESSAGE pRpcMessage,
2509    DWORD* pdwStubPhase);
2510HRESULT STDMETHODCALLTYPE FolderItems_get_Application_Proxy(
2511    FolderItems* This,
2512    IDispatch **ppid);
2513void __RPC_STUB FolderItems_get_Application_Stub(
2514    IRpcStubBuffer* This,
2515    IRpcChannelBuffer* pRpcChannelBuffer,
2516    PRPC_MESSAGE pRpcMessage,
2517    DWORD* pdwStubPhase);
2518HRESULT STDMETHODCALLTYPE FolderItems_get_Parent_Proxy(
2519    FolderItems* This,
2520    IDispatch **ppid);
2521void __RPC_STUB FolderItems_get_Parent_Stub(
2522    IRpcStubBuffer* This,
2523    IRpcChannelBuffer* pRpcChannelBuffer,
2524    PRPC_MESSAGE pRpcMessage,
2525    DWORD* pdwStubPhase);
2526HRESULT STDMETHODCALLTYPE FolderItems_Item_Proxy(
2527    FolderItems* This,
2528    VARIANT index,
2529    FolderItem **ppid);
2530void __RPC_STUB FolderItems_Item_Stub(
2531    IRpcStubBuffer* This,
2532    IRpcChannelBuffer* pRpcChannelBuffer,
2533    PRPC_MESSAGE pRpcMessage,
2534    DWORD* pdwStubPhase);
2535HRESULT STDMETHODCALLTYPE FolderItems__NewEnum_Proxy(
2536    FolderItems* This,
2537    IUnknown **ppunk);
2538void __RPC_STUB FolderItems__NewEnum_Stub(
2539    IRpcStubBuffer* This,
2540    IRpcChannelBuffer* pRpcChannelBuffer,
2541    PRPC_MESSAGE pRpcMessage,
2542    DWORD* pdwStubPhase);
2543
2544#endif  /* __FolderItems_INTERFACE_DEFINED__ */
2545
2546/*****************************************************************************
2547 * FolderItems2 interface
2548 */
2549#ifndef __FolderItems2_INTERFACE_DEFINED__
2550#define __FolderItems2_INTERFACE_DEFINED__
2551
2552DEFINE_GUID(IID_FolderItems2, 0xc94f0ad0, 0xf363, 0x11d2, 0xa3,0x27, 0x00,0xc0,0x4f,0x8e,0xec,0x7f);
2553#if defined(__cplusplus) && !defined(CINTERFACE)
2554MIDL_INTERFACE("c94f0ad0-f363-11d2-a327-00c04f8eec7f")
2555FolderItems2 : public FolderItems
2556{
2557    virtual HRESULT STDMETHODCALLTYPE InvokeVerbEx(
2558        VARIANT vVerb,
2559        VARIANT vArgs) = 0;
2560
2561};
2562#ifdef __CRT_UUID_DECL
2563__CRT_UUID_DECL(FolderItems2, 0xc94f0ad0, 0xf363, 0x11d2, 0xa3,0x27, 0x00,0xc0,0x4f,0x8e,0xec,0x7f)
2564#endif
2565#else
2566typedef struct FolderItems2Vtbl {
2567    BEGIN_INTERFACE
2568
2569    /*** IUnknown methods ***/
2570    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2571        FolderItems2* This,
2572        REFIID riid,
2573        void **ppvObject);
2574
2575    ULONG (STDMETHODCALLTYPE *AddRef)(
2576        FolderItems2* This);
2577
2578    ULONG (STDMETHODCALLTYPE *Release)(
2579        FolderItems2* This);
2580
2581    /*** IDispatch methods ***/
2582    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2583        FolderItems2* This,
2584        UINT *pctinfo);
2585
2586    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2587        FolderItems2* This,
2588        UINT iTInfo,
2589        LCID lcid,
2590        ITypeInfo **ppTInfo);
2591
2592    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2593        FolderItems2* This,
2594        REFIID riid,
2595        LPOLESTR *rgszNames,
2596        UINT cNames,
2597        LCID lcid,
2598        DISPID *rgDispId);
2599
2600    HRESULT (STDMETHODCALLTYPE *Invoke)(
2601        FolderItems2* This,
2602        DISPID dispIdMember,
2603        REFIID riid,
2604        LCID lcid,
2605        WORD wFlags,
2606        DISPPARAMS *pDispParams,
2607        VARIANT *pVarResult,
2608        EXCEPINFO *pExcepInfo,
2609        UINT *puArgErr);
2610
2611    /*** FolderItems methods ***/
2612    HRESULT (STDMETHODCALLTYPE *get_Count)(
2613        FolderItems2* This,
2614        LONG *plCount);
2615
2616    HRESULT (STDMETHODCALLTYPE *get_Application)(
2617        FolderItems2* This,
2618        IDispatch **ppid);
2619
2620    HRESULT (STDMETHODCALLTYPE *get_Parent)(
2621        FolderItems2* This,
2622        IDispatch **ppid);
2623
2624    HRESULT (STDMETHODCALLTYPE *Item)(
2625        FolderItems2* This,
2626        VARIANT index,
2627        FolderItem **ppid);
2628
2629    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
2630        FolderItems2* This,
2631        IUnknown **ppunk);
2632
2633    /*** FolderItems2 methods ***/
2634    HRESULT (STDMETHODCALLTYPE *InvokeVerbEx)(
2635        FolderItems2* This,
2636        VARIANT vVerb,
2637        VARIANT vArgs);
2638
2639    END_INTERFACE
2640} FolderItems2Vtbl;
2641interface FolderItems2 {
2642    CONST_VTBL FolderItems2Vtbl* lpVtbl;
2643};
2644
2645#ifdef COBJMACROS
2646#ifndef WIDL_C_INLINE_WRAPPERS
2647/*** IUnknown methods ***/
2648#define FolderItems2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2649#define FolderItems2_AddRef(This) (This)->lpVtbl->AddRef(This)
2650#define FolderItems2_Release(This) (This)->lpVtbl->Release(This)
2651/*** IDispatch methods ***/
2652#define FolderItems2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2653#define FolderItems2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2654#define FolderItems2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2655#define FolderItems2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2656/*** FolderItems methods ***/
2657#define FolderItems2_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
2658#define FolderItems2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
2659#define FolderItems2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
2660#define FolderItems2_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
2661#define FolderItems2__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
2662/*** FolderItems2 methods ***/
2663#define FolderItems2_InvokeVerbEx(This,vVerb,vArgs) (This)->lpVtbl->InvokeVerbEx(This,vVerb,vArgs)
2664#else
2665/*** IUnknown methods ***/
2666static FORCEINLINE HRESULT FolderItems2_QueryInterface(FolderItems2* This,REFIID riid,void **ppvObject) {
2667    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2668}
2669static FORCEINLINE ULONG FolderItems2_AddRef(FolderItems2* This) {
2670    return This->lpVtbl->AddRef(This);
2671}
2672static FORCEINLINE ULONG FolderItems2_Release(FolderItems2* This) {
2673    return This->lpVtbl->Release(This);
2674}
2675/*** IDispatch methods ***/
2676static FORCEINLINE HRESULT FolderItems2_GetTypeInfoCount(FolderItems2* This,UINT *pctinfo) {
2677    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2678}
2679static FORCEINLINE HRESULT FolderItems2_GetTypeInfo(FolderItems2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2680    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2681}
2682static FORCEINLINE HRESULT FolderItems2_GetIDsOfNames(FolderItems2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2683    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2684}
2685static FORCEINLINE HRESULT FolderItems2_Invoke(FolderItems2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2686    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2687}
2688/*** FolderItems methods ***/
2689static FORCEINLINE HRESULT FolderItems2_get_Count(FolderItems2* This,LONG *plCount) {
2690    return This->lpVtbl->get_Count(This,plCount);
2691}
2692static FORCEINLINE HRESULT FolderItems2_get_Application(FolderItems2* This,IDispatch **ppid) {
2693    return This->lpVtbl->get_Application(This,ppid);
2694}
2695static FORCEINLINE HRESULT FolderItems2_get_Parent(FolderItems2* This,IDispatch **ppid) {
2696    return This->lpVtbl->get_Parent(This,ppid);
2697}
2698static FORCEINLINE HRESULT FolderItems2_Item(FolderItems2* This,VARIANT index,FolderItem **ppid) {
2699    return This->lpVtbl->Item(This,index,ppid);
2700}
2701static FORCEINLINE HRESULT FolderItems2__NewEnum(FolderItems2* This,IUnknown **ppunk) {
2702    return This->lpVtbl->_NewEnum(This,ppunk);
2703}
2704/*** FolderItems2 methods ***/
2705static FORCEINLINE HRESULT FolderItems2_InvokeVerbEx(FolderItems2* This,VARIANT vVerb,VARIANT vArgs) {
2706    return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
2707}
2708#endif
2709#endif
2710
2711#endif
2712
2713HRESULT STDMETHODCALLTYPE FolderItems2_InvokeVerbEx_Proxy(
2714    FolderItems2* This,
2715    VARIANT vVerb,
2716    VARIANT vArgs);
2717void __RPC_STUB FolderItems2_InvokeVerbEx_Stub(
2718    IRpcStubBuffer* This,
2719    IRpcChannelBuffer* pRpcChannelBuffer,
2720    PRPC_MESSAGE pRpcMessage,
2721    DWORD* pdwStubPhase);
2722
2723#endif  /* __FolderItems2_INTERFACE_DEFINED__ */
2724
2725/*****************************************************************************
2726 * FolderItems3 interface
2727 */
2728#ifndef __FolderItems3_INTERFACE_DEFINED__
2729#define __FolderItems3_INTERFACE_DEFINED__
2730
2731DEFINE_GUID(IID_FolderItems3, 0xeaa7c309, 0xbbec, 0x49d5, 0x82,0x1d, 0x64,0xd9,0x66,0xcb,0x66,0x7f);
2732#if defined(__cplusplus) && !defined(CINTERFACE)
2733MIDL_INTERFACE("eaa7c309-bbec-49d5-821d-64d966cb667f")
2734FolderItems3 : public FolderItems2
2735{
2736    virtual HRESULT STDMETHODCALLTYPE Filter(
2737        LONG grfFlags,
2738        BSTR bstrFileSpec) = 0;
2739
2740    virtual HRESULT STDMETHODCALLTYPE get_Verbs(
2741        FolderItemVerbs **ppfic) = 0;
2742
2743};
2744#ifdef __CRT_UUID_DECL
2745__CRT_UUID_DECL(FolderItems3, 0xeaa7c309, 0xbbec, 0x49d5, 0x82,0x1d, 0x64,0xd9,0x66,0xcb,0x66,0x7f)
2746#endif
2747#else
2748typedef struct FolderItems3Vtbl {
2749    BEGIN_INTERFACE
2750
2751    /*** IUnknown methods ***/
2752    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2753        FolderItems3* This,
2754        REFIID riid,
2755        void **ppvObject);
2756
2757    ULONG (STDMETHODCALLTYPE *AddRef)(
2758        FolderItems3* This);
2759
2760    ULONG (STDMETHODCALLTYPE *Release)(
2761        FolderItems3* This);
2762
2763    /*** IDispatch methods ***/
2764    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2765        FolderItems3* This,
2766        UINT *pctinfo);
2767
2768    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2769        FolderItems3* This,
2770        UINT iTInfo,
2771        LCID lcid,
2772        ITypeInfo **ppTInfo);
2773
2774    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2775        FolderItems3* This,
2776        REFIID riid,
2777        LPOLESTR *rgszNames,
2778        UINT cNames,
2779        LCID lcid,
2780        DISPID *rgDispId);
2781
2782    HRESULT (STDMETHODCALLTYPE *Invoke)(
2783        FolderItems3* This,
2784        DISPID dispIdMember,
2785        REFIID riid,
2786        LCID lcid,
2787        WORD wFlags,
2788        DISPPARAMS *pDispParams,
2789        VARIANT *pVarResult,
2790        EXCEPINFO *pExcepInfo,
2791        UINT *puArgErr);
2792
2793    /*** FolderItems methods ***/
2794    HRESULT (STDMETHODCALLTYPE *get_Count)(
2795        FolderItems3* This,
2796        LONG *plCount);
2797
2798    HRESULT (STDMETHODCALLTYPE *get_Application)(
2799        FolderItems3* This,
2800        IDispatch **ppid);
2801
2802    HRESULT (STDMETHODCALLTYPE *get_Parent)(
2803        FolderItems3* This,
2804        IDispatch **ppid);
2805
2806    HRESULT (STDMETHODCALLTYPE *Item)(
2807        FolderItems3* This,
2808        VARIANT index,
2809        FolderItem **ppid);
2810
2811    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
2812        FolderItems3* This,
2813        IUnknown **ppunk);
2814
2815    /*** FolderItems2 methods ***/
2816    HRESULT (STDMETHODCALLTYPE *InvokeVerbEx)(
2817        FolderItems3* This,
2818        VARIANT vVerb,
2819        VARIANT vArgs);
2820
2821    /*** FolderItems3 methods ***/
2822    HRESULT (STDMETHODCALLTYPE *Filter)(
2823        FolderItems3* This,
2824        LONG grfFlags,
2825        BSTR bstrFileSpec);
2826
2827    HRESULT (STDMETHODCALLTYPE *get_Verbs)(
2828        FolderItems3* This,
2829        FolderItemVerbs **ppfic);
2830
2831    END_INTERFACE
2832} FolderItems3Vtbl;
2833interface FolderItems3 {
2834    CONST_VTBL FolderItems3Vtbl* lpVtbl;
2835};
2836
2837#ifdef COBJMACROS
2838#ifndef WIDL_C_INLINE_WRAPPERS
2839/*** IUnknown methods ***/
2840#define FolderItems3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2841#define FolderItems3_AddRef(This) (This)->lpVtbl->AddRef(This)
2842#define FolderItems3_Release(This) (This)->lpVtbl->Release(This)
2843/*** IDispatch methods ***/
2844#define FolderItems3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
2845#define FolderItems3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
2846#define FolderItems3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
2847#define FolderItems3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
2848/*** FolderItems methods ***/
2849#define FolderItems3_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
2850#define FolderItems3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
2851#define FolderItems3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
2852#define FolderItems3_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
2853#define FolderItems3__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
2854/*** FolderItems2 methods ***/
2855#define FolderItems3_InvokeVerbEx(This,vVerb,vArgs) (This)->lpVtbl->InvokeVerbEx(This,vVerb,vArgs)
2856/*** FolderItems3 methods ***/
2857#define FolderItems3_Filter(This,grfFlags,bstrFileSpec) (This)->lpVtbl->Filter(This,grfFlags,bstrFileSpec)
2858#define FolderItems3_get_Verbs(This,ppfic) (This)->lpVtbl->get_Verbs(This,ppfic)
2859#else
2860/*** IUnknown methods ***/
2861static FORCEINLINE HRESULT FolderItems3_QueryInterface(FolderItems3* This,REFIID riid,void **ppvObject) {
2862    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2863}
2864static FORCEINLINE ULONG FolderItems3_AddRef(FolderItems3* This) {
2865    return This->lpVtbl->AddRef(This);
2866}
2867static FORCEINLINE ULONG FolderItems3_Release(FolderItems3* This) {
2868    return This->lpVtbl->Release(This);
2869}
2870/*** IDispatch methods ***/
2871static FORCEINLINE HRESULT FolderItems3_GetTypeInfoCount(FolderItems3* This,UINT *pctinfo) {
2872    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2873}
2874static FORCEINLINE HRESULT FolderItems3_GetTypeInfo(FolderItems3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2875    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2876}
2877static FORCEINLINE HRESULT FolderItems3_GetIDsOfNames(FolderItems3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
2878    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
2879}
2880static FORCEINLINE HRESULT FolderItems3_Invoke(FolderItems3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
2881    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
2882}
2883/*** FolderItems methods ***/
2884static FORCEINLINE HRESULT FolderItems3_get_Count(FolderItems3* This,LONG *plCount) {
2885    return This->lpVtbl->get_Count(This,plCount);
2886}
2887static FORCEINLINE HRESULT FolderItems3_get_Application(FolderItems3* This,IDispatch **ppid) {
2888    return This->lpVtbl->get_Application(This,ppid);
2889}
2890static FORCEINLINE HRESULT FolderItems3_get_Parent(FolderItems3* This,IDispatch **ppid) {
2891    return This->lpVtbl->get_Parent(This,ppid);
2892}
2893static FORCEINLINE HRESULT FolderItems3_Item(FolderItems3* This,VARIANT index,FolderItem **ppid) {
2894    return This->lpVtbl->Item(This,index,ppid);
2895}
2896static FORCEINLINE HRESULT FolderItems3__NewEnum(FolderItems3* This,IUnknown **ppunk) {
2897    return This->lpVtbl->_NewEnum(This,ppunk);
2898}
2899/*** FolderItems2 methods ***/
2900static FORCEINLINE HRESULT FolderItems3_InvokeVerbEx(FolderItems3* This,VARIANT vVerb,VARIANT vArgs) {
2901    return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
2902}
2903/*** FolderItems3 methods ***/
2904static FORCEINLINE HRESULT FolderItems3_Filter(FolderItems3* This,LONG grfFlags,BSTR bstrFileSpec) {
2905    return This->lpVtbl->Filter(This,grfFlags,bstrFileSpec);
2906}
2907static FORCEINLINE HRESULT FolderItems3_get_Verbs(FolderItems3* This,FolderItemVerbs **ppfic) {
2908    return This->lpVtbl->get_Verbs(This,ppfic);
2909}
2910#endif
2911#endif
2912
2913#endif
2914
2915HRESULT STDMETHODCALLTYPE FolderItems3_Filter_Proxy(
2916    FolderItems3* This,
2917    LONG grfFlags,
2918    BSTR bstrFileSpec);
2919void __RPC_STUB FolderItems3_Filter_Stub(
2920    IRpcStubBuffer* This,
2921    IRpcChannelBuffer* pRpcChannelBuffer,
2922    PRPC_MESSAGE pRpcMessage,
2923    DWORD* pdwStubPhase);
2924HRESULT STDMETHODCALLTYPE FolderItems3_get_Verbs_Proxy(
2925    FolderItems3* This,
2926    FolderItemVerbs **ppfic);
2927void __RPC_STUB FolderItems3_get_Verbs_Stub(
2928    IRpcStubBuffer* This,
2929    IRpcChannelBuffer* pRpcChannelBuffer,
2930    PRPC_MESSAGE pRpcMessage,
2931    DWORD* pdwStubPhase);
2932
2933#endif  /* __FolderItems3_INTERFACE_DEFINED__ */
2934
2935/*****************************************************************************
2936 * FolderItemVerb interface
2937 */
2938#ifndef __FolderItemVerb_INTERFACE_DEFINED__
2939#define __FolderItemVerb_INTERFACE_DEFINED__
2940
2941DEFINE_GUID(IID_FolderItemVerb, 0x08ec3e00, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
2942#if defined(__cplusplus) && !defined(CINTERFACE)
2943MIDL_INTERFACE("08ec3e00-50b0-11cf-960c-0080c7f4ee85")
2944FolderItemVerb : public IDispatch
2945{
2946    virtual HRESULT STDMETHODCALLTYPE get_Application(
2947        IDispatch **ppid) = 0;
2948
2949    virtual HRESULT STDMETHODCALLTYPE get_Parent(
2950        IDispatch **ppid) = 0;
2951
2952    virtual HRESULT STDMETHODCALLTYPE get_Name(
2953        BSTR *pbs) = 0;
2954
2955    virtual HRESULT STDMETHODCALLTYPE DoIt(
2956        ) = 0;
2957
2958};
2959#ifdef __CRT_UUID_DECL
2960__CRT_UUID_DECL(FolderItemVerb, 0x08ec3e00, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85)
2961#endif
2962#else
2963typedef struct FolderItemVerbVtbl {
2964    BEGIN_INTERFACE
2965
2966    /*** IUnknown methods ***/
2967    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2968        FolderItemVerb* This,
2969        REFIID riid,
2970        void **ppvObject);
2971
2972    ULONG (STDMETHODCALLTYPE *AddRef)(
2973        FolderItemVerb* This);
2974
2975    ULONG (STDMETHODCALLTYPE *Release)(
2976        FolderItemVerb* This);
2977
2978    /*** IDispatch methods ***/
2979    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
2980        FolderItemVerb* This,
2981        UINT *pctinfo);
2982
2983    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
2984        FolderItemVerb* This,
2985        UINT iTInfo,
2986        LCID lcid,
2987        ITypeInfo **ppTInfo);
2988
2989    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
2990        FolderItemVerb* This,
2991        REFIID riid,
2992        LPOLESTR *rgszNames,
2993        UINT cNames,
2994        LCID lcid,
2995        DISPID *rgDispId);
2996
2997    HRESULT (STDMETHODCALLTYPE *Invoke)(
2998        FolderItemVerb* This,
2999        DISPID dispIdMember,
3000        REFIID riid,
3001        LCID lcid,
3002        WORD wFlags,
3003        DISPPARAMS *pDispParams,
3004        VARIANT *pVarResult,
3005        EXCEPINFO *pExcepInfo,
3006        UINT *puArgErr);
3007
3008    /*** FolderItemVerb methods ***/
3009    HRESULT (STDMETHODCALLTYPE *get_Application)(
3010        FolderItemVerb* This,
3011        IDispatch **ppid);
3012
3013    HRESULT (STDMETHODCALLTYPE *get_Parent)(
3014        FolderItemVerb* This,
3015        IDispatch **ppid);
3016
3017    HRESULT (STDMETHODCALLTYPE *get_Name)(
3018        FolderItemVerb* This,
3019        BSTR *pbs);
3020
3021    HRESULT (STDMETHODCALLTYPE *DoIt)(
3022        FolderItemVerb* This);
3023
3024    END_INTERFACE
3025} FolderItemVerbVtbl;
3026interface FolderItemVerb {
3027    CONST_VTBL FolderItemVerbVtbl* lpVtbl;
3028};
3029
3030#ifdef COBJMACROS
3031#ifndef WIDL_C_INLINE_WRAPPERS
3032/*** IUnknown methods ***/
3033#define FolderItemVerb_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3034#define FolderItemVerb_AddRef(This) (This)->lpVtbl->AddRef(This)
3035#define FolderItemVerb_Release(This) (This)->lpVtbl->Release(This)
3036/*** IDispatch methods ***/
3037#define FolderItemVerb_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
3038#define FolderItemVerb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
3039#define FolderItemVerb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
3040#define FolderItemVerb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3041/*** FolderItemVerb methods ***/
3042#define FolderItemVerb_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
3043#define FolderItemVerb_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
3044#define FolderItemVerb_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
3045#define FolderItemVerb_DoIt(This) (This)->lpVtbl->DoIt(This)
3046#else
3047/*** IUnknown methods ***/
3048static FORCEINLINE HRESULT FolderItemVerb_QueryInterface(FolderItemVerb* This,REFIID riid,void **ppvObject) {
3049    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3050}
3051static FORCEINLINE ULONG FolderItemVerb_AddRef(FolderItemVerb* This) {
3052    return This->lpVtbl->AddRef(This);
3053}
3054static FORCEINLINE ULONG FolderItemVerb_Release(FolderItemVerb* This) {
3055    return This->lpVtbl->Release(This);
3056}
3057/*** IDispatch methods ***/
3058static FORCEINLINE HRESULT FolderItemVerb_GetTypeInfoCount(FolderItemVerb* This,UINT *pctinfo) {
3059    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3060}
3061static FORCEINLINE HRESULT FolderItemVerb_GetTypeInfo(FolderItemVerb* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3062    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3063}
3064static FORCEINLINE HRESULT FolderItemVerb_GetIDsOfNames(FolderItemVerb* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
3065    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
3066}
3067static FORCEINLINE HRESULT FolderItemVerb_Invoke(FolderItemVerb* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3068    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3069}
3070/*** FolderItemVerb methods ***/
3071static FORCEINLINE HRESULT FolderItemVerb_get_Application(FolderItemVerb* This,IDispatch **ppid) {
3072    return This->lpVtbl->get_Application(This,ppid);
3073}
3074static FORCEINLINE HRESULT FolderItemVerb_get_Parent(FolderItemVerb* This,IDispatch **ppid) {
3075    return This->lpVtbl->get_Parent(This,ppid);
3076}
3077static FORCEINLINE HRESULT FolderItemVerb_get_Name(FolderItemVerb* This,BSTR *pbs) {
3078    return This->lpVtbl->get_Name(This,pbs);
3079}
3080static FORCEINLINE HRESULT FolderItemVerb_DoIt(FolderItemVerb* This) {
3081    return This->lpVtbl->DoIt(This);
3082}
3083#endif
3084#endif
3085
3086#endif
3087
3088HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Application_Proxy(
3089    FolderItemVerb* This,
3090    IDispatch **ppid);
3091void __RPC_STUB FolderItemVerb_get_Application_Stub(
3092    IRpcStubBuffer* This,
3093    IRpcChannelBuffer* pRpcChannelBuffer,
3094    PRPC_MESSAGE pRpcMessage,
3095    DWORD* pdwStubPhase);
3096HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Parent_Proxy(
3097    FolderItemVerb* This,
3098    IDispatch **ppid);
3099void __RPC_STUB FolderItemVerb_get_Parent_Stub(
3100    IRpcStubBuffer* This,
3101    IRpcChannelBuffer* pRpcChannelBuffer,
3102    PRPC_MESSAGE pRpcMessage,
3103    DWORD* pdwStubPhase);
3104HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Name_Proxy(
3105    FolderItemVerb* This,
3106    BSTR *pbs);
3107void __RPC_STUB FolderItemVerb_get_Name_Stub(
3108    IRpcStubBuffer* This,
3109    IRpcChannelBuffer* pRpcChannelBuffer,
3110    PRPC_MESSAGE pRpcMessage,
3111    DWORD* pdwStubPhase);
3112HRESULT STDMETHODCALLTYPE FolderItemVerb_DoIt_Proxy(
3113    FolderItemVerb* This);
3114void __RPC_STUB FolderItemVerb_DoIt_Stub(
3115    IRpcStubBuffer* This,
3116    IRpcChannelBuffer* pRpcChannelBuffer,
3117    PRPC_MESSAGE pRpcMessage,
3118    DWORD* pdwStubPhase);
3119
3120#endif  /* __FolderItemVerb_INTERFACE_DEFINED__ */
3121
3122/*****************************************************************************
3123 * FolderItemVerbs interface
3124 */
3125#ifndef __FolderItemVerbs_INTERFACE_DEFINED__
3126#define __FolderItemVerbs_INTERFACE_DEFINED__
3127
3128DEFINE_GUID(IID_FolderItemVerbs, 0x1f8352c0, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
3129#if defined(__cplusplus) && !defined(CINTERFACE)
3130MIDL_INTERFACE("1f8352c0-50b0-11cf-960c-0080c7f4ee85")
3131FolderItemVerbs : public IDispatch
3132{
3133    virtual HRESULT STDMETHODCALLTYPE get_Count(
3134        LONG *plCount) = 0;
3135
3136    virtual HRESULT STDMETHODCALLTYPE get_Application(
3137        IDispatch **ppid) = 0;
3138
3139    virtual HRESULT STDMETHODCALLTYPE get_Parent(
3140        IDispatch **ppid) = 0;
3141
3142    virtual HRESULT STDMETHODCALLTYPE Item(
3143        VARIANT index,
3144        FolderItemVerb **ppid) = 0;
3145
3146    virtual HRESULT STDMETHODCALLTYPE _NewEnum(
3147        IUnknown **ppunk) = 0;
3148
3149};
3150#ifdef __CRT_UUID_DECL
3151__CRT_UUID_DECL(FolderItemVerbs, 0x1f8352c0, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85)
3152#endif
3153#else
3154typedef struct FolderItemVerbsVtbl {
3155    BEGIN_INTERFACE
3156
3157    /*** IUnknown methods ***/
3158    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3159        FolderItemVerbs* This,
3160        REFIID riid,
3161        void **ppvObject);
3162
3163    ULONG (STDMETHODCALLTYPE *AddRef)(
3164        FolderItemVerbs* This);
3165
3166    ULONG (STDMETHODCALLTYPE *Release)(
3167        FolderItemVerbs* This);
3168
3169    /*** IDispatch methods ***/
3170    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
3171        FolderItemVerbs* This,
3172        UINT *pctinfo);
3173
3174    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3175        FolderItemVerbs* This,
3176        UINT iTInfo,
3177        LCID lcid,
3178        ITypeInfo **ppTInfo);
3179
3180    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3181        FolderItemVerbs* This,
3182        REFIID riid,
3183        LPOLESTR *rgszNames,
3184        UINT cNames,
3185        LCID lcid,
3186        DISPID *rgDispId);
3187
3188    HRESULT (STDMETHODCALLTYPE *Invoke)(
3189        FolderItemVerbs* This,
3190        DISPID dispIdMember,
3191        REFIID riid,
3192        LCID lcid,
3193        WORD wFlags,
3194        DISPPARAMS *pDispParams,
3195        VARIANT *pVarResult,
3196        EXCEPINFO *pExcepInfo,
3197        UINT *puArgErr);
3198
3199    /*** FolderItemVerbs methods ***/
3200    HRESULT (STDMETHODCALLTYPE *get_Count)(
3201        FolderItemVerbs* This,
3202        LONG *plCount);
3203
3204    HRESULT (STDMETHODCALLTYPE *get_Application)(
3205        FolderItemVerbs* This,
3206        IDispatch **ppid);
3207
3208    HRESULT (STDMETHODCALLTYPE *get_Parent)(
3209        FolderItemVerbs* This,
3210        IDispatch **ppid);
3211
3212    HRESULT (STDMETHODCALLTYPE *Item)(
3213        FolderItemVerbs* This,
3214        VARIANT index,
3215        FolderItemVerb **ppid);
3216
3217    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
3218        FolderItemVerbs* This,
3219        IUnknown **ppunk);
3220
3221    END_INTERFACE
3222} FolderItemVerbsVtbl;
3223interface FolderItemVerbs {
3224    CONST_VTBL FolderItemVerbsVtbl* lpVtbl;
3225};
3226
3227#ifdef COBJMACROS
3228#ifndef WIDL_C_INLINE_WRAPPERS
3229/*** IUnknown methods ***/
3230#define FolderItemVerbs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3231#define FolderItemVerbs_AddRef(This) (This)->lpVtbl->AddRef(This)
3232#define FolderItemVerbs_Release(This) (This)->lpVtbl->Release(This)
3233/*** IDispatch methods ***/
3234#define FolderItemVerbs_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
3235#define FolderItemVerbs_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
3236#define FolderItemVerbs_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
3237#define FolderItemVerbs_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3238/*** FolderItemVerbs methods ***/
3239#define FolderItemVerbs_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
3240#define FolderItemVerbs_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
3241#define FolderItemVerbs_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
3242#define FolderItemVerbs_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
3243#define FolderItemVerbs__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
3244#else
3245/*** IUnknown methods ***/
3246static FORCEINLINE HRESULT FolderItemVerbs_QueryInterface(FolderItemVerbs* This,REFIID riid,void **ppvObject) {
3247    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3248}
3249static FORCEINLINE ULONG FolderItemVerbs_AddRef(FolderItemVerbs* This) {
3250    return This->lpVtbl->AddRef(This);
3251}
3252static FORCEINLINE ULONG FolderItemVerbs_Release(FolderItemVerbs* This) {
3253    return This->lpVtbl->Release(This);
3254}
3255/*** IDispatch methods ***/
3256static FORCEINLINE HRESULT FolderItemVerbs_GetTypeInfoCount(FolderItemVerbs* This,UINT *pctinfo) {
3257    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3258}
3259static FORCEINLINE HRESULT FolderItemVerbs_GetTypeInfo(FolderItemVerbs* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3260    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3261}
3262static FORCEINLINE HRESULT FolderItemVerbs_GetIDsOfNames(FolderItemVerbs* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
3263    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
3264}
3265static FORCEINLINE HRESULT FolderItemVerbs_Invoke(FolderItemVerbs* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3266    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3267}
3268/*** FolderItemVerbs methods ***/
3269static FORCEINLINE HRESULT FolderItemVerbs_get_Count(FolderItemVerbs* This,LONG *plCount) {
3270    return This->lpVtbl->get_Count(This,plCount);
3271}
3272static FORCEINLINE HRESULT FolderItemVerbs_get_Application(FolderItemVerbs* This,IDispatch **ppid) {
3273    return This->lpVtbl->get_Application(This,ppid);
3274}
3275static FORCEINLINE HRESULT FolderItemVerbs_get_Parent(FolderItemVerbs* This,IDispatch **ppid) {
3276    return This->lpVtbl->get_Parent(This,ppid);
3277}
3278static FORCEINLINE HRESULT FolderItemVerbs_Item(FolderItemVerbs* This,VARIANT index,FolderItemVerb **ppid) {
3279    return This->lpVtbl->Item(This,index,ppid);
3280}
3281static FORCEINLINE HRESULT FolderItemVerbs__NewEnum(FolderItemVerbs* This,IUnknown **ppunk) {
3282    return This->lpVtbl->_NewEnum(This,ppunk);
3283}
3284#endif
3285#endif
3286
3287#endif
3288
3289HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Count_Proxy(
3290    FolderItemVerbs* This,
3291    LONG *plCount);
3292void __RPC_STUB FolderItemVerbs_get_Count_Stub(
3293    IRpcStubBuffer* This,
3294    IRpcChannelBuffer* pRpcChannelBuffer,
3295    PRPC_MESSAGE pRpcMessage,
3296    DWORD* pdwStubPhase);
3297HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Application_Proxy(
3298    FolderItemVerbs* This,
3299    IDispatch **ppid);
3300void __RPC_STUB FolderItemVerbs_get_Application_Stub(
3301    IRpcStubBuffer* This,
3302    IRpcChannelBuffer* pRpcChannelBuffer,
3303    PRPC_MESSAGE pRpcMessage,
3304    DWORD* pdwStubPhase);
3305HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Parent_Proxy(
3306    FolderItemVerbs* This,
3307    IDispatch **ppid);
3308void __RPC_STUB FolderItemVerbs_get_Parent_Stub(
3309    IRpcStubBuffer* This,
3310    IRpcChannelBuffer* pRpcChannelBuffer,
3311    PRPC_MESSAGE pRpcMessage,
3312    DWORD* pdwStubPhase);
3313HRESULT STDMETHODCALLTYPE FolderItemVerbs_Item_Proxy(
3314    FolderItemVerbs* This,
3315    VARIANT index,
3316    FolderItemVerb **ppid);
3317void __RPC_STUB FolderItemVerbs_Item_Stub(
3318    IRpcStubBuffer* This,
3319    IRpcChannelBuffer* pRpcChannelBuffer,
3320    PRPC_MESSAGE pRpcMessage,
3321    DWORD* pdwStubPhase);
3322HRESULT STDMETHODCALLTYPE FolderItemVerbs__NewEnum_Proxy(
3323    FolderItemVerbs* This,
3324    IUnknown **ppunk);
3325void __RPC_STUB FolderItemVerbs__NewEnum_Stub(
3326    IRpcStubBuffer* This,
3327    IRpcChannelBuffer* pRpcChannelBuffer,
3328    PRPC_MESSAGE pRpcMessage,
3329    DWORD* pdwStubPhase);
3330
3331#endif  /* __FolderItemVerbs_INTERFACE_DEFINED__ */
3332
3333/*****************************************************************************
3334 * IShellLinkDual interface
3335 */
3336#ifndef __IShellLinkDual_INTERFACE_DEFINED__
3337#define __IShellLinkDual_INTERFACE_DEFINED__
3338
3339DEFINE_GUID(IID_IShellLinkDual, 0x88a05c00, 0xf000, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
3340#if defined(__cplusplus) && !defined(CINTERFACE)
3341MIDL_INTERFACE("88a05c00-f000-11ce-8350-444553540000")
3342IShellLinkDual : public IDispatch
3343{
3344    virtual HRESULT STDMETHODCALLTYPE get_Path(
3345        BSTR *pbs) = 0;
3346
3347    virtual HRESULT STDMETHODCALLTYPE put_Path(
3348        BSTR bs) = 0;
3349
3350    virtual HRESULT STDMETHODCALLTYPE get_Description(
3351        BSTR *pbs) = 0;
3352
3353    virtual HRESULT STDMETHODCALLTYPE put_Description(
3354        BSTR bs) = 0;
3355
3356    virtual HRESULT STDMETHODCALLTYPE get_WorkingDirectory(
3357        BSTR *pbs) = 0;
3358
3359    virtual HRESULT STDMETHODCALLTYPE put_WorkingDirectory(
3360        BSTR bs) = 0;
3361
3362    virtual HRESULT STDMETHODCALLTYPE get_Arguments(
3363        BSTR *pbs) = 0;
3364
3365    virtual HRESULT STDMETHODCALLTYPE put_Arguments(
3366        BSTR bs) = 0;
3367
3368    virtual HRESULT STDMETHODCALLTYPE get_Hotkey(
3369        int *piHK) = 0;
3370
3371    virtual HRESULT STDMETHODCALLTYPE put_Hotkey(
3372        int iHK) = 0;
3373
3374    virtual HRESULT STDMETHODCALLTYPE get_ShowCommand(
3375        int *piShowCommand) = 0;
3376
3377    virtual HRESULT STDMETHODCALLTYPE put_ShowCommand(
3378        int iShowCommand) = 0;
3379
3380    virtual HRESULT STDMETHODCALLTYPE Resolve(
3381        int fFlags) = 0;
3382
3383    virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
3384        BSTR *pbs,
3385        int *piIcon) = 0;
3386
3387    virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
3388        BSTR bs,
3389        int iIcon) = 0;
3390
3391    virtual HRESULT STDMETHODCALLTYPE Save(
3392        VARIANT vWhere) = 0;
3393
3394};
3395#ifdef __CRT_UUID_DECL
3396__CRT_UUID_DECL(IShellLinkDual, 0x88a05c00, 0xf000, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
3397#endif
3398#else
3399typedef struct IShellLinkDualVtbl {
3400    BEGIN_INTERFACE
3401
3402    /*** IUnknown methods ***/
3403    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3404        IShellLinkDual* This,
3405        REFIID riid,
3406        void **ppvObject);
3407
3408    ULONG (STDMETHODCALLTYPE *AddRef)(
3409        IShellLinkDual* This);
3410
3411    ULONG (STDMETHODCALLTYPE *Release)(
3412        IShellLinkDual* This);
3413
3414    /*** IDispatch methods ***/
3415    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
3416        IShellLinkDual* This,
3417        UINT *pctinfo);
3418
3419    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3420        IShellLinkDual* This,
3421        UINT iTInfo,
3422        LCID lcid,
3423        ITypeInfo **ppTInfo);
3424
3425    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3426        IShellLinkDual* This,
3427        REFIID riid,
3428        LPOLESTR *rgszNames,
3429        UINT cNames,
3430        LCID lcid,
3431        DISPID *rgDispId);
3432
3433    HRESULT (STDMETHODCALLTYPE *Invoke)(
3434        IShellLinkDual* This,
3435        DISPID dispIdMember,
3436        REFIID riid,
3437        LCID lcid,
3438        WORD wFlags,
3439        DISPPARAMS *pDispParams,
3440        VARIANT *pVarResult,
3441        EXCEPINFO *pExcepInfo,
3442        UINT *puArgErr);
3443
3444    /*** IShellLinkDual methods ***/
3445    HRESULT (STDMETHODCALLTYPE *get_Path)(
3446        IShellLinkDual* This,
3447        BSTR *pbs);
3448
3449    HRESULT (STDMETHODCALLTYPE *put_Path)(
3450        IShellLinkDual* This,
3451        BSTR bs);
3452
3453    HRESULT (STDMETHODCALLTYPE *get_Description)(
3454        IShellLinkDual* This,
3455        BSTR *pbs);
3456
3457    HRESULT (STDMETHODCALLTYPE *put_Description)(
3458        IShellLinkDual* This,
3459        BSTR bs);
3460
3461    HRESULT (STDMETHODCALLTYPE *get_WorkingDirectory)(
3462        IShellLinkDual* This,
3463        BSTR *pbs);
3464
3465    HRESULT (STDMETHODCALLTYPE *put_WorkingDirectory)(
3466        IShellLinkDual* This,
3467        BSTR bs);
3468
3469    HRESULT (STDMETHODCALLTYPE *get_Arguments)(
3470        IShellLinkDual* This,
3471        BSTR *pbs);
3472
3473    HRESULT (STDMETHODCALLTYPE *put_Arguments)(
3474        IShellLinkDual* This,
3475        BSTR bs);
3476
3477    HRESULT (STDMETHODCALLTYPE *get_Hotkey)(
3478        IShellLinkDual* This,
3479        int *piHK);
3480
3481    HRESULT (STDMETHODCALLTYPE *put_Hotkey)(
3482        IShellLinkDual* This,
3483        int iHK);
3484
3485    HRESULT (STDMETHODCALLTYPE *get_ShowCommand)(
3486        IShellLinkDual* This,
3487        int *piShowCommand);
3488
3489    HRESULT (STDMETHODCALLTYPE *put_ShowCommand)(
3490        IShellLinkDual* This,
3491        int iShowCommand);
3492
3493    HRESULT (STDMETHODCALLTYPE *Resolve)(
3494        IShellLinkDual* This,
3495        int fFlags);
3496
3497    HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3498        IShellLinkDual* This,
3499        BSTR *pbs,
3500        int *piIcon);
3501
3502    HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
3503        IShellLinkDual* This,
3504        BSTR bs,
3505        int iIcon);
3506
3507    HRESULT (STDMETHODCALLTYPE *Save)(
3508        IShellLinkDual* This,
3509        VARIANT vWhere);
3510
3511    END_INTERFACE
3512} IShellLinkDualVtbl;
3513interface IShellLinkDual {
3514    CONST_VTBL IShellLinkDualVtbl* lpVtbl;
3515};
3516
3517#ifdef COBJMACROS
3518#ifndef WIDL_C_INLINE_WRAPPERS
3519/*** IUnknown methods ***/
3520#define IShellLinkDual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3521#define IShellLinkDual_AddRef(This) (This)->lpVtbl->AddRef(This)
3522#define IShellLinkDual_Release(This) (This)->lpVtbl->Release(This)
3523/*** IDispatch methods ***/
3524#define IShellLinkDual_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
3525#define IShellLinkDual_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
3526#define IShellLinkDual_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
3527#define IShellLinkDual_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3528/*** IShellLinkDual methods ***/
3529#define IShellLinkDual_get_Path(This,pbs) (This)->lpVtbl->get_Path(This,pbs)
3530#define IShellLinkDual_put_Path(This,bs) (This)->lpVtbl->put_Path(This,bs)
3531#define IShellLinkDual_get_Description(This,pbs) (This)->lpVtbl->get_Description(This,pbs)
3532#define IShellLinkDual_put_Description(This,bs) (This)->lpVtbl->put_Description(This,bs)
3533#define IShellLinkDual_get_WorkingDirectory(This,pbs) (This)->lpVtbl->get_WorkingDirectory(This,pbs)
3534#define IShellLinkDual_put_WorkingDirectory(This,bs) (This)->lpVtbl->put_WorkingDirectory(This,bs)
3535#define IShellLinkDual_get_Arguments(This,pbs) (This)->lpVtbl->get_Arguments(This,pbs)
3536#define IShellLinkDual_put_Arguments(This,bs) (This)->lpVtbl->put_Arguments(This,bs)
3537#define IShellLinkDual_get_Hotkey(This,piHK) (This)->lpVtbl->get_Hotkey(This,piHK)
3538#define IShellLinkDual_put_Hotkey(This,iHK) (This)->lpVtbl->put_Hotkey(This,iHK)
3539#define IShellLinkDual_get_ShowCommand(This,piShowCommand) (This)->lpVtbl->get_ShowCommand(This,piShowCommand)
3540#define IShellLinkDual_put_ShowCommand(This,iShowCommand) (This)->lpVtbl->put_ShowCommand(This,iShowCommand)
3541#define IShellLinkDual_Resolve(This,fFlags) (This)->lpVtbl->Resolve(This,fFlags)
3542#define IShellLinkDual_GetIconLocation(This,pbs,piIcon) (This)->lpVtbl->GetIconLocation(This,pbs,piIcon)
3543#define IShellLinkDual_SetIconLocation(This,bs,iIcon) (This)->lpVtbl->SetIconLocation(This,bs,iIcon)
3544#define IShellLinkDual_Save(This,vWhere) (This)->lpVtbl->Save(This,vWhere)
3545#else
3546/*** IUnknown methods ***/
3547static FORCEINLINE HRESULT IShellLinkDual_QueryInterface(IShellLinkDual* This,REFIID riid,void **ppvObject) {
3548    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3549}
3550static FORCEINLINE ULONG IShellLinkDual_AddRef(IShellLinkDual* This) {
3551    return This->lpVtbl->AddRef(This);
3552}
3553static FORCEINLINE ULONG IShellLinkDual_Release(IShellLinkDual* This) {
3554    return This->lpVtbl->Release(This);
3555}
3556/*** IDispatch methods ***/
3557static FORCEINLINE HRESULT IShellLinkDual_GetTypeInfoCount(IShellLinkDual* This,UINT *pctinfo) {
3558    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3559}
3560static FORCEINLINE HRESULT IShellLinkDual_GetTypeInfo(IShellLinkDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3561    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3562}
3563static FORCEINLINE HRESULT IShellLinkDual_GetIDsOfNames(IShellLinkDual* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
3564    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
3565}
3566static FORCEINLINE HRESULT IShellLinkDual_Invoke(IShellLinkDual* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3567    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3568}
3569/*** IShellLinkDual methods ***/
3570static FORCEINLINE HRESULT IShellLinkDual_get_Path(IShellLinkDual* This,BSTR *pbs) {
3571    return This->lpVtbl->get_Path(This,pbs);
3572}
3573static FORCEINLINE HRESULT IShellLinkDual_put_Path(IShellLinkDual* This,BSTR bs) {
3574    return This->lpVtbl->put_Path(This,bs);
3575}
3576static FORCEINLINE HRESULT IShellLinkDual_get_Description(IShellLinkDual* This,BSTR *pbs) {
3577    return This->lpVtbl->get_Description(This,pbs);
3578}
3579static FORCEINLINE HRESULT IShellLinkDual_put_Description(IShellLinkDual* This,BSTR bs) {
3580    return This->lpVtbl->put_Description(This,bs);
3581}
3582static FORCEINLINE HRESULT IShellLinkDual_get_WorkingDirectory(IShellLinkDual* This,BSTR *pbs) {
3583    return This->lpVtbl->get_WorkingDirectory(This,pbs);
3584}
3585static FORCEINLINE HRESULT IShellLinkDual_put_WorkingDirectory(IShellLinkDual* This,BSTR bs) {
3586    return This->lpVtbl->put_WorkingDirectory(This,bs);
3587}
3588static FORCEINLINE HRESULT IShellLinkDual_get_Arguments(IShellLinkDual* This,BSTR *pbs) {
3589    return This->lpVtbl->get_Arguments(This,pbs);
3590}
3591static FORCEINLINE HRESULT IShellLinkDual_put_Arguments(IShellLinkDual* This,BSTR bs) {
3592    return This->lpVtbl->put_Arguments(This,bs);
3593}
3594static FORCEINLINE HRESULT IShellLinkDual_get_Hotkey(IShellLinkDual* This,int *piHK) {
3595    return This->lpVtbl->get_Hotkey(This,piHK);
3596}
3597static FORCEINLINE HRESULT IShellLinkDual_put_Hotkey(IShellLinkDual* This,int iHK) {
3598    return This->lpVtbl->put_Hotkey(This,iHK);
3599}
3600static FORCEINLINE HRESULT IShellLinkDual_get_ShowCommand(IShellLinkDual* This,int *piShowCommand) {
3601    return This->lpVtbl->get_ShowCommand(This,piShowCommand);
3602}
3603static FORCEINLINE HRESULT IShellLinkDual_put_ShowCommand(IShellLinkDual* This,int iShowCommand) {
3604    return This->lpVtbl->put_ShowCommand(This,iShowCommand);
3605}
3606static FORCEINLINE HRESULT IShellLinkDual_Resolve(IShellLinkDual* This,int fFlags) {
3607    return This->lpVtbl->Resolve(This,fFlags);
3608}
3609static FORCEINLINE HRESULT IShellLinkDual_GetIconLocation(IShellLinkDual* This,BSTR *pbs,int *piIcon) {
3610    return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
3611}
3612static FORCEINLINE HRESULT IShellLinkDual_SetIconLocation(IShellLinkDual* This,BSTR bs,int iIcon) {
3613    return This->lpVtbl->SetIconLocation(This,bs,iIcon);
3614}
3615static FORCEINLINE HRESULT IShellLinkDual_Save(IShellLinkDual* This,VARIANT vWhere) {
3616    return This->lpVtbl->Save(This,vWhere);
3617}
3618#endif
3619#endif
3620
3621#endif
3622
3623HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Path_Proxy(
3624    IShellLinkDual* This,
3625    BSTR *pbs);
3626void __RPC_STUB IShellLinkDual_get_Path_Stub(
3627    IRpcStubBuffer* This,
3628    IRpcChannelBuffer* pRpcChannelBuffer,
3629    PRPC_MESSAGE pRpcMessage,
3630    DWORD* pdwStubPhase);
3631HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Path_Proxy(
3632    IShellLinkDual* This,
3633    BSTR bs);
3634void __RPC_STUB IShellLinkDual_put_Path_Stub(
3635    IRpcStubBuffer* This,
3636    IRpcChannelBuffer* pRpcChannelBuffer,
3637    PRPC_MESSAGE pRpcMessage,
3638    DWORD* pdwStubPhase);
3639HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Description_Proxy(
3640    IShellLinkDual* This,
3641    BSTR *pbs);
3642void __RPC_STUB IShellLinkDual_get_Description_Stub(
3643    IRpcStubBuffer* This,
3644    IRpcChannelBuffer* pRpcChannelBuffer,
3645    PRPC_MESSAGE pRpcMessage,
3646    DWORD* pdwStubPhase);
3647HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Description_Proxy(
3648    IShellLinkDual* This,
3649    BSTR bs);
3650void __RPC_STUB IShellLinkDual_put_Description_Stub(
3651    IRpcStubBuffer* This,
3652    IRpcChannelBuffer* pRpcChannelBuffer,
3653    PRPC_MESSAGE pRpcMessage,
3654    DWORD* pdwStubPhase);
3655HRESULT STDMETHODCALLTYPE IShellLinkDual_get_WorkingDirectory_Proxy(
3656    IShellLinkDual* This,
3657    BSTR *pbs);
3658void __RPC_STUB IShellLinkDual_get_WorkingDirectory_Stub(
3659    IRpcStubBuffer* This,
3660    IRpcChannelBuffer* pRpcChannelBuffer,
3661    PRPC_MESSAGE pRpcMessage,
3662    DWORD* pdwStubPhase);
3663HRESULT STDMETHODCALLTYPE IShellLinkDual_put_WorkingDirectory_Proxy(
3664    IShellLinkDual* This,
3665    BSTR bs);
3666void __RPC_STUB IShellLinkDual_put_WorkingDirectory_Stub(
3667    IRpcStubBuffer* This,
3668    IRpcChannelBuffer* pRpcChannelBuffer,
3669    PRPC_MESSAGE pRpcMessage,
3670    DWORD* pdwStubPhase);
3671HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Arguments_Proxy(
3672    IShellLinkDual* This,
3673    BSTR *pbs);
3674void __RPC_STUB IShellLinkDual_get_Arguments_Stub(
3675    IRpcStubBuffer* This,
3676    IRpcChannelBuffer* pRpcChannelBuffer,
3677    PRPC_MESSAGE pRpcMessage,
3678    DWORD* pdwStubPhase);
3679HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Arguments_Proxy(
3680    IShellLinkDual* This,
3681    BSTR bs);
3682void __RPC_STUB IShellLinkDual_put_Arguments_Stub(
3683    IRpcStubBuffer* This,
3684    IRpcChannelBuffer* pRpcChannelBuffer,
3685    PRPC_MESSAGE pRpcMessage,
3686    DWORD* pdwStubPhase);
3687HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Hotkey_Proxy(
3688    IShellLinkDual* This,
3689    int *piHK);
3690void __RPC_STUB IShellLinkDual_get_Hotkey_Stub(
3691    IRpcStubBuffer* This,
3692    IRpcChannelBuffer* pRpcChannelBuffer,
3693    PRPC_MESSAGE pRpcMessage,
3694    DWORD* pdwStubPhase);
3695HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Hotkey_Proxy(
3696    IShellLinkDual* This,
3697    int iHK);
3698void __RPC_STUB IShellLinkDual_put_Hotkey_Stub(
3699    IRpcStubBuffer* This,
3700    IRpcChannelBuffer* pRpcChannelBuffer,
3701    PRPC_MESSAGE pRpcMessage,
3702    DWORD* pdwStubPhase);
3703HRESULT STDMETHODCALLTYPE IShellLinkDual_get_ShowCommand_Proxy(
3704    IShellLinkDual* This,
3705    int *piShowCommand);
3706void __RPC_STUB IShellLinkDual_get_ShowCommand_Stub(
3707    IRpcStubBuffer* This,
3708    IRpcChannelBuffer* pRpcChannelBuffer,
3709    PRPC_MESSAGE pRpcMessage,
3710    DWORD* pdwStubPhase);
3711HRESULT STDMETHODCALLTYPE IShellLinkDual_put_ShowCommand_Proxy(
3712    IShellLinkDual* This,
3713    int iShowCommand);
3714void __RPC_STUB IShellLinkDual_put_ShowCommand_Stub(
3715    IRpcStubBuffer* This,
3716    IRpcChannelBuffer* pRpcChannelBuffer,
3717    PRPC_MESSAGE pRpcMessage,
3718    DWORD* pdwStubPhase);
3719HRESULT STDMETHODCALLTYPE IShellLinkDual_Resolve_Proxy(
3720    IShellLinkDual* This,
3721    int fFlags);
3722void __RPC_STUB IShellLinkDual_Resolve_Stub(
3723    IRpcStubBuffer* This,
3724    IRpcChannelBuffer* pRpcChannelBuffer,
3725    PRPC_MESSAGE pRpcMessage,
3726    DWORD* pdwStubPhase);
3727HRESULT STDMETHODCALLTYPE IShellLinkDual_GetIconLocation_Proxy(
3728    IShellLinkDual* This,
3729    BSTR *pbs,
3730    int *piIcon);
3731void __RPC_STUB IShellLinkDual_GetIconLocation_Stub(
3732    IRpcStubBuffer* This,
3733    IRpcChannelBuffer* pRpcChannelBuffer,
3734    PRPC_MESSAGE pRpcMessage,
3735    DWORD* pdwStubPhase);
3736HRESULT STDMETHODCALLTYPE IShellLinkDual_SetIconLocation_Proxy(
3737    IShellLinkDual* This,
3738    BSTR bs,
3739    int iIcon);
3740void __RPC_STUB IShellLinkDual_SetIconLocation_Stub(
3741    IRpcStubBuffer* This,
3742    IRpcChannelBuffer* pRpcChannelBuffer,
3743    PRPC_MESSAGE pRpcMessage,
3744    DWORD* pdwStubPhase);
3745HRESULT STDMETHODCALLTYPE IShellLinkDual_Save_Proxy(
3746    IShellLinkDual* This,
3747    VARIANT vWhere);
3748void __RPC_STUB IShellLinkDual_Save_Stub(
3749    IRpcStubBuffer* This,
3750    IRpcChannelBuffer* pRpcChannelBuffer,
3751    PRPC_MESSAGE pRpcMessage,
3752    DWORD* pdwStubPhase);
3753
3754#endif  /* __IShellLinkDual_INTERFACE_DEFINED__ */
3755
3756/*****************************************************************************
3757 * IShellLinkDual2 interface
3758 */
3759#ifndef __IShellLinkDual2_INTERFACE_DEFINED__
3760#define __IShellLinkDual2_INTERFACE_DEFINED__
3761
3762DEFINE_GUID(IID_IShellLinkDual2, 0x317ee249, 0xf12e, 0x11d2, 0xb1,0xe4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
3763#if defined(__cplusplus) && !defined(CINTERFACE)
3764MIDL_INTERFACE("317ee249-f12e-11d2-b1e4-00c04f8eeb3e")
3765IShellLinkDual2 : public IShellLinkDual
3766{
3767    virtual HRESULT STDMETHODCALLTYPE get_Target(
3768        FolderItem **ppfi) = 0;
3769
3770};
3771#ifdef __CRT_UUID_DECL
3772__CRT_UUID_DECL(IShellLinkDual2, 0x317ee249, 0xf12e, 0x11d2, 0xb1,0xe4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
3773#endif
3774#else
3775typedef struct IShellLinkDual2Vtbl {
3776    BEGIN_INTERFACE
3777
3778    /*** IUnknown methods ***/
3779    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3780        IShellLinkDual2* This,
3781        REFIID riid,
3782        void **ppvObject);
3783
3784    ULONG (STDMETHODCALLTYPE *AddRef)(
3785        IShellLinkDual2* This);
3786
3787    ULONG (STDMETHODCALLTYPE *Release)(
3788        IShellLinkDual2* This);
3789
3790    /*** IDispatch methods ***/
3791    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
3792        IShellLinkDual2* This,
3793        UINT *pctinfo);
3794
3795    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
3796        IShellLinkDual2* This,
3797        UINT iTInfo,
3798        LCID lcid,
3799        ITypeInfo **ppTInfo);
3800
3801    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
3802        IShellLinkDual2* This,
3803        REFIID riid,
3804        LPOLESTR *rgszNames,
3805        UINT cNames,
3806        LCID lcid,
3807        DISPID *rgDispId);
3808
3809    HRESULT (STDMETHODCALLTYPE *Invoke)(
3810        IShellLinkDual2* This,
3811        DISPID dispIdMember,
3812        REFIID riid,
3813        LCID lcid,
3814        WORD wFlags,
3815        DISPPARAMS *pDispParams,
3816        VARIANT *pVarResult,
3817        EXCEPINFO *pExcepInfo,
3818        UINT *puArgErr);
3819
3820    /*** IShellLinkDual methods ***/
3821    HRESULT (STDMETHODCALLTYPE *get_Path)(
3822        IShellLinkDual2* This,
3823        BSTR *pbs);
3824
3825    HRESULT (STDMETHODCALLTYPE *put_Path)(
3826        IShellLinkDual2* This,
3827        BSTR bs);
3828
3829    HRESULT (STDMETHODCALLTYPE *get_Description)(
3830        IShellLinkDual2* This,
3831        BSTR *pbs);
3832
3833    HRESULT (STDMETHODCALLTYPE *put_Description)(
3834        IShellLinkDual2* This,
3835        BSTR bs);
3836
3837    HRESULT (STDMETHODCALLTYPE *get_WorkingDirectory)(
3838        IShellLinkDual2* This,
3839        BSTR *pbs);
3840
3841    HRESULT (STDMETHODCALLTYPE *put_WorkingDirectory)(
3842        IShellLinkDual2* This,
3843        BSTR bs);
3844
3845    HRESULT (STDMETHODCALLTYPE *get_Arguments)(
3846        IShellLinkDual2* This,
3847        BSTR *pbs);
3848
3849    HRESULT (STDMETHODCALLTYPE *put_Arguments)(
3850        IShellLinkDual2* This,
3851        BSTR bs);
3852
3853    HRESULT (STDMETHODCALLTYPE *get_Hotkey)(
3854        IShellLinkDual2* This,
3855        int *piHK);
3856
3857    HRESULT (STDMETHODCALLTYPE *put_Hotkey)(
3858        IShellLinkDual2* This,
3859        int iHK);
3860
3861    HRESULT (STDMETHODCALLTYPE *get_ShowCommand)(
3862        IShellLinkDual2* This,
3863        int *piShowCommand);
3864
3865    HRESULT (STDMETHODCALLTYPE *put_ShowCommand)(
3866        IShellLinkDual2* This,
3867        int iShowCommand);
3868
3869    HRESULT (STDMETHODCALLTYPE *Resolve)(
3870        IShellLinkDual2* This,
3871        int fFlags);
3872
3873    HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
3874        IShellLinkDual2* This,
3875        BSTR *pbs,
3876        int *piIcon);
3877
3878    HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
3879        IShellLinkDual2* This,
3880        BSTR bs,
3881        int iIcon);
3882
3883    HRESULT (STDMETHODCALLTYPE *Save)(
3884        IShellLinkDual2* This,
3885        VARIANT vWhere);
3886
3887    /*** IShellLinkDual2 methods ***/
3888    HRESULT (STDMETHODCALLTYPE *get_Target)(
3889        IShellLinkDual2* This,
3890        FolderItem **ppfi);
3891
3892    END_INTERFACE
3893} IShellLinkDual2Vtbl;
3894interface IShellLinkDual2 {
3895    CONST_VTBL IShellLinkDual2Vtbl* lpVtbl;
3896};
3897
3898#ifdef COBJMACROS
3899#ifndef WIDL_C_INLINE_WRAPPERS
3900/*** IUnknown methods ***/
3901#define IShellLinkDual2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3902#define IShellLinkDual2_AddRef(This) (This)->lpVtbl->AddRef(This)
3903#define IShellLinkDual2_Release(This) (This)->lpVtbl->Release(This)
3904/*** IDispatch methods ***/
3905#define IShellLinkDual2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
3906#define IShellLinkDual2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
3907#define IShellLinkDual2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
3908#define IShellLinkDual2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
3909/*** IShellLinkDual methods ***/
3910#define IShellLinkDual2_get_Path(This,pbs) (This)->lpVtbl->get_Path(This,pbs)
3911#define IShellLinkDual2_put_Path(This,bs) (This)->lpVtbl->put_Path(This,bs)
3912#define IShellLinkDual2_get_Description(This,pbs) (This)->lpVtbl->get_Description(This,pbs)
3913#define IShellLinkDual2_put_Description(This,bs) (This)->lpVtbl->put_Description(This,bs)
3914#define IShellLinkDual2_get_WorkingDirectory(This,pbs) (This)->lpVtbl->get_WorkingDirectory(This,pbs)
3915#define IShellLinkDual2_put_WorkingDirectory(This,bs) (This)->lpVtbl->put_WorkingDirectory(This,bs)
3916#define IShellLinkDual2_get_Arguments(This,pbs) (This)->lpVtbl->get_Arguments(This,pbs)
3917#define IShellLinkDual2_put_Arguments(This,bs) (This)->lpVtbl->put_Arguments(This,bs)
3918#define IShellLinkDual2_get_Hotkey(This,piHK) (This)->lpVtbl->get_Hotkey(This,piHK)
3919#define IShellLinkDual2_put_Hotkey(This,iHK) (This)->lpVtbl->put_Hotkey(This,iHK)
3920#define IShellLinkDual2_get_ShowCommand(This,piShowCommand) (This)->lpVtbl->get_ShowCommand(This,piShowCommand)
3921#define IShellLinkDual2_put_ShowCommand(This,iShowCommand) (This)->lpVtbl->put_ShowCommand(This,iShowCommand)
3922#define IShellLinkDual2_Resolve(This,fFlags) (This)->lpVtbl->Resolve(This,fFlags)
3923#define IShellLinkDual2_GetIconLocation(This,pbs,piIcon) (This)->lpVtbl->GetIconLocation(This,pbs,piIcon)
3924#define IShellLinkDual2_SetIconLocation(This,bs,iIcon) (This)->lpVtbl->SetIconLocation(This,bs,iIcon)
3925#define IShellLinkDual2_Save(This,vWhere) (This)->lpVtbl->Save(This,vWhere)
3926/*** IShellLinkDual2 methods ***/
3927#define IShellLinkDual2_get_Target(This,ppfi) (This)->lpVtbl->get_Target(This,ppfi)
3928#else
3929/*** IUnknown methods ***/
3930static FORCEINLINE HRESULT IShellLinkDual2_QueryInterface(IShellLinkDual2* This,REFIID riid,void **ppvObject) {
3931    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3932}
3933static FORCEINLINE ULONG IShellLinkDual2_AddRef(IShellLinkDual2* This) {
3934    return This->lpVtbl->AddRef(This);
3935}
3936static FORCEINLINE ULONG IShellLinkDual2_Release(IShellLinkDual2* This) {
3937    return This->lpVtbl->Release(This);
3938}
3939/*** IDispatch methods ***/
3940static FORCEINLINE HRESULT IShellLinkDual2_GetTypeInfoCount(IShellLinkDual2* This,UINT *pctinfo) {
3941    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3942}
3943static FORCEINLINE HRESULT IShellLinkDual2_GetTypeInfo(IShellLinkDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3944    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3945}
3946static FORCEINLINE HRESULT IShellLinkDual2_GetIDsOfNames(IShellLinkDual2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
3947    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
3948}
3949static FORCEINLINE HRESULT IShellLinkDual2_Invoke(IShellLinkDual2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
3950    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
3951}
3952/*** IShellLinkDual methods ***/
3953static FORCEINLINE HRESULT IShellLinkDual2_get_Path(IShellLinkDual2* This,BSTR *pbs) {
3954    return This->lpVtbl->get_Path(This,pbs);
3955}
3956static FORCEINLINE HRESULT IShellLinkDual2_put_Path(IShellLinkDual2* This,BSTR bs) {
3957    return This->lpVtbl->put_Path(This,bs);
3958}
3959static FORCEINLINE HRESULT IShellLinkDual2_get_Description(IShellLinkDual2* This,BSTR *pbs) {
3960    return This->lpVtbl->get_Description(This,pbs);
3961}
3962static FORCEINLINE HRESULT IShellLinkDual2_put_Description(IShellLinkDual2* This,BSTR bs) {
3963    return This->lpVtbl->put_Description(This,bs);
3964}
3965static FORCEINLINE HRESULT IShellLinkDual2_get_WorkingDirectory(IShellLinkDual2* This,BSTR *pbs) {
3966    return This->lpVtbl->get_WorkingDirectory(This,pbs);
3967}
3968static FORCEINLINE HRESULT IShellLinkDual2_put_WorkingDirectory(IShellLinkDual2* This,BSTR bs) {
3969    return This->lpVtbl->put_WorkingDirectory(This,bs);
3970}
3971static FORCEINLINE HRESULT IShellLinkDual2_get_Arguments(IShellLinkDual2* This,BSTR *pbs) {
3972    return This->lpVtbl->get_Arguments(This,pbs);
3973}
3974static FORCEINLINE HRESULT IShellLinkDual2_put_Arguments(IShellLinkDual2* This,BSTR bs) {
3975    return This->lpVtbl->put_Arguments(This,bs);
3976}
3977static FORCEINLINE HRESULT IShellLinkDual2_get_Hotkey(IShellLinkDual2* This,int *piHK) {
3978    return This->lpVtbl->get_Hotkey(This,piHK);
3979}
3980static FORCEINLINE HRESULT IShellLinkDual2_put_Hotkey(IShellLinkDual2* This,int iHK) {
3981    return This->lpVtbl->put_Hotkey(This,iHK);
3982}
3983static FORCEINLINE HRESULT IShellLinkDual2_get_ShowCommand(IShellLinkDual2* This,int *piShowCommand) {
3984    return This->lpVtbl->get_ShowCommand(This,piShowCommand);
3985}
3986static FORCEINLINE HRESULT IShellLinkDual2_put_ShowCommand(IShellLinkDual2* This,int iShowCommand) {
3987    return This->lpVtbl->put_ShowCommand(This,iShowCommand);
3988}
3989static FORCEINLINE HRESULT IShellLinkDual2_Resolve(IShellLinkDual2* This,int fFlags) {
3990    return This->lpVtbl->Resolve(This,fFlags);
3991}
3992static FORCEINLINE HRESULT IShellLinkDual2_GetIconLocation(IShellLinkDual2* This,BSTR *pbs,int *piIcon) {
3993    return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
3994}
3995static FORCEINLINE HRESULT IShellLinkDual2_SetIconLocation(IShellLinkDual2* This,BSTR bs,int iIcon) {
3996    return This->lpVtbl->SetIconLocation(This,bs,iIcon);
3997}
3998static FORCEINLINE HRESULT IShellLinkDual2_Save(IShellLinkDual2* This,VARIANT vWhere) {
3999    return This->lpVtbl->Save(This,vWhere);
4000}
4001/*** IShellLinkDual2 methods ***/
4002static FORCEINLINE HRESULT IShellLinkDual2_get_Target(IShellLinkDual2* This,FolderItem **ppfi) {
4003    return This->lpVtbl->get_Target(This,ppfi);
4004}
4005#endif
4006#endif
4007
4008#endif
4009
4010HRESULT STDMETHODCALLTYPE IShellLinkDual2_get_Target_Proxy(
4011    IShellLinkDual2* This,
4012    FolderItem **ppfi);
4013void __RPC_STUB IShellLinkDual2_get_Target_Stub(
4014    IRpcStubBuffer* This,
4015    IRpcChannelBuffer* pRpcChannelBuffer,
4016    PRPC_MESSAGE pRpcMessage,
4017    DWORD* pdwStubPhase);
4018
4019#endif  /* __IShellLinkDual2_INTERFACE_DEFINED__ */
4020
4021/*****************************************************************************
4022 * ShellLinkObject coclass
4023 */
4024
4025DEFINE_GUID(CLSID_ShellLinkObject, 0x11219420, 0x1768, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
4026
4027#ifdef __cplusplus
4028class DECLSPEC_UUID("11219420-1768-11d1-95be-00609797ea4f") ShellLinkObject;
4029#ifdef __CRT_UUID_DECL
4030__CRT_UUID_DECL(ShellLinkObject, 0x11219420, 0x1768, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f)
4031#endif
4032#endif
4033
4034/*****************************************************************************
4035 * IShellFolderViewDual interface
4036 */
4037#ifndef __IShellFolderViewDual_INTERFACE_DEFINED__
4038#define __IShellFolderViewDual_INTERFACE_DEFINED__
4039
4040DEFINE_GUID(IID_IShellFolderViewDual, 0xe7a1af80, 0x4d96, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
4041#if defined(__cplusplus) && !defined(CINTERFACE)
4042MIDL_INTERFACE("e7a1af80-4d96-11cf-960c-0080c7f4ee85")
4043IShellFolderViewDual : public IDispatch
4044{
4045    virtual HRESULT STDMETHODCALLTYPE get_Application(
4046        IDispatch **ppid) = 0;
4047
4048    virtual HRESULT STDMETHODCALLTYPE get_Parent(
4049        IDispatch **ppid) = 0;
4050
4051    virtual HRESULT STDMETHODCALLTYPE get_Folder(
4052        Folder **ppid) = 0;
4053
4054    virtual HRESULT STDMETHODCALLTYPE SelectedItems(
4055        FolderItems **ppid) = 0;
4056
4057    virtual HRESULT STDMETHODCALLTYPE get_FocusedItem(
4058        FolderItem **ppid) = 0;
4059
4060    virtual HRESULT STDMETHODCALLTYPE SelectItem(
4061        VARIANT *pvfi,
4062        int dwFlags) = 0;
4063
4064    virtual HRESULT STDMETHODCALLTYPE PopupItemMenu(
4065        FolderItem *pfi,
4066        VARIANT vx,
4067        VARIANT vy,
4068        BSTR *pbs) = 0;
4069
4070    virtual HRESULT STDMETHODCALLTYPE get_Script(
4071        IDispatch **ppDisp) = 0;
4072
4073    virtual HRESULT STDMETHODCALLTYPE get_ViewOptions(
4074        LONG *plViewOptions) = 0;
4075
4076};
4077#ifdef __CRT_UUID_DECL
4078__CRT_UUID_DECL(IShellFolderViewDual, 0xe7a1af80, 0x4d96, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85)
4079#endif
4080#else
4081typedef struct IShellFolderViewDualVtbl {
4082    BEGIN_INTERFACE
4083
4084    /*** IUnknown methods ***/
4085    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4086        IShellFolderViewDual* This,
4087        REFIID riid,
4088        void **ppvObject);
4089
4090    ULONG (STDMETHODCALLTYPE *AddRef)(
4091        IShellFolderViewDual* This);
4092
4093    ULONG (STDMETHODCALLTYPE *Release)(
4094        IShellFolderViewDual* This);
4095
4096    /*** IDispatch methods ***/
4097    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4098        IShellFolderViewDual* This,
4099        UINT *pctinfo);
4100
4101    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4102        IShellFolderViewDual* This,
4103        UINT iTInfo,
4104        LCID lcid,
4105        ITypeInfo **ppTInfo);
4106
4107    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
4108        IShellFolderViewDual* This,
4109        REFIID riid,
4110        LPOLESTR *rgszNames,
4111        UINT cNames,
4112        LCID lcid,
4113        DISPID *rgDispId);
4114
4115    HRESULT (STDMETHODCALLTYPE *Invoke)(
4116        IShellFolderViewDual* This,
4117        DISPID dispIdMember,
4118        REFIID riid,
4119        LCID lcid,
4120        WORD wFlags,
4121        DISPPARAMS *pDispParams,
4122        VARIANT *pVarResult,
4123        EXCEPINFO *pExcepInfo,
4124        UINT *puArgErr);
4125
4126    /*** IShellFolderViewDual methods ***/
4127    HRESULT (STDMETHODCALLTYPE *get_Application)(
4128        IShellFolderViewDual* This,
4129        IDispatch **ppid);
4130
4131    HRESULT (STDMETHODCALLTYPE *get_Parent)(
4132        IShellFolderViewDual* This,
4133        IDispatch **ppid);
4134
4135    HRESULT (STDMETHODCALLTYPE *get_Folder)(
4136        IShellFolderViewDual* This,
4137        Folder **ppid);
4138
4139    HRESULT (STDMETHODCALLTYPE *SelectedItems)(
4140        IShellFolderViewDual* This,
4141        FolderItems **ppid);
4142
4143    HRESULT (STDMETHODCALLTYPE *get_FocusedItem)(
4144        IShellFolderViewDual* This,
4145        FolderItem **ppid);
4146
4147    HRESULT (STDMETHODCALLTYPE *SelectItem)(
4148        IShellFolderViewDual* This,
4149        VARIANT *pvfi,
4150        int dwFlags);
4151
4152    HRESULT (STDMETHODCALLTYPE *PopupItemMenu)(
4153        IShellFolderViewDual* This,
4154        FolderItem *pfi,
4155        VARIANT vx,
4156        VARIANT vy,
4157        BSTR *pbs);
4158
4159    HRESULT (STDMETHODCALLTYPE *get_Script)(
4160        IShellFolderViewDual* This,
4161        IDispatch **ppDisp);
4162
4163    HRESULT (STDMETHODCALLTYPE *get_ViewOptions)(
4164        IShellFolderViewDual* This,
4165        LONG *plViewOptions);
4166
4167    END_INTERFACE
4168} IShellFolderViewDualVtbl;
4169interface IShellFolderViewDual {
4170    CONST_VTBL IShellFolderViewDualVtbl* lpVtbl;
4171};
4172
4173#ifdef COBJMACROS
4174#ifndef WIDL_C_INLINE_WRAPPERS
4175/*** IUnknown methods ***/
4176#define IShellFolderViewDual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4177#define IShellFolderViewDual_AddRef(This) (This)->lpVtbl->AddRef(This)
4178#define IShellFolderViewDual_Release(This) (This)->lpVtbl->Release(This)
4179/*** IDispatch methods ***/
4180#define IShellFolderViewDual_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
4181#define IShellFolderViewDual_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
4182#define IShellFolderViewDual_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
4183#define IShellFolderViewDual_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
4184/*** IShellFolderViewDual methods ***/
4185#define IShellFolderViewDual_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
4186#define IShellFolderViewDual_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
4187#define IShellFolderViewDual_get_Folder(This,ppid) (This)->lpVtbl->get_Folder(This,ppid)
4188#define IShellFolderViewDual_SelectedItems(This,ppid) (This)->lpVtbl->SelectedItems(This,ppid)
4189#define IShellFolderViewDual_get_FocusedItem(This,ppid) (This)->lpVtbl->get_FocusedItem(This,ppid)
4190#define IShellFolderViewDual_SelectItem(This,pvfi,dwFlags) (This)->lpVtbl->SelectItem(This,pvfi,dwFlags)
4191#define IShellFolderViewDual_PopupItemMenu(This,pfi,vx,vy,pbs) (This)->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs)
4192#define IShellFolderViewDual_get_Script(This,ppDisp) (This)->lpVtbl->get_Script(This,ppDisp)
4193#define IShellFolderViewDual_get_ViewOptions(This,plViewOptions) (This)->lpVtbl->get_ViewOptions(This,plViewOptions)
4194#else
4195/*** IUnknown methods ***/
4196static FORCEINLINE HRESULT IShellFolderViewDual_QueryInterface(IShellFolderViewDual* This,REFIID riid,void **ppvObject) {
4197    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4198}
4199static FORCEINLINE ULONG IShellFolderViewDual_AddRef(IShellFolderViewDual* This) {
4200    return This->lpVtbl->AddRef(This);
4201}
4202static FORCEINLINE ULONG IShellFolderViewDual_Release(IShellFolderViewDual* This) {
4203    return This->lpVtbl->Release(This);
4204}
4205/*** IDispatch methods ***/
4206static FORCEINLINE HRESULT IShellFolderViewDual_GetTypeInfoCount(IShellFolderViewDual* This,UINT *pctinfo) {
4207    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4208}
4209static FORCEINLINE HRESULT IShellFolderViewDual_GetTypeInfo(IShellFolderViewDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4210    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4211}
4212static FORCEINLINE HRESULT IShellFolderViewDual_GetIDsOfNames(IShellFolderViewDual* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
4213    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
4214}
4215static FORCEINLINE HRESULT IShellFolderViewDual_Invoke(IShellFolderViewDual* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
4216    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
4217}
4218/*** IShellFolderViewDual methods ***/
4219static FORCEINLINE HRESULT IShellFolderViewDual_get_Application(IShellFolderViewDual* This,IDispatch **ppid) {
4220    return This->lpVtbl->get_Application(This,ppid);
4221}
4222static FORCEINLINE HRESULT IShellFolderViewDual_get_Parent(IShellFolderViewDual* This,IDispatch **ppid) {
4223    return This->lpVtbl->get_Parent(This,ppid);
4224}
4225static FORCEINLINE HRESULT IShellFolderViewDual_get_Folder(IShellFolderViewDual* This,Folder **ppid) {
4226    return This->lpVtbl->get_Folder(This,ppid);
4227}
4228static FORCEINLINE HRESULT IShellFolderViewDual_SelectedItems(IShellFolderViewDual* This,FolderItems **ppid) {
4229    return This->lpVtbl->SelectedItems(This,ppid);
4230}
4231static FORCEINLINE HRESULT IShellFolderViewDual_get_FocusedItem(IShellFolderViewDual* This,FolderItem **ppid) {
4232    return This->lpVtbl->get_FocusedItem(This,ppid);
4233}
4234static FORCEINLINE HRESULT IShellFolderViewDual_SelectItem(IShellFolderViewDual* This,VARIANT *pvfi,int dwFlags) {
4235    return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
4236}
4237static FORCEINLINE HRESULT IShellFolderViewDual_PopupItemMenu(IShellFolderViewDual* This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs) {
4238    return This->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs);
4239}
4240static FORCEINLINE HRESULT IShellFolderViewDual_get_Script(IShellFolderViewDual* This,IDispatch **ppDisp) {
4241    return This->lpVtbl->get_Script(This,ppDisp);
4242}
4243static FORCEINLINE HRESULT IShellFolderViewDual_get_ViewOptions(IShellFolderViewDual* This,LONG *plViewOptions) {
4244    return This->lpVtbl->get_ViewOptions(This,plViewOptions);
4245}
4246#endif
4247#endif
4248
4249#endif
4250
4251HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Application_Proxy(
4252    IShellFolderViewDual* This,
4253    IDispatch **ppid);
4254void __RPC_STUB IShellFolderViewDual_get_Application_Stub(
4255    IRpcStubBuffer* This,
4256    IRpcChannelBuffer* pRpcChannelBuffer,
4257    PRPC_MESSAGE pRpcMessage,
4258    DWORD* pdwStubPhase);
4259HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Parent_Proxy(
4260    IShellFolderViewDual* This,
4261    IDispatch **ppid);
4262void __RPC_STUB IShellFolderViewDual_get_Parent_Stub(
4263    IRpcStubBuffer* This,
4264    IRpcChannelBuffer* pRpcChannelBuffer,
4265    PRPC_MESSAGE pRpcMessage,
4266    DWORD* pdwStubPhase);
4267HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Folder_Proxy(
4268    IShellFolderViewDual* This,
4269    Folder **ppid);
4270void __RPC_STUB IShellFolderViewDual_get_Folder_Stub(
4271    IRpcStubBuffer* This,
4272    IRpcChannelBuffer* pRpcChannelBuffer,
4273    PRPC_MESSAGE pRpcMessage,
4274    DWORD* pdwStubPhase);
4275HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectedItems_Proxy(
4276    IShellFolderViewDual* This,
4277    FolderItems **ppid);
4278void __RPC_STUB IShellFolderViewDual_SelectedItems_Stub(
4279    IRpcStubBuffer* This,
4280    IRpcChannelBuffer* pRpcChannelBuffer,
4281    PRPC_MESSAGE pRpcMessage,
4282    DWORD* pdwStubPhase);
4283HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_FocusedItem_Proxy(
4284    IShellFolderViewDual* This,
4285    FolderItem **ppid);
4286void __RPC_STUB IShellFolderViewDual_get_FocusedItem_Stub(
4287    IRpcStubBuffer* This,
4288    IRpcChannelBuffer* pRpcChannelBuffer,
4289    PRPC_MESSAGE pRpcMessage,
4290    DWORD* pdwStubPhase);
4291HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectItem_Proxy(
4292    IShellFolderViewDual* This,
4293    VARIANT *pvfi,
4294    int dwFlags);
4295void __RPC_STUB IShellFolderViewDual_SelectItem_Stub(
4296    IRpcStubBuffer* This,
4297    IRpcChannelBuffer* pRpcChannelBuffer,
4298    PRPC_MESSAGE pRpcMessage,
4299    DWORD* pdwStubPhase);
4300HRESULT STDMETHODCALLTYPE IShellFolderViewDual_PopupItemMenu_Proxy(
4301    IShellFolderViewDual* This,
4302    FolderItem *pfi,
4303    VARIANT vx,
4304    VARIANT vy,
4305    BSTR *pbs);
4306void __RPC_STUB IShellFolderViewDual_PopupItemMenu_Stub(
4307    IRpcStubBuffer* This,
4308    IRpcChannelBuffer* pRpcChannelBuffer,
4309    PRPC_MESSAGE pRpcMessage,
4310    DWORD* pdwStubPhase);
4311HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Script_Proxy(
4312    IShellFolderViewDual* This,
4313    IDispatch **ppDisp);
4314void __RPC_STUB IShellFolderViewDual_get_Script_Stub(
4315    IRpcStubBuffer* This,
4316    IRpcChannelBuffer* pRpcChannelBuffer,
4317    PRPC_MESSAGE pRpcMessage,
4318    DWORD* pdwStubPhase);
4319HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_ViewOptions_Proxy(
4320    IShellFolderViewDual* This,
4321    LONG *plViewOptions);
4322void __RPC_STUB IShellFolderViewDual_get_ViewOptions_Stub(
4323    IRpcStubBuffer* This,
4324    IRpcChannelBuffer* pRpcChannelBuffer,
4325    PRPC_MESSAGE pRpcMessage,
4326    DWORD* pdwStubPhase);
4327
4328#endif  /* __IShellFolderViewDual_INTERFACE_DEFINED__ */
4329
4330/*****************************************************************************
4331 * IShellFolderViewDual2 interface
4332 */
4333#ifndef __IShellFolderViewDual2_INTERFACE_DEFINED__
4334#define __IShellFolderViewDual2_INTERFACE_DEFINED__
4335
4336DEFINE_GUID(IID_IShellFolderViewDual2, 0x31c147b6, 0x0ade, 0x4a3c, 0xb5,0x14, 0xdd,0xf9,0x32,0xef,0x6d,0x17);
4337#if defined(__cplusplus) && !defined(CINTERFACE)
4338MIDL_INTERFACE("31c147b6-0ade-4a3c-b514-ddf932ef6d17")
4339IShellFolderViewDual2 : public IShellFolderViewDual
4340{
4341    virtual HRESULT STDMETHODCALLTYPE get_CurrentViewMode(
4342        UINT *pViewMode) = 0;
4343
4344    virtual HRESULT STDMETHODCALLTYPE put_CurrentViewMode(
4345        UINT ViewMode) = 0;
4346
4347    virtual HRESULT STDMETHODCALLTYPE SelectItemRelative(
4348        int iRelative) = 0;
4349
4350};
4351#ifdef __CRT_UUID_DECL
4352__CRT_UUID_DECL(IShellFolderViewDual2, 0x31c147b6, 0x0ade, 0x4a3c, 0xb5,0x14, 0xdd,0xf9,0x32,0xef,0x6d,0x17)
4353#endif
4354#else
4355typedef struct IShellFolderViewDual2Vtbl {
4356    BEGIN_INTERFACE
4357
4358    /*** IUnknown methods ***/
4359    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4360        IShellFolderViewDual2* This,
4361        REFIID riid,
4362        void **ppvObject);
4363
4364    ULONG (STDMETHODCALLTYPE *AddRef)(
4365        IShellFolderViewDual2* This);
4366
4367    ULONG (STDMETHODCALLTYPE *Release)(
4368        IShellFolderViewDual2* This);
4369
4370    /*** IDispatch methods ***/
4371    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4372        IShellFolderViewDual2* This,
4373        UINT *pctinfo);
4374
4375    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4376        IShellFolderViewDual2* This,
4377        UINT iTInfo,
4378        LCID lcid,
4379        ITypeInfo **ppTInfo);
4380
4381    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
4382        IShellFolderViewDual2* This,
4383        REFIID riid,
4384        LPOLESTR *rgszNames,
4385        UINT cNames,
4386        LCID lcid,
4387        DISPID *rgDispId);
4388
4389    HRESULT (STDMETHODCALLTYPE *Invoke)(
4390        IShellFolderViewDual2* This,
4391        DISPID dispIdMember,
4392        REFIID riid,
4393        LCID lcid,
4394        WORD wFlags,
4395        DISPPARAMS *pDispParams,
4396        VARIANT *pVarResult,
4397        EXCEPINFO *pExcepInfo,
4398        UINT *puArgErr);
4399
4400    /*** IShellFolderViewDual methods ***/
4401    HRESULT (STDMETHODCALLTYPE *get_Application)(
4402        IShellFolderViewDual2* This,
4403        IDispatch **ppid);
4404
4405    HRESULT (STDMETHODCALLTYPE *get_Parent)(
4406        IShellFolderViewDual2* This,
4407        IDispatch **ppid);
4408
4409    HRESULT (STDMETHODCALLTYPE *get_Folder)(
4410        IShellFolderViewDual2* This,
4411        Folder **ppid);
4412
4413    HRESULT (STDMETHODCALLTYPE *SelectedItems)(
4414        IShellFolderViewDual2* This,
4415        FolderItems **ppid);
4416
4417    HRESULT (STDMETHODCALLTYPE *get_FocusedItem)(
4418        IShellFolderViewDual2* This,
4419        FolderItem **ppid);
4420
4421    HRESULT (STDMETHODCALLTYPE *SelectItem)(
4422        IShellFolderViewDual2* This,
4423        VARIANT *pvfi,
4424        int dwFlags);
4425
4426    HRESULT (STDMETHODCALLTYPE *PopupItemMenu)(
4427        IShellFolderViewDual2* This,
4428        FolderItem *pfi,
4429        VARIANT vx,
4430        VARIANT vy,
4431        BSTR *pbs);
4432
4433    HRESULT (STDMETHODCALLTYPE *get_Script)(
4434        IShellFolderViewDual2* This,
4435        IDispatch **ppDisp);
4436
4437    HRESULT (STDMETHODCALLTYPE *get_ViewOptions)(
4438        IShellFolderViewDual2* This,
4439        LONG *plViewOptions);
4440
4441    /*** IShellFolderViewDual2 methods ***/
4442    HRESULT (STDMETHODCALLTYPE *get_CurrentViewMode)(
4443        IShellFolderViewDual2* This,
4444        UINT *pViewMode);
4445
4446    HRESULT (STDMETHODCALLTYPE *put_CurrentViewMode)(
4447        IShellFolderViewDual2* This,
4448        UINT ViewMode);
4449
4450    HRESULT (STDMETHODCALLTYPE *SelectItemRelative)(
4451        IShellFolderViewDual2* This,
4452        int iRelative);
4453
4454    END_INTERFACE
4455} IShellFolderViewDual2Vtbl;
4456interface IShellFolderViewDual2 {
4457    CONST_VTBL IShellFolderViewDual2Vtbl* lpVtbl;
4458};
4459
4460#ifdef COBJMACROS
4461#ifndef WIDL_C_INLINE_WRAPPERS
4462/*** IUnknown methods ***/
4463#define IShellFolderViewDual2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4464#define IShellFolderViewDual2_AddRef(This) (This)->lpVtbl->AddRef(This)
4465#define IShellFolderViewDual2_Release(This) (This)->lpVtbl->Release(This)
4466/*** IDispatch methods ***/
4467#define IShellFolderViewDual2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
4468#define IShellFolderViewDual2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
4469#define IShellFolderViewDual2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
4470#define IShellFolderViewDual2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
4471/*** IShellFolderViewDual methods ***/
4472#define IShellFolderViewDual2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
4473#define IShellFolderViewDual2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
4474#define IShellFolderViewDual2_get_Folder(This,ppid) (This)->lpVtbl->get_Folder(This,ppid)
4475#define IShellFolderViewDual2_SelectedItems(This,ppid) (This)->lpVtbl->SelectedItems(This,ppid)
4476#define IShellFolderViewDual2_get_FocusedItem(This,ppid) (This)->lpVtbl->get_FocusedItem(This,ppid)
4477#define IShellFolderViewDual2_SelectItem(This,pvfi,dwFlags) (This)->lpVtbl->SelectItem(This,pvfi,dwFlags)
4478#define IShellFolderViewDual2_PopupItemMenu(This,pfi,vx,vy,pbs) (This)->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs)
4479#define IShellFolderViewDual2_get_Script(This,ppDisp) (This)->lpVtbl->get_Script(This,ppDisp)
4480#define IShellFolderViewDual2_get_ViewOptions(This,plViewOptions) (This)->lpVtbl->get_ViewOptions(This,plViewOptions)
4481/*** IShellFolderViewDual2 methods ***/
4482#define IShellFolderViewDual2_get_CurrentViewMode(This,pViewMode) (This)->lpVtbl->get_CurrentViewMode(This,pViewMode)
4483#define IShellFolderViewDual2_put_CurrentViewMode(This,ViewMode) (This)->lpVtbl->put_CurrentViewMode(This,ViewMode)
4484#define IShellFolderViewDual2_SelectItemRelative(This,iRelative) (This)->lpVtbl->SelectItemRelative(This,iRelative)
4485#else
4486/*** IUnknown methods ***/
4487static FORCEINLINE HRESULT IShellFolderViewDual2_QueryInterface(IShellFolderViewDual2* This,REFIID riid,void **ppvObject) {
4488    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4489}
4490static FORCEINLINE ULONG IShellFolderViewDual2_AddRef(IShellFolderViewDual2* This) {
4491    return This->lpVtbl->AddRef(This);
4492}
4493static FORCEINLINE ULONG IShellFolderViewDual2_Release(IShellFolderViewDual2* This) {
4494    return This->lpVtbl->Release(This);
4495}
4496/*** IDispatch methods ***/
4497static FORCEINLINE HRESULT IShellFolderViewDual2_GetTypeInfoCount(IShellFolderViewDual2* This,UINT *pctinfo) {
4498    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4499}
4500static FORCEINLINE HRESULT IShellFolderViewDual2_GetTypeInfo(IShellFolderViewDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4501    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4502}
4503static FORCEINLINE HRESULT IShellFolderViewDual2_GetIDsOfNames(IShellFolderViewDual2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
4504    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
4505}
4506static FORCEINLINE HRESULT IShellFolderViewDual2_Invoke(IShellFolderViewDual2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
4507    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
4508}
4509/*** IShellFolderViewDual methods ***/
4510static FORCEINLINE HRESULT IShellFolderViewDual2_get_Application(IShellFolderViewDual2* This,IDispatch **ppid) {
4511    return This->lpVtbl->get_Application(This,ppid);
4512}
4513static FORCEINLINE HRESULT IShellFolderViewDual2_get_Parent(IShellFolderViewDual2* This,IDispatch **ppid) {
4514    return This->lpVtbl->get_Parent(This,ppid);
4515}
4516static FORCEINLINE HRESULT IShellFolderViewDual2_get_Folder(IShellFolderViewDual2* This,Folder **ppid) {
4517    return This->lpVtbl->get_Folder(This,ppid);
4518}
4519static FORCEINLINE HRESULT IShellFolderViewDual2_SelectedItems(IShellFolderViewDual2* This,FolderItems **ppid) {
4520    return This->lpVtbl->SelectedItems(This,ppid);
4521}
4522static FORCEINLINE HRESULT IShellFolderViewDual2_get_FocusedItem(IShellFolderViewDual2* This,FolderItem **ppid) {
4523    return This->lpVtbl->get_FocusedItem(This,ppid);
4524}
4525static FORCEINLINE HRESULT IShellFolderViewDual2_SelectItem(IShellFolderViewDual2* This,VARIANT *pvfi,int dwFlags) {
4526    return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
4527}
4528static FORCEINLINE HRESULT IShellFolderViewDual2_PopupItemMenu(IShellFolderViewDual2* This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs) {
4529    return This->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs);
4530}
4531static FORCEINLINE HRESULT IShellFolderViewDual2_get_Script(IShellFolderViewDual2* This,IDispatch **ppDisp) {
4532    return This->lpVtbl->get_Script(This,ppDisp);
4533}
4534static FORCEINLINE HRESULT IShellFolderViewDual2_get_ViewOptions(IShellFolderViewDual2* This,LONG *plViewOptions) {
4535    return This->lpVtbl->get_ViewOptions(This,plViewOptions);
4536}
4537/*** IShellFolderViewDual2 methods ***/
4538static FORCEINLINE HRESULT IShellFolderViewDual2_get_CurrentViewMode(IShellFolderViewDual2* This,UINT *pViewMode) {
4539    return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
4540}
4541static FORCEINLINE HRESULT IShellFolderViewDual2_put_CurrentViewMode(IShellFolderViewDual2* This,UINT ViewMode) {
4542    return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
4543}
4544static FORCEINLINE HRESULT IShellFolderViewDual2_SelectItemRelative(IShellFolderViewDual2* This,int iRelative) {
4545    return This->lpVtbl->SelectItemRelative(This,iRelative);
4546}
4547#endif
4548#endif
4549
4550#endif
4551
4552HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_get_CurrentViewMode_Proxy(
4553    IShellFolderViewDual2* This,
4554    UINT *pViewMode);
4555void __RPC_STUB IShellFolderViewDual2_get_CurrentViewMode_Stub(
4556    IRpcStubBuffer* This,
4557    IRpcChannelBuffer* pRpcChannelBuffer,
4558    PRPC_MESSAGE pRpcMessage,
4559    DWORD* pdwStubPhase);
4560HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_put_CurrentViewMode_Proxy(
4561    IShellFolderViewDual2* This,
4562    UINT ViewMode);
4563void __RPC_STUB IShellFolderViewDual2_put_CurrentViewMode_Stub(
4564    IRpcStubBuffer* This,
4565    IRpcChannelBuffer* pRpcChannelBuffer,
4566    PRPC_MESSAGE pRpcMessage,
4567    DWORD* pdwStubPhase);
4568HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_SelectItemRelative_Proxy(
4569    IShellFolderViewDual2* This,
4570    int iRelative);
4571void __RPC_STUB IShellFolderViewDual2_SelectItemRelative_Stub(
4572    IRpcStubBuffer* This,
4573    IRpcChannelBuffer* pRpcChannelBuffer,
4574    PRPC_MESSAGE pRpcMessage,
4575    DWORD* pdwStubPhase);
4576
4577#endif  /* __IShellFolderViewDual2_INTERFACE_DEFINED__ */
4578
4579/*****************************************************************************
4580 * IShellFolderViewDual3 interface
4581 */
4582#ifndef __IShellFolderViewDual3_INTERFACE_DEFINED__
4583#define __IShellFolderViewDual3_INTERFACE_DEFINED__
4584
4585DEFINE_GUID(IID_IShellFolderViewDual3, 0x29ec8e6c, 0x46d3, 0x411f, 0xba,0xaa, 0x61,0x1a,0x6c,0x9c,0xac,0x66);
4586#if defined(__cplusplus) && !defined(CINTERFACE)
4587MIDL_INTERFACE("29ec8e6c-46d3-411f-baaa-611a6c9cac66")
4588IShellFolderViewDual3 : public IShellFolderViewDual2
4589{
4590    virtual HRESULT STDMETHODCALLTYPE get_GroupBy(
4591        BSTR *pbstrGroupBy) = 0;
4592
4593    virtual HRESULT STDMETHODCALLTYPE put_GroupBy(
4594        BSTR bstrGroupBy) = 0;
4595
4596    virtual HRESULT STDMETHODCALLTYPE get_FolderFlags(
4597        DWORD *pdwFlags) = 0;
4598
4599    virtual HRESULT STDMETHODCALLTYPE put_FolderFlags(
4600        DWORD dwFlags) = 0;
4601
4602    virtual HRESULT STDMETHODCALLTYPE get_SortColumns(
4603        BSTR *pbstrSortColumns) = 0;
4604
4605    virtual HRESULT STDMETHODCALLTYPE put_SortColumns(
4606        BSTR bstrSortColumns) = 0;
4607
4608    virtual HRESULT STDMETHODCALLTYPE put_IconSize(
4609        int iIconSize) = 0;
4610
4611    virtual HRESULT STDMETHODCALLTYPE get_IconSize(
4612        int *piIconSize) = 0;
4613
4614    virtual HRESULT STDMETHODCALLTYPE FilterView(
4615        BSTR bstrFilterText) = 0;
4616
4617};
4618#ifdef __CRT_UUID_DECL
4619__CRT_UUID_DECL(IShellFolderViewDual3, 0x29ec8e6c, 0x46d3, 0x411f, 0xba,0xaa, 0x61,0x1a,0x6c,0x9c,0xac,0x66)
4620#endif
4621#else
4622typedef struct IShellFolderViewDual3Vtbl {
4623    BEGIN_INTERFACE
4624
4625    /*** IUnknown methods ***/
4626    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4627        IShellFolderViewDual3* This,
4628        REFIID riid,
4629        void **ppvObject);
4630
4631    ULONG (STDMETHODCALLTYPE *AddRef)(
4632        IShellFolderViewDual3* This);
4633
4634    ULONG (STDMETHODCALLTYPE *Release)(
4635        IShellFolderViewDual3* This);
4636
4637    /*** IDispatch methods ***/
4638    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
4639        IShellFolderViewDual3* This,
4640        UINT *pctinfo);
4641
4642    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
4643        IShellFolderViewDual3* This,
4644        UINT iTInfo,
4645        LCID lcid,
4646        ITypeInfo **ppTInfo);
4647
4648    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
4649        IShellFolderViewDual3* This,
4650        REFIID riid,
4651        LPOLESTR *rgszNames,
4652        UINT cNames,
4653        LCID lcid,
4654        DISPID *rgDispId);
4655
4656    HRESULT (STDMETHODCALLTYPE *Invoke)(
4657        IShellFolderViewDual3* This,
4658        DISPID dispIdMember,
4659        REFIID riid,
4660        LCID lcid,
4661        WORD wFlags,
4662        DISPPARAMS *pDispParams,
4663        VARIANT *pVarResult,
4664        EXCEPINFO *pExcepInfo,
4665        UINT *puArgErr);
4666
4667    /*** IShellFolderViewDual methods ***/
4668    HRESULT (STDMETHODCALLTYPE *get_Application)(
4669        IShellFolderViewDual3* This,
4670        IDispatch **ppid);
4671
4672    HRESULT (STDMETHODCALLTYPE *get_Parent)(
4673        IShellFolderViewDual3* This,
4674        IDispatch **ppid);
4675
4676    HRESULT (STDMETHODCALLTYPE *get_Folder)(
4677        IShellFolderViewDual3* This,
4678        Folder **ppid);
4679
4680    HRESULT (STDMETHODCALLTYPE *SelectedItems)(
4681        IShellFolderViewDual3* This,
4682        FolderItems **ppid);
4683
4684    HRESULT (STDMETHODCALLTYPE *get_FocusedItem)(
4685        IShellFolderViewDual3* This,
4686        FolderItem **ppid);
4687
4688    HRESULT (STDMETHODCALLTYPE *SelectItem)(
4689        IShellFolderViewDual3* This,
4690        VARIANT *pvfi,
4691        int dwFlags);
4692
4693    HRESULT (STDMETHODCALLTYPE *PopupItemMenu)(
4694        IShellFolderViewDual3* This,
4695        FolderItem *pfi,
4696        VARIANT vx,
4697        VARIANT vy,
4698        BSTR *pbs);
4699
4700    HRESULT (STDMETHODCALLTYPE *get_Script)(
4701        IShellFolderViewDual3* This,
4702        IDispatch **ppDisp);
4703
4704    HRESULT (STDMETHODCALLTYPE *get_ViewOptions)(
4705        IShellFolderViewDual3* This,
4706        LONG *plViewOptions);
4707
4708    /*** IShellFolderViewDual2 methods ***/
4709    HRESULT (STDMETHODCALLTYPE *get_CurrentViewMode)(
4710        IShellFolderViewDual3* This,
4711        UINT *pViewMode);
4712
4713    HRESULT (STDMETHODCALLTYPE *put_CurrentViewMode)(
4714        IShellFolderViewDual3* This,
4715        UINT ViewMode);
4716
4717    HRESULT (STDMETHODCALLTYPE *SelectItemRelative)(
4718        IShellFolderViewDual3* This,
4719        int iRelative);
4720
4721    /*** IShellFolderViewDual3 methods ***/
4722    HRESULT (STDMETHODCALLTYPE *get_GroupBy)(
4723        IShellFolderViewDual3* This,
4724        BSTR *pbstrGroupBy);
4725
4726    HRESULT (STDMETHODCALLTYPE *put_GroupBy)(
4727        IShellFolderViewDual3* This,
4728        BSTR bstrGroupBy);
4729
4730    HRESULT (STDMETHODCALLTYPE *get_FolderFlags)(
4731        IShellFolderViewDual3* This,
4732        DWORD *pdwFlags);
4733
4734    HRESULT (STDMETHODCALLTYPE *put_FolderFlags)(
4735        IShellFolderViewDual3* This,
4736        DWORD dwFlags);
4737
4738    HRESULT (STDMETHODCALLTYPE *get_SortColumns)(
4739        IShellFolderViewDual3* This,
4740        BSTR *pbstrSortColumns);
4741
4742    HRESULT (STDMETHODCALLTYPE *put_SortColumns)(
4743        IShellFolderViewDual3* This,
4744        BSTR bstrSortColumns);
4745
4746    HRESULT (STDMETHODCALLTYPE *put_IconSize)(
4747        IShellFolderViewDual3* This,
4748        int iIconSize);
4749
4750    HRESULT (STDMETHODCALLTYPE *get_IconSize)(
4751        IShellFolderViewDual3* This,
4752        int *piIconSize);
4753
4754    HRESULT (STDMETHODCALLTYPE *FilterView)(
4755        IShellFolderViewDual3* This,
4756        BSTR bstrFilterText);
4757
4758    END_INTERFACE
4759} IShellFolderViewDual3Vtbl;
4760interface IShellFolderViewDual3 {
4761    CONST_VTBL IShellFolderViewDual3Vtbl* lpVtbl;
4762};
4763
4764#ifdef COBJMACROS
4765#ifndef WIDL_C_INLINE_WRAPPERS
4766/*** IUnknown methods ***/
4767#define IShellFolderViewDual3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4768#define IShellFolderViewDual3_AddRef(This) (This)->lpVtbl->AddRef(This)
4769#define IShellFolderViewDual3_Release(This) (This)->lpVtbl->Release(This)
4770/*** IDispatch methods ***/
4771#define IShellFolderViewDual3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
4772#define IShellFolderViewDual3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
4773#define IShellFolderViewDual3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
4774#define IShellFolderViewDual3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
4775/*** IShellFolderViewDual methods ***/
4776#define IShellFolderViewDual3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
4777#define IShellFolderViewDual3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
4778#define IShellFolderViewDual3_get_Folder(This,ppid) (This)->lpVtbl->get_Folder(This,ppid)
4779#define IShellFolderViewDual3_SelectedItems(This,ppid) (This)->lpVtbl->SelectedItems(This,ppid)
4780#define IShellFolderViewDual3_get_FocusedItem(This,ppid) (This)->lpVtbl->get_FocusedItem(This,ppid)
4781#define IShellFolderViewDual3_SelectItem(This,pvfi,dwFlags) (This)->lpVtbl->SelectItem(This,pvfi,dwFlags)
4782#define IShellFolderViewDual3_PopupItemMenu(This,pfi,vx,vy,pbs) (This)->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs)
4783#define IShellFolderViewDual3_get_Script(This,ppDisp) (This)->lpVtbl->get_Script(This,ppDisp)
4784#define IShellFolderViewDual3_get_ViewOptions(This,plViewOptions) (This)->lpVtbl->get_ViewOptions(This,plViewOptions)
4785/*** IShellFolderViewDual2 methods ***/
4786#define IShellFolderViewDual3_get_CurrentViewMode(This,pViewMode) (This)->lpVtbl->get_CurrentViewMode(This,pViewMode)
4787#define IShellFolderViewDual3_put_CurrentViewMode(This,ViewMode) (This)->lpVtbl->put_CurrentViewMode(This,ViewMode)
4788#define IShellFolderViewDual3_SelectItemRelative(This,iRelative) (This)->lpVtbl->SelectItemRelative(This,iRelative)
4789/*** IShellFolderViewDual3 methods ***/
4790#define IShellFolderViewDual3_get_GroupBy(This,pbstrGroupBy) (This)->lpVtbl->get_GroupBy(This,pbstrGroupBy)
4791#define IShellFolderViewDual3_put_GroupBy(This,bstrGroupBy) (This)->lpVtbl->put_GroupBy(This,bstrGroupBy)
4792#define IShellFolderViewDual3_get_FolderFlags(This,pdwFlags) (This)->lpVtbl->get_FolderFlags(This,pdwFlags)
4793#define IShellFolderViewDual3_put_FolderFlags(This,dwFlags) (This)->lpVtbl->put_FolderFlags(This,dwFlags)
4794#define IShellFolderViewDual3_get_SortColumns(This,pbstrSortColumns) (This)->lpVtbl->get_SortColumns(This,pbstrSortColumns)
4795#define IShellFolderViewDual3_put_SortColumns(This,bstrSortColumns) (This)->lpVtbl->put_SortColumns(This,bstrSortColumns)
4796#define IShellFolderViewDual3_put_IconSize(This,iIconSize) (This)->lpVtbl->put_IconSize(This,iIconSize)
4797#define IShellFolderViewDual3_get_IconSize(This,piIconSize) (This)->lpVtbl->get_IconSize(This,piIconSize)
4798#define IShellFolderViewDual3_FilterView(This,bstrFilterText) (This)->lpVtbl->FilterView(This,bstrFilterText)
4799#else
4800/*** IUnknown methods ***/
4801static FORCEINLINE HRESULT IShellFolderViewDual3_QueryInterface(IShellFolderViewDual3* This,REFIID riid,void **ppvObject) {
4802    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4803}
4804static FORCEINLINE ULONG IShellFolderViewDual3_AddRef(IShellFolderViewDual3* This) {
4805    return This->lpVtbl->AddRef(This);
4806}
4807static FORCEINLINE ULONG IShellFolderViewDual3_Release(IShellFolderViewDual3* This) {
4808    return This->lpVtbl->Release(This);
4809}
4810/*** IDispatch methods ***/
4811static FORCEINLINE HRESULT IShellFolderViewDual3_GetTypeInfoCount(IShellFolderViewDual3* This,UINT *pctinfo) {
4812    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4813}
4814static FORCEINLINE HRESULT IShellFolderViewDual3_GetTypeInfo(IShellFolderViewDual3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4815    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4816}
4817static FORCEINLINE HRESULT IShellFolderViewDual3_GetIDsOfNames(IShellFolderViewDual3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
4818    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
4819}
4820static FORCEINLINE HRESULT IShellFolderViewDual3_Invoke(IShellFolderViewDual3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
4821    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
4822}
4823/*** IShellFolderViewDual methods ***/
4824static FORCEINLINE HRESULT IShellFolderViewDual3_get_Application(IShellFolderViewDual3* This,IDispatch **ppid) {
4825    return This->lpVtbl->get_Application(This,ppid);
4826}
4827static FORCEINLINE HRESULT IShellFolderViewDual3_get_Parent(IShellFolderViewDual3* This,IDispatch **ppid) {
4828    return This->lpVtbl->get_Parent(This,ppid);
4829}
4830static FORCEINLINE HRESULT IShellFolderViewDual3_get_Folder(IShellFolderViewDual3* This,Folder **ppid) {
4831    return This->lpVtbl->get_Folder(This,ppid);
4832}
4833static FORCEINLINE HRESULT IShellFolderViewDual3_SelectedItems(IShellFolderViewDual3* This,FolderItems **ppid) {
4834    return This->lpVtbl->SelectedItems(This,ppid);
4835}
4836static FORCEINLINE HRESULT IShellFolderViewDual3_get_FocusedItem(IShellFolderViewDual3* This,FolderItem **ppid) {
4837    return This->lpVtbl->get_FocusedItem(This,ppid);
4838}
4839static FORCEINLINE HRESULT IShellFolderViewDual3_SelectItem(IShellFolderViewDual3* This,VARIANT *pvfi,int dwFlags) {
4840    return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
4841}
4842static FORCEINLINE HRESULT IShellFolderViewDual3_PopupItemMenu(IShellFolderViewDual3* This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs) {
4843    return This->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs);
4844}
4845static FORCEINLINE HRESULT IShellFolderViewDual3_get_Script(IShellFolderViewDual3* This,IDispatch **ppDisp) {
4846    return This->lpVtbl->get_Script(This,ppDisp);
4847}
4848static FORCEINLINE HRESULT IShellFolderViewDual3_get_ViewOptions(IShellFolderViewDual3* This,LONG *plViewOptions) {
4849    return This->lpVtbl->get_ViewOptions(This,plViewOptions);
4850}
4851/*** IShellFolderViewDual2 methods ***/
4852static FORCEINLINE HRESULT IShellFolderViewDual3_get_CurrentViewMode(IShellFolderViewDual3* This,UINT *pViewMode) {
4853    return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
4854}
4855static FORCEINLINE HRESULT IShellFolderViewDual3_put_CurrentViewMode(IShellFolderViewDual3* This,UINT ViewMode) {
4856    return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
4857}
4858static FORCEINLINE HRESULT IShellFolderViewDual3_SelectItemRelative(IShellFolderViewDual3* This,int iRelative) {
4859    return This->lpVtbl->SelectItemRelative(This,iRelative);
4860}
4861/*** IShellFolderViewDual3 methods ***/
4862static FORCEINLINE HRESULT IShellFolderViewDual3_get_GroupBy(IShellFolderViewDual3* This,BSTR *pbstrGroupBy) {
4863    return This->lpVtbl->get_GroupBy(This,pbstrGroupBy);
4864}
4865static FORCEINLINE HRESULT IShellFolderViewDual3_put_GroupBy(IShellFolderViewDual3* This,BSTR bstrGroupBy) {
4866    return This->lpVtbl->put_GroupBy(This,bstrGroupBy);
4867}
4868static FORCEINLINE HRESULT IShellFolderViewDual3_get_FolderFlags(IShellFolderViewDual3* This,DWORD *pdwFlags) {
4869    return This->lpVtbl->get_FolderFlags(This,pdwFlags);
4870}
4871static FORCEINLINE HRESULT IShellFolderViewDual3_put_FolderFlags(IShellFolderViewDual3* This,DWORD dwFlags) {
4872    return This->lpVtbl->put_FolderFlags(This,dwFlags);
4873}
4874static FORCEINLINE HRESULT IShellFolderViewDual3_get_SortColumns(IShellFolderViewDual3* This,BSTR *pbstrSortColumns) {
4875    return This->lpVtbl->get_SortColumns(This,pbstrSortColumns);
4876}
4877static FORCEINLINE HRESULT IShellFolderViewDual3_put_SortColumns(IShellFolderViewDual3* This,BSTR bstrSortColumns) {
4878    return This->lpVtbl->put_SortColumns(This,bstrSortColumns);
4879}
4880static FORCEINLINE HRESULT IShellFolderViewDual3_put_IconSize(IShellFolderViewDual3* This,int iIconSize) {
4881    return This->lpVtbl->put_IconSize(This,iIconSize);
4882}
4883static FORCEINLINE HRESULT IShellFolderViewDual3_get_IconSize(IShellFolderViewDual3* This,int *piIconSize) {
4884    return This->lpVtbl->get_IconSize(This,piIconSize);
4885}
4886static FORCEINLINE HRESULT IShellFolderViewDual3_FilterView(IShellFolderViewDual3* This,BSTR bstrFilterText) {
4887    return This->lpVtbl->FilterView(This,bstrFilterText);
4888}
4889#endif
4890#endif
4891
4892#endif
4893
4894HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_GroupBy_Proxy(
4895    IShellFolderViewDual3* This,
4896    BSTR *pbstrGroupBy);
4897void __RPC_STUB IShellFolderViewDual3_get_GroupBy_Stub(
4898    IRpcStubBuffer* This,
4899    IRpcChannelBuffer* pRpcChannelBuffer,
4900    PRPC_MESSAGE pRpcMessage,
4901    DWORD* pdwStubPhase);
4902HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_GroupBy_Proxy(
4903    IShellFolderViewDual3* This,
4904    BSTR bstrGroupBy);
4905void __RPC_STUB IShellFolderViewDual3_put_GroupBy_Stub(
4906    IRpcStubBuffer* This,
4907    IRpcChannelBuffer* pRpcChannelBuffer,
4908    PRPC_MESSAGE pRpcMessage,
4909    DWORD* pdwStubPhase);
4910HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_FolderFlags_Proxy(
4911    IShellFolderViewDual3* This,
4912    DWORD *pdwFlags);
4913void __RPC_STUB IShellFolderViewDual3_get_FolderFlags_Stub(
4914    IRpcStubBuffer* This,
4915    IRpcChannelBuffer* pRpcChannelBuffer,
4916    PRPC_MESSAGE pRpcMessage,
4917    DWORD* pdwStubPhase);
4918HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_FolderFlags_Proxy(
4919    IShellFolderViewDual3* This,
4920    DWORD dwFlags);
4921void __RPC_STUB IShellFolderViewDual3_put_FolderFlags_Stub(
4922    IRpcStubBuffer* This,
4923    IRpcChannelBuffer* pRpcChannelBuffer,
4924    PRPC_MESSAGE pRpcMessage,
4925    DWORD* pdwStubPhase);
4926HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_SortColumns_Proxy(
4927    IShellFolderViewDual3* This,
4928    BSTR *pbstrSortColumns);
4929void __RPC_STUB IShellFolderViewDual3_get_SortColumns_Stub(
4930    IRpcStubBuffer* This,
4931    IRpcChannelBuffer* pRpcChannelBuffer,
4932    PRPC_MESSAGE pRpcMessage,
4933    DWORD* pdwStubPhase);
4934HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_SortColumns_Proxy(
4935    IShellFolderViewDual3* This,
4936    BSTR bstrSortColumns);
4937void __RPC_STUB IShellFolderViewDual3_put_SortColumns_Stub(
4938    IRpcStubBuffer* This,
4939    IRpcChannelBuffer* pRpcChannelBuffer,
4940    PRPC_MESSAGE pRpcMessage,
4941    DWORD* pdwStubPhase);
4942HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_IconSize_Proxy(
4943    IShellFolderViewDual3* This,
4944    int iIconSize);
4945void __RPC_STUB IShellFolderViewDual3_put_IconSize_Stub(
4946    IRpcStubBuffer* This,
4947    IRpcChannelBuffer* pRpcChannelBuffer,
4948    PRPC_MESSAGE pRpcMessage,
4949    DWORD* pdwStubPhase);
4950HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_IconSize_Proxy(
4951    IShellFolderViewDual3* This,
4952    int *piIconSize);
4953void __RPC_STUB IShellFolderViewDual3_get_IconSize_Stub(
4954    IRpcStubBuffer* This,
4955    IRpcChannelBuffer* pRpcChannelBuffer,
4956    PRPC_MESSAGE pRpcMessage,
4957    DWORD* pdwStubPhase);
4958HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_FilterView_Proxy(
4959    IShellFolderViewDual3* This,
4960    BSTR bstrFilterText);
4961void __RPC_STUB IShellFolderViewDual3_FilterView_Stub(
4962    IRpcStubBuffer* This,
4963    IRpcChannelBuffer* pRpcChannelBuffer,
4964    PRPC_MESSAGE pRpcMessage,
4965    DWORD* pdwStubPhase);
4966
4967#endif  /* __IShellFolderViewDual3_INTERFACE_DEFINED__ */
4968
4969/*****************************************************************************
4970 * ShellFolderView coclass
4971 */
4972
4973DEFINE_GUID(CLSID_ShellFolderView, 0x62112aa1, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d);
4974
4975#ifdef __cplusplus
4976class DECLSPEC_UUID("62112aa1-ebe4-11cf-a5fb-0020afe7292d") ShellFolderView;
4977#ifdef __CRT_UUID_DECL
4978__CRT_UUID_DECL(ShellFolderView, 0x62112aa1, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d)
4979#endif
4980#endif
4981
4982typedef enum ShellFolderViewOptions {
4983    SFVVO_SHOWALLOBJECTS = 0x1,
4984    SFVVO_SHOWEXTENSIONS = 0x2,
4985    SFVVO_SHOWCOMPCOLOR = 0x8,
4986    SFVVO_SHOWSYSFILES = 0x20,
4987    SFVVO_WIN95CLASSIC = 0x40,
4988    SFVVO_DOUBLECLICKINWEBVIEW = 0x80,
4989    SFVVO_DESKTOPHTML = 0x200
4990} ShellFolderViewOptions;
4991/*****************************************************************************
4992 * IShellDispatch interface
4993 */
4994#ifndef __IShellDispatch_INTERFACE_DEFINED__
4995#define __IShellDispatch_INTERFACE_DEFINED__
4996
4997DEFINE_GUID(IID_IShellDispatch, 0xd8f015c0, 0xc278, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);
4998#if defined(__cplusplus) && !defined(CINTERFACE)
4999MIDL_INTERFACE("d8f015c0-c278-11ce-a49e-444553540000")
5000IShellDispatch : public IDispatch
5001{
5002    virtual HRESULT STDMETHODCALLTYPE get_Application(
5003        IDispatch **ppid) = 0;
5004
5005    virtual HRESULT STDMETHODCALLTYPE get_Parent(
5006        IDispatch **ppid) = 0;
5007
5008    virtual HRESULT STDMETHODCALLTYPE NameSpace(
5009        VARIANT vDir,
5010        Folder **ppsdf) = 0;
5011
5012    virtual HRESULT STDMETHODCALLTYPE BrowseForFolder(
5013        LONG Hwnd,
5014        BSTR Title,
5015        LONG Options,
5016        VARIANT RootFolder,
5017        Folder **ppsdf) = 0;
5018
5019    virtual HRESULT STDMETHODCALLTYPE Windows(
5020        IDispatch **ppid) = 0;
5021
5022    virtual HRESULT STDMETHODCALLTYPE Open(
5023        VARIANT vDir) = 0;
5024
5025    virtual HRESULT STDMETHODCALLTYPE Explore(
5026        VARIANT vDir) = 0;
5027
5028    virtual HRESULT STDMETHODCALLTYPE MinimizeAll(
5029        ) = 0;
5030
5031    virtual HRESULT STDMETHODCALLTYPE UndoMinimizeALL(
5032        ) = 0;
5033
5034    virtual HRESULT STDMETHODCALLTYPE FileRun(
5035        ) = 0;
5036
5037    virtual HRESULT STDMETHODCALLTYPE CascadeWindows(
5038        ) = 0;
5039
5040    virtual HRESULT STDMETHODCALLTYPE TileVertically(
5041        ) = 0;
5042
5043    virtual HRESULT STDMETHODCALLTYPE TileHorizontally(
5044        ) = 0;
5045
5046    virtual HRESULT STDMETHODCALLTYPE ShutdownWindows(
5047        ) = 0;
5048
5049    virtual HRESULT STDMETHODCALLTYPE Suspend(
5050        ) = 0;
5051
5052    virtual HRESULT STDMETHODCALLTYPE EjectPC(
5053        ) = 0;
5054
5055    virtual HRESULT STDMETHODCALLTYPE SetTime(
5056        ) = 0;
5057
5058    virtual HRESULT STDMETHODCALLTYPE TrayProperties(
5059        ) = 0;
5060
5061    virtual HRESULT STDMETHODCALLTYPE Help(
5062        ) = 0;
5063
5064    virtual HRESULT STDMETHODCALLTYPE FindFiles(
5065        ) = 0;
5066
5067    virtual HRESULT STDMETHODCALLTYPE FindComputer(
5068        ) = 0;
5069
5070    virtual HRESULT STDMETHODCALLTYPE RefreshMenu(
5071        ) = 0;
5072
5073    virtual HRESULT STDMETHODCALLTYPE ControlPanelItem(
5074        BSTR bstrDir) = 0;
5075
5076};
5077#ifdef __CRT_UUID_DECL
5078__CRT_UUID_DECL(IShellDispatch, 0xd8f015c0, 0xc278, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00)
5079#endif
5080#else
5081typedef struct IShellDispatchVtbl {
5082    BEGIN_INTERFACE
5083
5084    /*** IUnknown methods ***/
5085    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5086        IShellDispatch* This,
5087        REFIID riid,
5088        void **ppvObject);
5089
5090    ULONG (STDMETHODCALLTYPE *AddRef)(
5091        IShellDispatch* This);
5092
5093    ULONG (STDMETHODCALLTYPE *Release)(
5094        IShellDispatch* This);
5095
5096    /*** IDispatch methods ***/
5097    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
5098        IShellDispatch* This,
5099        UINT *pctinfo);
5100
5101    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
5102        IShellDispatch* This,
5103        UINT iTInfo,
5104        LCID lcid,
5105        ITypeInfo **ppTInfo);
5106
5107    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
5108        IShellDispatch* This,
5109        REFIID riid,
5110        LPOLESTR *rgszNames,
5111        UINT cNames,
5112        LCID lcid,
5113        DISPID *rgDispId);
5114
5115    HRESULT (STDMETHODCALLTYPE *Invoke)(
5116        IShellDispatch* This,
5117        DISPID dispIdMember,
5118        REFIID riid,
5119        LCID lcid,
5120        WORD wFlags,
5121        DISPPARAMS *pDispParams,
5122        VARIANT *pVarResult,
5123        EXCEPINFO *pExcepInfo,
5124        UINT *puArgErr);
5125
5126    /*** IShellDispatch methods ***/
5127    HRESULT (STDMETHODCALLTYPE *get_Application)(
5128        IShellDispatch* This,
5129        IDispatch **ppid);
5130
5131    HRESULT (STDMETHODCALLTYPE *get_Parent)(
5132        IShellDispatch* This,
5133        IDispatch **ppid);
5134
5135    HRESULT (STDMETHODCALLTYPE *NameSpace)(
5136        IShellDispatch* This,
5137        VARIANT vDir,
5138        Folder **ppsdf);
5139
5140    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
5141        IShellDispatch* This,
5142        LONG Hwnd,
5143        BSTR Title,
5144        LONG Options,
5145        VARIANT RootFolder,
5146        Folder **ppsdf);
5147
5148    HRESULT (STDMETHODCALLTYPE *Windows)(
5149        IShellDispatch* This,
5150        IDispatch **ppid);
5151
5152    HRESULT (STDMETHODCALLTYPE *Open)(
5153        IShellDispatch* This,
5154        VARIANT vDir);
5155
5156    HRESULT (STDMETHODCALLTYPE *Explore)(
5157        IShellDispatch* This,
5158        VARIANT vDir);
5159
5160    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
5161        IShellDispatch* This);
5162
5163    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
5164        IShellDispatch* This);
5165
5166    HRESULT (STDMETHODCALLTYPE *FileRun)(
5167        IShellDispatch* This);
5168
5169    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
5170        IShellDispatch* This);
5171
5172    HRESULT (STDMETHODCALLTYPE *TileVertically)(
5173        IShellDispatch* This);
5174
5175    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
5176        IShellDispatch* This);
5177
5178    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
5179        IShellDispatch* This);
5180
5181    HRESULT (STDMETHODCALLTYPE *Suspend)(
5182        IShellDispatch* This);
5183
5184    HRESULT (STDMETHODCALLTYPE *EjectPC)(
5185        IShellDispatch* This);
5186
5187    HRESULT (STDMETHODCALLTYPE *SetTime)(
5188        IShellDispatch* This);
5189
5190    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
5191        IShellDispatch* This);
5192
5193    HRESULT (STDMETHODCALLTYPE *Help)(
5194        IShellDispatch* This);
5195
5196    HRESULT (STDMETHODCALLTYPE *FindFiles)(
5197        IShellDispatch* This);
5198
5199    HRESULT (STDMETHODCALLTYPE *FindComputer)(
5200        IShellDispatch* This);
5201
5202    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
5203        IShellDispatch* This);
5204
5205    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
5206        IShellDispatch* This,
5207        BSTR bstrDir);
5208
5209    END_INTERFACE
5210} IShellDispatchVtbl;
5211interface IShellDispatch {
5212    CONST_VTBL IShellDispatchVtbl* lpVtbl;
5213};
5214
5215#ifdef COBJMACROS
5216#ifndef WIDL_C_INLINE_WRAPPERS
5217/*** IUnknown methods ***/
5218#define IShellDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5219#define IShellDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
5220#define IShellDispatch_Release(This) (This)->lpVtbl->Release(This)
5221/*** IDispatch methods ***/
5222#define IShellDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
5223#define IShellDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
5224#define IShellDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
5225#define IShellDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
5226/*** IShellDispatch methods ***/
5227#define IShellDispatch_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
5228#define IShellDispatch_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
5229#define IShellDispatch_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
5230#define IShellDispatch_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
5231#define IShellDispatch_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
5232#define IShellDispatch_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
5233#define IShellDispatch_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
5234#define IShellDispatch_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
5235#define IShellDispatch_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
5236#define IShellDispatch_FileRun(This) (This)->lpVtbl->FileRun(This)
5237#define IShellDispatch_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
5238#define IShellDispatch_TileVertically(This) (This)->lpVtbl->TileVertically(This)
5239#define IShellDispatch_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
5240#define IShellDispatch_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
5241#define IShellDispatch_Suspend(This) (This)->lpVtbl->Suspend(This)
5242#define IShellDispatch_EjectPC(This) (This)->lpVtbl->EjectPC(This)
5243#define IShellDispatch_SetTime(This) (This)->lpVtbl->SetTime(This)
5244#define IShellDispatch_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
5245#define IShellDispatch_Help(This) (This)->lpVtbl->Help(This)
5246#define IShellDispatch_FindFiles(This) (This)->lpVtbl->FindFiles(This)
5247#define IShellDispatch_FindComputer(This) (This)->lpVtbl->FindComputer(This)
5248#define IShellDispatch_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
5249#define IShellDispatch_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
5250#else
5251/*** IUnknown methods ***/
5252static FORCEINLINE HRESULT IShellDispatch_QueryInterface(IShellDispatch* This,REFIID riid,void **ppvObject) {
5253    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5254}
5255static FORCEINLINE ULONG IShellDispatch_AddRef(IShellDispatch* This) {
5256    return This->lpVtbl->AddRef(This);
5257}
5258static FORCEINLINE ULONG IShellDispatch_Release(IShellDispatch* This) {
5259    return This->lpVtbl->Release(This);
5260}
5261/*** IDispatch methods ***/
5262static FORCEINLINE HRESULT IShellDispatch_GetTypeInfoCount(IShellDispatch* This,UINT *pctinfo) {
5263    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5264}
5265static FORCEINLINE HRESULT IShellDispatch_GetTypeInfo(IShellDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5266    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5267}
5268static FORCEINLINE HRESULT IShellDispatch_GetIDsOfNames(IShellDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
5269    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
5270}
5271static FORCEINLINE HRESULT IShellDispatch_Invoke(IShellDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
5272    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
5273}
5274/*** IShellDispatch methods ***/
5275static FORCEINLINE HRESULT IShellDispatch_get_Application(IShellDispatch* This,IDispatch **ppid) {
5276    return This->lpVtbl->get_Application(This,ppid);
5277}
5278static FORCEINLINE HRESULT IShellDispatch_get_Parent(IShellDispatch* This,IDispatch **ppid) {
5279    return This->lpVtbl->get_Parent(This,ppid);
5280}
5281static FORCEINLINE HRESULT IShellDispatch_NameSpace(IShellDispatch* This,VARIANT vDir,Folder **ppsdf) {
5282    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
5283}
5284static FORCEINLINE HRESULT IShellDispatch_BrowseForFolder(IShellDispatch* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
5285    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
5286}
5287static FORCEINLINE HRESULT IShellDispatch_Windows(IShellDispatch* This,IDispatch **ppid) {
5288    return This->lpVtbl->Windows(This,ppid);
5289}
5290static FORCEINLINE HRESULT IShellDispatch_Open(IShellDispatch* This,VARIANT vDir) {
5291    return This->lpVtbl->Open(This,vDir);
5292}
5293static FORCEINLINE HRESULT IShellDispatch_Explore(IShellDispatch* This,VARIANT vDir) {
5294    return This->lpVtbl->Explore(This,vDir);
5295}
5296static FORCEINLINE HRESULT IShellDispatch_MinimizeAll(IShellDispatch* This) {
5297    return This->lpVtbl->MinimizeAll(This);
5298}
5299static FORCEINLINE HRESULT IShellDispatch_UndoMinimizeALL(IShellDispatch* This) {
5300    return This->lpVtbl->UndoMinimizeALL(This);
5301}
5302static FORCEINLINE HRESULT IShellDispatch_FileRun(IShellDispatch* This) {
5303    return This->lpVtbl->FileRun(This);
5304}
5305static FORCEINLINE HRESULT IShellDispatch_CascadeWindows(IShellDispatch* This) {
5306    return This->lpVtbl->CascadeWindows(This);
5307}
5308static FORCEINLINE HRESULT IShellDispatch_TileVertically(IShellDispatch* This) {
5309    return This->lpVtbl->TileVertically(This);
5310}
5311static FORCEINLINE HRESULT IShellDispatch_TileHorizontally(IShellDispatch* This) {
5312    return This->lpVtbl->TileHorizontally(This);
5313}
5314static FORCEINLINE HRESULT IShellDispatch_ShutdownWindows(IShellDispatch* This) {
5315    return This->lpVtbl->ShutdownWindows(This);
5316}
5317static FORCEINLINE HRESULT IShellDispatch_Suspend(IShellDispatch* This) {
5318    return This->lpVtbl->Suspend(This);
5319}
5320static FORCEINLINE HRESULT IShellDispatch_EjectPC(IShellDispatch* This) {
5321    return This->lpVtbl->EjectPC(This);
5322}
5323static FORCEINLINE HRESULT IShellDispatch_SetTime(IShellDispatch* This) {
5324    return This->lpVtbl->SetTime(This);
5325}
5326static FORCEINLINE HRESULT IShellDispatch_TrayProperties(IShellDispatch* This) {
5327    return This->lpVtbl->TrayProperties(This);
5328}
5329static FORCEINLINE HRESULT IShellDispatch_Help(IShellDispatch* This) {
5330    return This->lpVtbl->Help(This);
5331}
5332static FORCEINLINE HRESULT IShellDispatch_FindFiles(IShellDispatch* This) {
5333    return This->lpVtbl->FindFiles(This);
5334}
5335static FORCEINLINE HRESULT IShellDispatch_FindComputer(IShellDispatch* This) {
5336    return This->lpVtbl->FindComputer(This);
5337}
5338static FORCEINLINE HRESULT IShellDispatch_RefreshMenu(IShellDispatch* This) {
5339    return This->lpVtbl->RefreshMenu(This);
5340}
5341static FORCEINLINE HRESULT IShellDispatch_ControlPanelItem(IShellDispatch* This,BSTR bstrDir) {
5342    return This->lpVtbl->ControlPanelItem(This,bstrDir);
5343}
5344#endif
5345#endif
5346
5347#endif
5348
5349HRESULT STDMETHODCALLTYPE IShellDispatch_get_Application_Proxy(
5350    IShellDispatch* This,
5351    IDispatch **ppid);
5352void __RPC_STUB IShellDispatch_get_Application_Stub(
5353    IRpcStubBuffer* This,
5354    IRpcChannelBuffer* pRpcChannelBuffer,
5355    PRPC_MESSAGE pRpcMessage,
5356    DWORD* pdwStubPhase);
5357HRESULT STDMETHODCALLTYPE IShellDispatch_get_Parent_Proxy(
5358    IShellDispatch* This,
5359    IDispatch **ppid);
5360void __RPC_STUB IShellDispatch_get_Parent_Stub(
5361    IRpcStubBuffer* This,
5362    IRpcChannelBuffer* pRpcChannelBuffer,
5363    PRPC_MESSAGE pRpcMessage,
5364    DWORD* pdwStubPhase);
5365HRESULT STDMETHODCALLTYPE IShellDispatch_NameSpace_Proxy(
5366    IShellDispatch* This,
5367    VARIANT vDir,
5368    Folder **ppsdf);
5369void __RPC_STUB IShellDispatch_NameSpace_Stub(
5370    IRpcStubBuffer* This,
5371    IRpcChannelBuffer* pRpcChannelBuffer,
5372    PRPC_MESSAGE pRpcMessage,
5373    DWORD* pdwStubPhase);
5374HRESULT STDMETHODCALLTYPE IShellDispatch_BrowseForFolder_Proxy(
5375    IShellDispatch* This,
5376    LONG Hwnd,
5377    BSTR Title,
5378    LONG Options,
5379    VARIANT RootFolder,
5380    Folder **ppsdf);
5381void __RPC_STUB IShellDispatch_BrowseForFolder_Stub(
5382    IRpcStubBuffer* This,
5383    IRpcChannelBuffer* pRpcChannelBuffer,
5384    PRPC_MESSAGE pRpcMessage,
5385    DWORD* pdwStubPhase);
5386HRESULT STDMETHODCALLTYPE IShellDispatch_Windows_Proxy(
5387    IShellDispatch* This,
5388    IDispatch **ppid);
5389void __RPC_STUB IShellDispatch_Windows_Stub(
5390    IRpcStubBuffer* This,
5391    IRpcChannelBuffer* pRpcChannelBuffer,
5392    PRPC_MESSAGE pRpcMessage,
5393    DWORD* pdwStubPhase);
5394HRESULT STDMETHODCALLTYPE IShellDispatch_Open_Proxy(
5395    IShellDispatch* This,
5396    VARIANT vDir);
5397void __RPC_STUB IShellDispatch_Open_Stub(
5398    IRpcStubBuffer* This,
5399    IRpcChannelBuffer* pRpcChannelBuffer,
5400    PRPC_MESSAGE pRpcMessage,
5401    DWORD* pdwStubPhase);
5402HRESULT STDMETHODCALLTYPE IShellDispatch_Explore_Proxy(
5403    IShellDispatch* This,
5404    VARIANT vDir);
5405void __RPC_STUB IShellDispatch_Explore_Stub(
5406    IRpcStubBuffer* This,
5407    IRpcChannelBuffer* pRpcChannelBuffer,
5408    PRPC_MESSAGE pRpcMessage,
5409    DWORD* pdwStubPhase);
5410HRESULT STDMETHODCALLTYPE IShellDispatch_MinimizeAll_Proxy(
5411    IShellDispatch* This);
5412void __RPC_STUB IShellDispatch_MinimizeAll_Stub(
5413    IRpcStubBuffer* This,
5414    IRpcChannelBuffer* pRpcChannelBuffer,
5415    PRPC_MESSAGE pRpcMessage,
5416    DWORD* pdwStubPhase);
5417HRESULT STDMETHODCALLTYPE IShellDispatch_UndoMinimizeALL_Proxy(
5418    IShellDispatch* This);
5419void __RPC_STUB IShellDispatch_UndoMinimizeALL_Stub(
5420    IRpcStubBuffer* This,
5421    IRpcChannelBuffer* pRpcChannelBuffer,
5422    PRPC_MESSAGE pRpcMessage,
5423    DWORD* pdwStubPhase);
5424HRESULT STDMETHODCALLTYPE IShellDispatch_FileRun_Proxy(
5425    IShellDispatch* This);
5426void __RPC_STUB IShellDispatch_FileRun_Stub(
5427    IRpcStubBuffer* This,
5428    IRpcChannelBuffer* pRpcChannelBuffer,
5429    PRPC_MESSAGE pRpcMessage,
5430    DWORD* pdwStubPhase);
5431HRESULT STDMETHODCALLTYPE IShellDispatch_CascadeWindows_Proxy(
5432    IShellDispatch* This);
5433void __RPC_STUB IShellDispatch_CascadeWindows_Stub(
5434    IRpcStubBuffer* This,
5435    IRpcChannelBuffer* pRpcChannelBuffer,
5436    PRPC_MESSAGE pRpcMessage,
5437    DWORD* pdwStubPhase);
5438HRESULT STDMETHODCALLTYPE IShellDispatch_TileVertically_Proxy(
5439    IShellDispatch* This);
5440void __RPC_STUB IShellDispatch_TileVertically_Stub(
5441    IRpcStubBuffer* This,
5442    IRpcChannelBuffer* pRpcChannelBuffer,
5443    PRPC_MESSAGE pRpcMessage,
5444    DWORD* pdwStubPhase);
5445HRESULT STDMETHODCALLTYPE IShellDispatch_TileHorizontally_Proxy(
5446    IShellDispatch* This);
5447void __RPC_STUB IShellDispatch_TileHorizontally_Stub(
5448    IRpcStubBuffer* This,
5449    IRpcChannelBuffer* pRpcChannelBuffer,
5450    PRPC_MESSAGE pRpcMessage,
5451    DWORD* pdwStubPhase);
5452HRESULT STDMETHODCALLTYPE IShellDispatch_ShutdownWindows_Proxy(
5453    IShellDispatch* This);
5454void __RPC_STUB IShellDispatch_ShutdownWindows_Stub(
5455    IRpcStubBuffer* This,
5456    IRpcChannelBuffer* pRpcChannelBuffer,
5457    PRPC_MESSAGE pRpcMessage,
5458    DWORD* pdwStubPhase);
5459HRESULT STDMETHODCALLTYPE IShellDispatch_Suspend_Proxy(
5460    IShellDispatch* This);
5461void __RPC_STUB IShellDispatch_Suspend_Stub(
5462    IRpcStubBuffer* This,
5463    IRpcChannelBuffer* pRpcChannelBuffer,
5464    PRPC_MESSAGE pRpcMessage,
5465    DWORD* pdwStubPhase);
5466HRESULT STDMETHODCALLTYPE IShellDispatch_EjectPC_Proxy(
5467    IShellDispatch* This);
5468void __RPC_STUB IShellDispatch_EjectPC_Stub(
5469    IRpcStubBuffer* This,
5470    IRpcChannelBuffer* pRpcChannelBuffer,
5471    PRPC_MESSAGE pRpcMessage,
5472    DWORD* pdwStubPhase);
5473HRESULT STDMETHODCALLTYPE IShellDispatch_SetTime_Proxy(
5474    IShellDispatch* This);
5475void __RPC_STUB IShellDispatch_SetTime_Stub(
5476    IRpcStubBuffer* This,
5477    IRpcChannelBuffer* pRpcChannelBuffer,
5478    PRPC_MESSAGE pRpcMessage,
5479    DWORD* pdwStubPhase);
5480HRESULT STDMETHODCALLTYPE IShellDispatch_TrayProperties_Proxy(
5481    IShellDispatch* This);
5482void __RPC_STUB IShellDispatch_TrayProperties_Stub(
5483    IRpcStubBuffer* This,
5484    IRpcChannelBuffer* pRpcChannelBuffer,
5485    PRPC_MESSAGE pRpcMessage,
5486    DWORD* pdwStubPhase);
5487HRESULT STDMETHODCALLTYPE IShellDispatch_Help_Proxy(
5488    IShellDispatch* This);
5489void __RPC_STUB IShellDispatch_Help_Stub(
5490    IRpcStubBuffer* This,
5491    IRpcChannelBuffer* pRpcChannelBuffer,
5492    PRPC_MESSAGE pRpcMessage,
5493    DWORD* pdwStubPhase);
5494HRESULT STDMETHODCALLTYPE IShellDispatch_FindFiles_Proxy(
5495    IShellDispatch* This);
5496void __RPC_STUB IShellDispatch_FindFiles_Stub(
5497    IRpcStubBuffer* This,
5498    IRpcChannelBuffer* pRpcChannelBuffer,
5499    PRPC_MESSAGE pRpcMessage,
5500    DWORD* pdwStubPhase);
5501HRESULT STDMETHODCALLTYPE IShellDispatch_FindComputer_Proxy(
5502    IShellDispatch* This);
5503void __RPC_STUB IShellDispatch_FindComputer_Stub(
5504    IRpcStubBuffer* This,
5505    IRpcChannelBuffer* pRpcChannelBuffer,
5506    PRPC_MESSAGE pRpcMessage,
5507    DWORD* pdwStubPhase);
5508HRESULT STDMETHODCALLTYPE IShellDispatch_RefreshMenu_Proxy(
5509    IShellDispatch* This);
5510void __RPC_STUB IShellDispatch_RefreshMenu_Stub(
5511    IRpcStubBuffer* This,
5512    IRpcChannelBuffer* pRpcChannelBuffer,
5513    PRPC_MESSAGE pRpcMessage,
5514    DWORD* pdwStubPhase);
5515HRESULT STDMETHODCALLTYPE IShellDispatch_ControlPanelItem_Proxy(
5516    IShellDispatch* This,
5517    BSTR bstrDir);
5518void __RPC_STUB IShellDispatch_ControlPanelItem_Stub(
5519    IRpcStubBuffer* This,
5520    IRpcChannelBuffer* pRpcChannelBuffer,
5521    PRPC_MESSAGE pRpcMessage,
5522    DWORD* pdwStubPhase);
5523
5524#endif  /* __IShellDispatch_INTERFACE_DEFINED__ */
5525
5526/*****************************************************************************
5527 * IShellDispatch2 interface
5528 */
5529#ifndef __IShellDispatch2_INTERFACE_DEFINED__
5530#define __IShellDispatch2_INTERFACE_DEFINED__
5531
5532DEFINE_GUID(IID_IShellDispatch2, 0xa4c6892c, 0x3ba9, 0x11d2, 0x9d,0xea, 0x00,0xc0,0x4f,0xb1,0x61,0x62);
5533#if defined(__cplusplus) && !defined(CINTERFACE)
5534MIDL_INTERFACE("a4c6892c-3ba9-11d2-9dea-00c04fb16162")
5535IShellDispatch2 : public IShellDispatch
5536{
5537    virtual HRESULT STDMETHODCALLTYPE IsRestricted(
5538        BSTR Group,
5539        BSTR Restriction,
5540        LONG *plRestrictValue) = 0;
5541
5542    virtual HRESULT STDMETHODCALLTYPE ShellExecute(
5543        BSTR File,
5544        VARIANT vArgs,
5545        VARIANT vDir,
5546        VARIANT vOperation,
5547        VARIANT vShow) = 0;
5548
5549    virtual HRESULT STDMETHODCALLTYPE FindPrinter(
5550        BSTR name,
5551        BSTR location,
5552        BSTR model) = 0;
5553
5554    virtual HRESULT STDMETHODCALLTYPE GetSystemInformation(
5555        BSTR name,
5556        VARIANT *pv) = 0;
5557
5558    virtual HRESULT STDMETHODCALLTYPE ServiceStart(
5559        BSTR ServiceName,
5560        VARIANT Persistent,
5561        VARIANT *pSuccess) = 0;
5562
5563    virtual HRESULT STDMETHODCALLTYPE ServiceStop(
5564        BSTR ServiceName,
5565        VARIANT Persistent,
5566        VARIANT *pSuccess) = 0;
5567
5568    virtual HRESULT STDMETHODCALLTYPE IsServiceRunning(
5569        BSTR ServiceName,
5570        VARIANT *pRunning) = 0;
5571
5572    virtual HRESULT STDMETHODCALLTYPE CanStartStopService(
5573        BSTR ServiceName,
5574        VARIANT *pCanStartStop) = 0;
5575
5576    virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(
5577        BSTR bstrClsid,
5578        VARIANT bShow,
5579        VARIANT *pSuccess) = 0;
5580
5581};
5582#ifdef __CRT_UUID_DECL
5583__CRT_UUID_DECL(IShellDispatch2, 0xa4c6892c, 0x3ba9, 0x11d2, 0x9d,0xea, 0x00,0xc0,0x4f,0xb1,0x61,0x62)
5584#endif
5585#else
5586typedef struct IShellDispatch2Vtbl {
5587    BEGIN_INTERFACE
5588
5589    /*** IUnknown methods ***/
5590    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5591        IShellDispatch2* This,
5592        REFIID riid,
5593        void **ppvObject);
5594
5595    ULONG (STDMETHODCALLTYPE *AddRef)(
5596        IShellDispatch2* This);
5597
5598    ULONG (STDMETHODCALLTYPE *Release)(
5599        IShellDispatch2* This);
5600
5601    /*** IDispatch methods ***/
5602    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
5603        IShellDispatch2* This,
5604        UINT *pctinfo);
5605
5606    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
5607        IShellDispatch2* This,
5608        UINT iTInfo,
5609        LCID lcid,
5610        ITypeInfo **ppTInfo);
5611
5612    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
5613        IShellDispatch2* This,
5614        REFIID riid,
5615        LPOLESTR *rgszNames,
5616        UINT cNames,
5617        LCID lcid,
5618        DISPID *rgDispId);
5619
5620    HRESULT (STDMETHODCALLTYPE *Invoke)(
5621        IShellDispatch2* This,
5622        DISPID dispIdMember,
5623        REFIID riid,
5624        LCID lcid,
5625        WORD wFlags,
5626        DISPPARAMS *pDispParams,
5627        VARIANT *pVarResult,
5628        EXCEPINFO *pExcepInfo,
5629        UINT *puArgErr);
5630
5631    /*** IShellDispatch methods ***/
5632    HRESULT (STDMETHODCALLTYPE *get_Application)(
5633        IShellDispatch2* This,
5634        IDispatch **ppid);
5635
5636    HRESULT (STDMETHODCALLTYPE *get_Parent)(
5637        IShellDispatch2* This,
5638        IDispatch **ppid);
5639
5640    HRESULT (STDMETHODCALLTYPE *NameSpace)(
5641        IShellDispatch2* This,
5642        VARIANT vDir,
5643        Folder **ppsdf);
5644
5645    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
5646        IShellDispatch2* This,
5647        LONG Hwnd,
5648        BSTR Title,
5649        LONG Options,
5650        VARIANT RootFolder,
5651        Folder **ppsdf);
5652
5653    HRESULT (STDMETHODCALLTYPE *Windows)(
5654        IShellDispatch2* This,
5655        IDispatch **ppid);
5656
5657    HRESULT (STDMETHODCALLTYPE *Open)(
5658        IShellDispatch2* This,
5659        VARIANT vDir);
5660
5661    HRESULT (STDMETHODCALLTYPE *Explore)(
5662        IShellDispatch2* This,
5663        VARIANT vDir);
5664
5665    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
5666        IShellDispatch2* This);
5667
5668    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
5669        IShellDispatch2* This);
5670
5671    HRESULT (STDMETHODCALLTYPE *FileRun)(
5672        IShellDispatch2* This);
5673
5674    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
5675        IShellDispatch2* This);
5676
5677    HRESULT (STDMETHODCALLTYPE *TileVertically)(
5678        IShellDispatch2* This);
5679
5680    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
5681        IShellDispatch2* This);
5682
5683    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
5684        IShellDispatch2* This);
5685
5686    HRESULT (STDMETHODCALLTYPE *Suspend)(
5687        IShellDispatch2* This);
5688
5689    HRESULT (STDMETHODCALLTYPE *EjectPC)(
5690        IShellDispatch2* This);
5691
5692    HRESULT (STDMETHODCALLTYPE *SetTime)(
5693        IShellDispatch2* This);
5694
5695    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
5696        IShellDispatch2* This);
5697
5698    HRESULT (STDMETHODCALLTYPE *Help)(
5699        IShellDispatch2* This);
5700
5701    HRESULT (STDMETHODCALLTYPE *FindFiles)(
5702        IShellDispatch2* This);
5703
5704    HRESULT (STDMETHODCALLTYPE *FindComputer)(
5705        IShellDispatch2* This);
5706
5707    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
5708        IShellDispatch2* This);
5709
5710    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
5711        IShellDispatch2* This,
5712        BSTR bstrDir);
5713
5714    /*** IShellDispatch2 methods ***/
5715    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
5716        IShellDispatch2* This,
5717        BSTR Group,
5718        BSTR Restriction,
5719        LONG *plRestrictValue);
5720
5721    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
5722        IShellDispatch2* This,
5723        BSTR File,
5724        VARIANT vArgs,
5725        VARIANT vDir,
5726        VARIANT vOperation,
5727        VARIANT vShow);
5728
5729    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
5730        IShellDispatch2* This,
5731        BSTR name,
5732        BSTR location,
5733        BSTR model);
5734
5735    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
5736        IShellDispatch2* This,
5737        BSTR name,
5738        VARIANT *pv);
5739
5740    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
5741        IShellDispatch2* This,
5742        BSTR ServiceName,
5743        VARIANT Persistent,
5744        VARIANT *pSuccess);
5745
5746    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
5747        IShellDispatch2* This,
5748        BSTR ServiceName,
5749        VARIANT Persistent,
5750        VARIANT *pSuccess);
5751
5752    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
5753        IShellDispatch2* This,
5754        BSTR ServiceName,
5755        VARIANT *pRunning);
5756
5757    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
5758        IShellDispatch2* This,
5759        BSTR ServiceName,
5760        VARIANT *pCanStartStop);
5761
5762    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
5763        IShellDispatch2* This,
5764        BSTR bstrClsid,
5765        VARIANT bShow,
5766        VARIANT *pSuccess);
5767
5768    END_INTERFACE
5769} IShellDispatch2Vtbl;
5770interface IShellDispatch2 {
5771    CONST_VTBL IShellDispatch2Vtbl* lpVtbl;
5772};
5773
5774#ifdef COBJMACROS
5775#ifndef WIDL_C_INLINE_WRAPPERS
5776/*** IUnknown methods ***/
5777#define IShellDispatch2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5778#define IShellDispatch2_AddRef(This) (This)->lpVtbl->AddRef(This)
5779#define IShellDispatch2_Release(This) (This)->lpVtbl->Release(This)
5780/*** IDispatch methods ***/
5781#define IShellDispatch2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
5782#define IShellDispatch2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
5783#define IShellDispatch2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
5784#define IShellDispatch2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
5785/*** IShellDispatch methods ***/
5786#define IShellDispatch2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
5787#define IShellDispatch2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
5788#define IShellDispatch2_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
5789#define IShellDispatch2_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
5790#define IShellDispatch2_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
5791#define IShellDispatch2_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
5792#define IShellDispatch2_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
5793#define IShellDispatch2_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
5794#define IShellDispatch2_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
5795#define IShellDispatch2_FileRun(This) (This)->lpVtbl->FileRun(This)
5796#define IShellDispatch2_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
5797#define IShellDispatch2_TileVertically(This) (This)->lpVtbl->TileVertically(This)
5798#define IShellDispatch2_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
5799#define IShellDispatch2_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
5800#define IShellDispatch2_Suspend(This) (This)->lpVtbl->Suspend(This)
5801#define IShellDispatch2_EjectPC(This) (This)->lpVtbl->EjectPC(This)
5802#define IShellDispatch2_SetTime(This) (This)->lpVtbl->SetTime(This)
5803#define IShellDispatch2_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
5804#define IShellDispatch2_Help(This) (This)->lpVtbl->Help(This)
5805#define IShellDispatch2_FindFiles(This) (This)->lpVtbl->FindFiles(This)
5806#define IShellDispatch2_FindComputer(This) (This)->lpVtbl->FindComputer(This)
5807#define IShellDispatch2_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
5808#define IShellDispatch2_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
5809/*** IShellDispatch2 methods ***/
5810#define IShellDispatch2_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
5811#define IShellDispatch2_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
5812#define IShellDispatch2_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
5813#define IShellDispatch2_GetSystemInformation(This,name,pv) (This)->lpVtbl->GetSystemInformation(This,name,pv)
5814#define IShellDispatch2_ServiceStart(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess)
5815#define IShellDispatch2_ServiceStop(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess)
5816#define IShellDispatch2_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
5817#define IShellDispatch2_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
5818#define IShellDispatch2_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
5819#else
5820/*** IUnknown methods ***/
5821static FORCEINLINE HRESULT IShellDispatch2_QueryInterface(IShellDispatch2* This,REFIID riid,void **ppvObject) {
5822    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5823}
5824static FORCEINLINE ULONG IShellDispatch2_AddRef(IShellDispatch2* This) {
5825    return This->lpVtbl->AddRef(This);
5826}
5827static FORCEINLINE ULONG IShellDispatch2_Release(IShellDispatch2* This) {
5828    return This->lpVtbl->Release(This);
5829}
5830/*** IDispatch methods ***/
5831static FORCEINLINE HRESULT IShellDispatch2_GetTypeInfoCount(IShellDispatch2* This,UINT *pctinfo) {
5832    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5833}
5834static FORCEINLINE HRESULT IShellDispatch2_GetTypeInfo(IShellDispatch2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5835    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5836}
5837static FORCEINLINE HRESULT IShellDispatch2_GetIDsOfNames(IShellDispatch2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
5838    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
5839}
5840static FORCEINLINE HRESULT IShellDispatch2_Invoke(IShellDispatch2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
5841    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
5842}
5843/*** IShellDispatch methods ***/
5844static FORCEINLINE HRESULT IShellDispatch2_get_Application(IShellDispatch2* This,IDispatch **ppid) {
5845    return This->lpVtbl->get_Application(This,ppid);
5846}
5847static FORCEINLINE HRESULT IShellDispatch2_get_Parent(IShellDispatch2* This,IDispatch **ppid) {
5848    return This->lpVtbl->get_Parent(This,ppid);
5849}
5850static FORCEINLINE HRESULT IShellDispatch2_NameSpace(IShellDispatch2* This,VARIANT vDir,Folder **ppsdf) {
5851    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
5852}
5853static FORCEINLINE HRESULT IShellDispatch2_BrowseForFolder(IShellDispatch2* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
5854    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
5855}
5856static FORCEINLINE HRESULT IShellDispatch2_Windows(IShellDispatch2* This,IDispatch **ppid) {
5857    return This->lpVtbl->Windows(This,ppid);
5858}
5859static FORCEINLINE HRESULT IShellDispatch2_Open(IShellDispatch2* This,VARIANT vDir) {
5860    return This->lpVtbl->Open(This,vDir);
5861}
5862static FORCEINLINE HRESULT IShellDispatch2_Explore(IShellDispatch2* This,VARIANT vDir) {
5863    return This->lpVtbl->Explore(This,vDir);
5864}
5865static FORCEINLINE HRESULT IShellDispatch2_MinimizeAll(IShellDispatch2* This) {
5866    return This->lpVtbl->MinimizeAll(This);
5867}
5868static FORCEINLINE HRESULT IShellDispatch2_UndoMinimizeALL(IShellDispatch2* This) {
5869    return This->lpVtbl->UndoMinimizeALL(This);
5870}
5871static FORCEINLINE HRESULT IShellDispatch2_FileRun(IShellDispatch2* This) {
5872    return This->lpVtbl->FileRun(This);
5873}
5874static FORCEINLINE HRESULT IShellDispatch2_CascadeWindows(IShellDispatch2* This) {
5875    return This->lpVtbl->CascadeWindows(This);
5876}
5877static FORCEINLINE HRESULT IShellDispatch2_TileVertically(IShellDispatch2* This) {
5878    return This->lpVtbl->TileVertically(This);
5879}
5880static FORCEINLINE HRESULT IShellDispatch2_TileHorizontally(IShellDispatch2* This) {
5881    return This->lpVtbl->TileHorizontally(This);
5882}
5883static FORCEINLINE HRESULT IShellDispatch2_ShutdownWindows(IShellDispatch2* This) {
5884    return This->lpVtbl->ShutdownWindows(This);
5885}
5886static FORCEINLINE HRESULT IShellDispatch2_Suspend(IShellDispatch2* This) {
5887    return This->lpVtbl->Suspend(This);
5888}
5889static FORCEINLINE HRESULT IShellDispatch2_EjectPC(IShellDispatch2* This) {
5890    return This->lpVtbl->EjectPC(This);
5891}
5892static FORCEINLINE HRESULT IShellDispatch2_SetTime(IShellDispatch2* This) {
5893    return This->lpVtbl->SetTime(This);
5894}
5895static FORCEINLINE HRESULT IShellDispatch2_TrayProperties(IShellDispatch2* This) {
5896    return This->lpVtbl->TrayProperties(This);
5897}
5898static FORCEINLINE HRESULT IShellDispatch2_Help(IShellDispatch2* This) {
5899    return This->lpVtbl->Help(This);
5900}
5901static FORCEINLINE HRESULT IShellDispatch2_FindFiles(IShellDispatch2* This) {
5902    return This->lpVtbl->FindFiles(This);
5903}
5904static FORCEINLINE HRESULT IShellDispatch2_FindComputer(IShellDispatch2* This) {
5905    return This->lpVtbl->FindComputer(This);
5906}
5907static FORCEINLINE HRESULT IShellDispatch2_RefreshMenu(IShellDispatch2* This) {
5908    return This->lpVtbl->RefreshMenu(This);
5909}
5910static FORCEINLINE HRESULT IShellDispatch2_ControlPanelItem(IShellDispatch2* This,BSTR bstrDir) {
5911    return This->lpVtbl->ControlPanelItem(This,bstrDir);
5912}
5913/*** IShellDispatch2 methods ***/
5914static FORCEINLINE HRESULT IShellDispatch2_IsRestricted(IShellDispatch2* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
5915    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
5916}
5917static FORCEINLINE HRESULT IShellDispatch2_ShellExecute(IShellDispatch2* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
5918    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
5919}
5920static FORCEINLINE HRESULT IShellDispatch2_FindPrinter(IShellDispatch2* This,BSTR name,BSTR location,BSTR model) {
5921    return This->lpVtbl->FindPrinter(This,name,location,model);
5922}
5923static FORCEINLINE HRESULT IShellDispatch2_GetSystemInformation(IShellDispatch2* This,BSTR name,VARIANT *pv) {
5924    return This->lpVtbl->GetSystemInformation(This,name,pv);
5925}
5926static FORCEINLINE HRESULT IShellDispatch2_ServiceStart(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
5927    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
5928}
5929static FORCEINLINE HRESULT IShellDispatch2_ServiceStop(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
5930    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
5931}
5932static FORCEINLINE HRESULT IShellDispatch2_IsServiceRunning(IShellDispatch2* This,BSTR ServiceName,VARIANT *pRunning) {
5933    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
5934}
5935static FORCEINLINE HRESULT IShellDispatch2_CanStartStopService(IShellDispatch2* This,BSTR ServiceName,VARIANT *pCanStartStop) {
5936    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
5937}
5938static FORCEINLINE HRESULT IShellDispatch2_ShowBrowserBar(IShellDispatch2* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
5939    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
5940}
5941#endif
5942#endif
5943
5944#endif
5945
5946HRESULT STDMETHODCALLTYPE IShellDispatch2_IsRestricted_Proxy(
5947    IShellDispatch2* This,
5948    BSTR Group,
5949    BSTR Restriction,
5950    LONG *plRestrictValue);
5951void __RPC_STUB IShellDispatch2_IsRestricted_Stub(
5952    IRpcStubBuffer* This,
5953    IRpcChannelBuffer* pRpcChannelBuffer,
5954    PRPC_MESSAGE pRpcMessage,
5955    DWORD* pdwStubPhase);
5956HRESULT STDMETHODCALLTYPE IShellDispatch2_ShellExecute_Proxy(
5957    IShellDispatch2* This,
5958    BSTR File,
5959    VARIANT vArgs,
5960    VARIANT vDir,
5961    VARIANT vOperation,
5962    VARIANT vShow);
5963void __RPC_STUB IShellDispatch2_ShellExecute_Stub(
5964    IRpcStubBuffer* This,
5965    IRpcChannelBuffer* pRpcChannelBuffer,
5966    PRPC_MESSAGE pRpcMessage,
5967    DWORD* pdwStubPhase);
5968HRESULT STDMETHODCALLTYPE IShellDispatch2_FindPrinter_Proxy(
5969    IShellDispatch2* This,
5970    BSTR name,
5971    BSTR location,
5972    BSTR model);
5973void __RPC_STUB IShellDispatch2_FindPrinter_Stub(
5974    IRpcStubBuffer* This,
5975    IRpcChannelBuffer* pRpcChannelBuffer,
5976    PRPC_MESSAGE pRpcMessage,
5977    DWORD* pdwStubPhase);
5978HRESULT STDMETHODCALLTYPE IShellDispatch2_GetSystemInformation_Proxy(
5979    IShellDispatch2* This,
5980    BSTR name,
5981    VARIANT *pv);
5982void __RPC_STUB IShellDispatch2_GetSystemInformation_Stub(
5983    IRpcStubBuffer* This,
5984    IRpcChannelBuffer* pRpcChannelBuffer,
5985    PRPC_MESSAGE pRpcMessage,
5986    DWORD* pdwStubPhase);
5987HRESULT STDMETHODCALLTYPE IShellDispatch2_ServiceStart_Proxy(
5988    IShellDispatch2* This,
5989    BSTR ServiceName,
5990    VARIANT Persistent,
5991    VARIANT *pSuccess);
5992void __RPC_STUB IShellDispatch2_ServiceStart_Stub(
5993    IRpcStubBuffer* This,
5994    IRpcChannelBuffer* pRpcChannelBuffer,
5995    PRPC_MESSAGE pRpcMessage,
5996    DWORD* pdwStubPhase);
5997HRESULT STDMETHODCALLTYPE IShellDispatch2_ServiceStop_Proxy(
5998    IShellDispatch2* This,
5999    BSTR ServiceName,
6000    VARIANT Persistent,
6001    VARIANT *pSuccess);
6002void __RPC_STUB IShellDispatch2_ServiceStop_Stub(
6003    IRpcStubBuffer* This,
6004    IRpcChannelBuffer* pRpcChannelBuffer,
6005    PRPC_MESSAGE pRpcMessage,
6006    DWORD* pdwStubPhase);
6007HRESULT STDMETHODCALLTYPE IShellDispatch2_IsServiceRunning_Proxy(
6008    IShellDispatch2* This,
6009    BSTR ServiceName,
6010    VARIANT *pRunning);
6011void __RPC_STUB IShellDispatch2_IsServiceRunning_Stub(
6012    IRpcStubBuffer* This,
6013    IRpcChannelBuffer* pRpcChannelBuffer,
6014    PRPC_MESSAGE pRpcMessage,
6015    DWORD* pdwStubPhase);
6016HRESULT STDMETHODCALLTYPE IShellDispatch2_CanStartStopService_Proxy(
6017    IShellDispatch2* This,
6018    BSTR ServiceName,
6019    VARIANT *pCanStartStop);
6020void __RPC_STUB IShellDispatch2_CanStartStopService_Stub(
6021    IRpcStubBuffer* This,
6022    IRpcChannelBuffer* pRpcChannelBuffer,
6023    PRPC_MESSAGE pRpcMessage,
6024    DWORD* pdwStubPhase);
6025HRESULT STDMETHODCALLTYPE IShellDispatch2_ShowBrowserBar_Proxy(
6026    IShellDispatch2* This,
6027    BSTR bstrClsid,
6028    VARIANT bShow,
6029    VARIANT *pSuccess);
6030void __RPC_STUB IShellDispatch2_ShowBrowserBar_Stub(
6031    IRpcStubBuffer* This,
6032    IRpcChannelBuffer* pRpcChannelBuffer,
6033    PRPC_MESSAGE pRpcMessage,
6034    DWORD* pdwStubPhase);
6035
6036#endif  /* __IShellDispatch2_INTERFACE_DEFINED__ */
6037
6038/*****************************************************************************
6039 * IShellDispatch3 interface
6040 */
6041#ifndef __IShellDispatch3_INTERFACE_DEFINED__
6042#define __IShellDispatch3_INTERFACE_DEFINED__
6043
6044DEFINE_GUID(IID_IShellDispatch3, 0x177160ca, 0xbb5a, 0x411c, 0x84,0x1d, 0xbd,0x38,0xfa,0xcd,0xea,0xa0);
6045#if defined(__cplusplus) && !defined(CINTERFACE)
6046MIDL_INTERFACE("177160ca-bb5a-411c-841d-bd38facdeaa0")
6047IShellDispatch3 : public IShellDispatch2
6048{
6049    virtual HRESULT STDMETHODCALLTYPE AddToRecent(
6050        VARIANT varFile,
6051        BSTR bstrCategory) = 0;
6052
6053};
6054#ifdef __CRT_UUID_DECL
6055__CRT_UUID_DECL(IShellDispatch3, 0x177160ca, 0xbb5a, 0x411c, 0x84,0x1d, 0xbd,0x38,0xfa,0xcd,0xea,0xa0)
6056#endif
6057#else
6058typedef struct IShellDispatch3Vtbl {
6059    BEGIN_INTERFACE
6060
6061    /*** IUnknown methods ***/
6062    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6063        IShellDispatch3* This,
6064        REFIID riid,
6065        void **ppvObject);
6066
6067    ULONG (STDMETHODCALLTYPE *AddRef)(
6068        IShellDispatch3* This);
6069
6070    ULONG (STDMETHODCALLTYPE *Release)(
6071        IShellDispatch3* This);
6072
6073    /*** IDispatch methods ***/
6074    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
6075        IShellDispatch3* This,
6076        UINT *pctinfo);
6077
6078    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
6079        IShellDispatch3* This,
6080        UINT iTInfo,
6081        LCID lcid,
6082        ITypeInfo **ppTInfo);
6083
6084    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
6085        IShellDispatch3* This,
6086        REFIID riid,
6087        LPOLESTR *rgszNames,
6088        UINT cNames,
6089        LCID lcid,
6090        DISPID *rgDispId);
6091
6092    HRESULT (STDMETHODCALLTYPE *Invoke)(
6093        IShellDispatch3* This,
6094        DISPID dispIdMember,
6095        REFIID riid,
6096        LCID lcid,
6097        WORD wFlags,
6098        DISPPARAMS *pDispParams,
6099        VARIANT *pVarResult,
6100        EXCEPINFO *pExcepInfo,
6101        UINT *puArgErr);
6102
6103    /*** IShellDispatch methods ***/
6104    HRESULT (STDMETHODCALLTYPE *get_Application)(
6105        IShellDispatch3* This,
6106        IDispatch **ppid);
6107
6108    HRESULT (STDMETHODCALLTYPE *get_Parent)(
6109        IShellDispatch3* This,
6110        IDispatch **ppid);
6111
6112    HRESULT (STDMETHODCALLTYPE *NameSpace)(
6113        IShellDispatch3* This,
6114        VARIANT vDir,
6115        Folder **ppsdf);
6116
6117    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
6118        IShellDispatch3* This,
6119        LONG Hwnd,
6120        BSTR Title,
6121        LONG Options,
6122        VARIANT RootFolder,
6123        Folder **ppsdf);
6124
6125    HRESULT (STDMETHODCALLTYPE *Windows)(
6126        IShellDispatch3* This,
6127        IDispatch **ppid);
6128
6129    HRESULT (STDMETHODCALLTYPE *Open)(
6130        IShellDispatch3* This,
6131        VARIANT vDir);
6132
6133    HRESULT (STDMETHODCALLTYPE *Explore)(
6134        IShellDispatch3* This,
6135        VARIANT vDir);
6136
6137    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
6138        IShellDispatch3* This);
6139
6140    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
6141        IShellDispatch3* This);
6142
6143    HRESULT (STDMETHODCALLTYPE *FileRun)(
6144        IShellDispatch3* This);
6145
6146    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
6147        IShellDispatch3* This);
6148
6149    HRESULT (STDMETHODCALLTYPE *TileVertically)(
6150        IShellDispatch3* This);
6151
6152    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
6153        IShellDispatch3* This);
6154
6155    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
6156        IShellDispatch3* This);
6157
6158    HRESULT (STDMETHODCALLTYPE *Suspend)(
6159        IShellDispatch3* This);
6160
6161    HRESULT (STDMETHODCALLTYPE *EjectPC)(
6162        IShellDispatch3* This);
6163
6164    HRESULT (STDMETHODCALLTYPE *SetTime)(
6165        IShellDispatch3* This);
6166
6167    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
6168        IShellDispatch3* This);
6169
6170    HRESULT (STDMETHODCALLTYPE *Help)(
6171        IShellDispatch3* This);
6172
6173    HRESULT (STDMETHODCALLTYPE *FindFiles)(
6174        IShellDispatch3* This);
6175
6176    HRESULT (STDMETHODCALLTYPE *FindComputer)(
6177        IShellDispatch3* This);
6178
6179    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
6180        IShellDispatch3* This);
6181
6182    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
6183        IShellDispatch3* This,
6184        BSTR bstrDir);
6185
6186    /*** IShellDispatch2 methods ***/
6187    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
6188        IShellDispatch3* This,
6189        BSTR Group,
6190        BSTR Restriction,
6191        LONG *plRestrictValue);
6192
6193    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
6194        IShellDispatch3* This,
6195        BSTR File,
6196        VARIANT vArgs,
6197        VARIANT vDir,
6198        VARIANT vOperation,
6199        VARIANT vShow);
6200
6201    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
6202        IShellDispatch3* This,
6203        BSTR name,
6204        BSTR location,
6205        BSTR model);
6206
6207    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
6208        IShellDispatch3* This,
6209        BSTR name,
6210        VARIANT *pv);
6211
6212    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
6213        IShellDispatch3* This,
6214        BSTR ServiceName,
6215        VARIANT Persistent,
6216        VARIANT *pSuccess);
6217
6218    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
6219        IShellDispatch3* This,
6220        BSTR ServiceName,
6221        VARIANT Persistent,
6222        VARIANT *pSuccess);
6223
6224    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
6225        IShellDispatch3* This,
6226        BSTR ServiceName,
6227        VARIANT *pRunning);
6228
6229    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
6230        IShellDispatch3* This,
6231        BSTR ServiceName,
6232        VARIANT *pCanStartStop);
6233
6234    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
6235        IShellDispatch3* This,
6236        BSTR bstrClsid,
6237        VARIANT bShow,
6238        VARIANT *pSuccess);
6239
6240    /*** IShellDispatch3 methods ***/
6241    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
6242        IShellDispatch3* This,
6243        VARIANT varFile,
6244        BSTR bstrCategory);
6245
6246    END_INTERFACE
6247} IShellDispatch3Vtbl;
6248interface IShellDispatch3 {
6249    CONST_VTBL IShellDispatch3Vtbl* lpVtbl;
6250};
6251
6252#ifdef COBJMACROS
6253#ifndef WIDL_C_INLINE_WRAPPERS
6254/*** IUnknown methods ***/
6255#define IShellDispatch3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6256#define IShellDispatch3_AddRef(This) (This)->lpVtbl->AddRef(This)
6257#define IShellDispatch3_Release(This) (This)->lpVtbl->Release(This)
6258/*** IDispatch methods ***/
6259#define IShellDispatch3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
6260#define IShellDispatch3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
6261#define IShellDispatch3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
6262#define IShellDispatch3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
6263/*** IShellDispatch methods ***/
6264#define IShellDispatch3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
6265#define IShellDispatch3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
6266#define IShellDispatch3_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
6267#define IShellDispatch3_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
6268#define IShellDispatch3_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
6269#define IShellDispatch3_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
6270#define IShellDispatch3_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
6271#define IShellDispatch3_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
6272#define IShellDispatch3_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
6273#define IShellDispatch3_FileRun(This) (This)->lpVtbl->FileRun(This)
6274#define IShellDispatch3_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
6275#define IShellDispatch3_TileVertically(This) (This)->lpVtbl->TileVertically(This)
6276#define IShellDispatch3_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
6277#define IShellDispatch3_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
6278#define IShellDispatch3_Suspend(This) (This)->lpVtbl->Suspend(This)
6279#define IShellDispatch3_EjectPC(This) (This)->lpVtbl->EjectPC(This)
6280#define IShellDispatch3_SetTime(This) (This)->lpVtbl->SetTime(This)
6281#define IShellDispatch3_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
6282#define IShellDispatch3_Help(This) (This)->lpVtbl->Help(This)
6283#define IShellDispatch3_FindFiles(This) (This)->lpVtbl->FindFiles(This)
6284#define IShellDispatch3_FindComputer(This) (This)->lpVtbl->FindComputer(This)
6285#define IShellDispatch3_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
6286#define IShellDispatch3_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
6287/*** IShellDispatch2 methods ***/
6288#define IShellDispatch3_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
6289#define IShellDispatch3_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
6290#define IShellDispatch3_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
6291#define IShellDispatch3_GetSystemInformation(This,name,pv) (This)->lpVtbl->GetSystemInformation(This,name,pv)
6292#define IShellDispatch3_ServiceStart(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess)
6293#define IShellDispatch3_ServiceStop(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess)
6294#define IShellDispatch3_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
6295#define IShellDispatch3_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
6296#define IShellDispatch3_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
6297/*** IShellDispatch3 methods ***/
6298#define IShellDispatch3_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
6299#else
6300/*** IUnknown methods ***/
6301static FORCEINLINE HRESULT IShellDispatch3_QueryInterface(IShellDispatch3* This,REFIID riid,void **ppvObject) {
6302    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6303}
6304static FORCEINLINE ULONG IShellDispatch3_AddRef(IShellDispatch3* This) {
6305    return This->lpVtbl->AddRef(This);
6306}
6307static FORCEINLINE ULONG IShellDispatch3_Release(IShellDispatch3* This) {
6308    return This->lpVtbl->Release(This);
6309}
6310/*** IDispatch methods ***/
6311static FORCEINLINE HRESULT IShellDispatch3_GetTypeInfoCount(IShellDispatch3* This,UINT *pctinfo) {
6312    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
6313}
6314static FORCEINLINE HRESULT IShellDispatch3_GetTypeInfo(IShellDispatch3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
6315    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
6316}
6317static FORCEINLINE HRESULT IShellDispatch3_GetIDsOfNames(IShellDispatch3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
6318    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
6319}
6320static FORCEINLINE HRESULT IShellDispatch3_Invoke(IShellDispatch3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
6321    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
6322}
6323/*** IShellDispatch methods ***/
6324static FORCEINLINE HRESULT IShellDispatch3_get_Application(IShellDispatch3* This,IDispatch **ppid) {
6325    return This->lpVtbl->get_Application(This,ppid);
6326}
6327static FORCEINLINE HRESULT IShellDispatch3_get_Parent(IShellDispatch3* This,IDispatch **ppid) {
6328    return This->lpVtbl->get_Parent(This,ppid);
6329}
6330static FORCEINLINE HRESULT IShellDispatch3_NameSpace(IShellDispatch3* This,VARIANT vDir,Folder **ppsdf) {
6331    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
6332}
6333static FORCEINLINE HRESULT IShellDispatch3_BrowseForFolder(IShellDispatch3* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
6334    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
6335}
6336static FORCEINLINE HRESULT IShellDispatch3_Windows(IShellDispatch3* This,IDispatch **ppid) {
6337    return This->lpVtbl->Windows(This,ppid);
6338}
6339static FORCEINLINE HRESULT IShellDispatch3_Open(IShellDispatch3* This,VARIANT vDir) {
6340    return This->lpVtbl->Open(This,vDir);
6341}
6342static FORCEINLINE HRESULT IShellDispatch3_Explore(IShellDispatch3* This,VARIANT vDir) {
6343    return This->lpVtbl->Explore(This,vDir);
6344}
6345static FORCEINLINE HRESULT IShellDispatch3_MinimizeAll(IShellDispatch3* This) {
6346    return This->lpVtbl->MinimizeAll(This);
6347}
6348static FORCEINLINE HRESULT IShellDispatch3_UndoMinimizeALL(IShellDispatch3* This) {
6349    return This->lpVtbl->UndoMinimizeALL(This);
6350}
6351static FORCEINLINE HRESULT IShellDispatch3_FileRun(IShellDispatch3* This) {
6352    return This->lpVtbl->FileRun(This);
6353}
6354static FORCEINLINE HRESULT IShellDispatch3_CascadeWindows(IShellDispatch3* This) {
6355    return This->lpVtbl->CascadeWindows(This);
6356}
6357static FORCEINLINE HRESULT IShellDispatch3_TileVertically(IShellDispatch3* This) {
6358    return This->lpVtbl->TileVertically(This);
6359}
6360static FORCEINLINE HRESULT IShellDispatch3_TileHorizontally(IShellDispatch3* This) {
6361    return This->lpVtbl->TileHorizontally(This);
6362}
6363static FORCEINLINE HRESULT IShellDispatch3_ShutdownWindows(IShellDispatch3* This) {
6364    return This->lpVtbl->ShutdownWindows(This);
6365}
6366static FORCEINLINE HRESULT IShellDispatch3_Suspend(IShellDispatch3* This) {
6367    return This->lpVtbl->Suspend(This);
6368}
6369static FORCEINLINE HRESULT IShellDispatch3_EjectPC(IShellDispatch3* This) {
6370    return This->lpVtbl->EjectPC(This);
6371}
6372static FORCEINLINE HRESULT IShellDispatch3_SetTime(IShellDispatch3* This) {
6373    return This->lpVtbl->SetTime(This);
6374}
6375static FORCEINLINE HRESULT IShellDispatch3_TrayProperties(IShellDispatch3* This) {
6376    return This->lpVtbl->TrayProperties(This);
6377}
6378static FORCEINLINE HRESULT IShellDispatch3_Help(IShellDispatch3* This) {
6379    return This->lpVtbl->Help(This);
6380}
6381static FORCEINLINE HRESULT IShellDispatch3_FindFiles(IShellDispatch3* This) {
6382    return This->lpVtbl->FindFiles(This);
6383}
6384static FORCEINLINE HRESULT IShellDispatch3_FindComputer(IShellDispatch3* This) {
6385    return This->lpVtbl->FindComputer(This);
6386}
6387static FORCEINLINE HRESULT IShellDispatch3_RefreshMenu(IShellDispatch3* This) {
6388    return This->lpVtbl->RefreshMenu(This);
6389}
6390static FORCEINLINE HRESULT IShellDispatch3_ControlPanelItem(IShellDispatch3* This,BSTR bstrDir) {
6391    return This->lpVtbl->ControlPanelItem(This,bstrDir);
6392}
6393/*** IShellDispatch2 methods ***/
6394static FORCEINLINE HRESULT IShellDispatch3_IsRestricted(IShellDispatch3* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
6395    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
6396}
6397static FORCEINLINE HRESULT IShellDispatch3_ShellExecute(IShellDispatch3* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
6398    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
6399}
6400static FORCEINLINE HRESULT IShellDispatch3_FindPrinter(IShellDispatch3* This,BSTR name,BSTR location,BSTR model) {
6401    return This->lpVtbl->FindPrinter(This,name,location,model);
6402}
6403static FORCEINLINE HRESULT IShellDispatch3_GetSystemInformation(IShellDispatch3* This,BSTR name,VARIANT *pv) {
6404    return This->lpVtbl->GetSystemInformation(This,name,pv);
6405}
6406static FORCEINLINE HRESULT IShellDispatch3_ServiceStart(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6407    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
6408}
6409static FORCEINLINE HRESULT IShellDispatch3_ServiceStop(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6410    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
6411}
6412static FORCEINLINE HRESULT IShellDispatch3_IsServiceRunning(IShellDispatch3* This,BSTR ServiceName,VARIANT *pRunning) {
6413    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
6414}
6415static FORCEINLINE HRESULT IShellDispatch3_CanStartStopService(IShellDispatch3* This,BSTR ServiceName,VARIANT *pCanStartStop) {
6416    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
6417}
6418static FORCEINLINE HRESULT IShellDispatch3_ShowBrowserBar(IShellDispatch3* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
6419    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
6420}
6421/*** IShellDispatch3 methods ***/
6422static FORCEINLINE HRESULT IShellDispatch3_AddToRecent(IShellDispatch3* This,VARIANT varFile,BSTR bstrCategory) {
6423    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
6424}
6425#endif
6426#endif
6427
6428#endif
6429
6430HRESULT STDMETHODCALLTYPE IShellDispatch3_AddToRecent_Proxy(
6431    IShellDispatch3* This,
6432    VARIANT varFile,
6433    BSTR bstrCategory);
6434void __RPC_STUB IShellDispatch3_AddToRecent_Stub(
6435    IRpcStubBuffer* This,
6436    IRpcChannelBuffer* pRpcChannelBuffer,
6437    PRPC_MESSAGE pRpcMessage,
6438    DWORD* pdwStubPhase);
6439
6440#endif  /* __IShellDispatch3_INTERFACE_DEFINED__ */
6441
6442/*****************************************************************************
6443 * IShellDispatch4 interface
6444 */
6445#ifndef __IShellDispatch4_INTERFACE_DEFINED__
6446#define __IShellDispatch4_INTERFACE_DEFINED__
6447
6448DEFINE_GUID(IID_IShellDispatch4, 0xefd84b2d, 0x4bcf, 0x4298, 0xbe,0x25, 0xeb,0x54,0x2a,0x59,0xfb,0xda);
6449#if defined(__cplusplus) && !defined(CINTERFACE)
6450MIDL_INTERFACE("efd84b2d-4bcf-4298-be25-eb542a59fbda")
6451IShellDispatch4 : public IShellDispatch3
6452{
6453    virtual HRESULT STDMETHODCALLTYPE WindowsSecurity(
6454        ) = 0;
6455
6456    virtual HRESULT STDMETHODCALLTYPE ToggleDesktop(
6457        ) = 0;
6458
6459    virtual HRESULT STDMETHODCALLTYPE ExplorerPolicy(
6460        BSTR bstrPolicyName,
6461        VARIANT *pValue) = 0;
6462
6463    virtual HRESULT STDMETHODCALLTYPE GetSetting(
6464        LONG lSetting,
6465        VARIANT_BOOL *pResult) = 0;
6466
6467};
6468#ifdef __CRT_UUID_DECL
6469__CRT_UUID_DECL(IShellDispatch4, 0xefd84b2d, 0x4bcf, 0x4298, 0xbe,0x25, 0xeb,0x54,0x2a,0x59,0xfb,0xda)
6470#endif
6471#else
6472typedef struct IShellDispatch4Vtbl {
6473    BEGIN_INTERFACE
6474
6475    /*** IUnknown methods ***/
6476    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6477        IShellDispatch4* This,
6478        REFIID riid,
6479        void **ppvObject);
6480
6481    ULONG (STDMETHODCALLTYPE *AddRef)(
6482        IShellDispatch4* This);
6483
6484    ULONG (STDMETHODCALLTYPE *Release)(
6485        IShellDispatch4* This);
6486
6487    /*** IDispatch methods ***/
6488    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
6489        IShellDispatch4* This,
6490        UINT *pctinfo);
6491
6492    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
6493        IShellDispatch4* This,
6494        UINT iTInfo,
6495        LCID lcid,
6496        ITypeInfo **ppTInfo);
6497
6498    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
6499        IShellDispatch4* This,
6500        REFIID riid,
6501        LPOLESTR *rgszNames,
6502        UINT cNames,
6503        LCID lcid,
6504        DISPID *rgDispId);
6505
6506    HRESULT (STDMETHODCALLTYPE *Invoke)(
6507        IShellDispatch4* This,
6508        DISPID dispIdMember,
6509        REFIID riid,
6510        LCID lcid,
6511        WORD wFlags,
6512        DISPPARAMS *pDispParams,
6513        VARIANT *pVarResult,
6514        EXCEPINFO *pExcepInfo,
6515        UINT *puArgErr);
6516
6517    /*** IShellDispatch methods ***/
6518    HRESULT (STDMETHODCALLTYPE *get_Application)(
6519        IShellDispatch4* This,
6520        IDispatch **ppid);
6521
6522    HRESULT (STDMETHODCALLTYPE *get_Parent)(
6523        IShellDispatch4* This,
6524        IDispatch **ppid);
6525
6526    HRESULT (STDMETHODCALLTYPE *NameSpace)(
6527        IShellDispatch4* This,
6528        VARIANT vDir,
6529        Folder **ppsdf);
6530
6531    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
6532        IShellDispatch4* This,
6533        LONG Hwnd,
6534        BSTR Title,
6535        LONG Options,
6536        VARIANT RootFolder,
6537        Folder **ppsdf);
6538
6539    HRESULT (STDMETHODCALLTYPE *Windows)(
6540        IShellDispatch4* This,
6541        IDispatch **ppid);
6542
6543    HRESULT (STDMETHODCALLTYPE *Open)(
6544        IShellDispatch4* This,
6545        VARIANT vDir);
6546
6547    HRESULT (STDMETHODCALLTYPE *Explore)(
6548        IShellDispatch4* This,
6549        VARIANT vDir);
6550
6551    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
6552        IShellDispatch4* This);
6553
6554    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
6555        IShellDispatch4* This);
6556
6557    HRESULT (STDMETHODCALLTYPE *FileRun)(
6558        IShellDispatch4* This);
6559
6560    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
6561        IShellDispatch4* This);
6562
6563    HRESULT (STDMETHODCALLTYPE *TileVertically)(
6564        IShellDispatch4* This);
6565
6566    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
6567        IShellDispatch4* This);
6568
6569    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
6570        IShellDispatch4* This);
6571
6572    HRESULT (STDMETHODCALLTYPE *Suspend)(
6573        IShellDispatch4* This);
6574
6575    HRESULT (STDMETHODCALLTYPE *EjectPC)(
6576        IShellDispatch4* This);
6577
6578    HRESULT (STDMETHODCALLTYPE *SetTime)(
6579        IShellDispatch4* This);
6580
6581    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
6582        IShellDispatch4* This);
6583
6584    HRESULT (STDMETHODCALLTYPE *Help)(
6585        IShellDispatch4* This);
6586
6587    HRESULT (STDMETHODCALLTYPE *FindFiles)(
6588        IShellDispatch4* This);
6589
6590    HRESULT (STDMETHODCALLTYPE *FindComputer)(
6591        IShellDispatch4* This);
6592
6593    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
6594        IShellDispatch4* This);
6595
6596    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
6597        IShellDispatch4* This,
6598        BSTR bstrDir);
6599
6600    /*** IShellDispatch2 methods ***/
6601    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
6602        IShellDispatch4* This,
6603        BSTR Group,
6604        BSTR Restriction,
6605        LONG *plRestrictValue);
6606
6607    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
6608        IShellDispatch4* This,
6609        BSTR File,
6610        VARIANT vArgs,
6611        VARIANT vDir,
6612        VARIANT vOperation,
6613        VARIANT vShow);
6614
6615    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
6616        IShellDispatch4* This,
6617        BSTR name,
6618        BSTR location,
6619        BSTR model);
6620
6621    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
6622        IShellDispatch4* This,
6623        BSTR name,
6624        VARIANT *pv);
6625
6626    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
6627        IShellDispatch4* This,
6628        BSTR ServiceName,
6629        VARIANT Persistent,
6630        VARIANT *pSuccess);
6631
6632    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
6633        IShellDispatch4* This,
6634        BSTR ServiceName,
6635        VARIANT Persistent,
6636        VARIANT *pSuccess);
6637
6638    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
6639        IShellDispatch4* This,
6640        BSTR ServiceName,
6641        VARIANT *pRunning);
6642
6643    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
6644        IShellDispatch4* This,
6645        BSTR ServiceName,
6646        VARIANT *pCanStartStop);
6647
6648    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
6649        IShellDispatch4* This,
6650        BSTR bstrClsid,
6651        VARIANT bShow,
6652        VARIANT *pSuccess);
6653
6654    /*** IShellDispatch3 methods ***/
6655    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
6656        IShellDispatch4* This,
6657        VARIANT varFile,
6658        BSTR bstrCategory);
6659
6660    /*** IShellDispatch4 methods ***/
6661    HRESULT (STDMETHODCALLTYPE *WindowsSecurity)(
6662        IShellDispatch4* This);
6663
6664    HRESULT (STDMETHODCALLTYPE *ToggleDesktop)(
6665        IShellDispatch4* This);
6666
6667    HRESULT (STDMETHODCALLTYPE *ExplorerPolicy)(
6668        IShellDispatch4* This,
6669        BSTR bstrPolicyName,
6670        VARIANT *pValue);
6671
6672    HRESULT (STDMETHODCALLTYPE *GetSetting)(
6673        IShellDispatch4* This,
6674        LONG lSetting,
6675        VARIANT_BOOL *pResult);
6676
6677    END_INTERFACE
6678} IShellDispatch4Vtbl;
6679interface IShellDispatch4 {
6680    CONST_VTBL IShellDispatch4Vtbl* lpVtbl;
6681};
6682
6683#ifdef COBJMACROS
6684#ifndef WIDL_C_INLINE_WRAPPERS
6685/*** IUnknown methods ***/
6686#define IShellDispatch4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6687#define IShellDispatch4_AddRef(This) (This)->lpVtbl->AddRef(This)
6688#define IShellDispatch4_Release(This) (This)->lpVtbl->Release(This)
6689/*** IDispatch methods ***/
6690#define IShellDispatch4_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
6691#define IShellDispatch4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
6692#define IShellDispatch4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
6693#define IShellDispatch4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
6694/*** IShellDispatch methods ***/
6695#define IShellDispatch4_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
6696#define IShellDispatch4_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
6697#define IShellDispatch4_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
6698#define IShellDispatch4_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
6699#define IShellDispatch4_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
6700#define IShellDispatch4_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
6701#define IShellDispatch4_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
6702#define IShellDispatch4_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
6703#define IShellDispatch4_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
6704#define IShellDispatch4_FileRun(This) (This)->lpVtbl->FileRun(This)
6705#define IShellDispatch4_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
6706#define IShellDispatch4_TileVertically(This) (This)->lpVtbl->TileVertically(This)
6707#define IShellDispatch4_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
6708#define IShellDispatch4_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
6709#define IShellDispatch4_Suspend(This) (This)->lpVtbl->Suspend(This)
6710#define IShellDispatch4_EjectPC(This) (This)->lpVtbl->EjectPC(This)
6711#define IShellDispatch4_SetTime(This) (This)->lpVtbl->SetTime(This)
6712#define IShellDispatch4_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
6713#define IShellDispatch4_Help(This) (This)->lpVtbl->Help(This)
6714#define IShellDispatch4_FindFiles(This) (This)->lpVtbl->FindFiles(This)
6715#define IShellDispatch4_FindComputer(This) (This)->lpVtbl->FindComputer(This)
6716#define IShellDispatch4_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
6717#define IShellDispatch4_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
6718/*** IShellDispatch2 methods ***/
6719#define IShellDispatch4_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
6720#define IShellDispatch4_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
6721#define IShellDispatch4_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
6722#define IShellDispatch4_GetSystemInformation(This,name,pv) (This)->lpVtbl->GetSystemInformation(This,name,pv)
6723#define IShellDispatch4_ServiceStart(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess)
6724#define IShellDispatch4_ServiceStop(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess)
6725#define IShellDispatch4_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
6726#define IShellDispatch4_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
6727#define IShellDispatch4_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
6728/*** IShellDispatch3 methods ***/
6729#define IShellDispatch4_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
6730/*** IShellDispatch4 methods ***/
6731#define IShellDispatch4_WindowsSecurity(This) (This)->lpVtbl->WindowsSecurity(This)
6732#define IShellDispatch4_ToggleDesktop(This) (This)->lpVtbl->ToggleDesktop(This)
6733#define IShellDispatch4_ExplorerPolicy(This,bstrPolicyName,pValue) (This)->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue)
6734#define IShellDispatch4_GetSetting(This,lSetting,pResult) (This)->lpVtbl->GetSetting(This,lSetting,pResult)
6735#else
6736/*** IUnknown methods ***/
6737static FORCEINLINE HRESULT IShellDispatch4_QueryInterface(IShellDispatch4* This,REFIID riid,void **ppvObject) {
6738    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6739}
6740static FORCEINLINE ULONG IShellDispatch4_AddRef(IShellDispatch4* This) {
6741    return This->lpVtbl->AddRef(This);
6742}
6743static FORCEINLINE ULONG IShellDispatch4_Release(IShellDispatch4* This) {
6744    return This->lpVtbl->Release(This);
6745}
6746/*** IDispatch methods ***/
6747static FORCEINLINE HRESULT IShellDispatch4_GetTypeInfoCount(IShellDispatch4* This,UINT *pctinfo) {
6748    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
6749}
6750static FORCEINLINE HRESULT IShellDispatch4_GetTypeInfo(IShellDispatch4* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
6751    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
6752}
6753static FORCEINLINE HRESULT IShellDispatch4_GetIDsOfNames(IShellDispatch4* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
6754    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
6755}
6756static FORCEINLINE HRESULT IShellDispatch4_Invoke(IShellDispatch4* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
6757    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
6758}
6759/*** IShellDispatch methods ***/
6760static FORCEINLINE HRESULT IShellDispatch4_get_Application(IShellDispatch4* This,IDispatch **ppid) {
6761    return This->lpVtbl->get_Application(This,ppid);
6762}
6763static FORCEINLINE HRESULT IShellDispatch4_get_Parent(IShellDispatch4* This,IDispatch **ppid) {
6764    return This->lpVtbl->get_Parent(This,ppid);
6765}
6766static FORCEINLINE HRESULT IShellDispatch4_NameSpace(IShellDispatch4* This,VARIANT vDir,Folder **ppsdf) {
6767    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
6768}
6769static FORCEINLINE HRESULT IShellDispatch4_BrowseForFolder(IShellDispatch4* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
6770    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
6771}
6772static FORCEINLINE HRESULT IShellDispatch4_Windows(IShellDispatch4* This,IDispatch **ppid) {
6773    return This->lpVtbl->Windows(This,ppid);
6774}
6775static FORCEINLINE HRESULT IShellDispatch4_Open(IShellDispatch4* This,VARIANT vDir) {
6776    return This->lpVtbl->Open(This,vDir);
6777}
6778static FORCEINLINE HRESULT IShellDispatch4_Explore(IShellDispatch4* This,VARIANT vDir) {
6779    return This->lpVtbl->Explore(This,vDir);
6780}
6781static FORCEINLINE HRESULT IShellDispatch4_MinimizeAll(IShellDispatch4* This) {
6782    return This->lpVtbl->MinimizeAll(This);
6783}
6784static FORCEINLINE HRESULT IShellDispatch4_UndoMinimizeALL(IShellDispatch4* This) {
6785    return This->lpVtbl->UndoMinimizeALL(This);
6786}
6787static FORCEINLINE HRESULT IShellDispatch4_FileRun(IShellDispatch4* This) {
6788    return This->lpVtbl->FileRun(This);
6789}
6790static FORCEINLINE HRESULT IShellDispatch4_CascadeWindows(IShellDispatch4* This) {
6791    return This->lpVtbl->CascadeWindows(This);
6792}
6793static FORCEINLINE HRESULT IShellDispatch4_TileVertically(IShellDispatch4* This) {
6794    return This->lpVtbl->TileVertically(This);
6795}
6796static FORCEINLINE HRESULT IShellDispatch4_TileHorizontally(IShellDispatch4* This) {
6797    return This->lpVtbl->TileHorizontally(This);
6798}
6799static FORCEINLINE HRESULT IShellDispatch4_ShutdownWindows(IShellDispatch4* This) {
6800    return This->lpVtbl->ShutdownWindows(This);
6801}
6802static FORCEINLINE HRESULT IShellDispatch4_Suspend(IShellDispatch4* This) {
6803    return This->lpVtbl->Suspend(This);
6804}
6805static FORCEINLINE HRESULT IShellDispatch4_EjectPC(IShellDispatch4* This) {
6806    return This->lpVtbl->EjectPC(This);
6807}
6808static FORCEINLINE HRESULT IShellDispatch4_SetTime(IShellDispatch4* This) {
6809    return This->lpVtbl->SetTime(This);
6810}
6811static FORCEINLINE HRESULT IShellDispatch4_TrayProperties(IShellDispatch4* This) {
6812    return This->lpVtbl->TrayProperties(This);
6813}
6814static FORCEINLINE HRESULT IShellDispatch4_Help(IShellDispatch4* This) {
6815    return This->lpVtbl->Help(This);
6816}
6817static FORCEINLINE HRESULT IShellDispatch4_FindFiles(IShellDispatch4* This) {
6818    return This->lpVtbl->FindFiles(This);
6819}
6820static FORCEINLINE HRESULT IShellDispatch4_FindComputer(IShellDispatch4* This) {
6821    return This->lpVtbl->FindComputer(This);
6822}
6823static FORCEINLINE HRESULT IShellDispatch4_RefreshMenu(IShellDispatch4* This) {
6824    return This->lpVtbl->RefreshMenu(This);
6825}
6826static FORCEINLINE HRESULT IShellDispatch4_ControlPanelItem(IShellDispatch4* This,BSTR bstrDir) {
6827    return This->lpVtbl->ControlPanelItem(This,bstrDir);
6828}
6829/*** IShellDispatch2 methods ***/
6830static FORCEINLINE HRESULT IShellDispatch4_IsRestricted(IShellDispatch4* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
6831    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
6832}
6833static FORCEINLINE HRESULT IShellDispatch4_ShellExecute(IShellDispatch4* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
6834    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
6835}
6836static FORCEINLINE HRESULT IShellDispatch4_FindPrinter(IShellDispatch4* This,BSTR name,BSTR location,BSTR model) {
6837    return This->lpVtbl->FindPrinter(This,name,location,model);
6838}
6839static FORCEINLINE HRESULT IShellDispatch4_GetSystemInformation(IShellDispatch4* This,BSTR name,VARIANT *pv) {
6840    return This->lpVtbl->GetSystemInformation(This,name,pv);
6841}
6842static FORCEINLINE HRESULT IShellDispatch4_ServiceStart(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6843    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
6844}
6845static FORCEINLINE HRESULT IShellDispatch4_ServiceStop(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6846    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
6847}
6848static FORCEINLINE HRESULT IShellDispatch4_IsServiceRunning(IShellDispatch4* This,BSTR ServiceName,VARIANT *pRunning) {
6849    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
6850}
6851static FORCEINLINE HRESULT IShellDispatch4_CanStartStopService(IShellDispatch4* This,BSTR ServiceName,VARIANT *pCanStartStop) {
6852    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
6853}
6854static FORCEINLINE HRESULT IShellDispatch4_ShowBrowserBar(IShellDispatch4* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
6855    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
6856}
6857/*** IShellDispatch3 methods ***/
6858static FORCEINLINE HRESULT IShellDispatch4_AddToRecent(IShellDispatch4* This,VARIANT varFile,BSTR bstrCategory) {
6859    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
6860}
6861/*** IShellDispatch4 methods ***/
6862static FORCEINLINE HRESULT IShellDispatch4_WindowsSecurity(IShellDispatch4* This) {
6863    return This->lpVtbl->WindowsSecurity(This);
6864}
6865static FORCEINLINE HRESULT IShellDispatch4_ToggleDesktop(IShellDispatch4* This) {
6866    return This->lpVtbl->ToggleDesktop(This);
6867}
6868static FORCEINLINE HRESULT IShellDispatch4_ExplorerPolicy(IShellDispatch4* This,BSTR bstrPolicyName,VARIANT *pValue) {
6869    return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
6870}
6871static FORCEINLINE HRESULT IShellDispatch4_GetSetting(IShellDispatch4* This,LONG lSetting,VARIANT_BOOL *pResult) {
6872    return This->lpVtbl->GetSetting(This,lSetting,pResult);
6873}
6874#endif
6875#endif
6876
6877#endif
6878
6879HRESULT STDMETHODCALLTYPE IShellDispatch4_WindowsSecurity_Proxy(
6880    IShellDispatch4* This);
6881void __RPC_STUB IShellDispatch4_WindowsSecurity_Stub(
6882    IRpcStubBuffer* This,
6883    IRpcChannelBuffer* pRpcChannelBuffer,
6884    PRPC_MESSAGE pRpcMessage,
6885    DWORD* pdwStubPhase);
6886HRESULT STDMETHODCALLTYPE IShellDispatch4_ToggleDesktop_Proxy(
6887    IShellDispatch4* This);
6888void __RPC_STUB IShellDispatch4_ToggleDesktop_Stub(
6889    IRpcStubBuffer* This,
6890    IRpcChannelBuffer* pRpcChannelBuffer,
6891    PRPC_MESSAGE pRpcMessage,
6892    DWORD* pdwStubPhase);
6893HRESULT STDMETHODCALLTYPE IShellDispatch4_ExplorerPolicy_Proxy(
6894    IShellDispatch4* This,
6895    BSTR bstrPolicyName,
6896    VARIANT *pValue);
6897void __RPC_STUB IShellDispatch4_ExplorerPolicy_Stub(
6898    IRpcStubBuffer* This,
6899    IRpcChannelBuffer* pRpcChannelBuffer,
6900    PRPC_MESSAGE pRpcMessage,
6901    DWORD* pdwStubPhase);
6902HRESULT STDMETHODCALLTYPE IShellDispatch4_GetSetting_Proxy(
6903    IShellDispatch4* This,
6904    LONG lSetting,
6905    VARIANT_BOOL *pResult);
6906void __RPC_STUB IShellDispatch4_GetSetting_Stub(
6907    IRpcStubBuffer* This,
6908    IRpcChannelBuffer* pRpcChannelBuffer,
6909    PRPC_MESSAGE pRpcMessage,
6910    DWORD* pdwStubPhase);
6911
6912#endif  /* __IShellDispatch4_INTERFACE_DEFINED__ */
6913
6914/*****************************************************************************
6915 * IShellDispatch5 interface
6916 */
6917#ifndef __IShellDispatch5_INTERFACE_DEFINED__
6918#define __IShellDispatch5_INTERFACE_DEFINED__
6919
6920DEFINE_GUID(IID_IShellDispatch5, 0x866738b9, 0x6cf2, 0x4de8, 0x87,0x67, 0xf7,0x94,0xeb,0xe7,0x4f,0x4e);
6921#if defined(__cplusplus) && !defined(CINTERFACE)
6922MIDL_INTERFACE("866738b9-6cf2-4de8-8767-f794ebe74f4e")
6923IShellDispatch5 : public IShellDispatch4
6924{
6925    virtual HRESULT STDMETHODCALLTYPE WindowSwitcher(
6926        ) = 0;
6927
6928};
6929#ifdef __CRT_UUID_DECL
6930__CRT_UUID_DECL(IShellDispatch5, 0x866738b9, 0x6cf2, 0x4de8, 0x87,0x67, 0xf7,0x94,0xeb,0xe7,0x4f,0x4e)
6931#endif
6932#else
6933typedef struct IShellDispatch5Vtbl {
6934    BEGIN_INTERFACE
6935
6936    /*** IUnknown methods ***/
6937    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6938        IShellDispatch5* This,
6939        REFIID riid,
6940        void **ppvObject);
6941
6942    ULONG (STDMETHODCALLTYPE *AddRef)(
6943        IShellDispatch5* This);
6944
6945    ULONG (STDMETHODCALLTYPE *Release)(
6946        IShellDispatch5* This);
6947
6948    /*** IDispatch methods ***/
6949    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
6950        IShellDispatch5* This,
6951        UINT *pctinfo);
6952
6953    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
6954        IShellDispatch5* This,
6955        UINT iTInfo,
6956        LCID lcid,
6957        ITypeInfo **ppTInfo);
6958
6959    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
6960        IShellDispatch5* This,
6961        REFIID riid,
6962        LPOLESTR *rgszNames,
6963        UINT cNames,
6964        LCID lcid,
6965        DISPID *rgDispId);
6966
6967    HRESULT (STDMETHODCALLTYPE *Invoke)(
6968        IShellDispatch5* This,
6969        DISPID dispIdMember,
6970        REFIID riid,
6971        LCID lcid,
6972        WORD wFlags,
6973        DISPPARAMS *pDispParams,
6974        VARIANT *pVarResult,
6975        EXCEPINFO *pExcepInfo,
6976        UINT *puArgErr);
6977
6978    /*** IShellDispatch methods ***/
6979    HRESULT (STDMETHODCALLTYPE *get_Application)(
6980        IShellDispatch5* This,
6981        IDispatch **ppid);
6982
6983    HRESULT (STDMETHODCALLTYPE *get_Parent)(
6984        IShellDispatch5* This,
6985        IDispatch **ppid);
6986
6987    HRESULT (STDMETHODCALLTYPE *NameSpace)(
6988        IShellDispatch5* This,
6989        VARIANT vDir,
6990        Folder **ppsdf);
6991
6992    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
6993        IShellDispatch5* This,
6994        LONG Hwnd,
6995        BSTR Title,
6996        LONG Options,
6997        VARIANT RootFolder,
6998        Folder **ppsdf);
6999
7000    HRESULT (STDMETHODCALLTYPE *Windows)(
7001        IShellDispatch5* This,
7002        IDispatch **ppid);
7003
7004    HRESULT (STDMETHODCALLTYPE *Open)(
7005        IShellDispatch5* This,
7006        VARIANT vDir);
7007
7008    HRESULT (STDMETHODCALLTYPE *Explore)(
7009        IShellDispatch5* This,
7010        VARIANT vDir);
7011
7012    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
7013        IShellDispatch5* This);
7014
7015    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
7016        IShellDispatch5* This);
7017
7018    HRESULT (STDMETHODCALLTYPE *FileRun)(
7019        IShellDispatch5* This);
7020
7021    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
7022        IShellDispatch5* This);
7023
7024    HRESULT (STDMETHODCALLTYPE *TileVertically)(
7025        IShellDispatch5* This);
7026
7027    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
7028        IShellDispatch5* This);
7029
7030    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
7031        IShellDispatch5* This);
7032
7033    HRESULT (STDMETHODCALLTYPE *Suspend)(
7034        IShellDispatch5* This);
7035
7036    HRESULT (STDMETHODCALLTYPE *EjectPC)(
7037        IShellDispatch5* This);
7038
7039    HRESULT (STDMETHODCALLTYPE *SetTime)(
7040        IShellDispatch5* This);
7041
7042    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
7043        IShellDispatch5* This);
7044
7045    HRESULT (STDMETHODCALLTYPE *Help)(
7046        IShellDispatch5* This);
7047
7048    HRESULT (STDMETHODCALLTYPE *FindFiles)(
7049        IShellDispatch5* This);
7050
7051    HRESULT (STDMETHODCALLTYPE *FindComputer)(
7052        IShellDispatch5* This);
7053
7054    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
7055        IShellDispatch5* This);
7056
7057    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
7058        IShellDispatch5* This,
7059        BSTR bstrDir);
7060
7061    /*** IShellDispatch2 methods ***/
7062    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
7063        IShellDispatch5* This,
7064        BSTR Group,
7065        BSTR Restriction,
7066        LONG *plRestrictValue);
7067
7068    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
7069        IShellDispatch5* This,
7070        BSTR File,
7071        VARIANT vArgs,
7072        VARIANT vDir,
7073        VARIANT vOperation,
7074        VARIANT vShow);
7075
7076    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
7077        IShellDispatch5* This,
7078        BSTR name,
7079        BSTR location,
7080        BSTR model);
7081
7082    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
7083        IShellDispatch5* This,
7084        BSTR name,
7085        VARIANT *pv);
7086
7087    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
7088        IShellDispatch5* This,
7089        BSTR ServiceName,
7090        VARIANT Persistent,
7091        VARIANT *pSuccess);
7092
7093    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
7094        IShellDispatch5* This,
7095        BSTR ServiceName,
7096        VARIANT Persistent,
7097        VARIANT *pSuccess);
7098
7099    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
7100        IShellDispatch5* This,
7101        BSTR ServiceName,
7102        VARIANT *pRunning);
7103
7104    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
7105        IShellDispatch5* This,
7106        BSTR ServiceName,
7107        VARIANT *pCanStartStop);
7108
7109    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
7110        IShellDispatch5* This,
7111        BSTR bstrClsid,
7112        VARIANT bShow,
7113        VARIANT *pSuccess);
7114
7115    /*** IShellDispatch3 methods ***/
7116    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
7117        IShellDispatch5* This,
7118        VARIANT varFile,
7119        BSTR bstrCategory);
7120
7121    /*** IShellDispatch4 methods ***/
7122    HRESULT (STDMETHODCALLTYPE *WindowsSecurity)(
7123        IShellDispatch5* This);
7124
7125    HRESULT (STDMETHODCALLTYPE *ToggleDesktop)(
7126        IShellDispatch5* This);
7127
7128    HRESULT (STDMETHODCALLTYPE *ExplorerPolicy)(
7129        IShellDispatch5* This,
7130        BSTR bstrPolicyName,
7131        VARIANT *pValue);
7132
7133    HRESULT (STDMETHODCALLTYPE *GetSetting)(
7134        IShellDispatch5* This,
7135        LONG lSetting,
7136        VARIANT_BOOL *pResult);
7137
7138    /*** IShellDispatch5 methods ***/
7139    HRESULT (STDMETHODCALLTYPE *WindowSwitcher)(
7140        IShellDispatch5* This);
7141
7142    END_INTERFACE
7143} IShellDispatch5Vtbl;
7144interface IShellDispatch5 {
7145    CONST_VTBL IShellDispatch5Vtbl* lpVtbl;
7146};
7147
7148#ifdef COBJMACROS
7149#ifndef WIDL_C_INLINE_WRAPPERS
7150/*** IUnknown methods ***/
7151#define IShellDispatch5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7152#define IShellDispatch5_AddRef(This) (This)->lpVtbl->AddRef(This)
7153#define IShellDispatch5_Release(This) (This)->lpVtbl->Release(This)
7154/*** IDispatch methods ***/
7155#define IShellDispatch5_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
7156#define IShellDispatch5_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
7157#define IShellDispatch5_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
7158#define IShellDispatch5_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
7159/*** IShellDispatch methods ***/
7160#define IShellDispatch5_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
7161#define IShellDispatch5_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
7162#define IShellDispatch5_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
7163#define IShellDispatch5_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
7164#define IShellDispatch5_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
7165#define IShellDispatch5_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
7166#define IShellDispatch5_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
7167#define IShellDispatch5_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
7168#define IShellDispatch5_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
7169#define IShellDispatch5_FileRun(This) (This)->lpVtbl->FileRun(This)
7170#define IShellDispatch5_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
7171#define IShellDispatch5_TileVertically(This) (This)->lpVtbl->TileVertically(This)
7172#define IShellDispatch5_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
7173#define IShellDispatch5_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
7174#define IShellDispatch5_Suspend(This) (This)->lpVtbl->Suspend(This)
7175#define IShellDispatch5_EjectPC(This) (This)->lpVtbl->EjectPC(This)
7176#define IShellDispatch5_SetTime(This) (This)->lpVtbl->SetTime(This)
7177#define IShellDispatch5_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
7178#define IShellDispatch5_Help(This) (This)->lpVtbl->Help(This)
7179#define IShellDispatch5_FindFiles(This) (This)->lpVtbl->FindFiles(This)
7180#define IShellDispatch5_FindComputer(This) (This)->lpVtbl->FindComputer(This)
7181#define IShellDispatch5_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
7182#define IShellDispatch5_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
7183/*** IShellDispatch2 methods ***/
7184#define IShellDispatch5_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
7185#define IShellDispatch5_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
7186#define IShellDispatch5_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
7187#define IShellDispatch5_GetSystemInformation(This,name,pv) (This)->lpVtbl->GetSystemInformation(This,name,pv)
7188#define IShellDispatch5_ServiceStart(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess)
7189#define IShellDispatch5_ServiceStop(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess)
7190#define IShellDispatch5_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
7191#define IShellDispatch5_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
7192#define IShellDispatch5_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
7193/*** IShellDispatch3 methods ***/
7194#define IShellDispatch5_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
7195/*** IShellDispatch4 methods ***/
7196#define IShellDispatch5_WindowsSecurity(This) (This)->lpVtbl->WindowsSecurity(This)
7197#define IShellDispatch5_ToggleDesktop(This) (This)->lpVtbl->ToggleDesktop(This)
7198#define IShellDispatch5_ExplorerPolicy(This,bstrPolicyName,pValue) (This)->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue)
7199#define IShellDispatch5_GetSetting(This,lSetting,pResult) (This)->lpVtbl->GetSetting(This,lSetting,pResult)
7200/*** IShellDispatch5 methods ***/
7201#define IShellDispatch5_WindowSwitcher(This) (This)->lpVtbl->WindowSwitcher(This)
7202#else
7203/*** IUnknown methods ***/
7204static FORCEINLINE HRESULT IShellDispatch5_QueryInterface(IShellDispatch5* This,REFIID riid,void **ppvObject) {
7205    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7206}
7207static FORCEINLINE ULONG IShellDispatch5_AddRef(IShellDispatch5* This) {
7208    return This->lpVtbl->AddRef(This);
7209}
7210static FORCEINLINE ULONG IShellDispatch5_Release(IShellDispatch5* This) {
7211    return This->lpVtbl->Release(This);
7212}
7213/*** IDispatch methods ***/
7214static FORCEINLINE HRESULT IShellDispatch5_GetTypeInfoCount(IShellDispatch5* This,UINT *pctinfo) {
7215    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
7216}
7217static FORCEINLINE HRESULT IShellDispatch5_GetTypeInfo(IShellDispatch5* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
7218    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
7219}
7220static FORCEINLINE HRESULT IShellDispatch5_GetIDsOfNames(IShellDispatch5* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
7221    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
7222}
7223static FORCEINLINE HRESULT IShellDispatch5_Invoke(IShellDispatch5* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
7224    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
7225}
7226/*** IShellDispatch methods ***/
7227static FORCEINLINE HRESULT IShellDispatch5_get_Application(IShellDispatch5* This,IDispatch **ppid) {
7228    return This->lpVtbl->get_Application(This,ppid);
7229}
7230static FORCEINLINE HRESULT IShellDispatch5_get_Parent(IShellDispatch5* This,IDispatch **ppid) {
7231    return This->lpVtbl->get_Parent(This,ppid);
7232}
7233static FORCEINLINE HRESULT IShellDispatch5_NameSpace(IShellDispatch5* This,VARIANT vDir,Folder **ppsdf) {
7234    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
7235}
7236static FORCEINLINE HRESULT IShellDispatch5_BrowseForFolder(IShellDispatch5* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
7237    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
7238}
7239static FORCEINLINE HRESULT IShellDispatch5_Windows(IShellDispatch5* This,IDispatch **ppid) {
7240    return This->lpVtbl->Windows(This,ppid);
7241}
7242static FORCEINLINE HRESULT IShellDispatch5_Open(IShellDispatch5* This,VARIANT vDir) {
7243    return This->lpVtbl->Open(This,vDir);
7244}
7245static FORCEINLINE HRESULT IShellDispatch5_Explore(IShellDispatch5* This,VARIANT vDir) {
7246    return This->lpVtbl->Explore(This,vDir);
7247}
7248static FORCEINLINE HRESULT IShellDispatch5_MinimizeAll(IShellDispatch5* This) {
7249    return This->lpVtbl->MinimizeAll(This);
7250}
7251static FORCEINLINE HRESULT IShellDispatch5_UndoMinimizeALL(IShellDispatch5* This) {
7252    return This->lpVtbl->UndoMinimizeALL(This);
7253}
7254static FORCEINLINE HRESULT IShellDispatch5_FileRun(IShellDispatch5* This) {
7255    return This->lpVtbl->FileRun(This);
7256}
7257static FORCEINLINE HRESULT IShellDispatch5_CascadeWindows(IShellDispatch5* This) {
7258    return This->lpVtbl->CascadeWindows(This);
7259}
7260static FORCEINLINE HRESULT IShellDispatch5_TileVertically(IShellDispatch5* This) {
7261    return This->lpVtbl->TileVertically(This);
7262}
7263static FORCEINLINE HRESULT IShellDispatch5_TileHorizontally(IShellDispatch5* This) {
7264    return This->lpVtbl->TileHorizontally(This);
7265}
7266static FORCEINLINE HRESULT IShellDispatch5_ShutdownWindows(IShellDispatch5* This) {
7267    return This->lpVtbl->ShutdownWindows(This);
7268}
7269static FORCEINLINE HRESULT IShellDispatch5_Suspend(IShellDispatch5* This) {
7270    return This->lpVtbl->Suspend(This);
7271}
7272static FORCEINLINE HRESULT IShellDispatch5_EjectPC(IShellDispatch5* This) {
7273    return This->lpVtbl->EjectPC(This);
7274}
7275static FORCEINLINE HRESULT IShellDispatch5_SetTime(IShellDispatch5* This) {
7276    return This->lpVtbl->SetTime(This);
7277}
7278static FORCEINLINE HRESULT IShellDispatch5_TrayProperties(IShellDispatch5* This) {
7279    return This->lpVtbl->TrayProperties(This);
7280}
7281static FORCEINLINE HRESULT IShellDispatch5_Help(IShellDispatch5* This) {
7282    return This->lpVtbl->Help(This);
7283}
7284static FORCEINLINE HRESULT IShellDispatch5_FindFiles(IShellDispatch5* This) {
7285    return This->lpVtbl->FindFiles(This);
7286}
7287static FORCEINLINE HRESULT IShellDispatch5_FindComputer(IShellDispatch5* This) {
7288    return This->lpVtbl->FindComputer(This);
7289}
7290static FORCEINLINE HRESULT IShellDispatch5_RefreshMenu(IShellDispatch5* This) {
7291    return This->lpVtbl->RefreshMenu(This);
7292}
7293static FORCEINLINE HRESULT IShellDispatch5_ControlPanelItem(IShellDispatch5* This,BSTR bstrDir) {
7294    return This->lpVtbl->ControlPanelItem(This,bstrDir);
7295}
7296/*** IShellDispatch2 methods ***/
7297static FORCEINLINE HRESULT IShellDispatch5_IsRestricted(IShellDispatch5* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
7298    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
7299}
7300static FORCEINLINE HRESULT IShellDispatch5_ShellExecute(IShellDispatch5* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
7301    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
7302}
7303static FORCEINLINE HRESULT IShellDispatch5_FindPrinter(IShellDispatch5* This,BSTR name,BSTR location,BSTR model) {
7304    return This->lpVtbl->FindPrinter(This,name,location,model);
7305}
7306static FORCEINLINE HRESULT IShellDispatch5_GetSystemInformation(IShellDispatch5* This,BSTR name,VARIANT *pv) {
7307    return This->lpVtbl->GetSystemInformation(This,name,pv);
7308}
7309static FORCEINLINE HRESULT IShellDispatch5_ServiceStart(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7310    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
7311}
7312static FORCEINLINE HRESULT IShellDispatch5_ServiceStop(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7313    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
7314}
7315static FORCEINLINE HRESULT IShellDispatch5_IsServiceRunning(IShellDispatch5* This,BSTR ServiceName,VARIANT *pRunning) {
7316    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
7317}
7318static FORCEINLINE HRESULT IShellDispatch5_CanStartStopService(IShellDispatch5* This,BSTR ServiceName,VARIANT *pCanStartStop) {
7319    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
7320}
7321static FORCEINLINE HRESULT IShellDispatch5_ShowBrowserBar(IShellDispatch5* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
7322    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
7323}
7324/*** IShellDispatch3 methods ***/
7325static FORCEINLINE HRESULT IShellDispatch5_AddToRecent(IShellDispatch5* This,VARIANT varFile,BSTR bstrCategory) {
7326    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
7327}
7328/*** IShellDispatch4 methods ***/
7329static FORCEINLINE HRESULT IShellDispatch5_WindowsSecurity(IShellDispatch5* This) {
7330    return This->lpVtbl->WindowsSecurity(This);
7331}
7332static FORCEINLINE HRESULT IShellDispatch5_ToggleDesktop(IShellDispatch5* This) {
7333    return This->lpVtbl->ToggleDesktop(This);
7334}
7335static FORCEINLINE HRESULT IShellDispatch5_ExplorerPolicy(IShellDispatch5* This,BSTR bstrPolicyName,VARIANT *pValue) {
7336    return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
7337}
7338static FORCEINLINE HRESULT IShellDispatch5_GetSetting(IShellDispatch5* This,LONG lSetting,VARIANT_BOOL *pResult) {
7339    return This->lpVtbl->GetSetting(This,lSetting,pResult);
7340}
7341/*** IShellDispatch5 methods ***/
7342static FORCEINLINE HRESULT IShellDispatch5_WindowSwitcher(IShellDispatch5* This) {
7343    return This->lpVtbl->WindowSwitcher(This);
7344}
7345#endif
7346#endif
7347
7348#endif
7349
7350HRESULT STDMETHODCALLTYPE IShellDispatch5_WindowSwitcher_Proxy(
7351    IShellDispatch5* This);
7352void __RPC_STUB IShellDispatch5_WindowSwitcher_Stub(
7353    IRpcStubBuffer* This,
7354    IRpcChannelBuffer* pRpcChannelBuffer,
7355    PRPC_MESSAGE pRpcMessage,
7356    DWORD* pdwStubPhase);
7357
7358#endif  /* __IShellDispatch5_INTERFACE_DEFINED__ */
7359
7360#if NTDDI_VERSION >= NTDDI_WIN8
7361/*****************************************************************************
7362 * IShellDispatch6 interface
7363 */
7364#ifndef __IShellDispatch6_INTERFACE_DEFINED__
7365#define __IShellDispatch6_INTERFACE_DEFINED__
7366
7367DEFINE_GUID(IID_IShellDispatch6, 0x286e6f1b, 0x7113, 0x4355, 0x95,0x62, 0x96,0xb7,0xe9,0xd6,0x4c,0x54);
7368#if defined(__cplusplus) && !defined(CINTERFACE)
7369MIDL_INTERFACE("286e6f1b-7113-4355-9562-96b7e9d64c54")
7370IShellDispatch6 : public IShellDispatch5
7371{
7372    virtual HRESULT STDMETHODCALLTYPE SearchCommand(
7373        ) = 0;
7374
7375};
7376#ifdef __CRT_UUID_DECL
7377__CRT_UUID_DECL(IShellDispatch6, 0x286e6f1b, 0x7113, 0x4355, 0x95,0x62, 0x96,0xb7,0xe9,0xd6,0x4c,0x54)
7378#endif
7379#else
7380typedef struct IShellDispatch6Vtbl {
7381    BEGIN_INTERFACE
7382
7383    /*** IUnknown methods ***/
7384    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7385        IShellDispatch6* This,
7386        REFIID riid,
7387        void **ppvObject);
7388
7389    ULONG (STDMETHODCALLTYPE *AddRef)(
7390        IShellDispatch6* This);
7391
7392    ULONG (STDMETHODCALLTYPE *Release)(
7393        IShellDispatch6* This);
7394
7395    /*** IDispatch methods ***/
7396    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
7397        IShellDispatch6* This,
7398        UINT *pctinfo);
7399
7400    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
7401        IShellDispatch6* This,
7402        UINT iTInfo,
7403        LCID lcid,
7404        ITypeInfo **ppTInfo);
7405
7406    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
7407        IShellDispatch6* This,
7408        REFIID riid,
7409        LPOLESTR *rgszNames,
7410        UINT cNames,
7411        LCID lcid,
7412        DISPID *rgDispId);
7413
7414    HRESULT (STDMETHODCALLTYPE *Invoke)(
7415        IShellDispatch6* This,
7416        DISPID dispIdMember,
7417        REFIID riid,
7418        LCID lcid,
7419        WORD wFlags,
7420        DISPPARAMS *pDispParams,
7421        VARIANT *pVarResult,
7422        EXCEPINFO *pExcepInfo,
7423        UINT *puArgErr);
7424
7425    /*** IShellDispatch methods ***/
7426    HRESULT (STDMETHODCALLTYPE *get_Application)(
7427        IShellDispatch6* This,
7428        IDispatch **ppid);
7429
7430    HRESULT (STDMETHODCALLTYPE *get_Parent)(
7431        IShellDispatch6* This,
7432        IDispatch **ppid);
7433
7434    HRESULT (STDMETHODCALLTYPE *NameSpace)(
7435        IShellDispatch6* This,
7436        VARIANT vDir,
7437        Folder **ppsdf);
7438
7439    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
7440        IShellDispatch6* This,
7441        LONG Hwnd,
7442        BSTR Title,
7443        LONG Options,
7444        VARIANT RootFolder,
7445        Folder **ppsdf);
7446
7447    HRESULT (STDMETHODCALLTYPE *Windows)(
7448        IShellDispatch6* This,
7449        IDispatch **ppid);
7450
7451    HRESULT (STDMETHODCALLTYPE *Open)(
7452        IShellDispatch6* This,
7453        VARIANT vDir);
7454
7455    HRESULT (STDMETHODCALLTYPE *Explore)(
7456        IShellDispatch6* This,
7457        VARIANT vDir);
7458
7459    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
7460        IShellDispatch6* This);
7461
7462    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
7463        IShellDispatch6* This);
7464
7465    HRESULT (STDMETHODCALLTYPE *FileRun)(
7466        IShellDispatch6* This);
7467
7468    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
7469        IShellDispatch6* This);
7470
7471    HRESULT (STDMETHODCALLTYPE *TileVertically)(
7472        IShellDispatch6* This);
7473
7474    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
7475        IShellDispatch6* This);
7476
7477    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
7478        IShellDispatch6* This);
7479
7480    HRESULT (STDMETHODCALLTYPE *Suspend)(
7481        IShellDispatch6* This);
7482
7483    HRESULT (STDMETHODCALLTYPE *EjectPC)(
7484        IShellDispatch6* This);
7485
7486    HRESULT (STDMETHODCALLTYPE *SetTime)(
7487        IShellDispatch6* This);
7488
7489    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
7490        IShellDispatch6* This);
7491
7492    HRESULT (STDMETHODCALLTYPE *Help)(
7493        IShellDispatch6* This);
7494
7495    HRESULT (STDMETHODCALLTYPE *FindFiles)(
7496        IShellDispatch6* This);
7497
7498    HRESULT (STDMETHODCALLTYPE *FindComputer)(
7499        IShellDispatch6* This);
7500
7501    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
7502        IShellDispatch6* This);
7503
7504    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
7505        IShellDispatch6* This,
7506        BSTR bstrDir);
7507
7508    /*** IShellDispatch2 methods ***/
7509    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
7510        IShellDispatch6* This,
7511        BSTR Group,
7512        BSTR Restriction,
7513        LONG *plRestrictValue);
7514
7515    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
7516        IShellDispatch6* This,
7517        BSTR File,
7518        VARIANT vArgs,
7519        VARIANT vDir,
7520        VARIANT vOperation,
7521        VARIANT vShow);
7522
7523    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
7524        IShellDispatch6* This,
7525        BSTR name,
7526        BSTR location,
7527        BSTR model);
7528
7529    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
7530        IShellDispatch6* This,
7531        BSTR name,
7532        VARIANT *pv);
7533
7534    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
7535        IShellDispatch6* This,
7536        BSTR ServiceName,
7537        VARIANT Persistent,
7538        VARIANT *pSuccess);
7539
7540    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
7541        IShellDispatch6* This,
7542        BSTR ServiceName,
7543        VARIANT Persistent,
7544        VARIANT *pSuccess);
7545
7546    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
7547        IShellDispatch6* This,
7548        BSTR ServiceName,
7549        VARIANT *pRunning);
7550
7551    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
7552        IShellDispatch6* This,
7553        BSTR ServiceName,
7554        VARIANT *pCanStartStop);
7555
7556    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
7557        IShellDispatch6* This,
7558        BSTR bstrClsid,
7559        VARIANT bShow,
7560        VARIANT *pSuccess);
7561
7562    /*** IShellDispatch3 methods ***/
7563    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
7564        IShellDispatch6* This,
7565        VARIANT varFile,
7566        BSTR bstrCategory);
7567
7568    /*** IShellDispatch4 methods ***/
7569    HRESULT (STDMETHODCALLTYPE *WindowsSecurity)(
7570        IShellDispatch6* This);
7571
7572    HRESULT (STDMETHODCALLTYPE *ToggleDesktop)(
7573        IShellDispatch6* This);
7574
7575    HRESULT (STDMETHODCALLTYPE *ExplorerPolicy)(
7576        IShellDispatch6* This,
7577        BSTR bstrPolicyName,
7578        VARIANT *pValue);
7579
7580    HRESULT (STDMETHODCALLTYPE *GetSetting)(
7581        IShellDispatch6* This,
7582        LONG lSetting,
7583        VARIANT_BOOL *pResult);
7584
7585    /*** IShellDispatch5 methods ***/
7586    HRESULT (STDMETHODCALLTYPE *WindowSwitcher)(
7587        IShellDispatch6* This);
7588
7589    /*** IShellDispatch6 methods ***/
7590    HRESULT (STDMETHODCALLTYPE *SearchCommand)(
7591        IShellDispatch6* This);
7592
7593    END_INTERFACE
7594} IShellDispatch6Vtbl;
7595interface IShellDispatch6 {
7596    CONST_VTBL IShellDispatch6Vtbl* lpVtbl;
7597};
7598
7599#ifdef COBJMACROS
7600#ifndef WIDL_C_INLINE_WRAPPERS
7601/*** IUnknown methods ***/
7602#define IShellDispatch6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7603#define IShellDispatch6_AddRef(This) (This)->lpVtbl->AddRef(This)
7604#define IShellDispatch6_Release(This) (This)->lpVtbl->Release(This)
7605/*** IDispatch methods ***/
7606#define IShellDispatch6_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
7607#define IShellDispatch6_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
7608#define IShellDispatch6_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
7609#define IShellDispatch6_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
7610/*** IShellDispatch methods ***/
7611#define IShellDispatch6_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
7612#define IShellDispatch6_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
7613#define IShellDispatch6_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
7614#define IShellDispatch6_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
7615#define IShellDispatch6_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
7616#define IShellDispatch6_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
7617#define IShellDispatch6_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
7618#define IShellDispatch6_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
7619#define IShellDispatch6_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
7620#define IShellDispatch6_FileRun(This) (This)->lpVtbl->FileRun(This)
7621#define IShellDispatch6_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
7622#define IShellDispatch6_TileVertically(This) (This)->lpVtbl->TileVertically(This)
7623#define IShellDispatch6_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
7624#define IShellDispatch6_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
7625#define IShellDispatch6_Suspend(This) (This)->lpVtbl->Suspend(This)
7626#define IShellDispatch6_EjectPC(This) (This)->lpVtbl->EjectPC(This)
7627#define IShellDispatch6_SetTime(This) (This)->lpVtbl->SetTime(This)
7628#define IShellDispatch6_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
7629#define IShellDispatch6_Help(This) (This)->lpVtbl->Help(This)
7630#define IShellDispatch6_FindFiles(This) (This)->lpVtbl->FindFiles(This)
7631#define IShellDispatch6_FindComputer(This) (This)->lpVtbl->FindComputer(This)
7632#define IShellDispatch6_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
7633#define IShellDispatch6_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
7634/*** IShellDispatch2 methods ***/
7635#define IShellDispatch6_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
7636#define IShellDispatch6_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
7637#define IShellDispatch6_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
7638#define IShellDispatch6_GetSystemInformation(This,name,pv) (This)->lpVtbl->GetSystemInformation(This,name,pv)
7639#define IShellDispatch6_ServiceStart(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess)
7640#define IShellDispatch6_ServiceStop(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess)
7641#define IShellDispatch6_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
7642#define IShellDispatch6_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
7643#define IShellDispatch6_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
7644/*** IShellDispatch3 methods ***/
7645#define IShellDispatch6_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
7646/*** IShellDispatch4 methods ***/
7647#define IShellDispatch6_WindowsSecurity(This) (This)->lpVtbl->WindowsSecurity(This)
7648#define IShellDispatch6_ToggleDesktop(This) (This)->lpVtbl->ToggleDesktop(This)
7649#define IShellDispatch6_ExplorerPolicy(This,bstrPolicyName,pValue) (This)->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue)
7650#define IShellDispatch6_GetSetting(This,lSetting,pResult) (This)->lpVtbl->GetSetting(This,lSetting,pResult)
7651/*** IShellDispatch5 methods ***/
7652#define IShellDispatch6_WindowSwitcher(This) (This)->lpVtbl->WindowSwitcher(This)
7653/*** IShellDispatch6 methods ***/
7654#define IShellDispatch6_SearchCommand(This) (This)->lpVtbl->SearchCommand(This)
7655#else
7656/*** IUnknown methods ***/
7657static FORCEINLINE HRESULT IShellDispatch6_QueryInterface(IShellDispatch6* This,REFIID riid,void **ppvObject) {
7658    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7659}
7660static FORCEINLINE ULONG IShellDispatch6_AddRef(IShellDispatch6* This) {
7661    return This->lpVtbl->AddRef(This);
7662}
7663static FORCEINLINE ULONG IShellDispatch6_Release(IShellDispatch6* This) {
7664    return This->lpVtbl->Release(This);
7665}
7666/*** IDispatch methods ***/
7667static FORCEINLINE HRESULT IShellDispatch6_GetTypeInfoCount(IShellDispatch6* This,UINT *pctinfo) {
7668    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
7669}
7670static FORCEINLINE HRESULT IShellDispatch6_GetTypeInfo(IShellDispatch6* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
7671    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
7672}
7673static FORCEINLINE HRESULT IShellDispatch6_GetIDsOfNames(IShellDispatch6* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
7674    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
7675}
7676static FORCEINLINE HRESULT IShellDispatch6_Invoke(IShellDispatch6* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
7677    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
7678}
7679/*** IShellDispatch methods ***/
7680static FORCEINLINE HRESULT IShellDispatch6_get_Application(IShellDispatch6* This,IDispatch **ppid) {
7681    return This->lpVtbl->get_Application(This,ppid);
7682}
7683static FORCEINLINE HRESULT IShellDispatch6_get_Parent(IShellDispatch6* This,IDispatch **ppid) {
7684    return This->lpVtbl->get_Parent(This,ppid);
7685}
7686static FORCEINLINE HRESULT IShellDispatch6_NameSpace(IShellDispatch6* This,VARIANT vDir,Folder **ppsdf) {
7687    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
7688}
7689static FORCEINLINE HRESULT IShellDispatch6_BrowseForFolder(IShellDispatch6* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
7690    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
7691}
7692static FORCEINLINE HRESULT IShellDispatch6_Windows(IShellDispatch6* This,IDispatch **ppid) {
7693    return This->lpVtbl->Windows(This,ppid);
7694}
7695static FORCEINLINE HRESULT IShellDispatch6_Open(IShellDispatch6* This,VARIANT vDir) {
7696    return This->lpVtbl->Open(This,vDir);
7697}
7698static FORCEINLINE HRESULT IShellDispatch6_Explore(IShellDispatch6* This,VARIANT vDir) {
7699    return This->lpVtbl->Explore(This,vDir);
7700}
7701static FORCEINLINE HRESULT IShellDispatch6_MinimizeAll(IShellDispatch6* This) {
7702    return This->lpVtbl->MinimizeAll(This);
7703}
7704static FORCEINLINE HRESULT IShellDispatch6_UndoMinimizeALL(IShellDispatch6* This) {
7705    return This->lpVtbl->UndoMinimizeALL(This);
7706}
7707static FORCEINLINE HRESULT IShellDispatch6_FileRun(IShellDispatch6* This) {
7708    return This->lpVtbl->FileRun(This);
7709}
7710static FORCEINLINE HRESULT IShellDispatch6_CascadeWindows(IShellDispatch6* This) {
7711    return This->lpVtbl->CascadeWindows(This);
7712}
7713static FORCEINLINE HRESULT IShellDispatch6_TileVertically(IShellDispatch6* This) {
7714    return This->lpVtbl->TileVertically(This);
7715}
7716static FORCEINLINE HRESULT IShellDispatch6_TileHorizontally(IShellDispatch6* This) {
7717    return This->lpVtbl->TileHorizontally(This);
7718}
7719static FORCEINLINE HRESULT IShellDispatch6_ShutdownWindows(IShellDispatch6* This) {
7720    return This->lpVtbl->ShutdownWindows(This);
7721}
7722static FORCEINLINE HRESULT IShellDispatch6_Suspend(IShellDispatch6* This) {
7723    return This->lpVtbl->Suspend(This);
7724}
7725static FORCEINLINE HRESULT IShellDispatch6_EjectPC(IShellDispatch6* This) {
7726    return This->lpVtbl->EjectPC(This);
7727}
7728static FORCEINLINE HRESULT IShellDispatch6_SetTime(IShellDispatch6* This) {
7729    return This->lpVtbl->SetTime(This);
7730}
7731static FORCEINLINE HRESULT IShellDispatch6_TrayProperties(IShellDispatch6* This) {
7732    return This->lpVtbl->TrayProperties(This);
7733}
7734static FORCEINLINE HRESULT IShellDispatch6_Help(IShellDispatch6* This) {
7735    return This->lpVtbl->Help(This);
7736}
7737static FORCEINLINE HRESULT IShellDispatch6_FindFiles(IShellDispatch6* This) {
7738    return This->lpVtbl->FindFiles(This);
7739}
7740static FORCEINLINE HRESULT IShellDispatch6_FindComputer(IShellDispatch6* This) {
7741    return This->lpVtbl->FindComputer(This);
7742}
7743static FORCEINLINE HRESULT IShellDispatch6_RefreshMenu(IShellDispatch6* This) {
7744    return This->lpVtbl->RefreshMenu(This);
7745}
7746static FORCEINLINE HRESULT IShellDispatch6_ControlPanelItem(IShellDispatch6* This,BSTR bstrDir) {
7747    return This->lpVtbl->ControlPanelItem(This,bstrDir);
7748}
7749/*** IShellDispatch2 methods ***/
7750static FORCEINLINE HRESULT IShellDispatch6_IsRestricted(IShellDispatch6* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
7751    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
7752}
7753static FORCEINLINE HRESULT IShellDispatch6_ShellExecute(IShellDispatch6* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
7754    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
7755}
7756static FORCEINLINE HRESULT IShellDispatch6_FindPrinter(IShellDispatch6* This,BSTR name,BSTR location,BSTR model) {
7757    return This->lpVtbl->FindPrinter(This,name,location,model);
7758}
7759static FORCEINLINE HRESULT IShellDispatch6_GetSystemInformation(IShellDispatch6* This,BSTR name,VARIANT *pv) {
7760    return This->lpVtbl->GetSystemInformation(This,name,pv);
7761}
7762static FORCEINLINE HRESULT IShellDispatch6_ServiceStart(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7763    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
7764}
7765static FORCEINLINE HRESULT IShellDispatch6_ServiceStop(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7766    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
7767}
7768static FORCEINLINE HRESULT IShellDispatch6_IsServiceRunning(IShellDispatch6* This,BSTR ServiceName,VARIANT *pRunning) {
7769    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
7770}
7771static FORCEINLINE HRESULT IShellDispatch6_CanStartStopService(IShellDispatch6* This,BSTR ServiceName,VARIANT *pCanStartStop) {
7772    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
7773}
7774static FORCEINLINE HRESULT IShellDispatch6_ShowBrowserBar(IShellDispatch6* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
7775    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
7776}
7777/*** IShellDispatch3 methods ***/
7778static FORCEINLINE HRESULT IShellDispatch6_AddToRecent(IShellDispatch6* This,VARIANT varFile,BSTR bstrCategory) {
7779    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
7780}
7781/*** IShellDispatch4 methods ***/
7782static FORCEINLINE HRESULT IShellDispatch6_WindowsSecurity(IShellDispatch6* This) {
7783    return This->lpVtbl->WindowsSecurity(This);
7784}
7785static FORCEINLINE HRESULT IShellDispatch6_ToggleDesktop(IShellDispatch6* This) {
7786    return This->lpVtbl->ToggleDesktop(This);
7787}
7788static FORCEINLINE HRESULT IShellDispatch6_ExplorerPolicy(IShellDispatch6* This,BSTR bstrPolicyName,VARIANT *pValue) {
7789    return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
7790}
7791static FORCEINLINE HRESULT IShellDispatch6_GetSetting(IShellDispatch6* This,LONG lSetting,VARIANT_BOOL *pResult) {
7792    return This->lpVtbl->GetSetting(This,lSetting,pResult);
7793}
7794/*** IShellDispatch5 methods ***/
7795static FORCEINLINE HRESULT IShellDispatch6_WindowSwitcher(IShellDispatch6* This) {
7796    return This->lpVtbl->WindowSwitcher(This);
7797}
7798/*** IShellDispatch6 methods ***/
7799static FORCEINLINE HRESULT IShellDispatch6_SearchCommand(IShellDispatch6* This) {
7800    return This->lpVtbl->SearchCommand(This);
7801}
7802#endif
7803#endif
7804
7805#endif
7806
7807HRESULT STDMETHODCALLTYPE IShellDispatch6_SearchCommand_Proxy(
7808    IShellDispatch6* This);
7809void __RPC_STUB IShellDispatch6_SearchCommand_Stub(
7810    IRpcStubBuffer* This,
7811    IRpcChannelBuffer* pRpcChannelBuffer,
7812    PRPC_MESSAGE pRpcMessage,
7813    DWORD* pdwStubPhase);
7814
7815#endif  /* __IShellDispatch6_INTERFACE_DEFINED__ */
7816
7817#endif
7818/*****************************************************************************
7819 * Shell coclass
7820 */
7821
7822DEFINE_GUID(CLSID_Shell, 0x13709620, 0xc279, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);
7823
7824#ifdef __cplusplus
7825class DECLSPEC_UUID("13709620-c279-11ce-a49e-444553540000") Shell;
7826#ifdef __CRT_UUID_DECL
7827__CRT_UUID_DECL(Shell, 0x13709620, 0xc279, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00)
7828#endif
7829#endif
7830
7831/*****************************************************************************
7832 * ShellDispatchInproc coclass
7833 */
7834
7835DEFINE_GUID(CLSID_ShellDispatchInproc, 0x0a89a860, 0xd7b1, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
7836
7837#ifdef __cplusplus
7838class DECLSPEC_UUID("0a89a860-d7b1-11ce-8350-444553540000") ShellDispatchInproc;
7839#ifdef __CRT_UUID_DECL
7840__CRT_UUID_DECL(ShellDispatchInproc, 0x0a89a860, 0xd7b1, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
7841#endif
7842#endif
7843
7844typedef enum ShellSpecialFolderConstants {
7845    ssfDESKTOP = 0x0,
7846    ssfPROGRAMS = 0x2,
7847    ssfCONTROLS = 0x3,
7848    ssfPRINTERS = 0x4,
7849    ssfPERSONAL = 0x5,
7850    ssfFAVORITES = 0x6,
7851    ssfSTARTUP = 0x7,
7852    ssfRECENT = 0x8,
7853    ssfSENDTO = 0x9,
7854    ssfBITBUCKET = 0xa,
7855    ssfSTARTMENU = 0xb,
7856    ssfDESKTOPDIRECTORY = 0x10,
7857    ssfDRIVES = 0x11,
7858    ssfNETWORK = 0x12,
7859    ssfNETHOOD = 0x13,
7860    ssfFONTS = 0x14,
7861    ssfTEMPLATES = 0x15,
7862    ssfCOMMONSTARTMENU = 0x16,
7863    ssfCOMMONPROGRAMS = 0x17,
7864    ssfCOMMONSTARTUP = 0x18,
7865    ssfCOMMONDESKTOPDIR = 0x19,
7866    ssfAPPDATA = 0x1a,
7867    ssfPRINTHOOD = 0x1b,
7868    ssfLOCALAPPDATA = 0x1c,
7869    ssfALTSTARTUP = 0x1d,
7870    ssfCOMMONALTSTARTUP = 0x1e,
7871    ssfCOMMONFAVORITES = 0x1f,
7872    ssfINTERNETCACHE = 0x20,
7873    ssfCOOKIES = 0x21,
7874    ssfHISTORY = 0x22,
7875    ssfCOMMONAPPDATA = 0x23,
7876    ssfWINDOWS = 0x24,
7877    ssfSYSTEM = 0x25,
7878    ssfPROGRAMFILES = 0x26,
7879    ssfMYPICTURES = 0x27,
7880    ssfPROFILE = 0x28,
7881    ssfSYSTEMx86 = 0x29,
7882    ssfPROGRAMFILESx86 = 0x30
7883} ShellSpecialFolderConstants;
7884/*****************************************************************************
7885 * IFileSearchBand interface
7886 */
7887#ifndef __IFileSearchBand_INTERFACE_DEFINED__
7888#define __IFileSearchBand_INTERFACE_DEFINED__
7889
7890DEFINE_GUID(IID_IFileSearchBand, 0x2d91eea1, 0x9932, 0x11d2, 0xbe,0x86, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1);
7891#if defined(__cplusplus) && !defined(CINTERFACE)
7892MIDL_INTERFACE("2d91eea1-9932-11d2-be86-00a0c9a83da1")
7893IFileSearchBand : public IDispatch
7894{
7895    virtual HRESULT STDMETHODCALLTYPE SetFocus(
7896        ) = 0;
7897
7898    virtual HRESULT STDMETHODCALLTYPE SetSearchParameters(
7899        BSTR *pbstrSearchID,
7900        VARIANT_BOOL bNavToResults,
7901        VARIANT *pvarScope,
7902        VARIANT *pvarQueryFile) = 0;
7903
7904    virtual HRESULT STDMETHODCALLTYPE get_SearchID(
7905        BSTR *pbstrSearchID) = 0;
7906
7907    virtual HRESULT STDMETHODCALLTYPE get_Scope(
7908        VARIANT *pvarScope) = 0;
7909
7910    virtual HRESULT STDMETHODCALLTYPE get_QueryFile(
7911        VARIANT *pvarFile) = 0;
7912
7913};
7914#ifdef __CRT_UUID_DECL
7915__CRT_UUID_DECL(IFileSearchBand, 0x2d91eea1, 0x9932, 0x11d2, 0xbe,0x86, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1)
7916#endif
7917#else
7918typedef struct IFileSearchBandVtbl {
7919    BEGIN_INTERFACE
7920
7921    /*** IUnknown methods ***/
7922    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7923        IFileSearchBand* This,
7924        REFIID riid,
7925        void **ppvObject);
7926
7927    ULONG (STDMETHODCALLTYPE *AddRef)(
7928        IFileSearchBand* This);
7929
7930    ULONG (STDMETHODCALLTYPE *Release)(
7931        IFileSearchBand* This);
7932
7933    /*** IDispatch methods ***/
7934    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
7935        IFileSearchBand* This,
7936        UINT *pctinfo);
7937
7938    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
7939        IFileSearchBand* This,
7940        UINT iTInfo,
7941        LCID lcid,
7942        ITypeInfo **ppTInfo);
7943
7944    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
7945        IFileSearchBand* This,
7946        REFIID riid,
7947        LPOLESTR *rgszNames,
7948        UINT cNames,
7949        LCID lcid,
7950        DISPID *rgDispId);
7951
7952    HRESULT (STDMETHODCALLTYPE *Invoke)(
7953        IFileSearchBand* This,
7954        DISPID dispIdMember,
7955        REFIID riid,
7956        LCID lcid,
7957        WORD wFlags,
7958        DISPPARAMS *pDispParams,
7959        VARIANT *pVarResult,
7960        EXCEPINFO *pExcepInfo,
7961        UINT *puArgErr);
7962
7963    /*** IFileSearchBand methods ***/
7964    HRESULT (STDMETHODCALLTYPE *SetFocus)(
7965        IFileSearchBand* This);
7966
7967    HRESULT (STDMETHODCALLTYPE *SetSearchParameters)(
7968        IFileSearchBand* This,
7969        BSTR *pbstrSearchID,
7970        VARIANT_BOOL bNavToResults,
7971        VARIANT *pvarScope,
7972        VARIANT *pvarQueryFile);
7973
7974    HRESULT (STDMETHODCALLTYPE *get_SearchID)(
7975        IFileSearchBand* This,
7976        BSTR *pbstrSearchID);
7977
7978    HRESULT (STDMETHODCALLTYPE *get_Scope)(
7979        IFileSearchBand* This,
7980        VARIANT *pvarScope);
7981
7982    HRESULT (STDMETHODCALLTYPE *get_QueryFile)(
7983        IFileSearchBand* This,
7984        VARIANT *pvarFile);
7985
7986    END_INTERFACE
7987} IFileSearchBandVtbl;
7988interface IFileSearchBand {
7989    CONST_VTBL IFileSearchBandVtbl* lpVtbl;
7990};
7991
7992#ifdef COBJMACROS
7993#ifndef WIDL_C_INLINE_WRAPPERS
7994/*** IUnknown methods ***/
7995#define IFileSearchBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7996#define IFileSearchBand_AddRef(This) (This)->lpVtbl->AddRef(This)
7997#define IFileSearchBand_Release(This) (This)->lpVtbl->Release(This)
7998/*** IDispatch methods ***/
7999#define IFileSearchBand_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
8000#define IFileSearchBand_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
8001#define IFileSearchBand_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
8002#define IFileSearchBand_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
8003/*** IFileSearchBand methods ***/
8004#define IFileSearchBand_SetFocus(This) (This)->lpVtbl->SetFocus(This)
8005#define IFileSearchBand_SetSearchParameters(This,pbstrSearchID,bNavToResults,pvarScope,pvarQueryFile) (This)->lpVtbl->SetSearchParameters(This,pbstrSearchID,bNavToResults,pvarScope,pvarQueryFile)
8006#define IFileSearchBand_get_SearchID(This,pbstrSearchID) (This)->lpVtbl->get_SearchID(This,pbstrSearchID)
8007#define IFileSearchBand_get_Scope(This,pvarScope) (This)->lpVtbl->get_Scope(This,pvarScope)
8008#define IFileSearchBand_get_QueryFile(This,pvarFile) (This)->lpVtbl->get_QueryFile(This,pvarFile)
8009#else
8010/*** IUnknown methods ***/
8011static FORCEINLINE HRESULT IFileSearchBand_QueryInterface(IFileSearchBand* This,REFIID riid,void **ppvObject) {
8012    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8013}
8014static FORCEINLINE ULONG IFileSearchBand_AddRef(IFileSearchBand* This) {
8015    return This->lpVtbl->AddRef(This);
8016}
8017static FORCEINLINE ULONG IFileSearchBand_Release(IFileSearchBand* This) {
8018    return This->lpVtbl->Release(This);
8019}
8020/*** IDispatch methods ***/
8021static FORCEINLINE HRESULT IFileSearchBand_GetTypeInfoCount(IFileSearchBand* This,UINT *pctinfo) {
8022    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
8023}
8024static FORCEINLINE HRESULT IFileSearchBand_GetTypeInfo(IFileSearchBand* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
8025    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
8026}
8027static FORCEINLINE HRESULT IFileSearchBand_GetIDsOfNames(IFileSearchBand* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
8028    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
8029}
8030static FORCEINLINE HRESULT IFileSearchBand_Invoke(IFileSearchBand* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
8031    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
8032}
8033/*** IFileSearchBand methods ***/
8034static FORCEINLINE HRESULT IFileSearchBand_SetFocus(IFileSearchBand* This) {
8035    return This->lpVtbl->SetFocus(This);
8036}
8037static FORCEINLINE HRESULT IFileSearchBand_SetSearchParameters(IFileSearchBand* This,BSTR *pbstrSearchID,VARIANT_BOOL bNavToResults,VARIANT *pvarScope,VARIANT *pvarQueryFile) {
8038    return This->lpVtbl->SetSearchParameters(This,pbstrSearchID,bNavToResults,pvarScope,pvarQueryFile);
8039}
8040static FORCEINLINE HRESULT IFileSearchBand_get_SearchID(IFileSearchBand* This,BSTR *pbstrSearchID) {
8041    return This->lpVtbl->get_SearchID(This,pbstrSearchID);
8042}
8043static FORCEINLINE HRESULT IFileSearchBand_get_Scope(IFileSearchBand* This,VARIANT *pvarScope) {
8044    return This->lpVtbl->get_Scope(This,pvarScope);
8045}
8046static FORCEINLINE HRESULT IFileSearchBand_get_QueryFile(IFileSearchBand* This,VARIANT *pvarFile) {
8047    return This->lpVtbl->get_QueryFile(This,pvarFile);
8048}
8049#endif
8050#endif
8051
8052#endif
8053
8054HRESULT STDMETHODCALLTYPE IFileSearchBand_SetFocus_Proxy(
8055    IFileSearchBand* This);
8056void __RPC_STUB IFileSearchBand_SetFocus_Stub(
8057    IRpcStubBuffer* This,
8058    IRpcChannelBuffer* pRpcChannelBuffer,
8059    PRPC_MESSAGE pRpcMessage,
8060    DWORD* pdwStubPhase);
8061HRESULT STDMETHODCALLTYPE IFileSearchBand_SetSearchParameters_Proxy(
8062    IFileSearchBand* This,
8063    BSTR *pbstrSearchID,
8064    VARIANT_BOOL bNavToResults,
8065    VARIANT *pvarScope,
8066    VARIANT *pvarQueryFile);
8067void __RPC_STUB IFileSearchBand_SetSearchParameters_Stub(
8068    IRpcStubBuffer* This,
8069    IRpcChannelBuffer* pRpcChannelBuffer,
8070    PRPC_MESSAGE pRpcMessage,
8071    DWORD* pdwStubPhase);
8072HRESULT STDMETHODCALLTYPE IFileSearchBand_get_SearchID_Proxy(
8073    IFileSearchBand* This,
8074    BSTR *pbstrSearchID);
8075void __RPC_STUB IFileSearchBand_get_SearchID_Stub(
8076    IRpcStubBuffer* This,
8077    IRpcChannelBuffer* pRpcChannelBuffer,
8078    PRPC_MESSAGE pRpcMessage,
8079    DWORD* pdwStubPhase);
8080HRESULT STDMETHODCALLTYPE IFileSearchBand_get_Scope_Proxy(
8081    IFileSearchBand* This,
8082    VARIANT *pvarScope);
8083void __RPC_STUB IFileSearchBand_get_Scope_Stub(
8084    IRpcStubBuffer* This,
8085    IRpcChannelBuffer* pRpcChannelBuffer,
8086    PRPC_MESSAGE pRpcMessage,
8087    DWORD* pdwStubPhase);
8088HRESULT STDMETHODCALLTYPE IFileSearchBand_get_QueryFile_Proxy(
8089    IFileSearchBand* This,
8090    VARIANT *pvarFile);
8091void __RPC_STUB IFileSearchBand_get_QueryFile_Stub(
8092    IRpcStubBuffer* This,
8093    IRpcChannelBuffer* pRpcChannelBuffer,
8094    PRPC_MESSAGE pRpcMessage,
8095    DWORD* pdwStubPhase);
8096
8097#endif  /* __IFileSearchBand_INTERFACE_DEFINED__ */
8098
8099/*****************************************************************************
8100 * FileSearchBand coclass
8101 */
8102
8103DEFINE_GUID(CLSID_FileSearchBand, 0xc4ee31f3, 0x4768, 0x11d2, 0xbe,0x5c, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1);
8104
8105#ifdef __cplusplus
8106class DECLSPEC_UUID("c4ee31f3-4768-11d2-be5c-00a0c9a83da1") FileSearchBand;
8107#ifdef __CRT_UUID_DECL
8108__CRT_UUID_DECL(FileSearchBand, 0xc4ee31f3, 0x4768, 0x11d2, 0xbe,0x5c, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1)
8109#endif
8110#endif
8111
8112/*****************************************************************************
8113 * IWebWizardHost interface
8114 */
8115#ifndef __IWebWizardHost_INTERFACE_DEFINED__
8116#define __IWebWizardHost_INTERFACE_DEFINED__
8117
8118DEFINE_GUID(IID_IWebWizardHost, 0x18bcc359, 0x4990, 0x4bfb, 0xb9,0x51, 0x3c,0x83,0x70,0x2b,0xe5,0xf9);
8119#if defined(__cplusplus) && !defined(CINTERFACE)
8120MIDL_INTERFACE("18bcc359-4990-4bfb-b951-3c83702be5f9")
8121IWebWizardHost : public IDispatch
8122{
8123    virtual HRESULT STDMETHODCALLTYPE FinalBack(
8124        ) = 0;
8125
8126    virtual HRESULT STDMETHODCALLTYPE FinalNext(
8127        ) = 0;
8128
8129    virtual HRESULT STDMETHODCALLTYPE Cancel(
8130        ) = 0;
8131
8132    virtual HRESULT STDMETHODCALLTYPE put_Caption(
8133        BSTR bstrCaption) = 0;
8134
8135    virtual HRESULT STDMETHODCALLTYPE get_Caption(
8136        BSTR *pbstrCaption) = 0;
8137
8138    virtual HRESULT STDMETHODCALLTYPE put_Property(
8139        BSTR bstrPropertyName,
8140        VARIANT *pvProperty) = 0;
8141
8142    virtual HRESULT STDMETHODCALLTYPE get_Property(
8143        BSTR bstrPropertyName,
8144        VARIANT *pvProperty) = 0;
8145
8146    virtual HRESULT STDMETHODCALLTYPE SetWizardButtons(
8147        VARIANT_BOOL vfEnableBack,
8148        VARIANT_BOOL vfEnableNext,
8149        VARIANT_BOOL vfLastPage) = 0;
8150
8151    virtual HRESULT STDMETHODCALLTYPE SetHeaderText(
8152        BSTR bstrHeaderTitle,
8153        BSTR bstrHeaderSubtitle) = 0;
8154
8155};
8156#ifdef __CRT_UUID_DECL
8157__CRT_UUID_DECL(IWebWizardHost, 0x18bcc359, 0x4990, 0x4bfb, 0xb9,0x51, 0x3c,0x83,0x70,0x2b,0xe5,0xf9)
8158#endif
8159#else
8160typedef struct IWebWizardHostVtbl {
8161    BEGIN_INTERFACE
8162
8163    /*** IUnknown methods ***/
8164    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8165        IWebWizardHost* This,
8166        REFIID riid,
8167        void **ppvObject);
8168
8169    ULONG (STDMETHODCALLTYPE *AddRef)(
8170        IWebWizardHost* This);
8171
8172    ULONG (STDMETHODCALLTYPE *Release)(
8173        IWebWizardHost* This);
8174
8175    /*** IDispatch methods ***/
8176    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
8177        IWebWizardHost* This,
8178        UINT *pctinfo);
8179
8180    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
8181        IWebWizardHost* This,
8182        UINT iTInfo,
8183        LCID lcid,
8184        ITypeInfo **ppTInfo);
8185
8186    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
8187        IWebWizardHost* This,
8188        REFIID riid,
8189        LPOLESTR *rgszNames,
8190        UINT cNames,
8191        LCID lcid,
8192        DISPID *rgDispId);
8193
8194    HRESULT (STDMETHODCALLTYPE *Invoke)(
8195        IWebWizardHost* This,
8196        DISPID dispIdMember,
8197        REFIID riid,
8198        LCID lcid,
8199        WORD wFlags,
8200        DISPPARAMS *pDispParams,
8201        VARIANT *pVarResult,
8202        EXCEPINFO *pExcepInfo,
8203        UINT *puArgErr);
8204
8205    /*** IWebWizardHost methods ***/
8206    HRESULT (STDMETHODCALLTYPE *FinalBack)(
8207        IWebWizardHost* This);
8208
8209    HRESULT (STDMETHODCALLTYPE *FinalNext)(
8210        IWebWizardHost* This);
8211
8212    HRESULT (STDMETHODCALLTYPE *Cancel)(
8213        IWebWizardHost* This);
8214
8215    HRESULT (STDMETHODCALLTYPE *put_Caption)(
8216        IWebWizardHost* This,
8217        BSTR bstrCaption);
8218
8219    HRESULT (STDMETHODCALLTYPE *get_Caption)(
8220        IWebWizardHost* This,
8221        BSTR *pbstrCaption);
8222
8223    HRESULT (STDMETHODCALLTYPE *put_Property)(
8224        IWebWizardHost* This,
8225        BSTR bstrPropertyName,
8226        VARIANT *pvProperty);
8227
8228    HRESULT (STDMETHODCALLTYPE *get_Property)(
8229        IWebWizardHost* This,
8230        BSTR bstrPropertyName,
8231        VARIANT *pvProperty);
8232
8233    HRESULT (STDMETHODCALLTYPE *SetWizardButtons)(
8234        IWebWizardHost* This,
8235        VARIANT_BOOL vfEnableBack,
8236        VARIANT_BOOL vfEnableNext,
8237        VARIANT_BOOL vfLastPage);
8238
8239    HRESULT (STDMETHODCALLTYPE *SetHeaderText)(
8240        IWebWizardHost* This,
8241        BSTR bstrHeaderTitle,
8242        BSTR bstrHeaderSubtitle);
8243
8244    END_INTERFACE
8245} IWebWizardHostVtbl;
8246interface IWebWizardHost {
8247    CONST_VTBL IWebWizardHostVtbl* lpVtbl;
8248};
8249
8250#ifdef COBJMACROS
8251#ifndef WIDL_C_INLINE_WRAPPERS
8252/*** IUnknown methods ***/
8253#define IWebWizardHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8254#define IWebWizardHost_AddRef(This) (This)->lpVtbl->AddRef(This)
8255#define IWebWizardHost_Release(This) (This)->lpVtbl->Release(This)
8256/*** IDispatch methods ***/
8257#define IWebWizardHost_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
8258#define IWebWizardHost_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
8259#define IWebWizardHost_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
8260#define IWebWizardHost_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
8261/*** IWebWizardHost methods ***/
8262#define IWebWizardHost_FinalBack(This) (This)->lpVtbl->FinalBack(This)
8263#define IWebWizardHost_FinalNext(This) (This)->lpVtbl->FinalNext(This)
8264#define IWebWizardHost_Cancel(This) (This)->lpVtbl->Cancel(This)
8265#define IWebWizardHost_put_Caption(This,bstrCaption) (This)->lpVtbl->put_Caption(This,bstrCaption)
8266#define IWebWizardHost_get_Caption(This,pbstrCaption) (This)->lpVtbl->get_Caption(This,pbstrCaption)
8267#define IWebWizardHost_put_Property(This,bstrPropertyName,pvProperty) (This)->lpVtbl->put_Property(This,bstrPropertyName,pvProperty)
8268#define IWebWizardHost_get_Property(This,bstrPropertyName,pvProperty) (This)->lpVtbl->get_Property(This,bstrPropertyName,pvProperty)
8269#define IWebWizardHost_SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage) (This)->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage)
8270#define IWebWizardHost_SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle) (This)->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle)
8271#else
8272/*** IUnknown methods ***/
8273static FORCEINLINE HRESULT IWebWizardHost_QueryInterface(IWebWizardHost* This,REFIID riid,void **ppvObject) {
8274    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8275}
8276static FORCEINLINE ULONG IWebWizardHost_AddRef(IWebWizardHost* This) {
8277    return This->lpVtbl->AddRef(This);
8278}
8279static FORCEINLINE ULONG IWebWizardHost_Release(IWebWizardHost* This) {
8280    return This->lpVtbl->Release(This);
8281}
8282/*** IDispatch methods ***/
8283static FORCEINLINE HRESULT IWebWizardHost_GetTypeInfoCount(IWebWizardHost* This,UINT *pctinfo) {
8284    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
8285}
8286static FORCEINLINE HRESULT IWebWizardHost_GetTypeInfo(IWebWizardHost* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
8287    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
8288}
8289static FORCEINLINE HRESULT IWebWizardHost_GetIDsOfNames(IWebWizardHost* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
8290    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
8291}
8292static FORCEINLINE HRESULT IWebWizardHost_Invoke(IWebWizardHost* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
8293    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
8294}
8295/*** IWebWizardHost methods ***/
8296static FORCEINLINE HRESULT IWebWizardHost_FinalBack(IWebWizardHost* This) {
8297    return This->lpVtbl->FinalBack(This);
8298}
8299static FORCEINLINE HRESULT IWebWizardHost_FinalNext(IWebWizardHost* This) {
8300    return This->lpVtbl->FinalNext(This);
8301}
8302static FORCEINLINE HRESULT IWebWizardHost_Cancel(IWebWizardHost* This) {
8303    return This->lpVtbl->Cancel(This);
8304}
8305static FORCEINLINE HRESULT IWebWizardHost_put_Caption(IWebWizardHost* This,BSTR bstrCaption) {
8306    return This->lpVtbl->put_Caption(This,bstrCaption);
8307}
8308static FORCEINLINE HRESULT IWebWizardHost_get_Caption(IWebWizardHost* This,BSTR *pbstrCaption) {
8309    return This->lpVtbl->get_Caption(This,pbstrCaption);
8310}
8311static FORCEINLINE HRESULT IWebWizardHost_put_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8312    return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
8313}
8314static FORCEINLINE HRESULT IWebWizardHost_get_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8315    return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
8316}
8317static FORCEINLINE HRESULT IWebWizardHost_SetWizardButtons(IWebWizardHost* This,VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage) {
8318    return This->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage);
8319}
8320static FORCEINLINE HRESULT IWebWizardHost_SetHeaderText(IWebWizardHost* This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle) {
8321    return This->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle);
8322}
8323#endif
8324#endif
8325
8326#endif
8327
8328HRESULT STDMETHODCALLTYPE IWebWizardHost_FinalBack_Proxy(
8329    IWebWizardHost* This);
8330void __RPC_STUB IWebWizardHost_FinalBack_Stub(
8331    IRpcStubBuffer* This,
8332    IRpcChannelBuffer* pRpcChannelBuffer,
8333    PRPC_MESSAGE pRpcMessage,
8334    DWORD* pdwStubPhase);
8335HRESULT STDMETHODCALLTYPE IWebWizardHost_FinalNext_Proxy(
8336    IWebWizardHost* This);
8337void __RPC_STUB IWebWizardHost_FinalNext_Stub(
8338    IRpcStubBuffer* This,
8339    IRpcChannelBuffer* pRpcChannelBuffer,
8340    PRPC_MESSAGE pRpcMessage,
8341    DWORD* pdwStubPhase);
8342HRESULT STDMETHODCALLTYPE IWebWizardHost_Cancel_Proxy(
8343    IWebWizardHost* This);
8344void __RPC_STUB IWebWizardHost_Cancel_Stub(
8345    IRpcStubBuffer* This,
8346    IRpcChannelBuffer* pRpcChannelBuffer,
8347    PRPC_MESSAGE pRpcMessage,
8348    DWORD* pdwStubPhase);
8349HRESULT STDMETHODCALLTYPE IWebWizardHost_put_Caption_Proxy(
8350    IWebWizardHost* This,
8351    BSTR bstrCaption);
8352void __RPC_STUB IWebWizardHost_put_Caption_Stub(
8353    IRpcStubBuffer* This,
8354    IRpcChannelBuffer* pRpcChannelBuffer,
8355    PRPC_MESSAGE pRpcMessage,
8356    DWORD* pdwStubPhase);
8357HRESULT STDMETHODCALLTYPE IWebWizardHost_get_Caption_Proxy(
8358    IWebWizardHost* This,
8359    BSTR *pbstrCaption);
8360void __RPC_STUB IWebWizardHost_get_Caption_Stub(
8361    IRpcStubBuffer* This,
8362    IRpcChannelBuffer* pRpcChannelBuffer,
8363    PRPC_MESSAGE pRpcMessage,
8364    DWORD* pdwStubPhase);
8365HRESULT STDMETHODCALLTYPE IWebWizardHost_put_Property_Proxy(
8366    IWebWizardHost* This,
8367    BSTR bstrPropertyName,
8368    VARIANT *pvProperty);
8369void __RPC_STUB IWebWizardHost_put_Property_Stub(
8370    IRpcStubBuffer* This,
8371    IRpcChannelBuffer* pRpcChannelBuffer,
8372    PRPC_MESSAGE pRpcMessage,
8373    DWORD* pdwStubPhase);
8374HRESULT STDMETHODCALLTYPE IWebWizardHost_get_Property_Proxy(
8375    IWebWizardHost* This,
8376    BSTR bstrPropertyName,
8377    VARIANT *pvProperty);
8378void __RPC_STUB IWebWizardHost_get_Property_Stub(
8379    IRpcStubBuffer* This,
8380    IRpcChannelBuffer* pRpcChannelBuffer,
8381    PRPC_MESSAGE pRpcMessage,
8382    DWORD* pdwStubPhase);
8383HRESULT STDMETHODCALLTYPE IWebWizardHost_SetWizardButtons_Proxy(
8384    IWebWizardHost* This,
8385    VARIANT_BOOL vfEnableBack,
8386    VARIANT_BOOL vfEnableNext,
8387    VARIANT_BOOL vfLastPage);
8388void __RPC_STUB IWebWizardHost_SetWizardButtons_Stub(
8389    IRpcStubBuffer* This,
8390    IRpcChannelBuffer* pRpcChannelBuffer,
8391    PRPC_MESSAGE pRpcMessage,
8392    DWORD* pdwStubPhase);
8393HRESULT STDMETHODCALLTYPE IWebWizardHost_SetHeaderText_Proxy(
8394    IWebWizardHost* This,
8395    BSTR bstrHeaderTitle,
8396    BSTR bstrHeaderSubtitle);
8397void __RPC_STUB IWebWizardHost_SetHeaderText_Stub(
8398    IRpcStubBuffer* This,
8399    IRpcChannelBuffer* pRpcChannelBuffer,
8400    PRPC_MESSAGE pRpcMessage,
8401    DWORD* pdwStubPhase);
8402
8403#endif  /* __IWebWizardHost_INTERFACE_DEFINED__ */
8404
8405/*****************************************************************************
8406 * INewWDEvents interface
8407 */
8408#ifndef __INewWDEvents_INTERFACE_DEFINED__
8409#define __INewWDEvents_INTERFACE_DEFINED__
8410
8411DEFINE_GUID(IID_INewWDEvents, 0x0751c551, 0x7568, 0x41c9, 0x8e,0x5b, 0xe2,0x2e,0x38,0x91,0x92,0x36);
8412#if defined(__cplusplus) && !defined(CINTERFACE)
8413MIDL_INTERFACE("0751c551-7568-41c9-8e5b-e22e38919236")
8414INewWDEvents : public IWebWizardHost
8415{
8416    virtual HRESULT STDMETHODCALLTYPE PassportAuthenticate(
8417        BSTR bstrSignInUrl,
8418        VARIANT_BOOL *pvfAuthenitcated) = 0;
8419
8420};
8421#ifdef __CRT_UUID_DECL
8422__CRT_UUID_DECL(INewWDEvents, 0x0751c551, 0x7568, 0x41c9, 0x8e,0x5b, 0xe2,0x2e,0x38,0x91,0x92,0x36)
8423#endif
8424#else
8425typedef struct INewWDEventsVtbl {
8426    BEGIN_INTERFACE
8427
8428    /*** IUnknown methods ***/
8429    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8430        INewWDEvents* This,
8431        REFIID riid,
8432        void **ppvObject);
8433
8434    ULONG (STDMETHODCALLTYPE *AddRef)(
8435        INewWDEvents* This);
8436
8437    ULONG (STDMETHODCALLTYPE *Release)(
8438        INewWDEvents* This);
8439
8440    /*** IDispatch methods ***/
8441    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
8442        INewWDEvents* This,
8443        UINT *pctinfo);
8444
8445    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
8446        INewWDEvents* This,
8447        UINT iTInfo,
8448        LCID lcid,
8449        ITypeInfo **ppTInfo);
8450
8451    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
8452        INewWDEvents* This,
8453        REFIID riid,
8454        LPOLESTR *rgszNames,
8455        UINT cNames,
8456        LCID lcid,
8457        DISPID *rgDispId);
8458
8459    HRESULT (STDMETHODCALLTYPE *Invoke)(
8460        INewWDEvents* This,
8461        DISPID dispIdMember,
8462        REFIID riid,
8463        LCID lcid,
8464        WORD wFlags,
8465        DISPPARAMS *pDispParams,
8466        VARIANT *pVarResult,
8467        EXCEPINFO *pExcepInfo,
8468        UINT *puArgErr);
8469
8470    /*** IWebWizardHost methods ***/
8471    HRESULT (STDMETHODCALLTYPE *FinalBack)(
8472        INewWDEvents* This);
8473
8474    HRESULT (STDMETHODCALLTYPE *FinalNext)(
8475        INewWDEvents* This);
8476
8477    HRESULT (STDMETHODCALLTYPE *Cancel)(
8478        INewWDEvents* This);
8479
8480    HRESULT (STDMETHODCALLTYPE *put_Caption)(
8481        INewWDEvents* This,
8482        BSTR bstrCaption);
8483
8484    HRESULT (STDMETHODCALLTYPE *get_Caption)(
8485        INewWDEvents* This,
8486        BSTR *pbstrCaption);
8487
8488    HRESULT (STDMETHODCALLTYPE *put_Property)(
8489        INewWDEvents* This,
8490        BSTR bstrPropertyName,
8491        VARIANT *pvProperty);
8492
8493    HRESULT (STDMETHODCALLTYPE *get_Property)(
8494        INewWDEvents* This,
8495        BSTR bstrPropertyName,
8496        VARIANT *pvProperty);
8497
8498    HRESULT (STDMETHODCALLTYPE *SetWizardButtons)(
8499        INewWDEvents* This,
8500        VARIANT_BOOL vfEnableBack,
8501        VARIANT_BOOL vfEnableNext,
8502        VARIANT_BOOL vfLastPage);
8503
8504    HRESULT (STDMETHODCALLTYPE *SetHeaderText)(
8505        INewWDEvents* This,
8506        BSTR bstrHeaderTitle,
8507        BSTR bstrHeaderSubtitle);
8508
8509    /*** INewWDEvents methods ***/
8510    HRESULT (STDMETHODCALLTYPE *PassportAuthenticate)(
8511        INewWDEvents* This,
8512        BSTR bstrSignInUrl,
8513        VARIANT_BOOL *pvfAuthenitcated);
8514
8515    END_INTERFACE
8516} INewWDEventsVtbl;
8517interface INewWDEvents {
8518    CONST_VTBL INewWDEventsVtbl* lpVtbl;
8519};
8520
8521#ifdef COBJMACROS
8522#ifndef WIDL_C_INLINE_WRAPPERS
8523/*** IUnknown methods ***/
8524#define INewWDEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8525#define INewWDEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
8526#define INewWDEvents_Release(This) (This)->lpVtbl->Release(This)
8527/*** IDispatch methods ***/
8528#define INewWDEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
8529#define INewWDEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
8530#define INewWDEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
8531#define INewWDEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
8532/*** IWebWizardHost methods ***/
8533#define INewWDEvents_FinalBack(This) (This)->lpVtbl->FinalBack(This)
8534#define INewWDEvents_FinalNext(This) (This)->lpVtbl->FinalNext(This)
8535#define INewWDEvents_Cancel(This) (This)->lpVtbl->Cancel(This)
8536#define INewWDEvents_put_Caption(This,bstrCaption) (This)->lpVtbl->put_Caption(This,bstrCaption)
8537#define INewWDEvents_get_Caption(This,pbstrCaption) (This)->lpVtbl->get_Caption(This,pbstrCaption)
8538#define INewWDEvents_put_Property(This,bstrPropertyName,pvProperty) (This)->lpVtbl->put_Property(This,bstrPropertyName,pvProperty)
8539#define INewWDEvents_get_Property(This,bstrPropertyName,pvProperty) (This)->lpVtbl->get_Property(This,bstrPropertyName,pvProperty)
8540#define INewWDEvents_SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage) (This)->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage)
8541#define INewWDEvents_SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle) (This)->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle)
8542/*** INewWDEvents methods ***/
8543#define INewWDEvents_PassportAuthenticate(This,bstrSignInUrl,pvfAuthenitcated) (This)->lpVtbl->PassportAuthenticate(This,bstrSignInUrl,pvfAuthenitcated)
8544#else
8545/*** IUnknown methods ***/
8546static FORCEINLINE HRESULT INewWDEvents_QueryInterface(INewWDEvents* This,REFIID riid,void **ppvObject) {
8547    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8548}
8549static FORCEINLINE ULONG INewWDEvents_AddRef(INewWDEvents* This) {
8550    return This->lpVtbl->AddRef(This);
8551}
8552static FORCEINLINE ULONG INewWDEvents_Release(INewWDEvents* This) {
8553    return This->lpVtbl->Release(This);
8554}
8555/*** IDispatch methods ***/
8556static FORCEINLINE HRESULT INewWDEvents_GetTypeInfoCount(INewWDEvents* This,UINT *pctinfo) {
8557    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
8558}
8559static FORCEINLINE HRESULT INewWDEvents_GetTypeInfo(INewWDEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
8560    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
8561}
8562static FORCEINLINE HRESULT INewWDEvents_GetIDsOfNames(INewWDEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
8563    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
8564}
8565static FORCEINLINE HRESULT INewWDEvents_Invoke(INewWDEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
8566    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
8567}
8568/*** IWebWizardHost methods ***/
8569static FORCEINLINE HRESULT INewWDEvents_FinalBack(INewWDEvents* This) {
8570    return This->lpVtbl->FinalBack(This);
8571}
8572static FORCEINLINE HRESULT INewWDEvents_FinalNext(INewWDEvents* This) {
8573    return This->lpVtbl->FinalNext(This);
8574}
8575static FORCEINLINE HRESULT INewWDEvents_Cancel(INewWDEvents* This) {
8576    return This->lpVtbl->Cancel(This);
8577}
8578static FORCEINLINE HRESULT INewWDEvents_put_Caption(INewWDEvents* This,BSTR bstrCaption) {
8579    return This->lpVtbl->put_Caption(This,bstrCaption);
8580}
8581static FORCEINLINE HRESULT INewWDEvents_get_Caption(INewWDEvents* This,BSTR *pbstrCaption) {
8582    return This->lpVtbl->get_Caption(This,pbstrCaption);
8583}
8584static FORCEINLINE HRESULT INewWDEvents_put_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8585    return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
8586}
8587static FORCEINLINE HRESULT INewWDEvents_get_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8588    return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
8589}
8590static FORCEINLINE HRESULT INewWDEvents_SetWizardButtons(INewWDEvents* This,VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage) {
8591    return This->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage);
8592}
8593static FORCEINLINE HRESULT INewWDEvents_SetHeaderText(INewWDEvents* This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle) {
8594    return This->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle);
8595}
8596/*** INewWDEvents methods ***/
8597static FORCEINLINE HRESULT INewWDEvents_PassportAuthenticate(INewWDEvents* This,BSTR bstrSignInUrl,VARIANT_BOOL *pvfAuthenitcated) {
8598    return This->lpVtbl->PassportAuthenticate(This,bstrSignInUrl,pvfAuthenitcated);
8599}
8600#endif
8601#endif
8602
8603#endif
8604
8605HRESULT STDMETHODCALLTYPE INewWDEvents_PassportAuthenticate_Proxy(
8606    INewWDEvents* This,
8607    BSTR bstrSignInUrl,
8608    VARIANT_BOOL *pvfAuthenitcated);
8609void __RPC_STUB INewWDEvents_PassportAuthenticate_Stub(
8610    IRpcStubBuffer* This,
8611    IRpcChannelBuffer* pRpcChannelBuffer,
8612    PRPC_MESSAGE pRpcMessage,
8613    DWORD* pdwStubPhase);
8614
8615#endif  /* __INewWDEvents_INTERFACE_DEFINED__ */
8616
8617/*****************************************************************************
8618 * IAutoComplete interface
8619 */
8620#ifndef __IAutoComplete_INTERFACE_DEFINED__
8621#define __IAutoComplete_INTERFACE_DEFINED__
8622
8623typedef IAutoComplete *LPAUTOCOMPLETE;
8624DEFINE_GUID(IID_IAutoComplete, 0x00bb2762, 0x6a77, 0x11d0, 0xa5,0x35, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
8625#if defined(__cplusplus) && !defined(CINTERFACE)
8626MIDL_INTERFACE("00bb2762-6a77-11d0-a535-00c04fd7d062")
8627IAutoComplete : public IUnknown
8628{
8629    virtual HRESULT STDMETHODCALLTYPE Init(
8630        HWND hwndEdit,
8631        IUnknown *punkACL,
8632        LPCWSTR pwszRegKeyPath,
8633        LPCWSTR pwszQuickComplete) = 0;
8634
8635    virtual HRESULT STDMETHODCALLTYPE Enable(
8636        WINBOOL fEnable) = 0;
8637
8638};
8639#ifdef __CRT_UUID_DECL
8640__CRT_UUID_DECL(IAutoComplete, 0x00bb2762, 0x6a77, 0x11d0, 0xa5,0x35, 0x00,0xc0,0x4f,0xd7,0xd0,0x62)
8641#endif
8642#else
8643typedef struct IAutoCompleteVtbl {
8644    BEGIN_INTERFACE
8645
8646    /*** IUnknown methods ***/
8647    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8648        IAutoComplete* This,
8649        REFIID riid,
8650        void **ppvObject);
8651
8652    ULONG (STDMETHODCALLTYPE *AddRef)(
8653        IAutoComplete* This);
8654
8655    ULONG (STDMETHODCALLTYPE *Release)(
8656        IAutoComplete* This);
8657
8658    /*** IAutoComplete methods ***/
8659    HRESULT (STDMETHODCALLTYPE *Init)(
8660        IAutoComplete* This,
8661        HWND hwndEdit,
8662        IUnknown *punkACL,
8663        LPCWSTR pwszRegKeyPath,
8664        LPCWSTR pwszQuickComplete);
8665
8666    HRESULT (STDMETHODCALLTYPE *Enable)(
8667        IAutoComplete* This,
8668        WINBOOL fEnable);
8669
8670    END_INTERFACE
8671} IAutoCompleteVtbl;
8672interface IAutoComplete {
8673    CONST_VTBL IAutoCompleteVtbl* lpVtbl;
8674};
8675
8676#ifdef COBJMACROS
8677#ifndef WIDL_C_INLINE_WRAPPERS
8678/*** IUnknown methods ***/
8679#define IAutoComplete_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8680#define IAutoComplete_AddRef(This) (This)->lpVtbl->AddRef(This)
8681#define IAutoComplete_Release(This) (This)->lpVtbl->Release(This)
8682/*** IAutoComplete methods ***/
8683#define IAutoComplete_Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete) (This)->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete)
8684#define IAutoComplete_Enable(This,fEnable) (This)->lpVtbl->Enable(This,fEnable)
8685#else
8686/*** IUnknown methods ***/
8687static FORCEINLINE HRESULT IAutoComplete_QueryInterface(IAutoComplete* This,REFIID riid,void **ppvObject) {
8688    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8689}
8690static FORCEINLINE ULONG IAutoComplete_AddRef(IAutoComplete* This) {
8691    return This->lpVtbl->AddRef(This);
8692}
8693static FORCEINLINE ULONG IAutoComplete_Release(IAutoComplete* This) {
8694    return This->lpVtbl->Release(This);
8695}
8696/*** IAutoComplete methods ***/
8697static FORCEINLINE HRESULT IAutoComplete_Init(IAutoComplete* This,HWND hwndEdit,IUnknown *punkACL,LPCWSTR pwszRegKeyPath,LPCWSTR pwszQuickComplete) {
8698    return This->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete);
8699}
8700static FORCEINLINE HRESULT IAutoComplete_Enable(IAutoComplete* This,WINBOOL fEnable) {
8701    return This->lpVtbl->Enable(This,fEnable);
8702}
8703#endif
8704#endif
8705
8706#endif
8707
8708HRESULT STDMETHODCALLTYPE IAutoComplete_Init_Proxy(
8709    IAutoComplete* This,
8710    HWND hwndEdit,
8711    IUnknown *punkACL,
8712    LPCWSTR pwszRegKeyPath,
8713    LPCWSTR pwszQuickComplete);
8714void __RPC_STUB IAutoComplete_Init_Stub(
8715    IRpcStubBuffer* This,
8716    IRpcChannelBuffer* pRpcChannelBuffer,
8717    PRPC_MESSAGE pRpcMessage,
8718    DWORD* pdwStubPhase);
8719HRESULT STDMETHODCALLTYPE IAutoComplete_Enable_Proxy(
8720    IAutoComplete* This,
8721    WINBOOL fEnable);
8722void __RPC_STUB IAutoComplete_Enable_Stub(
8723    IRpcStubBuffer* This,
8724    IRpcChannelBuffer* pRpcChannelBuffer,
8725    PRPC_MESSAGE pRpcMessage,
8726    DWORD* pdwStubPhase);
8727
8728#endif  /* __IAutoComplete_INTERFACE_DEFINED__ */
8729
8730/*****************************************************************************
8731 * IAutoComplete2 interface
8732 */
8733#ifndef __IAutoComplete2_INTERFACE_DEFINED__
8734#define __IAutoComplete2_INTERFACE_DEFINED__
8735
8736typedef IAutoComplete2 *LPAUTOCOMPLETE2;
8737typedef enum _tagAUTOCOMPLETEOPTIONS {
8738    ACO_NONE = 0x0,
8739    ACO_AUTOSUGGEST = 0x1,
8740    ACO_AUTOAPPEND = 0x2,
8741    ACO_SEARCH = 0x4,
8742    ACO_FILTERPREFIXES = 0x8,
8743    ACO_USETAB = 0x10,
8744    ACO_UPDOWNKEYDROPSLIST = 0x20,
8745    ACO_RTLREADING = 0x40,
8746    ACO_WORD_FILTER = 0x80,
8747    ACO_NOPREFIXFILTERING = 0x100
8748} AUTOCOMPLETEOPTIONS;
8749DEFINE_GUID(IID_IAutoComplete2, 0xeac04bc0, 0x3791, 0x11d2, 0xbb,0x95, 0x00,0x60,0x97,0x7b,0x46,0x4c);
8750#if defined(__cplusplus) && !defined(CINTERFACE)
8751MIDL_INTERFACE("eac04bc0-3791-11d2-bb95-0060977b464c")
8752IAutoComplete2 : public IAutoComplete
8753{
8754    virtual HRESULT STDMETHODCALLTYPE SetOptions(
8755        DWORD dwFlag) = 0;
8756
8757    virtual HRESULT STDMETHODCALLTYPE GetOptions(
8758        DWORD *pdwFlag) = 0;
8759
8760};
8761#ifdef __CRT_UUID_DECL
8762__CRT_UUID_DECL(IAutoComplete2, 0xeac04bc0, 0x3791, 0x11d2, 0xbb,0x95, 0x00,0x60,0x97,0x7b,0x46,0x4c)
8763#endif
8764#else
8765typedef struct IAutoComplete2Vtbl {
8766    BEGIN_INTERFACE
8767
8768    /*** IUnknown methods ***/
8769    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8770        IAutoComplete2* This,
8771        REFIID riid,
8772        void **ppvObject);
8773
8774    ULONG (STDMETHODCALLTYPE *AddRef)(
8775        IAutoComplete2* This);
8776
8777    ULONG (STDMETHODCALLTYPE *Release)(
8778        IAutoComplete2* This);
8779
8780    /*** IAutoComplete methods ***/
8781    HRESULT (STDMETHODCALLTYPE *Init)(
8782        IAutoComplete2* This,
8783        HWND hwndEdit,
8784        IUnknown *punkACL,
8785        LPCWSTR pwszRegKeyPath,
8786        LPCWSTR pwszQuickComplete);
8787
8788    HRESULT (STDMETHODCALLTYPE *Enable)(
8789        IAutoComplete2* This,
8790        WINBOOL fEnable);
8791
8792    /*** IAutoComplete2 methods ***/
8793    HRESULT (STDMETHODCALLTYPE *SetOptions)(
8794        IAutoComplete2* This,
8795        DWORD dwFlag);
8796
8797    HRESULT (STDMETHODCALLTYPE *GetOptions)(
8798        IAutoComplete2* This,
8799        DWORD *pdwFlag);
8800
8801    END_INTERFACE
8802} IAutoComplete2Vtbl;
8803interface IAutoComplete2 {
8804    CONST_VTBL IAutoComplete2Vtbl* lpVtbl;
8805};
8806
8807#ifdef COBJMACROS
8808#ifndef WIDL_C_INLINE_WRAPPERS
8809/*** IUnknown methods ***/
8810#define IAutoComplete2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8811#define IAutoComplete2_AddRef(This) (This)->lpVtbl->AddRef(This)
8812#define IAutoComplete2_Release(This) (This)->lpVtbl->Release(This)
8813/*** IAutoComplete methods ***/
8814#define IAutoComplete2_Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete) (This)->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete)
8815#define IAutoComplete2_Enable(This,fEnable) (This)->lpVtbl->Enable(This,fEnable)
8816/*** IAutoComplete2 methods ***/
8817#define IAutoComplete2_SetOptions(This,dwFlag) (This)->lpVtbl->SetOptions(This,dwFlag)
8818#define IAutoComplete2_GetOptions(This,pdwFlag) (This)->lpVtbl->GetOptions(This,pdwFlag)
8819#else
8820/*** IUnknown methods ***/
8821static FORCEINLINE HRESULT IAutoComplete2_QueryInterface(IAutoComplete2* This,REFIID riid,void **ppvObject) {
8822    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8823}
8824static FORCEINLINE ULONG IAutoComplete2_AddRef(IAutoComplete2* This) {
8825    return This->lpVtbl->AddRef(This);
8826}
8827static FORCEINLINE ULONG IAutoComplete2_Release(IAutoComplete2* This) {
8828    return This->lpVtbl->Release(This);
8829}
8830/*** IAutoComplete methods ***/
8831static FORCEINLINE HRESULT IAutoComplete2_Init(IAutoComplete2* This,HWND hwndEdit,IUnknown *punkACL,LPCWSTR pwszRegKeyPath,LPCWSTR pwszQuickComplete) {
8832    return This->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete);
8833}
8834static FORCEINLINE HRESULT IAutoComplete2_Enable(IAutoComplete2* This,WINBOOL fEnable) {
8835    return This->lpVtbl->Enable(This,fEnable);
8836}
8837/*** IAutoComplete2 methods ***/
8838static FORCEINLINE HRESULT IAutoComplete2_SetOptions(IAutoComplete2* This,DWORD dwFlag) {
8839    return This->lpVtbl->SetOptions(This,dwFlag);
8840}
8841static FORCEINLINE HRESULT IAutoComplete2_GetOptions(IAutoComplete2* This,DWORD *pdwFlag) {
8842    return This->lpVtbl->GetOptions(This,pdwFlag);
8843}
8844#endif
8845#endif
8846
8847#endif
8848
8849HRESULT STDMETHODCALLTYPE IAutoComplete2_SetOptions_Proxy(
8850    IAutoComplete2* This,
8851    DWORD dwFlag);
8852void __RPC_STUB IAutoComplete2_SetOptions_Stub(
8853    IRpcStubBuffer* This,
8854    IRpcChannelBuffer* pRpcChannelBuffer,
8855    PRPC_MESSAGE pRpcMessage,
8856    DWORD* pdwStubPhase);
8857HRESULT STDMETHODCALLTYPE IAutoComplete2_GetOptions_Proxy(
8858    IAutoComplete2* This,
8859    DWORD *pdwFlag);
8860void __RPC_STUB IAutoComplete2_GetOptions_Stub(
8861    IRpcStubBuffer* This,
8862    IRpcChannelBuffer* pRpcChannelBuffer,
8863    PRPC_MESSAGE pRpcMessage,
8864    DWORD* pdwStubPhase);
8865
8866#endif  /* __IAutoComplete2_INTERFACE_DEFINED__ */
8867
8868
8869/*****************************************************************************
8870 * IEnumACString interface
8871 */
8872#ifndef __IEnumACString_INTERFACE_DEFINED__
8873#define __IEnumACString_INTERFACE_DEFINED__
8874
8875typedef IEnumACString *PENUMACSTRING;
8876typedef IEnumACString *LPENUMACSTRING;
8877typedef enum _tagACENUMOPTION {
8878    ACEO_NONE = 0x0,
8879    ACEO_MOSTRECENTFIRST = 0x1,
8880    ACEO_FIRSTUNUSED = 0x10000
8881} ACENUMOPTION;
8882DEFINE_GUID(IID_IEnumACString, 0x8e74c210, 0xcf9d, 0x4eaf, 0xa4,0x03, 0x73,0x56,0x42,0x8f,0x0a,0x5a);
8883#if defined(__cplusplus) && !defined(CINTERFACE)
8884MIDL_INTERFACE("8e74c210-cf9d-4eaf-a403-7356428f0a5a")
8885IEnumACString : public IEnumString
8886{
8887    virtual HRESULT STDMETHODCALLTYPE NextItem(
8888        LPWSTR pszUrl,
8889        ULONG cchMax,
8890        ULONG *pulSortIndex) = 0;
8891
8892    virtual HRESULT STDMETHODCALLTYPE SetEnumOptions(
8893        DWORD dwOptions) = 0;
8894
8895    virtual HRESULT STDMETHODCALLTYPE GetEnumOptions(
8896        DWORD *pdwOptions) = 0;
8897
8898};
8899#ifdef __CRT_UUID_DECL
8900__CRT_UUID_DECL(IEnumACString, 0x8e74c210, 0xcf9d, 0x4eaf, 0xa4,0x03, 0x73,0x56,0x42,0x8f,0x0a,0x5a)
8901#endif
8902#else
8903typedef struct IEnumACStringVtbl {
8904    BEGIN_INTERFACE
8905
8906    /*** IUnknown methods ***/
8907    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8908        IEnumACString* This,
8909        REFIID riid,
8910        void **ppvObject);
8911
8912    ULONG (STDMETHODCALLTYPE *AddRef)(
8913        IEnumACString* This);
8914
8915    ULONG (STDMETHODCALLTYPE *Release)(
8916        IEnumACString* This);
8917
8918    /*** IEnumString methods ***/
8919    HRESULT (STDMETHODCALLTYPE *Next)(
8920        IEnumACString* This,
8921        ULONG celt,
8922        LPOLESTR *rgelt,
8923        ULONG *pceltFetched);
8924
8925    HRESULT (STDMETHODCALLTYPE *Skip)(
8926        IEnumACString* This,
8927        ULONG celt);
8928
8929    HRESULT (STDMETHODCALLTYPE *Reset)(
8930        IEnumACString* This);
8931
8932    HRESULT (STDMETHODCALLTYPE *Clone)(
8933        IEnumACString* This,
8934        IEnumString **ppenum);
8935
8936    /*** IEnumACString methods ***/
8937    HRESULT (STDMETHODCALLTYPE *NextItem)(
8938        IEnumACString* This,
8939        LPWSTR pszUrl,
8940        ULONG cchMax,
8941        ULONG *pulSortIndex);
8942
8943    HRESULT (STDMETHODCALLTYPE *SetEnumOptions)(
8944        IEnumACString* This,
8945        DWORD dwOptions);
8946
8947    HRESULT (STDMETHODCALLTYPE *GetEnumOptions)(
8948        IEnumACString* This,
8949        DWORD *pdwOptions);
8950
8951    END_INTERFACE
8952} IEnumACStringVtbl;
8953interface IEnumACString {
8954    CONST_VTBL IEnumACStringVtbl* lpVtbl;
8955};
8956
8957#ifdef COBJMACROS
8958#ifndef WIDL_C_INLINE_WRAPPERS
8959/*** IUnknown methods ***/
8960#define IEnumACString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8961#define IEnumACString_AddRef(This) (This)->lpVtbl->AddRef(This)
8962#define IEnumACString_Release(This) (This)->lpVtbl->Release(This)
8963/*** IEnumString methods ***/
8964#define IEnumACString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
8965#define IEnumACString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
8966#define IEnumACString_Reset(This) (This)->lpVtbl->Reset(This)
8967#define IEnumACString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
8968/*** IEnumACString methods ***/
8969#define IEnumACString_NextItem(This,pszUrl,cchMax,pulSortIndex) (This)->lpVtbl->NextItem(This,pszUrl,cchMax,pulSortIndex)
8970#define IEnumACString_SetEnumOptions(This,dwOptions) (This)->lpVtbl->SetEnumOptions(This,dwOptions)
8971#define IEnumACString_GetEnumOptions(This,pdwOptions) (This)->lpVtbl->GetEnumOptions(This,pdwOptions)
8972#else
8973/*** IUnknown methods ***/
8974static FORCEINLINE HRESULT IEnumACString_QueryInterface(IEnumACString* This,REFIID riid,void **ppvObject) {
8975    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8976}
8977static FORCEINLINE ULONG IEnumACString_AddRef(IEnumACString* This) {
8978    return This->lpVtbl->AddRef(This);
8979}
8980static FORCEINLINE ULONG IEnumACString_Release(IEnumACString* This) {
8981    return This->lpVtbl->Release(This);
8982}
8983/*** IEnumString methods ***/
8984static FORCEINLINE HRESULT IEnumACString_Next(IEnumACString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
8985    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
8986}
8987static FORCEINLINE HRESULT IEnumACString_Skip(IEnumACString* This,ULONG celt) {
8988    return This->lpVtbl->Skip(This,celt);
8989}
8990static FORCEINLINE HRESULT IEnumACString_Reset(IEnumACString* This) {
8991    return This->lpVtbl->Reset(This);
8992}
8993static FORCEINLINE HRESULT IEnumACString_Clone(IEnumACString* This,IEnumString **ppenum) {
8994    return This->lpVtbl->Clone(This,ppenum);
8995}
8996/*** IEnumACString methods ***/
8997static FORCEINLINE HRESULT IEnumACString_NextItem(IEnumACString* This,LPWSTR pszUrl,ULONG cchMax,ULONG *pulSortIndex) {
8998    return This->lpVtbl->NextItem(This,pszUrl,cchMax,pulSortIndex);
8999}
9000static FORCEINLINE HRESULT IEnumACString_SetEnumOptions(IEnumACString* This,DWORD dwOptions) {
9001    return This->lpVtbl->SetEnumOptions(This,dwOptions);
9002}
9003static FORCEINLINE HRESULT IEnumACString_GetEnumOptions(IEnumACString* This,DWORD *pdwOptions) {
9004    return This->lpVtbl->GetEnumOptions(This,pdwOptions);
9005}
9006#endif
9007#endif
9008
9009#endif
9010
9011HRESULT STDMETHODCALLTYPE IEnumACString_NextItem_Proxy(
9012    IEnumACString* This,
9013    LPWSTR pszUrl,
9014    ULONG cchMax,
9015    ULONG *pulSortIndex);
9016void __RPC_STUB IEnumACString_NextItem_Stub(
9017    IRpcStubBuffer* This,
9018    IRpcChannelBuffer* pRpcChannelBuffer,
9019    PRPC_MESSAGE pRpcMessage,
9020    DWORD* pdwStubPhase);
9021HRESULT STDMETHODCALLTYPE IEnumACString_SetEnumOptions_Proxy(
9022    IEnumACString* This,
9023    DWORD dwOptions);
9024void __RPC_STUB IEnumACString_SetEnumOptions_Stub(
9025    IRpcStubBuffer* This,
9026    IRpcChannelBuffer* pRpcChannelBuffer,
9027    PRPC_MESSAGE pRpcMessage,
9028    DWORD* pdwStubPhase);
9029HRESULT STDMETHODCALLTYPE IEnumACString_GetEnumOptions_Proxy(
9030    IEnumACString* This,
9031    DWORD *pdwOptions);
9032void __RPC_STUB IEnumACString_GetEnumOptions_Stub(
9033    IRpcStubBuffer* This,
9034    IRpcChannelBuffer* pRpcChannelBuffer,
9035    PRPC_MESSAGE pRpcMessage,
9036    DWORD* pdwStubPhase);
9037
9038#endif  /* __IEnumACString_INTERFACE_DEFINED__ */
9039
9040/*****************************************************************************
9041 * IDataObjectAsyncCapability interface
9042 */
9043#ifndef __IDataObjectAsyncCapability_INTERFACE_DEFINED__
9044#define __IDataObjectAsyncCapability_INTERFACE_DEFINED__
9045
9046DEFINE_GUID(IID_IDataObjectAsyncCapability, 0x3d8b0590, 0xf691, 0x11d2, 0x8e,0xa9, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
9047#if defined(__cplusplus) && !defined(CINTERFACE)
9048MIDL_INTERFACE("3d8b0590-f691-11d2-8ea9-006097df5bd4")
9049IDataObjectAsyncCapability : public IUnknown
9050{
9051    virtual HRESULT STDMETHODCALLTYPE SetAsyncMode(
9052        WINBOOL fDoOpAsync) = 0;
9053
9054    virtual HRESULT STDMETHODCALLTYPE GetAsyncMode(
9055        WINBOOL *pfIsOpAsync) = 0;
9056
9057    virtual HRESULT STDMETHODCALLTYPE StartOperation(
9058        IBindCtx *pbcReserved) = 0;
9059
9060    virtual HRESULT STDMETHODCALLTYPE InOperation(
9061        WINBOOL *pfInAsyncOp) = 0;
9062
9063    virtual HRESULT STDMETHODCALLTYPE EndOperation(
9064        HRESULT hResult,
9065        IBindCtx *pbcReserved,
9066        DWORD dwEffects) = 0;
9067
9068};
9069#ifdef __CRT_UUID_DECL
9070__CRT_UUID_DECL(IDataObjectAsyncCapability, 0x3d8b0590, 0xf691, 0x11d2, 0x8e,0xa9, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
9071#endif
9072#else
9073typedef struct IDataObjectAsyncCapabilityVtbl {
9074    BEGIN_INTERFACE
9075
9076    /*** IUnknown methods ***/
9077    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9078        IDataObjectAsyncCapability* This,
9079        REFIID riid,
9080        void **ppvObject);
9081
9082    ULONG (STDMETHODCALLTYPE *AddRef)(
9083        IDataObjectAsyncCapability* This);
9084
9085    ULONG (STDMETHODCALLTYPE *Release)(
9086        IDataObjectAsyncCapability* This);
9087
9088    /*** IDataObjectAsyncCapability methods ***/
9089    HRESULT (STDMETHODCALLTYPE *SetAsyncMode)(
9090        IDataObjectAsyncCapability* This,
9091        WINBOOL fDoOpAsync);
9092
9093    HRESULT (STDMETHODCALLTYPE *GetAsyncMode)(
9094        IDataObjectAsyncCapability* This,
9095        WINBOOL *pfIsOpAsync);
9096
9097    HRESULT (STDMETHODCALLTYPE *StartOperation)(
9098        IDataObjectAsyncCapability* This,
9099        IBindCtx *pbcReserved);
9100
9101    HRESULT (STDMETHODCALLTYPE *InOperation)(
9102        IDataObjectAsyncCapability* This,
9103        WINBOOL *pfInAsyncOp);
9104
9105    HRESULT (STDMETHODCALLTYPE *EndOperation)(
9106        IDataObjectAsyncCapability* This,
9107        HRESULT hResult,
9108        IBindCtx *pbcReserved,
9109        DWORD dwEffects);
9110
9111    END_INTERFACE
9112} IDataObjectAsyncCapabilityVtbl;
9113interface IDataObjectAsyncCapability {
9114    CONST_VTBL IDataObjectAsyncCapabilityVtbl* lpVtbl;
9115};
9116
9117#ifdef COBJMACROS
9118#ifndef WIDL_C_INLINE_WRAPPERS
9119/*** IUnknown methods ***/
9120#define IDataObjectAsyncCapability_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9121#define IDataObjectAsyncCapability_AddRef(This) (This)->lpVtbl->AddRef(This)
9122#define IDataObjectAsyncCapability_Release(This) (This)->lpVtbl->Release(This)
9123/*** IDataObjectAsyncCapability methods ***/
9124#define IDataObjectAsyncCapability_SetAsyncMode(This,fDoOpAsync) (This)->lpVtbl->SetAsyncMode(This,fDoOpAsync)
9125#define IDataObjectAsyncCapability_GetAsyncMode(This,pfIsOpAsync) (This)->lpVtbl->GetAsyncMode(This,pfIsOpAsync)
9126#define IDataObjectAsyncCapability_StartOperation(This,pbcReserved) (This)->lpVtbl->StartOperation(This,pbcReserved)
9127#define IDataObjectAsyncCapability_InOperation(This,pfInAsyncOp) (This)->lpVtbl->InOperation(This,pfInAsyncOp)
9128#define IDataObjectAsyncCapability_EndOperation(This,hResult,pbcReserved,dwEffects) (This)->lpVtbl->EndOperation(This,hResult,pbcReserved,dwEffects)
9129#else
9130/*** IUnknown methods ***/
9131static FORCEINLINE HRESULT IDataObjectAsyncCapability_QueryInterface(IDataObjectAsyncCapability* This,REFIID riid,void **ppvObject) {
9132    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9133}
9134static FORCEINLINE ULONG IDataObjectAsyncCapability_AddRef(IDataObjectAsyncCapability* This) {
9135    return This->lpVtbl->AddRef(This);
9136}
9137static FORCEINLINE ULONG IDataObjectAsyncCapability_Release(IDataObjectAsyncCapability* This) {
9138    return This->lpVtbl->Release(This);
9139}
9140/*** IDataObjectAsyncCapability methods ***/
9141static FORCEINLINE HRESULT IDataObjectAsyncCapability_SetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL fDoOpAsync) {
9142    return This->lpVtbl->SetAsyncMode(This,fDoOpAsync);
9143}
9144static FORCEINLINE HRESULT IDataObjectAsyncCapability_GetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL *pfIsOpAsync) {
9145    return This->lpVtbl->GetAsyncMode(This,pfIsOpAsync);
9146}
9147static FORCEINLINE HRESULT IDataObjectAsyncCapability_StartOperation(IDataObjectAsyncCapability* This,IBindCtx *pbcReserved) {
9148    return This->lpVtbl->StartOperation(This,pbcReserved);
9149}
9150static FORCEINLINE HRESULT IDataObjectAsyncCapability_InOperation(IDataObjectAsyncCapability* This,WINBOOL *pfInAsyncOp) {
9151    return This->lpVtbl->InOperation(This,pfInAsyncOp);
9152}
9153static FORCEINLINE HRESULT IDataObjectAsyncCapability_EndOperation(IDataObjectAsyncCapability* This,HRESULT hResult,IBindCtx *pbcReserved,DWORD dwEffects) {
9154    return This->lpVtbl->EndOperation(This,hResult,pbcReserved,dwEffects);
9155}
9156#endif
9157#endif
9158
9159#endif
9160
9161HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_SetAsyncMode_Proxy(
9162    IDataObjectAsyncCapability* This,
9163    WINBOOL fDoOpAsync);
9164void __RPC_STUB IDataObjectAsyncCapability_SetAsyncMode_Stub(
9165    IRpcStubBuffer* This,
9166    IRpcChannelBuffer* pRpcChannelBuffer,
9167    PRPC_MESSAGE pRpcMessage,
9168    DWORD* pdwStubPhase);
9169HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_GetAsyncMode_Proxy(
9170    IDataObjectAsyncCapability* This,
9171    WINBOOL *pfIsOpAsync);
9172void __RPC_STUB IDataObjectAsyncCapability_GetAsyncMode_Stub(
9173    IRpcStubBuffer* This,
9174    IRpcChannelBuffer* pRpcChannelBuffer,
9175    PRPC_MESSAGE pRpcMessage,
9176    DWORD* pdwStubPhase);
9177HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_StartOperation_Proxy(
9178    IDataObjectAsyncCapability* This,
9179    IBindCtx *pbcReserved);
9180void __RPC_STUB IDataObjectAsyncCapability_StartOperation_Stub(
9181    IRpcStubBuffer* This,
9182    IRpcChannelBuffer* pRpcChannelBuffer,
9183    PRPC_MESSAGE pRpcMessage,
9184    DWORD* pdwStubPhase);
9185HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_InOperation_Proxy(
9186    IDataObjectAsyncCapability* This,
9187    WINBOOL *pfInAsyncOp);
9188void __RPC_STUB IDataObjectAsyncCapability_InOperation_Stub(
9189    IRpcStubBuffer* This,
9190    IRpcChannelBuffer* pRpcChannelBuffer,
9191    PRPC_MESSAGE pRpcMessage,
9192    DWORD* pdwStubPhase);
9193HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_EndOperation_Proxy(
9194    IDataObjectAsyncCapability* This,
9195    HRESULT hResult,
9196    IBindCtx *pbcReserved,
9197    DWORD dwEffects);
9198void __RPC_STUB IDataObjectAsyncCapability_EndOperation_Stub(
9199    IRpcStubBuffer* This,
9200    IRpcChannelBuffer* pRpcChannelBuffer,
9201    PRPC_MESSAGE pRpcMessage,
9202    DWORD* pdwStubPhase);
9203
9204#endif  /* __IDataObjectAsyncCapability_INTERFACE_DEFINED__ */
9205
9206#endif
9207/* Begin additional prototypes for all interfaces */
9208
9209ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
9210unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
9211unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
9212void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
9213ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
9214unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
9215unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
9216void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
9217
9218/* End additional prototypes */
9219
9220#ifdef __cplusplus
9221}
9222#endif
9223
9224#endif /* __shldisp_h__ */
9225