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__
22 typedef interface IFolderViewOC IFolderViewOC;
23 #endif
24 
25 #ifndef __DShellFolderViewEvents_FWD_DEFINED__
26 #define __DShellFolderViewEvents_FWD_DEFINED__
27 typedef interface DShellFolderViewEvents DShellFolderViewEvents;
28 #endif
29 
30 #ifndef __ShellFolderViewOC_FWD_DEFINED__
31 #define __ShellFolderViewOC_FWD_DEFINED__
32 #ifdef __cplusplus
33 typedef class ShellFolderViewOC ShellFolderViewOC;
34 #else
35 typedef struct ShellFolderViewOC ShellFolderViewOC;
36 #endif /* defined __cplusplus */
37 #endif /* defined __ShellFolderViewOC_FWD_DEFINED__ */
38 
39 #ifndef __DFConstraint_FWD_DEFINED__
40 #define __DFConstraint_FWD_DEFINED__
41 typedef interface DFConstraint DFConstraint;
42 #endif
43 
44 #ifndef __Folder_FWD_DEFINED__
45 #define __Folder_FWD_DEFINED__
46 typedef interface Folder Folder;
47 #endif
48 
49 #ifndef __Folder2_FWD_DEFINED__
50 #define __Folder2_FWD_DEFINED__
51 typedef interface Folder2 Folder2;
52 #endif
53 
54 #ifndef __Folder3_FWD_DEFINED__
55 #define __Folder3_FWD_DEFINED__
56 typedef interface Folder3 Folder3;
57 #endif
58 
59 #ifndef __FolderItem_FWD_DEFINED__
60 #define __FolderItem_FWD_DEFINED__
61 typedef interface FolderItem FolderItem;
62 #endif
63 
64 #ifndef __FolderItem2_FWD_DEFINED__
65 #define __FolderItem2_FWD_DEFINED__
66 typedef interface FolderItem2 FolderItem2;
67 #endif
68 
69 #ifndef __ShellFolderItem_FWD_DEFINED__
70 #define __ShellFolderItem_FWD_DEFINED__
71 #ifdef __cplusplus
72 typedef class ShellFolderItem ShellFolderItem;
73 #else
74 typedef struct ShellFolderItem ShellFolderItem;
75 #endif /* defined __cplusplus */
76 #endif /* defined __ShellFolderItem_FWD_DEFINED__ */
77 
78 #ifndef __FolderItems_FWD_DEFINED__
79 #define __FolderItems_FWD_DEFINED__
80 typedef interface FolderItems FolderItems;
81 #endif
82 
83 #ifndef __FolderItems2_FWD_DEFINED__
84 #define __FolderItems2_FWD_DEFINED__
85 typedef interface FolderItems2 FolderItems2;
86 #endif
87 
88 #ifndef __FolderItems3_FWD_DEFINED__
89 #define __FolderItems3_FWD_DEFINED__
90 typedef interface FolderItems3 FolderItems3;
91 #endif
92 
93 #ifndef __FolderItemVerb_FWD_DEFINED__
94 #define __FolderItemVerb_FWD_DEFINED__
95 typedef interface FolderItemVerb FolderItemVerb;
96 #endif
97 
98 #ifndef __FolderItemVerbs_FWD_DEFINED__
99 #define __FolderItemVerbs_FWD_DEFINED__
100 typedef interface FolderItemVerbs FolderItemVerbs;
101 #endif
102 
103 #ifndef __IShellLinkDual_FWD_DEFINED__
104 #define __IShellLinkDual_FWD_DEFINED__
105 typedef interface IShellLinkDual IShellLinkDual;
106 #endif
107 
108 #ifndef __IShellLinkDual2_FWD_DEFINED__
109 #define __IShellLinkDual2_FWD_DEFINED__
110 typedef interface IShellLinkDual2 IShellLinkDual2;
111 #endif
112 
113 #ifndef __ShellLinkObject_FWD_DEFINED__
114 #define __ShellLinkObject_FWD_DEFINED__
115 #ifdef __cplusplus
116 typedef class ShellLinkObject ShellLinkObject;
117 #else
118 typedef struct ShellLinkObject ShellLinkObject;
119 #endif /* defined __cplusplus */
120 #endif /* defined __ShellLinkObject_FWD_DEFINED__ */
121 
122 #ifndef __IShellFolderViewDual_FWD_DEFINED__
123 #define __IShellFolderViewDual_FWD_DEFINED__
124 typedef interface IShellFolderViewDual IShellFolderViewDual;
125 #endif
126 
127 #ifndef __IShellFolderViewDual2_FWD_DEFINED__
128 #define __IShellFolderViewDual2_FWD_DEFINED__
129 typedef interface IShellFolderViewDual2 IShellFolderViewDual2;
130 #endif
131 
132 #ifndef __IShellFolderViewDual3_FWD_DEFINED__
133 #define __IShellFolderViewDual3_FWD_DEFINED__
134 typedef interface IShellFolderViewDual3 IShellFolderViewDual3;
135 #endif
136 
137 #ifndef __ShellFolderView_FWD_DEFINED__
138 #define __ShellFolderView_FWD_DEFINED__
139 #ifdef __cplusplus
140 typedef class ShellFolderView ShellFolderView;
141 #else
142 typedef struct ShellFolderView ShellFolderView;
143 #endif /* defined __cplusplus */
144 #endif /* defined __ShellFolderView_FWD_DEFINED__ */
145 
146 #ifndef __IShellDispatch_FWD_DEFINED__
147 #define __IShellDispatch_FWD_DEFINED__
148 typedef interface IShellDispatch IShellDispatch;
149 #endif
150 
151 #ifndef __IShellDispatch2_FWD_DEFINED__
152 #define __IShellDispatch2_FWD_DEFINED__
153 typedef interface IShellDispatch2 IShellDispatch2;
154 #endif
155 
156 #ifndef __IShellDispatch3_FWD_DEFINED__
157 #define __IShellDispatch3_FWD_DEFINED__
158 typedef interface IShellDispatch3 IShellDispatch3;
159 #endif
160 
161 #ifndef __IShellDispatch4_FWD_DEFINED__
162 #define __IShellDispatch4_FWD_DEFINED__
163 typedef interface IShellDispatch4 IShellDispatch4;
164 #endif
165 
166 #ifndef __IShellDispatch5_FWD_DEFINED__
167 #define __IShellDispatch5_FWD_DEFINED__
168 typedef interface IShellDispatch5 IShellDispatch5;
169 #endif
170 
171 #ifndef __IShellDispatch6_FWD_DEFINED__
172 #define __IShellDispatch6_FWD_DEFINED__
173 typedef interface IShellDispatch6 IShellDispatch6;
174 #endif
175 
176 #ifndef __Shell_FWD_DEFINED__
177 #define __Shell_FWD_DEFINED__
178 #ifdef __cplusplus
179 typedef class Shell Shell;
180 #else
181 typedef 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
188 typedef class ShellDispatchInproc ShellDispatchInproc;
189 #else
190 typedef struct ShellDispatchInproc ShellDispatchInproc;
191 #endif /* defined __cplusplus */
192 #endif /* defined __ShellDispatchInproc_FWD_DEFINED__ */
193 
194 #ifndef __IFileSearchBand_FWD_DEFINED__
195 #define __IFileSearchBand_FWD_DEFINED__
196 typedef interface IFileSearchBand IFileSearchBand;
197 #endif
198 
199 #ifndef __FileSearchBand_FWD_DEFINED__
200 #define __FileSearchBand_FWD_DEFINED__
201 #ifdef __cplusplus
202 typedef class FileSearchBand FileSearchBand;
203 #else
204 typedef struct FileSearchBand FileSearchBand;
205 #endif /* defined __cplusplus */
206 #endif /* defined __FileSearchBand_FWD_DEFINED__ */
207 
208 #ifndef __IWebWizardHost_FWD_DEFINED__
209 #define __IWebWizardHost_FWD_DEFINED__
210 typedef interface IWebWizardHost IWebWizardHost;
211 #endif
212 
213 #ifndef __INewWDEvents_FWD_DEFINED__
214 #define __INewWDEvents_FWD_DEFINED__
215 typedef interface INewWDEvents INewWDEvents;
216 #endif
217 
218 #ifndef __IAutoComplete_FWD_DEFINED__
219 #define __IAutoComplete_FWD_DEFINED__
220 typedef interface IAutoComplete IAutoComplete;
221 #endif
222 
223 #ifndef __IAutoComplete2_FWD_DEFINED__
224 #define __IAutoComplete2_FWD_DEFINED__
225 typedef interface IAutoComplete2 IAutoComplete2;
226 #endif
227 
228 #ifndef __IEnumACString_FWD_DEFINED__
229 #define __IEnumACString_FWD_DEFINED__
230 typedef interface IEnumACString IEnumACString;
231 #endif
232 
233 #ifndef __IDataObjectAsyncCapability_FWD_DEFINED__
234 #define __IDataObjectAsyncCapability_FWD_DEFINED__
235 typedef interface IDataObjectAsyncCapability IDataObjectAsyncCapability;
236 #endif
237 
238 /* Headers for imported files */
239 
240 #include <ocidl.h>
241 
242 #ifdef __cplusplus
243 extern "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__
251 typedef interface DShellFolderViewEvents DShellFolderViewEvents;
252 #endif
253 
254 #ifndef __IAutoComplete_FWD_DEFINED__
255 #define __IAutoComplete_FWD_DEFINED__
256 typedef interface IAutoComplete IAutoComplete;
257 #endif
258 
259 #ifndef __FolderItem_FWD_DEFINED__
260 #define __FolderItem_FWD_DEFINED__
261 typedef interface FolderItem FolderItem;
262 #endif
263 
264 #ifndef __FolderItems_FWD_DEFINED__
265 #define __FolderItems_FWD_DEFINED__
266 typedef interface FolderItems FolderItems;
267 #endif
268 
269 #ifndef __FolderItemVerb_FWD_DEFINED__
270 #define __FolderItemVerb_FWD_DEFINED__
271 typedef interface FolderItemVerb FolderItemVerb;
272 #endif
273 
274 #ifndef __FolderItemVerbs_FWD_DEFINED__
275 #define __FolderItemVerbs_FWD_DEFINED__
276 typedef interface FolderItemVerbs FolderItemVerbs;
277 #endif
278 
279 
280 DEFINE_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 
288 DEFINE_GUID(IID_IFolderViewOC, 0x9ba05970, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
289 #if defined(__cplusplus) && !defined(CINTERFACE)
290 MIDL_INTERFACE("9ba05970-f6a8-11cf-a442-00a0c90a8f39")
291 IFolderViewOC : 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
301 typedef 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;
353 interface 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 ***/
372 static FORCEINLINE HRESULT IFolderViewOC_QueryInterface(IFolderViewOC* This,REFIID riid,void **ppvObject) {
373     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
374 }
375 static FORCEINLINE ULONG IFolderViewOC_AddRef(IFolderViewOC* This) {
376     return This->lpVtbl->AddRef(This);
377 }
378 static FORCEINLINE ULONG IFolderViewOC_Release(IFolderViewOC* This) {
379     return This->lpVtbl->Release(This);
380 }
381 /*** IDispatch methods ***/
382 static FORCEINLINE HRESULT IFolderViewOC_GetTypeInfoCount(IFolderViewOC* This,UINT *pctinfo) {
383     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
384 }
385 static FORCEINLINE HRESULT IFolderViewOC_GetTypeInfo(IFolderViewOC* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
386     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
387 }
388 static 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 }
391 static 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 ***/
395 static FORCEINLINE HRESULT IFolderViewOC_SetFolderView(IFolderViewOC* This,IDispatch *pdisp) {
396     return This->lpVtbl->SetFolderView(This,pdisp);
397 }
398 #endif
399 #endif
400 
401 #endif
402 
403 HRESULT STDMETHODCALLTYPE IFolderViewOC_SetFolderView_Proxy(
404     IFolderViewOC* This,
405     IDispatch *pdisp);
406 void __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 
420 DEFINE_GUID(DIID_DShellFolderViewEvents, 0x62112aa2, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d);
421 #if defined(__cplusplus) && !defined(CINTERFACE)
422 MIDL_INTERFACE("62112aa2-ebe4-11cf-a5fb-0020afe7292d")
423 DShellFolderViewEvents : 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
430 typedef 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;
477 interface 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 ***/
494 static FORCEINLINE HRESULT DShellFolderViewEvents_QueryInterface(DShellFolderViewEvents* This,REFIID riid,void **ppvObject) {
495     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
496 }
497 static FORCEINLINE ULONG DShellFolderViewEvents_AddRef(DShellFolderViewEvents* This) {
498     return This->lpVtbl->AddRef(This);
499 }
500 static FORCEINLINE ULONG DShellFolderViewEvents_Release(DShellFolderViewEvents* This) {
501     return This->lpVtbl->Release(This);
502 }
503 /*** IDispatch methods ***/
504 static FORCEINLINE HRESULT DShellFolderViewEvents_GetTypeInfoCount(DShellFolderViewEvents* This,UINT *pctinfo) {
505     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
506 }
507 static FORCEINLINE HRESULT DShellFolderViewEvents_GetTypeInfo(DShellFolderViewEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
508     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
509 }
510 static 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 }
513 static 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 
527 DEFINE_GUID(CLSID_ShellFolderViewOC, 0x9ba05971, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
528 
529 #ifdef __cplusplus
530 class 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 
542 DEFINE_GUID(IID_DFConstraint, 0x4a3df050, 0x23bd, 0x11d2, 0x93,0x9f, 0x00,0xa0,0xc9,0x1e,0xed,0xba);
543 #if defined(__cplusplus) && !defined(CINTERFACE)
544 MIDL_INTERFACE("4a3df050-23bd-11d2-939f-00a0c91eedba")
545 DFConstraint : 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
558 typedef 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;
614 interface 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 ***/
634 static FORCEINLINE HRESULT DFConstraint_QueryInterface(DFConstraint* This,REFIID riid,void **ppvObject) {
635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
636 }
637 static FORCEINLINE ULONG DFConstraint_AddRef(DFConstraint* This) {
638     return This->lpVtbl->AddRef(This);
639 }
640 static FORCEINLINE ULONG DFConstraint_Release(DFConstraint* This) {
641     return This->lpVtbl->Release(This);
642 }
643 /*** IDispatch methods ***/
644 static FORCEINLINE HRESULT DFConstraint_GetTypeInfoCount(DFConstraint* This,UINT *pctinfo) {
645     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
646 }
647 static FORCEINLINE HRESULT DFConstraint_GetTypeInfo(DFConstraint* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
648     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
649 }
650 static 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 }
653 static 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 ***/
657 static FORCEINLINE HRESULT DFConstraint_get_Name(DFConstraint* This,BSTR *pbs) {
658     return This->lpVtbl->get_Name(This,pbs);
659 }
660 static 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 
668 HRESULT STDMETHODCALLTYPE DFConstraint_get_Name_Proxy(
669     DFConstraint* This,
670     BSTR *pbs);
671 void __RPC_STUB DFConstraint_get_Name_Stub(
672     IRpcStubBuffer* This,
673     IRpcChannelBuffer* pRpcChannelBuffer,
674     PRPC_MESSAGE pRpcMessage,
675     DWORD* pdwStubPhase);
676 HRESULT STDMETHODCALLTYPE DFConstraint_get_Value_Proxy(
677     DFConstraint* This,
678     VARIANT *pv);
679 void __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 
693 DEFINE_GUID(IID_Folder, 0xbbcbde60, 0xc3ff, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
694 #if defined(__cplusplus) && !defined(CINTERFACE)
695 MIDL_INTERFACE("bbcbde60-c3ff-11ce-8350-444553540000")
696 Folder : 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
739 typedef 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;
833 interface 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 ***/
861 static FORCEINLINE HRESULT Folder_QueryInterface(Folder* This,REFIID riid,void **ppvObject) {
862     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
863 }
864 static FORCEINLINE ULONG Folder_AddRef(Folder* This) {
865     return This->lpVtbl->AddRef(This);
866 }
867 static FORCEINLINE ULONG Folder_Release(Folder* This) {
868     return This->lpVtbl->Release(This);
869 }
870 /*** IDispatch methods ***/
871 static FORCEINLINE HRESULT Folder_GetTypeInfoCount(Folder* This,UINT *pctinfo) {
872     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
873 }
874 static FORCEINLINE HRESULT Folder_GetTypeInfo(Folder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
875     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
876 }
877 static 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 }
880 static 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 ***/
884 static FORCEINLINE HRESULT Folder_get_Title(Folder* This,BSTR *pbs) {
885     return This->lpVtbl->get_Title(This,pbs);
886 }
887 static FORCEINLINE HRESULT Folder_get_Application(Folder* This,IDispatch **ppid) {
888     return This->lpVtbl->get_Application(This,ppid);
889 }
890 static FORCEINLINE HRESULT Folder_get_Parent(Folder* This,IDispatch **ppid) {
891     return This->lpVtbl->get_Parent(This,ppid);
892 }
893 static FORCEINLINE HRESULT Folder_get_ParentFolder(Folder* This,Folder **ppsf) {
894     return This->lpVtbl->get_ParentFolder(This,ppsf);
895 }
896 static FORCEINLINE HRESULT Folder_Items(Folder* This,FolderItems **ppid) {
897     return This->lpVtbl->Items(This,ppid);
898 }
899 static FORCEINLINE HRESULT Folder_ParseName(Folder* This,BSTR bName,FolderItem **ppid) {
900     return This->lpVtbl->ParseName(This,bName,ppid);
901 }
902 static FORCEINLINE HRESULT Folder_NewFolder(Folder* This,BSTR bName,VARIANT vOptions) {
903     return This->lpVtbl->NewFolder(This,bName,vOptions);
904 }
905 static FORCEINLINE HRESULT Folder_MoveHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
906     return This->lpVtbl->MoveHere(This,vItem,vOptions);
907 }
908 static FORCEINLINE HRESULT Folder_CopyHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
909     return This->lpVtbl->CopyHere(This,vItem,vOptions);
910 }
911 static 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 
919 HRESULT STDMETHODCALLTYPE Folder_get_Title_Proxy(
920     Folder* This,
921     BSTR *pbs);
922 void __RPC_STUB Folder_get_Title_Stub(
923     IRpcStubBuffer* This,
924     IRpcChannelBuffer* pRpcChannelBuffer,
925     PRPC_MESSAGE pRpcMessage,
926     DWORD* pdwStubPhase);
927 HRESULT STDMETHODCALLTYPE Folder_get_Application_Proxy(
928     Folder* This,
929     IDispatch **ppid);
930 void __RPC_STUB Folder_get_Application_Stub(
931     IRpcStubBuffer* This,
932     IRpcChannelBuffer* pRpcChannelBuffer,
933     PRPC_MESSAGE pRpcMessage,
934     DWORD* pdwStubPhase);
935 HRESULT STDMETHODCALLTYPE Folder_get_Parent_Proxy(
936     Folder* This,
937     IDispatch **ppid);
938 void __RPC_STUB Folder_get_Parent_Stub(
939     IRpcStubBuffer* This,
940     IRpcChannelBuffer* pRpcChannelBuffer,
941     PRPC_MESSAGE pRpcMessage,
942     DWORD* pdwStubPhase);
943 HRESULT STDMETHODCALLTYPE Folder_get_ParentFolder_Proxy(
944     Folder* This,
945     Folder **ppsf);
946 void __RPC_STUB Folder_get_ParentFolder_Stub(
947     IRpcStubBuffer* This,
948     IRpcChannelBuffer* pRpcChannelBuffer,
949     PRPC_MESSAGE pRpcMessage,
950     DWORD* pdwStubPhase);
951 HRESULT STDMETHODCALLTYPE Folder_Items_Proxy(
952     Folder* This,
953     FolderItems **ppid);
954 void __RPC_STUB Folder_Items_Stub(
955     IRpcStubBuffer* This,
956     IRpcChannelBuffer* pRpcChannelBuffer,
957     PRPC_MESSAGE pRpcMessage,
958     DWORD* pdwStubPhase);
959 HRESULT STDMETHODCALLTYPE Folder_ParseName_Proxy(
960     Folder* This,
961     BSTR bName,
962     FolderItem **ppid);
963 void __RPC_STUB Folder_ParseName_Stub(
964     IRpcStubBuffer* This,
965     IRpcChannelBuffer* pRpcChannelBuffer,
966     PRPC_MESSAGE pRpcMessage,
967     DWORD* pdwStubPhase);
968 HRESULT STDMETHODCALLTYPE Folder_NewFolder_Proxy(
969     Folder* This,
970     BSTR bName,
971     VARIANT vOptions);
972 void __RPC_STUB Folder_NewFolder_Stub(
973     IRpcStubBuffer* This,
974     IRpcChannelBuffer* pRpcChannelBuffer,
975     PRPC_MESSAGE pRpcMessage,
976     DWORD* pdwStubPhase);
977 HRESULT STDMETHODCALLTYPE Folder_MoveHere_Proxy(
978     Folder* This,
979     VARIANT vItem,
980     VARIANT vOptions);
981 void __RPC_STUB Folder_MoveHere_Stub(
982     IRpcStubBuffer* This,
983     IRpcChannelBuffer* pRpcChannelBuffer,
984     PRPC_MESSAGE pRpcMessage,
985     DWORD* pdwStubPhase);
986 HRESULT STDMETHODCALLTYPE Folder_CopyHere_Proxy(
987     Folder* This,
988     VARIANT vItem,
989     VARIANT vOptions);
990 void __RPC_STUB Folder_CopyHere_Stub(
991     IRpcStubBuffer* This,
992     IRpcChannelBuffer* pRpcChannelBuffer,
993     PRPC_MESSAGE pRpcMessage,
994     DWORD* pdwStubPhase);
995 HRESULT STDMETHODCALLTYPE Folder_GetDetailsOf_Proxy(
996     Folder* This,
997     VARIANT vItem,
998     int iColumn,
999     BSTR *pbs);
1000 void __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 
1014 DEFINE_GUID(IID_Folder2, 0xf0d2d8ef, 0x3890, 0x11d2, 0xbf,0x8b, 0x00,0xc0,0x4f,0xb9,0x36,0x61);
1015 #if defined(__cplusplus) && !defined(CINTERFACE)
1016 MIDL_INTERFACE("f0d2d8ef-3890-11d2-bf8b-00c04fb93661")
1017 Folder2 : 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
1039 typedef 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;
1152 interface 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 ***/
1186 static FORCEINLINE HRESULT Folder2_QueryInterface(Folder2* This,REFIID riid,void **ppvObject) {
1187     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1188 }
1189 static FORCEINLINE ULONG Folder2_AddRef(Folder2* This) {
1190     return This->lpVtbl->AddRef(This);
1191 }
1192 static FORCEINLINE ULONG Folder2_Release(Folder2* This) {
1193     return This->lpVtbl->Release(This);
1194 }
1195 /*** IDispatch methods ***/
1196 static FORCEINLINE HRESULT Folder2_GetTypeInfoCount(Folder2* This,UINT *pctinfo) {
1197     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1198 }
1199 static FORCEINLINE HRESULT Folder2_GetTypeInfo(Folder2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1200     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1201 }
1202 static 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 }
1205 static 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 ***/
1209 static FORCEINLINE HRESULT Folder2_get_Title(Folder2* This,BSTR *pbs) {
1210     return This->lpVtbl->get_Title(This,pbs);
1211 }
1212 static FORCEINLINE HRESULT Folder2_get_Application(Folder2* This,IDispatch **ppid) {
1213     return This->lpVtbl->get_Application(This,ppid);
1214 }
1215 static FORCEINLINE HRESULT Folder2_get_Parent(Folder2* This,IDispatch **ppid) {
1216     return This->lpVtbl->get_Parent(This,ppid);
1217 }
1218 static FORCEINLINE HRESULT Folder2_get_ParentFolder(Folder2* This,Folder **ppsf) {
1219     return This->lpVtbl->get_ParentFolder(This,ppsf);
1220 }
1221 static FORCEINLINE HRESULT Folder2_Items(Folder2* This,FolderItems **ppid) {
1222     return This->lpVtbl->Items(This,ppid);
1223 }
1224 static FORCEINLINE HRESULT Folder2_ParseName(Folder2* This,BSTR bName,FolderItem **ppid) {
1225     return This->lpVtbl->ParseName(This,bName,ppid);
1226 }
1227 static FORCEINLINE HRESULT Folder2_NewFolder(Folder2* This,BSTR bName,VARIANT vOptions) {
1228     return This->lpVtbl->NewFolder(This,bName,vOptions);
1229 }
1230 static FORCEINLINE HRESULT Folder2_MoveHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
1231     return This->lpVtbl->MoveHere(This,vItem,vOptions);
1232 }
1233 static FORCEINLINE HRESULT Folder2_CopyHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
1234     return This->lpVtbl->CopyHere(This,vItem,vOptions);
1235 }
1236 static 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 ***/
1240 static FORCEINLINE HRESULT Folder2_get_Self(Folder2* This,FolderItem **ppfi) {
1241     return This->lpVtbl->get_Self(This,ppfi);
1242 }
1243 static FORCEINLINE HRESULT Folder2_get_OfflineStatus(Folder2* This,LONG *pul) {
1244     return This->lpVtbl->get_OfflineStatus(This,pul);
1245 }
1246 static FORCEINLINE HRESULT Folder2_Synchronize(Folder2* This) {
1247     return This->lpVtbl->Synchronize(This);
1248 }
1249 static FORCEINLINE HRESULT Folder2_get_HaveToShowWebViewBarricade(Folder2* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
1250     return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
1251 }
1252 static FORCEINLINE HRESULT Folder2_DismissedWebViewBarricade(Folder2* This) {
1253     return This->lpVtbl->DismissedWebViewBarricade(This);
1254 }
1255 #endif
1256 #endif
1257 
1258 #endif
1259 
1260 HRESULT STDMETHODCALLTYPE Folder2_get_Self_Proxy(
1261     Folder2* This,
1262     FolderItem **ppfi);
1263 void __RPC_STUB Folder2_get_Self_Stub(
1264     IRpcStubBuffer* This,
1265     IRpcChannelBuffer* pRpcChannelBuffer,
1266     PRPC_MESSAGE pRpcMessage,
1267     DWORD* pdwStubPhase);
1268 HRESULT STDMETHODCALLTYPE Folder2_get_OfflineStatus_Proxy(
1269     Folder2* This,
1270     LONG *pul);
1271 void __RPC_STUB Folder2_get_OfflineStatus_Stub(
1272     IRpcStubBuffer* This,
1273     IRpcChannelBuffer* pRpcChannelBuffer,
1274     PRPC_MESSAGE pRpcMessage,
1275     DWORD* pdwStubPhase);
1276 HRESULT STDMETHODCALLTYPE Folder2_Synchronize_Proxy(
1277     Folder2* This);
1278 void __RPC_STUB Folder2_Synchronize_Stub(
1279     IRpcStubBuffer* This,
1280     IRpcChannelBuffer* pRpcChannelBuffer,
1281     PRPC_MESSAGE pRpcMessage,
1282     DWORD* pdwStubPhase);
1283 HRESULT STDMETHODCALLTYPE Folder2_get_HaveToShowWebViewBarricade_Proxy(
1284     Folder2* This,
1285     VARIANT_BOOL *pbHaveToShowWebViewBarricade);
1286 void __RPC_STUB Folder2_get_HaveToShowWebViewBarricade_Stub(
1287     IRpcStubBuffer* This,
1288     IRpcChannelBuffer* pRpcChannelBuffer,
1289     PRPC_MESSAGE pRpcMessage,
1290     DWORD* pdwStubPhase);
1291 HRESULT STDMETHODCALLTYPE Folder2_DismissedWebViewBarricade_Proxy(
1292     Folder2* This);
1293 void __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 
1301 typedef 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 
1314 DEFINE_GUID(IID_Folder3, 0xa7ae5f64, 0xc4d7, 0x4d7f, 0x93,0x07, 0x4d,0x24,0xee,0x54,0xb8,0x41);
1315 #if defined(__cplusplus) && !defined(CINTERFACE)
1316 MIDL_INTERFACE("a7ae5f64-c4d7-4d7f-9307-4d24ee54b841")
1317 Folder3 : 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
1330 typedef 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;
1452 interface 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 ***/
1489 static FORCEINLINE HRESULT Folder3_QueryInterface(Folder3* This,REFIID riid,void **ppvObject) {
1490     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1491 }
1492 static FORCEINLINE ULONG Folder3_AddRef(Folder3* This) {
1493     return This->lpVtbl->AddRef(This);
1494 }
1495 static FORCEINLINE ULONG Folder3_Release(Folder3* This) {
1496     return This->lpVtbl->Release(This);
1497 }
1498 /*** IDispatch methods ***/
1499 static FORCEINLINE HRESULT Folder3_GetTypeInfoCount(Folder3* This,UINT *pctinfo) {
1500     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1501 }
1502 static FORCEINLINE HRESULT Folder3_GetTypeInfo(Folder3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1503     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1504 }
1505 static 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 }
1508 static 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 ***/
1512 static FORCEINLINE HRESULT Folder3_get_Title(Folder3* This,BSTR *pbs) {
1513     return This->lpVtbl->get_Title(This,pbs);
1514 }
1515 static FORCEINLINE HRESULT Folder3_get_Application(Folder3* This,IDispatch **ppid) {
1516     return This->lpVtbl->get_Application(This,ppid);
1517 }
1518 static FORCEINLINE HRESULT Folder3_get_Parent(Folder3* This,IDispatch **ppid) {
1519     return This->lpVtbl->get_Parent(This,ppid);
1520 }
1521 static FORCEINLINE HRESULT Folder3_get_ParentFolder(Folder3* This,Folder **ppsf) {
1522     return This->lpVtbl->get_ParentFolder(This,ppsf);
1523 }
1524 static FORCEINLINE HRESULT Folder3_Items(Folder3* This,FolderItems **ppid) {
1525     return This->lpVtbl->Items(This,ppid);
1526 }
1527 static FORCEINLINE HRESULT Folder3_ParseName(Folder3* This,BSTR bName,FolderItem **ppid) {
1528     return This->lpVtbl->ParseName(This,bName,ppid);
1529 }
1530 static FORCEINLINE HRESULT Folder3_NewFolder(Folder3* This,BSTR bName,VARIANT vOptions) {
1531     return This->lpVtbl->NewFolder(This,bName,vOptions);
1532 }
1533 static FORCEINLINE HRESULT Folder3_MoveHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
1534     return This->lpVtbl->MoveHere(This,vItem,vOptions);
1535 }
1536 static FORCEINLINE HRESULT Folder3_CopyHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
1537     return This->lpVtbl->CopyHere(This,vItem,vOptions);
1538 }
1539 static 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 ***/
1543 static FORCEINLINE HRESULT Folder3_get_Self(Folder3* This,FolderItem **ppfi) {
1544     return This->lpVtbl->get_Self(This,ppfi);
1545 }
1546 static FORCEINLINE HRESULT Folder3_get_OfflineStatus(Folder3* This,LONG *pul) {
1547     return This->lpVtbl->get_OfflineStatus(This,pul);
1548 }
1549 static FORCEINLINE HRESULT Folder3_Synchronize(Folder3* This) {
1550     return This->lpVtbl->Synchronize(This);
1551 }
1552 static FORCEINLINE HRESULT Folder3_get_HaveToShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
1553     return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
1554 }
1555 static FORCEINLINE HRESULT Folder3_DismissedWebViewBarricade(Folder3* This) {
1556     return This->lpVtbl->DismissedWebViewBarricade(This);
1557 }
1558 /*** Folder3 methods ***/
1559 static FORCEINLINE HRESULT Folder3_get_ShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbShowWebViewBarricade) {
1560     return This->lpVtbl->get_ShowWebViewBarricade(This,pbShowWebViewBarricade);
1561 }
1562 static 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 
1570 HRESULT STDMETHODCALLTYPE Folder3_get_ShowWebViewBarricade_Proxy(
1571     Folder3* This,
1572     VARIANT_BOOL *pbShowWebViewBarricade);
1573 void __RPC_STUB Folder3_get_ShowWebViewBarricade_Stub(
1574     IRpcStubBuffer* This,
1575     IRpcChannelBuffer* pRpcChannelBuffer,
1576     PRPC_MESSAGE pRpcMessage,
1577     DWORD* pdwStubPhase);
1578 HRESULT STDMETHODCALLTYPE Folder3_put_ShowWebViewBarricade_Proxy(
1579     Folder3* This,
1580     VARIANT_BOOL bShowWebViewBarricade);
1581 void __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 
1595 typedef FolderItem *LPFOLDERITEM;
1596 DEFINE_GUID(IID_FolderItem, 0xfac32c80, 0xcbe4, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
1597 #if defined(__cplusplus) && !defined(CINTERFACE)
1598 MIDL_INTERFACE("fac32c80-cbe4-11ce-8350-444553540000")
1599 FolderItem : 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
1657 typedef 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;
1773 interface 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 ***/
1808 static FORCEINLINE HRESULT FolderItem_QueryInterface(FolderItem* This,REFIID riid,void **ppvObject) {
1809     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1810 }
1811 static FORCEINLINE ULONG FolderItem_AddRef(FolderItem* This) {
1812     return This->lpVtbl->AddRef(This);
1813 }
1814 static FORCEINLINE ULONG FolderItem_Release(FolderItem* This) {
1815     return This->lpVtbl->Release(This);
1816 }
1817 /*** IDispatch methods ***/
1818 static FORCEINLINE HRESULT FolderItem_GetTypeInfoCount(FolderItem* This,UINT *pctinfo) {
1819     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
1820 }
1821 static FORCEINLINE HRESULT FolderItem_GetTypeInfo(FolderItem* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
1822     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
1823 }
1824 static 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 }
1827 static 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 ***/
1831 static FORCEINLINE HRESULT FolderItem_get_Application(FolderItem* This,IDispatch **ppid) {
1832     return This->lpVtbl->get_Application(This,ppid);
1833 }
1834 static FORCEINLINE HRESULT FolderItem_get_Parent(FolderItem* This,IDispatch **ppid) {
1835     return This->lpVtbl->get_Parent(This,ppid);
1836 }
1837 static FORCEINLINE HRESULT FolderItem_get_Name(FolderItem* This,BSTR *pbs) {
1838     return This->lpVtbl->get_Name(This,pbs);
1839 }
1840 static FORCEINLINE HRESULT FolderItem_put_Name(FolderItem* This,BSTR bs) {
1841     return This->lpVtbl->put_Name(This,bs);
1842 }
1843 static FORCEINLINE HRESULT FolderItem_get_Path(FolderItem* This,BSTR *pbs) {
1844     return This->lpVtbl->get_Path(This,pbs);
1845 }
1846 static FORCEINLINE HRESULT FolderItem_get_GetLink(FolderItem* This,IDispatch **ppid) {
1847     return This->lpVtbl->get_GetLink(This,ppid);
1848 }
1849 static FORCEINLINE HRESULT FolderItem_get_GetFolder(FolderItem* This,IDispatch **ppid) {
1850     return This->lpVtbl->get_GetFolder(This,ppid);
1851 }
1852 static FORCEINLINE HRESULT FolderItem_get_IsLink(FolderItem* This,VARIANT_BOOL *pb) {
1853     return This->lpVtbl->get_IsLink(This,pb);
1854 }
1855 static FORCEINLINE HRESULT FolderItem_get_IsFolder(FolderItem* This,VARIANT_BOOL *pb) {
1856     return This->lpVtbl->get_IsFolder(This,pb);
1857 }
1858 static FORCEINLINE HRESULT FolderItem_get_IsFileSystem(FolderItem* This,VARIANT_BOOL *pb) {
1859     return This->lpVtbl->get_IsFileSystem(This,pb);
1860 }
1861 static FORCEINLINE HRESULT FolderItem_get_IsBrowsable(FolderItem* This,VARIANT_BOOL *pb) {
1862     return This->lpVtbl->get_IsBrowsable(This,pb);
1863 }
1864 static FORCEINLINE HRESULT FolderItem_get_ModifyDate(FolderItem* This,DATE *pdt) {
1865     return This->lpVtbl->get_ModifyDate(This,pdt);
1866 }
1867 static FORCEINLINE HRESULT FolderItem_put_ModifyDate(FolderItem* This,DATE dt) {
1868     return This->lpVtbl->put_ModifyDate(This,dt);
1869 }
1870 static FORCEINLINE HRESULT FolderItem_get_Size(FolderItem* This,LONG *pul) {
1871     return This->lpVtbl->get_Size(This,pul);
1872 }
1873 static FORCEINLINE HRESULT FolderItem_get_Type(FolderItem* This,BSTR *pbs) {
1874     return This->lpVtbl->get_Type(This,pbs);
1875 }
1876 static FORCEINLINE HRESULT FolderItem_Verbs(FolderItem* This,FolderItemVerbs **ppfic) {
1877     return This->lpVtbl->Verbs(This,ppfic);
1878 }
1879 static FORCEINLINE HRESULT FolderItem_InvokeVerb(FolderItem* This,VARIANT vVerb) {
1880     return This->lpVtbl->InvokeVerb(This,vVerb);
1881 }
1882 #endif
1883 #endif
1884 
1885 #endif
1886 
1887 HRESULT STDMETHODCALLTYPE FolderItem_get_Application_Proxy(
1888     FolderItem* This,
1889     IDispatch **ppid);
1890 void __RPC_STUB FolderItem_get_Application_Stub(
1891     IRpcStubBuffer* This,
1892     IRpcChannelBuffer* pRpcChannelBuffer,
1893     PRPC_MESSAGE pRpcMessage,
1894     DWORD* pdwStubPhase);
1895 HRESULT STDMETHODCALLTYPE FolderItem_get_Parent_Proxy(
1896     FolderItem* This,
1897     IDispatch **ppid);
1898 void __RPC_STUB FolderItem_get_Parent_Stub(
1899     IRpcStubBuffer* This,
1900     IRpcChannelBuffer* pRpcChannelBuffer,
1901     PRPC_MESSAGE pRpcMessage,
1902     DWORD* pdwStubPhase);
1903 HRESULT STDMETHODCALLTYPE FolderItem_get_Name_Proxy(
1904     FolderItem* This,
1905     BSTR *pbs);
1906 void __RPC_STUB FolderItem_get_Name_Stub(
1907     IRpcStubBuffer* This,
1908     IRpcChannelBuffer* pRpcChannelBuffer,
1909     PRPC_MESSAGE pRpcMessage,
1910     DWORD* pdwStubPhase);
1911 HRESULT STDMETHODCALLTYPE FolderItem_put_Name_Proxy(
1912     FolderItem* This,
1913     BSTR bs);
1914 void __RPC_STUB FolderItem_put_Name_Stub(
1915     IRpcStubBuffer* This,
1916     IRpcChannelBuffer* pRpcChannelBuffer,
1917     PRPC_MESSAGE pRpcMessage,
1918     DWORD* pdwStubPhase);
1919 HRESULT STDMETHODCALLTYPE FolderItem_get_Path_Proxy(
1920     FolderItem* This,
1921     BSTR *pbs);
1922 void __RPC_STUB FolderItem_get_Path_Stub(
1923     IRpcStubBuffer* This,
1924     IRpcChannelBuffer* pRpcChannelBuffer,
1925     PRPC_MESSAGE pRpcMessage,
1926     DWORD* pdwStubPhase);
1927 HRESULT STDMETHODCALLTYPE FolderItem_get_GetLink_Proxy(
1928     FolderItem* This,
1929     IDispatch **ppid);
1930 void __RPC_STUB FolderItem_get_GetLink_Stub(
1931     IRpcStubBuffer* This,
1932     IRpcChannelBuffer* pRpcChannelBuffer,
1933     PRPC_MESSAGE pRpcMessage,
1934     DWORD* pdwStubPhase);
1935 HRESULT STDMETHODCALLTYPE FolderItem_get_GetFolder_Proxy(
1936     FolderItem* This,
1937     IDispatch **ppid);
1938 void __RPC_STUB FolderItem_get_GetFolder_Stub(
1939     IRpcStubBuffer* This,
1940     IRpcChannelBuffer* pRpcChannelBuffer,
1941     PRPC_MESSAGE pRpcMessage,
1942     DWORD* pdwStubPhase);
1943 HRESULT STDMETHODCALLTYPE FolderItem_get_IsLink_Proxy(
1944     FolderItem* This,
1945     VARIANT_BOOL *pb);
1946 void __RPC_STUB FolderItem_get_IsLink_Stub(
1947     IRpcStubBuffer* This,
1948     IRpcChannelBuffer* pRpcChannelBuffer,
1949     PRPC_MESSAGE pRpcMessage,
1950     DWORD* pdwStubPhase);
1951 HRESULT STDMETHODCALLTYPE FolderItem_get_IsFolder_Proxy(
1952     FolderItem* This,
1953     VARIANT_BOOL *pb);
1954 void __RPC_STUB FolderItem_get_IsFolder_Stub(
1955     IRpcStubBuffer* This,
1956     IRpcChannelBuffer* pRpcChannelBuffer,
1957     PRPC_MESSAGE pRpcMessage,
1958     DWORD* pdwStubPhase);
1959 HRESULT STDMETHODCALLTYPE FolderItem_get_IsFileSystem_Proxy(
1960     FolderItem* This,
1961     VARIANT_BOOL *pb);
1962 void __RPC_STUB FolderItem_get_IsFileSystem_Stub(
1963     IRpcStubBuffer* This,
1964     IRpcChannelBuffer* pRpcChannelBuffer,
1965     PRPC_MESSAGE pRpcMessage,
1966     DWORD* pdwStubPhase);
1967 HRESULT STDMETHODCALLTYPE FolderItem_get_IsBrowsable_Proxy(
1968     FolderItem* This,
1969     VARIANT_BOOL *pb);
1970 void __RPC_STUB FolderItem_get_IsBrowsable_Stub(
1971     IRpcStubBuffer* This,
1972     IRpcChannelBuffer* pRpcChannelBuffer,
1973     PRPC_MESSAGE pRpcMessage,
1974     DWORD* pdwStubPhase);
1975 HRESULT STDMETHODCALLTYPE FolderItem_get_ModifyDate_Proxy(
1976     FolderItem* This,
1977     DATE *pdt);
1978 void __RPC_STUB FolderItem_get_ModifyDate_Stub(
1979     IRpcStubBuffer* This,
1980     IRpcChannelBuffer* pRpcChannelBuffer,
1981     PRPC_MESSAGE pRpcMessage,
1982     DWORD* pdwStubPhase);
1983 HRESULT STDMETHODCALLTYPE FolderItem_put_ModifyDate_Proxy(
1984     FolderItem* This,
1985     DATE dt);
1986 void __RPC_STUB FolderItem_put_ModifyDate_Stub(
1987     IRpcStubBuffer* This,
1988     IRpcChannelBuffer* pRpcChannelBuffer,
1989     PRPC_MESSAGE pRpcMessage,
1990     DWORD* pdwStubPhase);
1991 HRESULT STDMETHODCALLTYPE FolderItem_get_Size_Proxy(
1992     FolderItem* This,
1993     LONG *pul);
1994 void __RPC_STUB FolderItem_get_Size_Stub(
1995     IRpcStubBuffer* This,
1996     IRpcChannelBuffer* pRpcChannelBuffer,
1997     PRPC_MESSAGE pRpcMessage,
1998     DWORD* pdwStubPhase);
1999 HRESULT STDMETHODCALLTYPE FolderItem_get_Type_Proxy(
2000     FolderItem* This,
2001     BSTR *pbs);
2002 void __RPC_STUB FolderItem_get_Type_Stub(
2003     IRpcStubBuffer* This,
2004     IRpcChannelBuffer* pRpcChannelBuffer,
2005     PRPC_MESSAGE pRpcMessage,
2006     DWORD* pdwStubPhase);
2007 HRESULT STDMETHODCALLTYPE FolderItem_Verbs_Proxy(
2008     FolderItem* This,
2009     FolderItemVerbs **ppfic);
2010 void __RPC_STUB FolderItem_Verbs_Stub(
2011     IRpcStubBuffer* This,
2012     IRpcChannelBuffer* pRpcChannelBuffer,
2013     PRPC_MESSAGE pRpcMessage,
2014     DWORD* pdwStubPhase);
2015 HRESULT STDMETHODCALLTYPE FolderItem_InvokeVerb_Proxy(
2016     FolderItem* This,
2017     VARIANT vVerb);
2018 void __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 
2032 DEFINE_GUID(IID_FolderItem2, 0xedc817aa, 0x92b8, 0x11d1, 0xb0,0x75, 0x00,0xc0,0x4f,0xc3,0x3a,0xa5);
2033 #if defined(__cplusplus) && !defined(CINTERFACE)
2034 MIDL_INTERFACE("edc817aa-92b8-11d1-b075-00c04fc33aa5")
2035 FolderItem2 : 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
2050 typedef 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;
2177 interface 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 ***/
2215 static FORCEINLINE HRESULT FolderItem2_QueryInterface(FolderItem2* This,REFIID riid,void **ppvObject) {
2216     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2217 }
2218 static FORCEINLINE ULONG FolderItem2_AddRef(FolderItem2* This) {
2219     return This->lpVtbl->AddRef(This);
2220 }
2221 static FORCEINLINE ULONG FolderItem2_Release(FolderItem2* This) {
2222     return This->lpVtbl->Release(This);
2223 }
2224 /*** IDispatch methods ***/
2225 static FORCEINLINE HRESULT FolderItem2_GetTypeInfoCount(FolderItem2* This,UINT *pctinfo) {
2226     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2227 }
2228 static FORCEINLINE HRESULT FolderItem2_GetTypeInfo(FolderItem2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2229     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2230 }
2231 static 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 }
2234 static 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 ***/
2238 static FORCEINLINE HRESULT FolderItem2_get_Application(FolderItem2* This,IDispatch **ppid) {
2239     return This->lpVtbl->get_Application(This,ppid);
2240 }
2241 static FORCEINLINE HRESULT FolderItem2_get_Parent(FolderItem2* This,IDispatch **ppid) {
2242     return This->lpVtbl->get_Parent(This,ppid);
2243 }
2244 static FORCEINLINE HRESULT FolderItem2_get_Name(FolderItem2* This,BSTR *pbs) {
2245     return This->lpVtbl->get_Name(This,pbs);
2246 }
2247 static FORCEINLINE HRESULT FolderItem2_put_Name(FolderItem2* This,BSTR bs) {
2248     return This->lpVtbl->put_Name(This,bs);
2249 }
2250 static FORCEINLINE HRESULT FolderItem2_get_Path(FolderItem2* This,BSTR *pbs) {
2251     return This->lpVtbl->get_Path(This,pbs);
2252 }
2253 static FORCEINLINE HRESULT FolderItem2_get_GetLink(FolderItem2* This,IDispatch **ppid) {
2254     return This->lpVtbl->get_GetLink(This,ppid);
2255 }
2256 static FORCEINLINE HRESULT FolderItem2_get_GetFolder(FolderItem2* This,IDispatch **ppid) {
2257     return This->lpVtbl->get_GetFolder(This,ppid);
2258 }
2259 static FORCEINLINE HRESULT FolderItem2_get_IsLink(FolderItem2* This,VARIANT_BOOL *pb) {
2260     return This->lpVtbl->get_IsLink(This,pb);
2261 }
2262 static FORCEINLINE HRESULT FolderItem2_get_IsFolder(FolderItem2* This,VARIANT_BOOL *pb) {
2263     return This->lpVtbl->get_IsFolder(This,pb);
2264 }
2265 static FORCEINLINE HRESULT FolderItem2_get_IsFileSystem(FolderItem2* This,VARIANT_BOOL *pb) {
2266     return This->lpVtbl->get_IsFileSystem(This,pb);
2267 }
2268 static FORCEINLINE HRESULT FolderItem2_get_IsBrowsable(FolderItem2* This,VARIANT_BOOL *pb) {
2269     return This->lpVtbl->get_IsBrowsable(This,pb);
2270 }
2271 static FORCEINLINE HRESULT FolderItem2_get_ModifyDate(FolderItem2* This,DATE *pdt) {
2272     return This->lpVtbl->get_ModifyDate(This,pdt);
2273 }
2274 static FORCEINLINE HRESULT FolderItem2_put_ModifyDate(FolderItem2* This,DATE dt) {
2275     return This->lpVtbl->put_ModifyDate(This,dt);
2276 }
2277 static FORCEINLINE HRESULT FolderItem2_get_Size(FolderItem2* This,LONG *pul) {
2278     return This->lpVtbl->get_Size(This,pul);
2279 }
2280 static FORCEINLINE HRESULT FolderItem2_get_Type(FolderItem2* This,BSTR *pbs) {
2281     return This->lpVtbl->get_Type(This,pbs);
2282 }
2283 static FORCEINLINE HRESULT FolderItem2_Verbs(FolderItem2* This,FolderItemVerbs **ppfic) {
2284     return This->lpVtbl->Verbs(This,ppfic);
2285 }
2286 static FORCEINLINE HRESULT FolderItem2_InvokeVerb(FolderItem2* This,VARIANT vVerb) {
2287     return This->lpVtbl->InvokeVerb(This,vVerb);
2288 }
2289 /*** FolderItem2 methods ***/
2290 static FORCEINLINE HRESULT FolderItem2_InvokeVerbEx(FolderItem2* This,VARIANT vVerb,VARIANT vArgs) {
2291     return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
2292 }
2293 static 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 
2301 HRESULT STDMETHODCALLTYPE FolderItem2_InvokeVerbEx_Proxy(
2302     FolderItem2* This,
2303     VARIANT vVerb,
2304     VARIANT vArgs);
2305 void __RPC_STUB FolderItem2_InvokeVerbEx_Stub(
2306     IRpcStubBuffer* This,
2307     IRpcChannelBuffer* pRpcChannelBuffer,
2308     PRPC_MESSAGE pRpcMessage,
2309     DWORD* pdwStubPhase);
2310 HRESULT STDMETHODCALLTYPE FolderItem2_ExtendedProperty_Proxy(
2311     FolderItem2* This,
2312     BSTR bstrPropName,
2313     VARIANT *pvRet);
2314 void __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 
2326 DEFINE_GUID(CLSID_ShellFolderItem, 0x2fe352ea, 0xfd1f, 0x11d2, 0xb1,0xf4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
2327 
2328 #ifdef __cplusplus
2329 class 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 
2341 DEFINE_GUID(IID_FolderItems, 0x744129e0, 0xcbe5, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
2342 #if defined(__cplusplus) && !defined(CINTERFACE)
2343 MIDL_INTERFACE("744129e0-cbe5-11ce-8350-444553540000")
2344 FolderItems : 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
2367 typedef 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;
2436 interface 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 ***/
2459 static FORCEINLINE HRESULT FolderItems_QueryInterface(FolderItems* This,REFIID riid,void **ppvObject) {
2460     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2461 }
2462 static FORCEINLINE ULONG FolderItems_AddRef(FolderItems* This) {
2463     return This->lpVtbl->AddRef(This);
2464 }
2465 static FORCEINLINE ULONG FolderItems_Release(FolderItems* This) {
2466     return This->lpVtbl->Release(This);
2467 }
2468 /*** IDispatch methods ***/
2469 static FORCEINLINE HRESULT FolderItems_GetTypeInfoCount(FolderItems* This,UINT *pctinfo) {
2470     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2471 }
2472 static FORCEINLINE HRESULT FolderItems_GetTypeInfo(FolderItems* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2473     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2474 }
2475 static 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 }
2478 static 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 ***/
2482 static FORCEINLINE HRESULT FolderItems_get_Count(FolderItems* This,LONG *plCount) {
2483     return This->lpVtbl->get_Count(This,plCount);
2484 }
2485 static FORCEINLINE HRESULT FolderItems_get_Application(FolderItems* This,IDispatch **ppid) {
2486     return This->lpVtbl->get_Application(This,ppid);
2487 }
2488 static FORCEINLINE HRESULT FolderItems_get_Parent(FolderItems* This,IDispatch **ppid) {
2489     return This->lpVtbl->get_Parent(This,ppid);
2490 }
2491 static FORCEINLINE HRESULT FolderItems_Item(FolderItems* This,VARIANT index,FolderItem **ppid) {
2492     return This->lpVtbl->Item(This,index,ppid);
2493 }
2494 static FORCEINLINE HRESULT FolderItems__NewEnum(FolderItems* This,IUnknown **ppunk) {
2495     return This->lpVtbl->_NewEnum(This,ppunk);
2496 }
2497 #endif
2498 #endif
2499 
2500 #endif
2501 
2502 HRESULT STDMETHODCALLTYPE FolderItems_get_Count_Proxy(
2503     FolderItems* This,
2504     LONG *plCount);
2505 void __RPC_STUB FolderItems_get_Count_Stub(
2506     IRpcStubBuffer* This,
2507     IRpcChannelBuffer* pRpcChannelBuffer,
2508     PRPC_MESSAGE pRpcMessage,
2509     DWORD* pdwStubPhase);
2510 HRESULT STDMETHODCALLTYPE FolderItems_get_Application_Proxy(
2511     FolderItems* This,
2512     IDispatch **ppid);
2513 void __RPC_STUB FolderItems_get_Application_Stub(
2514     IRpcStubBuffer* This,
2515     IRpcChannelBuffer* pRpcChannelBuffer,
2516     PRPC_MESSAGE pRpcMessage,
2517     DWORD* pdwStubPhase);
2518 HRESULT STDMETHODCALLTYPE FolderItems_get_Parent_Proxy(
2519     FolderItems* This,
2520     IDispatch **ppid);
2521 void __RPC_STUB FolderItems_get_Parent_Stub(
2522     IRpcStubBuffer* This,
2523     IRpcChannelBuffer* pRpcChannelBuffer,
2524     PRPC_MESSAGE pRpcMessage,
2525     DWORD* pdwStubPhase);
2526 HRESULT STDMETHODCALLTYPE FolderItems_Item_Proxy(
2527     FolderItems* This,
2528     VARIANT index,
2529     FolderItem **ppid);
2530 void __RPC_STUB FolderItems_Item_Stub(
2531     IRpcStubBuffer* This,
2532     IRpcChannelBuffer* pRpcChannelBuffer,
2533     PRPC_MESSAGE pRpcMessage,
2534     DWORD* pdwStubPhase);
2535 HRESULT STDMETHODCALLTYPE FolderItems__NewEnum_Proxy(
2536     FolderItems* This,
2537     IUnknown **ppunk);
2538 void __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 
2552 DEFINE_GUID(IID_FolderItems2, 0xc94f0ad0, 0xf363, 0x11d2, 0xa3,0x27, 0x00,0xc0,0x4f,0x8e,0xec,0x7f);
2553 #if defined(__cplusplus) && !defined(CINTERFACE)
2554 MIDL_INTERFACE("c94f0ad0-f363-11d2-a327-00c04f8eec7f")
2555 FolderItems2 : 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
2566 typedef 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;
2641 interface 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 ***/
2666 static FORCEINLINE HRESULT FolderItems2_QueryInterface(FolderItems2* This,REFIID riid,void **ppvObject) {
2667     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2668 }
2669 static FORCEINLINE ULONG FolderItems2_AddRef(FolderItems2* This) {
2670     return This->lpVtbl->AddRef(This);
2671 }
2672 static FORCEINLINE ULONG FolderItems2_Release(FolderItems2* This) {
2673     return This->lpVtbl->Release(This);
2674 }
2675 /*** IDispatch methods ***/
2676 static FORCEINLINE HRESULT FolderItems2_GetTypeInfoCount(FolderItems2* This,UINT *pctinfo) {
2677     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2678 }
2679 static FORCEINLINE HRESULT FolderItems2_GetTypeInfo(FolderItems2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2680     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2681 }
2682 static 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 }
2685 static 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 ***/
2689 static FORCEINLINE HRESULT FolderItems2_get_Count(FolderItems2* This,LONG *plCount) {
2690     return This->lpVtbl->get_Count(This,plCount);
2691 }
2692 static FORCEINLINE HRESULT FolderItems2_get_Application(FolderItems2* This,IDispatch **ppid) {
2693     return This->lpVtbl->get_Application(This,ppid);
2694 }
2695 static FORCEINLINE HRESULT FolderItems2_get_Parent(FolderItems2* This,IDispatch **ppid) {
2696     return This->lpVtbl->get_Parent(This,ppid);
2697 }
2698 static FORCEINLINE HRESULT FolderItems2_Item(FolderItems2* This,VARIANT index,FolderItem **ppid) {
2699     return This->lpVtbl->Item(This,index,ppid);
2700 }
2701 static FORCEINLINE HRESULT FolderItems2__NewEnum(FolderItems2* This,IUnknown **ppunk) {
2702     return This->lpVtbl->_NewEnum(This,ppunk);
2703 }
2704 /*** FolderItems2 methods ***/
2705 static 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 
2713 HRESULT STDMETHODCALLTYPE FolderItems2_InvokeVerbEx_Proxy(
2714     FolderItems2* This,
2715     VARIANT vVerb,
2716     VARIANT vArgs);
2717 void __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 
2731 DEFINE_GUID(IID_FolderItems3, 0xeaa7c309, 0xbbec, 0x49d5, 0x82,0x1d, 0x64,0xd9,0x66,0xcb,0x66,0x7f);
2732 #if defined(__cplusplus) && !defined(CINTERFACE)
2733 MIDL_INTERFACE("eaa7c309-bbec-49d5-821d-64d966cb667f")
2734 FolderItems3 : 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
2748 typedef 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;
2833 interface 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 ***/
2861 static FORCEINLINE HRESULT FolderItems3_QueryInterface(FolderItems3* This,REFIID riid,void **ppvObject) {
2862     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2863 }
2864 static FORCEINLINE ULONG FolderItems3_AddRef(FolderItems3* This) {
2865     return This->lpVtbl->AddRef(This);
2866 }
2867 static FORCEINLINE ULONG FolderItems3_Release(FolderItems3* This) {
2868     return This->lpVtbl->Release(This);
2869 }
2870 /*** IDispatch methods ***/
2871 static FORCEINLINE HRESULT FolderItems3_GetTypeInfoCount(FolderItems3* This,UINT *pctinfo) {
2872     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
2873 }
2874 static FORCEINLINE HRESULT FolderItems3_GetTypeInfo(FolderItems3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
2875     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
2876 }
2877 static 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 }
2880 static 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 ***/
2884 static FORCEINLINE HRESULT FolderItems3_get_Count(FolderItems3* This,LONG *plCount) {
2885     return This->lpVtbl->get_Count(This,plCount);
2886 }
2887 static FORCEINLINE HRESULT FolderItems3_get_Application(FolderItems3* This,IDispatch **ppid) {
2888     return This->lpVtbl->get_Application(This,ppid);
2889 }
2890 static FORCEINLINE HRESULT FolderItems3_get_Parent(FolderItems3* This,IDispatch **ppid) {
2891     return This->lpVtbl->get_Parent(This,ppid);
2892 }
2893 static FORCEINLINE HRESULT FolderItems3_Item(FolderItems3* This,VARIANT index,FolderItem **ppid) {
2894     return This->lpVtbl->Item(This,index,ppid);
2895 }
2896 static FORCEINLINE HRESULT FolderItems3__NewEnum(FolderItems3* This,IUnknown **ppunk) {
2897     return This->lpVtbl->_NewEnum(This,ppunk);
2898 }
2899 /*** FolderItems2 methods ***/
2900 static FORCEINLINE HRESULT FolderItems3_InvokeVerbEx(FolderItems3* This,VARIANT vVerb,VARIANT vArgs) {
2901     return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
2902 }
2903 /*** FolderItems3 methods ***/
2904 static FORCEINLINE HRESULT FolderItems3_Filter(FolderItems3* This,LONG grfFlags,BSTR bstrFileSpec) {
2905     return This->lpVtbl->Filter(This,grfFlags,bstrFileSpec);
2906 }
2907 static 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 
2915 HRESULT STDMETHODCALLTYPE FolderItems3_Filter_Proxy(
2916     FolderItems3* This,
2917     LONG grfFlags,
2918     BSTR bstrFileSpec);
2919 void __RPC_STUB FolderItems3_Filter_Stub(
2920     IRpcStubBuffer* This,
2921     IRpcChannelBuffer* pRpcChannelBuffer,
2922     PRPC_MESSAGE pRpcMessage,
2923     DWORD* pdwStubPhase);
2924 HRESULT STDMETHODCALLTYPE FolderItems3_get_Verbs_Proxy(
2925     FolderItems3* This,
2926     FolderItemVerbs **ppfic);
2927 void __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 
2941 DEFINE_GUID(IID_FolderItemVerb, 0x08ec3e00, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
2942 #if defined(__cplusplus) && !defined(CINTERFACE)
2943 MIDL_INTERFACE("08ec3e00-50b0-11cf-960c-0080c7f4ee85")
2944 FolderItemVerb : 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
2963 typedef 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;
3026 interface 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 ***/
3048 static FORCEINLINE HRESULT FolderItemVerb_QueryInterface(FolderItemVerb* This,REFIID riid,void **ppvObject) {
3049     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3050 }
3051 static FORCEINLINE ULONG FolderItemVerb_AddRef(FolderItemVerb* This) {
3052     return This->lpVtbl->AddRef(This);
3053 }
3054 static FORCEINLINE ULONG FolderItemVerb_Release(FolderItemVerb* This) {
3055     return This->lpVtbl->Release(This);
3056 }
3057 /*** IDispatch methods ***/
3058 static FORCEINLINE HRESULT FolderItemVerb_GetTypeInfoCount(FolderItemVerb* This,UINT *pctinfo) {
3059     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3060 }
3061 static FORCEINLINE HRESULT FolderItemVerb_GetTypeInfo(FolderItemVerb* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3062     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3063 }
3064 static 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 }
3067 static 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 ***/
3071 static FORCEINLINE HRESULT FolderItemVerb_get_Application(FolderItemVerb* This,IDispatch **ppid) {
3072     return This->lpVtbl->get_Application(This,ppid);
3073 }
3074 static FORCEINLINE HRESULT FolderItemVerb_get_Parent(FolderItemVerb* This,IDispatch **ppid) {
3075     return This->lpVtbl->get_Parent(This,ppid);
3076 }
3077 static FORCEINLINE HRESULT FolderItemVerb_get_Name(FolderItemVerb* This,BSTR *pbs) {
3078     return This->lpVtbl->get_Name(This,pbs);
3079 }
3080 static FORCEINLINE HRESULT FolderItemVerb_DoIt(FolderItemVerb* This) {
3081     return This->lpVtbl->DoIt(This);
3082 }
3083 #endif
3084 #endif
3085 
3086 #endif
3087 
3088 HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Application_Proxy(
3089     FolderItemVerb* This,
3090     IDispatch **ppid);
3091 void __RPC_STUB FolderItemVerb_get_Application_Stub(
3092     IRpcStubBuffer* This,
3093     IRpcChannelBuffer* pRpcChannelBuffer,
3094     PRPC_MESSAGE pRpcMessage,
3095     DWORD* pdwStubPhase);
3096 HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Parent_Proxy(
3097     FolderItemVerb* This,
3098     IDispatch **ppid);
3099 void __RPC_STUB FolderItemVerb_get_Parent_Stub(
3100     IRpcStubBuffer* This,
3101     IRpcChannelBuffer* pRpcChannelBuffer,
3102     PRPC_MESSAGE pRpcMessage,
3103     DWORD* pdwStubPhase);
3104 HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Name_Proxy(
3105     FolderItemVerb* This,
3106     BSTR *pbs);
3107 void __RPC_STUB FolderItemVerb_get_Name_Stub(
3108     IRpcStubBuffer* This,
3109     IRpcChannelBuffer* pRpcChannelBuffer,
3110     PRPC_MESSAGE pRpcMessage,
3111     DWORD* pdwStubPhase);
3112 HRESULT STDMETHODCALLTYPE FolderItemVerb_DoIt_Proxy(
3113     FolderItemVerb* This);
3114 void __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 
3128 DEFINE_GUID(IID_FolderItemVerbs, 0x1f8352c0, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
3129 #if defined(__cplusplus) && !defined(CINTERFACE)
3130 MIDL_INTERFACE("1f8352c0-50b0-11cf-960c-0080c7f4ee85")
3131 FolderItemVerbs : 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
3154 typedef 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;
3223 interface 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 ***/
3246 static FORCEINLINE HRESULT FolderItemVerbs_QueryInterface(FolderItemVerbs* This,REFIID riid,void **ppvObject) {
3247     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3248 }
3249 static FORCEINLINE ULONG FolderItemVerbs_AddRef(FolderItemVerbs* This) {
3250     return This->lpVtbl->AddRef(This);
3251 }
3252 static FORCEINLINE ULONG FolderItemVerbs_Release(FolderItemVerbs* This) {
3253     return This->lpVtbl->Release(This);
3254 }
3255 /*** IDispatch methods ***/
3256 static FORCEINLINE HRESULT FolderItemVerbs_GetTypeInfoCount(FolderItemVerbs* This,UINT *pctinfo) {
3257     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3258 }
3259 static FORCEINLINE HRESULT FolderItemVerbs_GetTypeInfo(FolderItemVerbs* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3260     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3261 }
3262 static 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 }
3265 static 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 ***/
3269 static FORCEINLINE HRESULT FolderItemVerbs_get_Count(FolderItemVerbs* This,LONG *plCount) {
3270     return This->lpVtbl->get_Count(This,plCount);
3271 }
3272 static FORCEINLINE HRESULT FolderItemVerbs_get_Application(FolderItemVerbs* This,IDispatch **ppid) {
3273     return This->lpVtbl->get_Application(This,ppid);
3274 }
3275 static FORCEINLINE HRESULT FolderItemVerbs_get_Parent(FolderItemVerbs* This,IDispatch **ppid) {
3276     return This->lpVtbl->get_Parent(This,ppid);
3277 }
3278 static FORCEINLINE HRESULT FolderItemVerbs_Item(FolderItemVerbs* This,VARIANT index,FolderItemVerb **ppid) {
3279     return This->lpVtbl->Item(This,index,ppid);
3280 }
3281 static FORCEINLINE HRESULT FolderItemVerbs__NewEnum(FolderItemVerbs* This,IUnknown **ppunk) {
3282     return This->lpVtbl->_NewEnum(This,ppunk);
3283 }
3284 #endif
3285 #endif
3286 
3287 #endif
3288 
3289 HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Count_Proxy(
3290     FolderItemVerbs* This,
3291     LONG *plCount);
3292 void __RPC_STUB FolderItemVerbs_get_Count_Stub(
3293     IRpcStubBuffer* This,
3294     IRpcChannelBuffer* pRpcChannelBuffer,
3295     PRPC_MESSAGE pRpcMessage,
3296     DWORD* pdwStubPhase);
3297 HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Application_Proxy(
3298     FolderItemVerbs* This,
3299     IDispatch **ppid);
3300 void __RPC_STUB FolderItemVerbs_get_Application_Stub(
3301     IRpcStubBuffer* This,
3302     IRpcChannelBuffer* pRpcChannelBuffer,
3303     PRPC_MESSAGE pRpcMessage,
3304     DWORD* pdwStubPhase);
3305 HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Parent_Proxy(
3306     FolderItemVerbs* This,
3307     IDispatch **ppid);
3308 void __RPC_STUB FolderItemVerbs_get_Parent_Stub(
3309     IRpcStubBuffer* This,
3310     IRpcChannelBuffer* pRpcChannelBuffer,
3311     PRPC_MESSAGE pRpcMessage,
3312     DWORD* pdwStubPhase);
3313 HRESULT STDMETHODCALLTYPE FolderItemVerbs_Item_Proxy(
3314     FolderItemVerbs* This,
3315     VARIANT index,
3316     FolderItemVerb **ppid);
3317 void __RPC_STUB FolderItemVerbs_Item_Stub(
3318     IRpcStubBuffer* This,
3319     IRpcChannelBuffer* pRpcChannelBuffer,
3320     PRPC_MESSAGE pRpcMessage,
3321     DWORD* pdwStubPhase);
3322 HRESULT STDMETHODCALLTYPE FolderItemVerbs__NewEnum_Proxy(
3323     FolderItemVerbs* This,
3324     IUnknown **ppunk);
3325 void __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 
3339 DEFINE_GUID(IID_IShellLinkDual, 0x88a05c00, 0xf000, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
3340 #if defined(__cplusplus) && !defined(CINTERFACE)
3341 MIDL_INTERFACE("88a05c00-f000-11ce-8350-444553540000")
3342 IShellLinkDual : 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
3399 typedef 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;
3513 interface 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 ***/
3547 static FORCEINLINE HRESULT IShellLinkDual_QueryInterface(IShellLinkDual* This,REFIID riid,void **ppvObject) {
3548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3549 }
3550 static FORCEINLINE ULONG IShellLinkDual_AddRef(IShellLinkDual* This) {
3551     return This->lpVtbl->AddRef(This);
3552 }
3553 static FORCEINLINE ULONG IShellLinkDual_Release(IShellLinkDual* This) {
3554     return This->lpVtbl->Release(This);
3555 }
3556 /*** IDispatch methods ***/
3557 static FORCEINLINE HRESULT IShellLinkDual_GetTypeInfoCount(IShellLinkDual* This,UINT *pctinfo) {
3558     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3559 }
3560 static FORCEINLINE HRESULT IShellLinkDual_GetTypeInfo(IShellLinkDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3561     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3562 }
3563 static 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 }
3566 static 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 ***/
3570 static FORCEINLINE HRESULT IShellLinkDual_get_Path(IShellLinkDual* This,BSTR *pbs) {
3571     return This->lpVtbl->get_Path(This,pbs);
3572 }
3573 static FORCEINLINE HRESULT IShellLinkDual_put_Path(IShellLinkDual* This,BSTR bs) {
3574     return This->lpVtbl->put_Path(This,bs);
3575 }
3576 static FORCEINLINE HRESULT IShellLinkDual_get_Description(IShellLinkDual* This,BSTR *pbs) {
3577     return This->lpVtbl->get_Description(This,pbs);
3578 }
3579 static FORCEINLINE HRESULT IShellLinkDual_put_Description(IShellLinkDual* This,BSTR bs) {
3580     return This->lpVtbl->put_Description(This,bs);
3581 }
3582 static FORCEINLINE HRESULT IShellLinkDual_get_WorkingDirectory(IShellLinkDual* This,BSTR *pbs) {
3583     return This->lpVtbl->get_WorkingDirectory(This,pbs);
3584 }
3585 static FORCEINLINE HRESULT IShellLinkDual_put_WorkingDirectory(IShellLinkDual* This,BSTR bs) {
3586     return This->lpVtbl->put_WorkingDirectory(This,bs);
3587 }
3588 static FORCEINLINE HRESULT IShellLinkDual_get_Arguments(IShellLinkDual* This,BSTR *pbs) {
3589     return This->lpVtbl->get_Arguments(This,pbs);
3590 }
3591 static FORCEINLINE HRESULT IShellLinkDual_put_Arguments(IShellLinkDual* This,BSTR bs) {
3592     return This->lpVtbl->put_Arguments(This,bs);
3593 }
3594 static FORCEINLINE HRESULT IShellLinkDual_get_Hotkey(IShellLinkDual* This,int *piHK) {
3595     return This->lpVtbl->get_Hotkey(This,piHK);
3596 }
3597 static FORCEINLINE HRESULT IShellLinkDual_put_Hotkey(IShellLinkDual* This,int iHK) {
3598     return This->lpVtbl->put_Hotkey(This,iHK);
3599 }
3600 static FORCEINLINE HRESULT IShellLinkDual_get_ShowCommand(IShellLinkDual* This,int *piShowCommand) {
3601     return This->lpVtbl->get_ShowCommand(This,piShowCommand);
3602 }
3603 static FORCEINLINE HRESULT IShellLinkDual_put_ShowCommand(IShellLinkDual* This,int iShowCommand) {
3604     return This->lpVtbl->put_ShowCommand(This,iShowCommand);
3605 }
3606 static FORCEINLINE HRESULT IShellLinkDual_Resolve(IShellLinkDual* This,int fFlags) {
3607     return This->lpVtbl->Resolve(This,fFlags);
3608 }
3609 static FORCEINLINE HRESULT IShellLinkDual_GetIconLocation(IShellLinkDual* This,BSTR *pbs,int *piIcon) {
3610     return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
3611 }
3612 static FORCEINLINE HRESULT IShellLinkDual_SetIconLocation(IShellLinkDual* This,BSTR bs,int iIcon) {
3613     return This->lpVtbl->SetIconLocation(This,bs,iIcon);
3614 }
3615 static FORCEINLINE HRESULT IShellLinkDual_Save(IShellLinkDual* This,VARIANT vWhere) {
3616     return This->lpVtbl->Save(This,vWhere);
3617 }
3618 #endif
3619 #endif
3620 
3621 #endif
3622 
3623 HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Path_Proxy(
3624     IShellLinkDual* This,
3625     BSTR *pbs);
3626 void __RPC_STUB IShellLinkDual_get_Path_Stub(
3627     IRpcStubBuffer* This,
3628     IRpcChannelBuffer* pRpcChannelBuffer,
3629     PRPC_MESSAGE pRpcMessage,
3630     DWORD* pdwStubPhase);
3631 HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Path_Proxy(
3632     IShellLinkDual* This,
3633     BSTR bs);
3634 void __RPC_STUB IShellLinkDual_put_Path_Stub(
3635     IRpcStubBuffer* This,
3636     IRpcChannelBuffer* pRpcChannelBuffer,
3637     PRPC_MESSAGE pRpcMessage,
3638     DWORD* pdwStubPhase);
3639 HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Description_Proxy(
3640     IShellLinkDual* This,
3641     BSTR *pbs);
3642 void __RPC_STUB IShellLinkDual_get_Description_Stub(
3643     IRpcStubBuffer* This,
3644     IRpcChannelBuffer* pRpcChannelBuffer,
3645     PRPC_MESSAGE pRpcMessage,
3646     DWORD* pdwStubPhase);
3647 HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Description_Proxy(
3648     IShellLinkDual* This,
3649     BSTR bs);
3650 void __RPC_STUB IShellLinkDual_put_Description_Stub(
3651     IRpcStubBuffer* This,
3652     IRpcChannelBuffer* pRpcChannelBuffer,
3653     PRPC_MESSAGE pRpcMessage,
3654     DWORD* pdwStubPhase);
3655 HRESULT STDMETHODCALLTYPE IShellLinkDual_get_WorkingDirectory_Proxy(
3656     IShellLinkDual* This,
3657     BSTR *pbs);
3658 void __RPC_STUB IShellLinkDual_get_WorkingDirectory_Stub(
3659     IRpcStubBuffer* This,
3660     IRpcChannelBuffer* pRpcChannelBuffer,
3661     PRPC_MESSAGE pRpcMessage,
3662     DWORD* pdwStubPhase);
3663 HRESULT STDMETHODCALLTYPE IShellLinkDual_put_WorkingDirectory_Proxy(
3664     IShellLinkDual* This,
3665     BSTR bs);
3666 void __RPC_STUB IShellLinkDual_put_WorkingDirectory_Stub(
3667     IRpcStubBuffer* This,
3668     IRpcChannelBuffer* pRpcChannelBuffer,
3669     PRPC_MESSAGE pRpcMessage,
3670     DWORD* pdwStubPhase);
3671 HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Arguments_Proxy(
3672     IShellLinkDual* This,
3673     BSTR *pbs);
3674 void __RPC_STUB IShellLinkDual_get_Arguments_Stub(
3675     IRpcStubBuffer* This,
3676     IRpcChannelBuffer* pRpcChannelBuffer,
3677     PRPC_MESSAGE pRpcMessage,
3678     DWORD* pdwStubPhase);
3679 HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Arguments_Proxy(
3680     IShellLinkDual* This,
3681     BSTR bs);
3682 void __RPC_STUB IShellLinkDual_put_Arguments_Stub(
3683     IRpcStubBuffer* This,
3684     IRpcChannelBuffer* pRpcChannelBuffer,
3685     PRPC_MESSAGE pRpcMessage,
3686     DWORD* pdwStubPhase);
3687 HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Hotkey_Proxy(
3688     IShellLinkDual* This,
3689     int *piHK);
3690 void __RPC_STUB IShellLinkDual_get_Hotkey_Stub(
3691     IRpcStubBuffer* This,
3692     IRpcChannelBuffer* pRpcChannelBuffer,
3693     PRPC_MESSAGE pRpcMessage,
3694     DWORD* pdwStubPhase);
3695 HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Hotkey_Proxy(
3696     IShellLinkDual* This,
3697     int iHK);
3698 void __RPC_STUB IShellLinkDual_put_Hotkey_Stub(
3699     IRpcStubBuffer* This,
3700     IRpcChannelBuffer* pRpcChannelBuffer,
3701     PRPC_MESSAGE pRpcMessage,
3702     DWORD* pdwStubPhase);
3703 HRESULT STDMETHODCALLTYPE IShellLinkDual_get_ShowCommand_Proxy(
3704     IShellLinkDual* This,
3705     int *piShowCommand);
3706 void __RPC_STUB IShellLinkDual_get_ShowCommand_Stub(
3707     IRpcStubBuffer* This,
3708     IRpcChannelBuffer* pRpcChannelBuffer,
3709     PRPC_MESSAGE pRpcMessage,
3710     DWORD* pdwStubPhase);
3711 HRESULT STDMETHODCALLTYPE IShellLinkDual_put_ShowCommand_Proxy(
3712     IShellLinkDual* This,
3713     int iShowCommand);
3714 void __RPC_STUB IShellLinkDual_put_ShowCommand_Stub(
3715     IRpcStubBuffer* This,
3716     IRpcChannelBuffer* pRpcChannelBuffer,
3717     PRPC_MESSAGE pRpcMessage,
3718     DWORD* pdwStubPhase);
3719 HRESULT STDMETHODCALLTYPE IShellLinkDual_Resolve_Proxy(
3720     IShellLinkDual* This,
3721     int fFlags);
3722 void __RPC_STUB IShellLinkDual_Resolve_Stub(
3723     IRpcStubBuffer* This,
3724     IRpcChannelBuffer* pRpcChannelBuffer,
3725     PRPC_MESSAGE pRpcMessage,
3726     DWORD* pdwStubPhase);
3727 HRESULT STDMETHODCALLTYPE IShellLinkDual_GetIconLocation_Proxy(
3728     IShellLinkDual* This,
3729     BSTR *pbs,
3730     int *piIcon);
3731 void __RPC_STUB IShellLinkDual_GetIconLocation_Stub(
3732     IRpcStubBuffer* This,
3733     IRpcChannelBuffer* pRpcChannelBuffer,
3734     PRPC_MESSAGE pRpcMessage,
3735     DWORD* pdwStubPhase);
3736 HRESULT STDMETHODCALLTYPE IShellLinkDual_SetIconLocation_Proxy(
3737     IShellLinkDual* This,
3738     BSTR bs,
3739     int iIcon);
3740 void __RPC_STUB IShellLinkDual_SetIconLocation_Stub(
3741     IRpcStubBuffer* This,
3742     IRpcChannelBuffer* pRpcChannelBuffer,
3743     PRPC_MESSAGE pRpcMessage,
3744     DWORD* pdwStubPhase);
3745 HRESULT STDMETHODCALLTYPE IShellLinkDual_Save_Proxy(
3746     IShellLinkDual* This,
3747     VARIANT vWhere);
3748 void __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 
3762 DEFINE_GUID(IID_IShellLinkDual2, 0x317ee249, 0xf12e, 0x11d2, 0xb1,0xe4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
3763 #if defined(__cplusplus) && !defined(CINTERFACE)
3764 MIDL_INTERFACE("317ee249-f12e-11d2-b1e4-00c04f8eeb3e")
3765 IShellLinkDual2 : 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
3775 typedef 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;
3894 interface 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 ***/
3930 static FORCEINLINE HRESULT IShellLinkDual2_QueryInterface(IShellLinkDual2* This,REFIID riid,void **ppvObject) {
3931     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3932 }
3933 static FORCEINLINE ULONG IShellLinkDual2_AddRef(IShellLinkDual2* This) {
3934     return This->lpVtbl->AddRef(This);
3935 }
3936 static FORCEINLINE ULONG IShellLinkDual2_Release(IShellLinkDual2* This) {
3937     return This->lpVtbl->Release(This);
3938 }
3939 /*** IDispatch methods ***/
3940 static FORCEINLINE HRESULT IShellLinkDual2_GetTypeInfoCount(IShellLinkDual2* This,UINT *pctinfo) {
3941     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
3942 }
3943 static FORCEINLINE HRESULT IShellLinkDual2_GetTypeInfo(IShellLinkDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
3944     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
3945 }
3946 static 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 }
3949 static 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 ***/
3953 static FORCEINLINE HRESULT IShellLinkDual2_get_Path(IShellLinkDual2* This,BSTR *pbs) {
3954     return This->lpVtbl->get_Path(This,pbs);
3955 }
3956 static FORCEINLINE HRESULT IShellLinkDual2_put_Path(IShellLinkDual2* This,BSTR bs) {
3957     return This->lpVtbl->put_Path(This,bs);
3958 }
3959 static FORCEINLINE HRESULT IShellLinkDual2_get_Description(IShellLinkDual2* This,BSTR *pbs) {
3960     return This->lpVtbl->get_Description(This,pbs);
3961 }
3962 static FORCEINLINE HRESULT IShellLinkDual2_put_Description(IShellLinkDual2* This,BSTR bs) {
3963     return This->lpVtbl->put_Description(This,bs);
3964 }
3965 static FORCEINLINE HRESULT IShellLinkDual2_get_WorkingDirectory(IShellLinkDual2* This,BSTR *pbs) {
3966     return This->lpVtbl->get_WorkingDirectory(This,pbs);
3967 }
3968 static FORCEINLINE HRESULT IShellLinkDual2_put_WorkingDirectory(IShellLinkDual2* This,BSTR bs) {
3969     return This->lpVtbl->put_WorkingDirectory(This,bs);
3970 }
3971 static FORCEINLINE HRESULT IShellLinkDual2_get_Arguments(IShellLinkDual2* This,BSTR *pbs) {
3972     return This->lpVtbl->get_Arguments(This,pbs);
3973 }
3974 static FORCEINLINE HRESULT IShellLinkDual2_put_Arguments(IShellLinkDual2* This,BSTR bs) {
3975     return This->lpVtbl->put_Arguments(This,bs);
3976 }
3977 static FORCEINLINE HRESULT IShellLinkDual2_get_Hotkey(IShellLinkDual2* This,int *piHK) {
3978     return This->lpVtbl->get_Hotkey(This,piHK);
3979 }
3980 static FORCEINLINE HRESULT IShellLinkDual2_put_Hotkey(IShellLinkDual2* This,int iHK) {
3981     return This->lpVtbl->put_Hotkey(This,iHK);
3982 }
3983 static FORCEINLINE HRESULT IShellLinkDual2_get_ShowCommand(IShellLinkDual2* This,int *piShowCommand) {
3984     return This->lpVtbl->get_ShowCommand(This,piShowCommand);
3985 }
3986 static FORCEINLINE HRESULT IShellLinkDual2_put_ShowCommand(IShellLinkDual2* This,int iShowCommand) {
3987     return This->lpVtbl->put_ShowCommand(This,iShowCommand);
3988 }
3989 static FORCEINLINE HRESULT IShellLinkDual2_Resolve(IShellLinkDual2* This,int fFlags) {
3990     return This->lpVtbl->Resolve(This,fFlags);
3991 }
3992 static FORCEINLINE HRESULT IShellLinkDual2_GetIconLocation(IShellLinkDual2* This,BSTR *pbs,int *piIcon) {
3993     return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
3994 }
3995 static FORCEINLINE HRESULT IShellLinkDual2_SetIconLocation(IShellLinkDual2* This,BSTR bs,int iIcon) {
3996     return This->lpVtbl->SetIconLocation(This,bs,iIcon);
3997 }
3998 static FORCEINLINE HRESULT IShellLinkDual2_Save(IShellLinkDual2* This,VARIANT vWhere) {
3999     return This->lpVtbl->Save(This,vWhere);
4000 }
4001 /*** IShellLinkDual2 methods ***/
4002 static 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 
4010 HRESULT STDMETHODCALLTYPE IShellLinkDual2_get_Target_Proxy(
4011     IShellLinkDual2* This,
4012     FolderItem **ppfi);
4013 void __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 
4025 DEFINE_GUID(CLSID_ShellLinkObject, 0x11219420, 0x1768, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
4026 
4027 #ifdef __cplusplus
4028 class 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 
4040 DEFINE_GUID(IID_IShellFolderViewDual, 0xe7a1af80, 0x4d96, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
4041 #if defined(__cplusplus) && !defined(CINTERFACE)
4042 MIDL_INTERFACE("e7a1af80-4d96-11cf-960c-0080c7f4ee85")
4043 IShellFolderViewDual : 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
4081 typedef 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;
4169 interface 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 ***/
4196 static FORCEINLINE HRESULT IShellFolderViewDual_QueryInterface(IShellFolderViewDual* This,REFIID riid,void **ppvObject) {
4197     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4198 }
4199 static FORCEINLINE ULONG IShellFolderViewDual_AddRef(IShellFolderViewDual* This) {
4200     return This->lpVtbl->AddRef(This);
4201 }
4202 static FORCEINLINE ULONG IShellFolderViewDual_Release(IShellFolderViewDual* This) {
4203     return This->lpVtbl->Release(This);
4204 }
4205 /*** IDispatch methods ***/
4206 static FORCEINLINE HRESULT IShellFolderViewDual_GetTypeInfoCount(IShellFolderViewDual* This,UINT *pctinfo) {
4207     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4208 }
4209 static FORCEINLINE HRESULT IShellFolderViewDual_GetTypeInfo(IShellFolderViewDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4210     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4211 }
4212 static 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 }
4215 static 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 ***/
4219 static FORCEINLINE HRESULT IShellFolderViewDual_get_Application(IShellFolderViewDual* This,IDispatch **ppid) {
4220     return This->lpVtbl->get_Application(This,ppid);
4221 }
4222 static FORCEINLINE HRESULT IShellFolderViewDual_get_Parent(IShellFolderViewDual* This,IDispatch **ppid) {
4223     return This->lpVtbl->get_Parent(This,ppid);
4224 }
4225 static FORCEINLINE HRESULT IShellFolderViewDual_get_Folder(IShellFolderViewDual* This,Folder **ppid) {
4226     return This->lpVtbl->get_Folder(This,ppid);
4227 }
4228 static FORCEINLINE HRESULT IShellFolderViewDual_SelectedItems(IShellFolderViewDual* This,FolderItems **ppid) {
4229     return This->lpVtbl->SelectedItems(This,ppid);
4230 }
4231 static FORCEINLINE HRESULT IShellFolderViewDual_get_FocusedItem(IShellFolderViewDual* This,FolderItem **ppid) {
4232     return This->lpVtbl->get_FocusedItem(This,ppid);
4233 }
4234 static FORCEINLINE HRESULT IShellFolderViewDual_SelectItem(IShellFolderViewDual* This,VARIANT *pvfi,int dwFlags) {
4235     return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
4236 }
4237 static 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 }
4240 static FORCEINLINE HRESULT IShellFolderViewDual_get_Script(IShellFolderViewDual* This,IDispatch **ppDisp) {
4241     return This->lpVtbl->get_Script(This,ppDisp);
4242 }
4243 static 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 
4251 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Application_Proxy(
4252     IShellFolderViewDual* This,
4253     IDispatch **ppid);
4254 void __RPC_STUB IShellFolderViewDual_get_Application_Stub(
4255     IRpcStubBuffer* This,
4256     IRpcChannelBuffer* pRpcChannelBuffer,
4257     PRPC_MESSAGE pRpcMessage,
4258     DWORD* pdwStubPhase);
4259 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Parent_Proxy(
4260     IShellFolderViewDual* This,
4261     IDispatch **ppid);
4262 void __RPC_STUB IShellFolderViewDual_get_Parent_Stub(
4263     IRpcStubBuffer* This,
4264     IRpcChannelBuffer* pRpcChannelBuffer,
4265     PRPC_MESSAGE pRpcMessage,
4266     DWORD* pdwStubPhase);
4267 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Folder_Proxy(
4268     IShellFolderViewDual* This,
4269     Folder **ppid);
4270 void __RPC_STUB IShellFolderViewDual_get_Folder_Stub(
4271     IRpcStubBuffer* This,
4272     IRpcChannelBuffer* pRpcChannelBuffer,
4273     PRPC_MESSAGE pRpcMessage,
4274     DWORD* pdwStubPhase);
4275 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectedItems_Proxy(
4276     IShellFolderViewDual* This,
4277     FolderItems **ppid);
4278 void __RPC_STUB IShellFolderViewDual_SelectedItems_Stub(
4279     IRpcStubBuffer* This,
4280     IRpcChannelBuffer* pRpcChannelBuffer,
4281     PRPC_MESSAGE pRpcMessage,
4282     DWORD* pdwStubPhase);
4283 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_FocusedItem_Proxy(
4284     IShellFolderViewDual* This,
4285     FolderItem **ppid);
4286 void __RPC_STUB IShellFolderViewDual_get_FocusedItem_Stub(
4287     IRpcStubBuffer* This,
4288     IRpcChannelBuffer* pRpcChannelBuffer,
4289     PRPC_MESSAGE pRpcMessage,
4290     DWORD* pdwStubPhase);
4291 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectItem_Proxy(
4292     IShellFolderViewDual* This,
4293     VARIANT *pvfi,
4294     int dwFlags);
4295 void __RPC_STUB IShellFolderViewDual_SelectItem_Stub(
4296     IRpcStubBuffer* This,
4297     IRpcChannelBuffer* pRpcChannelBuffer,
4298     PRPC_MESSAGE pRpcMessage,
4299     DWORD* pdwStubPhase);
4300 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_PopupItemMenu_Proxy(
4301     IShellFolderViewDual* This,
4302     FolderItem *pfi,
4303     VARIANT vx,
4304     VARIANT vy,
4305     BSTR *pbs);
4306 void __RPC_STUB IShellFolderViewDual_PopupItemMenu_Stub(
4307     IRpcStubBuffer* This,
4308     IRpcChannelBuffer* pRpcChannelBuffer,
4309     PRPC_MESSAGE pRpcMessage,
4310     DWORD* pdwStubPhase);
4311 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Script_Proxy(
4312     IShellFolderViewDual* This,
4313     IDispatch **ppDisp);
4314 void __RPC_STUB IShellFolderViewDual_get_Script_Stub(
4315     IRpcStubBuffer* This,
4316     IRpcChannelBuffer* pRpcChannelBuffer,
4317     PRPC_MESSAGE pRpcMessage,
4318     DWORD* pdwStubPhase);
4319 HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_ViewOptions_Proxy(
4320     IShellFolderViewDual* This,
4321     LONG *plViewOptions);
4322 void __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 
4336 DEFINE_GUID(IID_IShellFolderViewDual2, 0x31c147b6, 0x0ade, 0x4a3c, 0xb5,0x14, 0xdd,0xf9,0x32,0xef,0x6d,0x17);
4337 #if defined(__cplusplus) && !defined(CINTERFACE)
4338 MIDL_INTERFACE("31c147b6-0ade-4a3c-b514-ddf932ef6d17")
4339 IShellFolderViewDual2 : 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
4355 typedef 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;
4456 interface 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 ***/
4487 static FORCEINLINE HRESULT IShellFolderViewDual2_QueryInterface(IShellFolderViewDual2* This,REFIID riid,void **ppvObject) {
4488     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4489 }
4490 static FORCEINLINE ULONG IShellFolderViewDual2_AddRef(IShellFolderViewDual2* This) {
4491     return This->lpVtbl->AddRef(This);
4492 }
4493 static FORCEINLINE ULONG IShellFolderViewDual2_Release(IShellFolderViewDual2* This) {
4494     return This->lpVtbl->Release(This);
4495 }
4496 /*** IDispatch methods ***/
4497 static FORCEINLINE HRESULT IShellFolderViewDual2_GetTypeInfoCount(IShellFolderViewDual2* This,UINT *pctinfo) {
4498     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4499 }
4500 static FORCEINLINE HRESULT IShellFolderViewDual2_GetTypeInfo(IShellFolderViewDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4501     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4502 }
4503 static 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 }
4506 static 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 ***/
4510 static FORCEINLINE HRESULT IShellFolderViewDual2_get_Application(IShellFolderViewDual2* This,IDispatch **ppid) {
4511     return This->lpVtbl->get_Application(This,ppid);
4512 }
4513 static FORCEINLINE HRESULT IShellFolderViewDual2_get_Parent(IShellFolderViewDual2* This,IDispatch **ppid) {
4514     return This->lpVtbl->get_Parent(This,ppid);
4515 }
4516 static FORCEINLINE HRESULT IShellFolderViewDual2_get_Folder(IShellFolderViewDual2* This,Folder **ppid) {
4517     return This->lpVtbl->get_Folder(This,ppid);
4518 }
4519 static FORCEINLINE HRESULT IShellFolderViewDual2_SelectedItems(IShellFolderViewDual2* This,FolderItems **ppid) {
4520     return This->lpVtbl->SelectedItems(This,ppid);
4521 }
4522 static FORCEINLINE HRESULT IShellFolderViewDual2_get_FocusedItem(IShellFolderViewDual2* This,FolderItem **ppid) {
4523     return This->lpVtbl->get_FocusedItem(This,ppid);
4524 }
4525 static FORCEINLINE HRESULT IShellFolderViewDual2_SelectItem(IShellFolderViewDual2* This,VARIANT *pvfi,int dwFlags) {
4526     return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
4527 }
4528 static 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 }
4531 static FORCEINLINE HRESULT IShellFolderViewDual2_get_Script(IShellFolderViewDual2* This,IDispatch **ppDisp) {
4532     return This->lpVtbl->get_Script(This,ppDisp);
4533 }
4534 static FORCEINLINE HRESULT IShellFolderViewDual2_get_ViewOptions(IShellFolderViewDual2* This,LONG *plViewOptions) {
4535     return This->lpVtbl->get_ViewOptions(This,plViewOptions);
4536 }
4537 /*** IShellFolderViewDual2 methods ***/
4538 static FORCEINLINE HRESULT IShellFolderViewDual2_get_CurrentViewMode(IShellFolderViewDual2* This,UINT *pViewMode) {
4539     return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
4540 }
4541 static FORCEINLINE HRESULT IShellFolderViewDual2_put_CurrentViewMode(IShellFolderViewDual2* This,UINT ViewMode) {
4542     return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
4543 }
4544 static FORCEINLINE HRESULT IShellFolderViewDual2_SelectItemRelative(IShellFolderViewDual2* This,int iRelative) {
4545     return This->lpVtbl->SelectItemRelative(This,iRelative);
4546 }
4547 #endif
4548 #endif
4549 
4550 #endif
4551 
4552 HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_get_CurrentViewMode_Proxy(
4553     IShellFolderViewDual2* This,
4554     UINT *pViewMode);
4555 void __RPC_STUB IShellFolderViewDual2_get_CurrentViewMode_Stub(
4556     IRpcStubBuffer* This,
4557     IRpcChannelBuffer* pRpcChannelBuffer,
4558     PRPC_MESSAGE pRpcMessage,
4559     DWORD* pdwStubPhase);
4560 HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_put_CurrentViewMode_Proxy(
4561     IShellFolderViewDual2* This,
4562     UINT ViewMode);
4563 void __RPC_STUB IShellFolderViewDual2_put_CurrentViewMode_Stub(
4564     IRpcStubBuffer* This,
4565     IRpcChannelBuffer* pRpcChannelBuffer,
4566     PRPC_MESSAGE pRpcMessage,
4567     DWORD* pdwStubPhase);
4568 HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_SelectItemRelative_Proxy(
4569     IShellFolderViewDual2* This,
4570     int iRelative);
4571 void __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 
4585 DEFINE_GUID(IID_IShellFolderViewDual3, 0x29ec8e6c, 0x46d3, 0x411f, 0xba,0xaa, 0x61,0x1a,0x6c,0x9c,0xac,0x66);
4586 #if defined(__cplusplus) && !defined(CINTERFACE)
4587 MIDL_INTERFACE("29ec8e6c-46d3-411f-baaa-611a6c9cac66")
4588 IShellFolderViewDual3 : 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
4622 typedef 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;
4760 interface 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 ***/
4801 static FORCEINLINE HRESULT IShellFolderViewDual3_QueryInterface(IShellFolderViewDual3* This,REFIID riid,void **ppvObject) {
4802     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4803 }
4804 static FORCEINLINE ULONG IShellFolderViewDual3_AddRef(IShellFolderViewDual3* This) {
4805     return This->lpVtbl->AddRef(This);
4806 }
4807 static FORCEINLINE ULONG IShellFolderViewDual3_Release(IShellFolderViewDual3* This) {
4808     return This->lpVtbl->Release(This);
4809 }
4810 /*** IDispatch methods ***/
4811 static FORCEINLINE HRESULT IShellFolderViewDual3_GetTypeInfoCount(IShellFolderViewDual3* This,UINT *pctinfo) {
4812     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
4813 }
4814 static FORCEINLINE HRESULT IShellFolderViewDual3_GetTypeInfo(IShellFolderViewDual3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
4815     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
4816 }
4817 static 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 }
4820 static 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 ***/
4824 static FORCEINLINE HRESULT IShellFolderViewDual3_get_Application(IShellFolderViewDual3* This,IDispatch **ppid) {
4825     return This->lpVtbl->get_Application(This,ppid);
4826 }
4827 static FORCEINLINE HRESULT IShellFolderViewDual3_get_Parent(IShellFolderViewDual3* This,IDispatch **ppid) {
4828     return This->lpVtbl->get_Parent(This,ppid);
4829 }
4830 static FORCEINLINE HRESULT IShellFolderViewDual3_get_Folder(IShellFolderViewDual3* This,Folder **ppid) {
4831     return This->lpVtbl->get_Folder(This,ppid);
4832 }
4833 static FORCEINLINE HRESULT IShellFolderViewDual3_SelectedItems(IShellFolderViewDual3* This,FolderItems **ppid) {
4834     return This->lpVtbl->SelectedItems(This,ppid);
4835 }
4836 static FORCEINLINE HRESULT IShellFolderViewDual3_get_FocusedItem(IShellFolderViewDual3* This,FolderItem **ppid) {
4837     return This->lpVtbl->get_FocusedItem(This,ppid);
4838 }
4839 static FORCEINLINE HRESULT IShellFolderViewDual3_SelectItem(IShellFolderViewDual3* This,VARIANT *pvfi,int dwFlags) {
4840     return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
4841 }
4842 static 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 }
4845 static FORCEINLINE HRESULT IShellFolderViewDual3_get_Script(IShellFolderViewDual3* This,IDispatch **ppDisp) {
4846     return This->lpVtbl->get_Script(This,ppDisp);
4847 }
4848 static FORCEINLINE HRESULT IShellFolderViewDual3_get_ViewOptions(IShellFolderViewDual3* This,LONG *plViewOptions) {
4849     return This->lpVtbl->get_ViewOptions(This,plViewOptions);
4850 }
4851 /*** IShellFolderViewDual2 methods ***/
4852 static FORCEINLINE HRESULT IShellFolderViewDual3_get_CurrentViewMode(IShellFolderViewDual3* This,UINT *pViewMode) {
4853     return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
4854 }
4855 static FORCEINLINE HRESULT IShellFolderViewDual3_put_CurrentViewMode(IShellFolderViewDual3* This,UINT ViewMode) {
4856     return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
4857 }
4858 static FORCEINLINE HRESULT IShellFolderViewDual3_SelectItemRelative(IShellFolderViewDual3* This,int iRelative) {
4859     return This->lpVtbl->SelectItemRelative(This,iRelative);
4860 }
4861 /*** IShellFolderViewDual3 methods ***/
4862 static FORCEINLINE HRESULT IShellFolderViewDual3_get_GroupBy(IShellFolderViewDual3* This,BSTR *pbstrGroupBy) {
4863     return This->lpVtbl->get_GroupBy(This,pbstrGroupBy);
4864 }
4865 static FORCEINLINE HRESULT IShellFolderViewDual3_put_GroupBy(IShellFolderViewDual3* This,BSTR bstrGroupBy) {
4866     return This->lpVtbl->put_GroupBy(This,bstrGroupBy);
4867 }
4868 static FORCEINLINE HRESULT IShellFolderViewDual3_get_FolderFlags(IShellFolderViewDual3* This,DWORD *pdwFlags) {
4869     return This->lpVtbl->get_FolderFlags(This,pdwFlags);
4870 }
4871 static FORCEINLINE HRESULT IShellFolderViewDual3_put_FolderFlags(IShellFolderViewDual3* This,DWORD dwFlags) {
4872     return This->lpVtbl->put_FolderFlags(This,dwFlags);
4873 }
4874 static FORCEINLINE HRESULT IShellFolderViewDual3_get_SortColumns(IShellFolderViewDual3* This,BSTR *pbstrSortColumns) {
4875     return This->lpVtbl->get_SortColumns(This,pbstrSortColumns);
4876 }
4877 static FORCEINLINE HRESULT IShellFolderViewDual3_put_SortColumns(IShellFolderViewDual3* This,BSTR bstrSortColumns) {
4878     return This->lpVtbl->put_SortColumns(This,bstrSortColumns);
4879 }
4880 static FORCEINLINE HRESULT IShellFolderViewDual3_put_IconSize(IShellFolderViewDual3* This,int iIconSize) {
4881     return This->lpVtbl->put_IconSize(This,iIconSize);
4882 }
4883 static FORCEINLINE HRESULT IShellFolderViewDual3_get_IconSize(IShellFolderViewDual3* This,int *piIconSize) {
4884     return This->lpVtbl->get_IconSize(This,piIconSize);
4885 }
4886 static FORCEINLINE HRESULT IShellFolderViewDual3_FilterView(IShellFolderViewDual3* This,BSTR bstrFilterText) {
4887     return This->lpVtbl->FilterView(This,bstrFilterText);
4888 }
4889 #endif
4890 #endif
4891 
4892 #endif
4893 
4894 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_GroupBy_Proxy(
4895     IShellFolderViewDual3* This,
4896     BSTR *pbstrGroupBy);
4897 void __RPC_STUB IShellFolderViewDual3_get_GroupBy_Stub(
4898     IRpcStubBuffer* This,
4899     IRpcChannelBuffer* pRpcChannelBuffer,
4900     PRPC_MESSAGE pRpcMessage,
4901     DWORD* pdwStubPhase);
4902 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_GroupBy_Proxy(
4903     IShellFolderViewDual3* This,
4904     BSTR bstrGroupBy);
4905 void __RPC_STUB IShellFolderViewDual3_put_GroupBy_Stub(
4906     IRpcStubBuffer* This,
4907     IRpcChannelBuffer* pRpcChannelBuffer,
4908     PRPC_MESSAGE pRpcMessage,
4909     DWORD* pdwStubPhase);
4910 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_FolderFlags_Proxy(
4911     IShellFolderViewDual3* This,
4912     DWORD *pdwFlags);
4913 void __RPC_STUB IShellFolderViewDual3_get_FolderFlags_Stub(
4914     IRpcStubBuffer* This,
4915     IRpcChannelBuffer* pRpcChannelBuffer,
4916     PRPC_MESSAGE pRpcMessage,
4917     DWORD* pdwStubPhase);
4918 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_FolderFlags_Proxy(
4919     IShellFolderViewDual3* This,
4920     DWORD dwFlags);
4921 void __RPC_STUB IShellFolderViewDual3_put_FolderFlags_Stub(
4922     IRpcStubBuffer* This,
4923     IRpcChannelBuffer* pRpcChannelBuffer,
4924     PRPC_MESSAGE pRpcMessage,
4925     DWORD* pdwStubPhase);
4926 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_SortColumns_Proxy(
4927     IShellFolderViewDual3* This,
4928     BSTR *pbstrSortColumns);
4929 void __RPC_STUB IShellFolderViewDual3_get_SortColumns_Stub(
4930     IRpcStubBuffer* This,
4931     IRpcChannelBuffer* pRpcChannelBuffer,
4932     PRPC_MESSAGE pRpcMessage,
4933     DWORD* pdwStubPhase);
4934 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_SortColumns_Proxy(
4935     IShellFolderViewDual3* This,
4936     BSTR bstrSortColumns);
4937 void __RPC_STUB IShellFolderViewDual3_put_SortColumns_Stub(
4938     IRpcStubBuffer* This,
4939     IRpcChannelBuffer* pRpcChannelBuffer,
4940     PRPC_MESSAGE pRpcMessage,
4941     DWORD* pdwStubPhase);
4942 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_IconSize_Proxy(
4943     IShellFolderViewDual3* This,
4944     int iIconSize);
4945 void __RPC_STUB IShellFolderViewDual3_put_IconSize_Stub(
4946     IRpcStubBuffer* This,
4947     IRpcChannelBuffer* pRpcChannelBuffer,
4948     PRPC_MESSAGE pRpcMessage,
4949     DWORD* pdwStubPhase);
4950 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_IconSize_Proxy(
4951     IShellFolderViewDual3* This,
4952     int *piIconSize);
4953 void __RPC_STUB IShellFolderViewDual3_get_IconSize_Stub(
4954     IRpcStubBuffer* This,
4955     IRpcChannelBuffer* pRpcChannelBuffer,
4956     PRPC_MESSAGE pRpcMessage,
4957     DWORD* pdwStubPhase);
4958 HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_FilterView_Proxy(
4959     IShellFolderViewDual3* This,
4960     BSTR bstrFilterText);
4961 void __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 
4973 DEFINE_GUID(CLSID_ShellFolderView, 0x62112aa1, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d);
4974 
4975 #ifdef __cplusplus
4976 class 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 
4982 typedef 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 
4997 DEFINE_GUID(IID_IShellDispatch, 0xd8f015c0, 0xc278, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);
4998 #if defined(__cplusplus) && !defined(CINTERFACE)
4999 MIDL_INTERFACE("d8f015c0-c278-11ce-a49e-444553540000")
5000 IShellDispatch : 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
5081 typedef 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;
5211 interface 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 ***/
5252 static FORCEINLINE HRESULT IShellDispatch_QueryInterface(IShellDispatch* This,REFIID riid,void **ppvObject) {
5253     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5254 }
5255 static FORCEINLINE ULONG IShellDispatch_AddRef(IShellDispatch* This) {
5256     return This->lpVtbl->AddRef(This);
5257 }
5258 static FORCEINLINE ULONG IShellDispatch_Release(IShellDispatch* This) {
5259     return This->lpVtbl->Release(This);
5260 }
5261 /*** IDispatch methods ***/
5262 static FORCEINLINE HRESULT IShellDispatch_GetTypeInfoCount(IShellDispatch* This,UINT *pctinfo) {
5263     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5264 }
5265 static FORCEINLINE HRESULT IShellDispatch_GetTypeInfo(IShellDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5266     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5267 }
5268 static 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 }
5271 static 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 ***/
5275 static FORCEINLINE HRESULT IShellDispatch_get_Application(IShellDispatch* This,IDispatch **ppid) {
5276     return This->lpVtbl->get_Application(This,ppid);
5277 }
5278 static FORCEINLINE HRESULT IShellDispatch_get_Parent(IShellDispatch* This,IDispatch **ppid) {
5279     return This->lpVtbl->get_Parent(This,ppid);
5280 }
5281 static FORCEINLINE HRESULT IShellDispatch_NameSpace(IShellDispatch* This,VARIANT vDir,Folder **ppsdf) {
5282     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
5283 }
5284 static 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 }
5287 static FORCEINLINE HRESULT IShellDispatch_Windows(IShellDispatch* This,IDispatch **ppid) {
5288     return This->lpVtbl->Windows(This,ppid);
5289 }
5290 static FORCEINLINE HRESULT IShellDispatch_Open(IShellDispatch* This,VARIANT vDir) {
5291     return This->lpVtbl->Open(This,vDir);
5292 }
5293 static FORCEINLINE HRESULT IShellDispatch_Explore(IShellDispatch* This,VARIANT vDir) {
5294     return This->lpVtbl->Explore(This,vDir);
5295 }
5296 static FORCEINLINE HRESULT IShellDispatch_MinimizeAll(IShellDispatch* This) {
5297     return This->lpVtbl->MinimizeAll(This);
5298 }
5299 static FORCEINLINE HRESULT IShellDispatch_UndoMinimizeALL(IShellDispatch* This) {
5300     return This->lpVtbl->UndoMinimizeALL(This);
5301 }
5302 static FORCEINLINE HRESULT IShellDispatch_FileRun(IShellDispatch* This) {
5303     return This->lpVtbl->FileRun(This);
5304 }
5305 static FORCEINLINE HRESULT IShellDispatch_CascadeWindows(IShellDispatch* This) {
5306     return This->lpVtbl->CascadeWindows(This);
5307 }
5308 static FORCEINLINE HRESULT IShellDispatch_TileVertically(IShellDispatch* This) {
5309     return This->lpVtbl->TileVertically(This);
5310 }
5311 static FORCEINLINE HRESULT IShellDispatch_TileHorizontally(IShellDispatch* This) {
5312     return This->lpVtbl->TileHorizontally(This);
5313 }
5314 static FORCEINLINE HRESULT IShellDispatch_ShutdownWindows(IShellDispatch* This) {
5315     return This->lpVtbl->ShutdownWindows(This);
5316 }
5317 static FORCEINLINE HRESULT IShellDispatch_Suspend(IShellDispatch* This) {
5318     return This->lpVtbl->Suspend(This);
5319 }
5320 static FORCEINLINE HRESULT IShellDispatch_EjectPC(IShellDispatch* This) {
5321     return This->lpVtbl->EjectPC(This);
5322 }
5323 static FORCEINLINE HRESULT IShellDispatch_SetTime(IShellDispatch* This) {
5324     return This->lpVtbl->SetTime(This);
5325 }
5326 static FORCEINLINE HRESULT IShellDispatch_TrayProperties(IShellDispatch* This) {
5327     return This->lpVtbl->TrayProperties(This);
5328 }
5329 static FORCEINLINE HRESULT IShellDispatch_Help(IShellDispatch* This) {
5330     return This->lpVtbl->Help(This);
5331 }
5332 static FORCEINLINE HRESULT IShellDispatch_FindFiles(IShellDispatch* This) {
5333     return This->lpVtbl->FindFiles(This);
5334 }
5335 static FORCEINLINE HRESULT IShellDispatch_FindComputer(IShellDispatch* This) {
5336     return This->lpVtbl->FindComputer(This);
5337 }
5338 static FORCEINLINE HRESULT IShellDispatch_RefreshMenu(IShellDispatch* This) {
5339     return This->lpVtbl->RefreshMenu(This);
5340 }
5341 static FORCEINLINE HRESULT IShellDispatch_ControlPanelItem(IShellDispatch* This,BSTR bstrDir) {
5342     return This->lpVtbl->ControlPanelItem(This,bstrDir);
5343 }
5344 #endif
5345 #endif
5346 
5347 #endif
5348 
5349 HRESULT STDMETHODCALLTYPE IShellDispatch_get_Application_Proxy(
5350     IShellDispatch* This,
5351     IDispatch **ppid);
5352 void __RPC_STUB IShellDispatch_get_Application_Stub(
5353     IRpcStubBuffer* This,
5354     IRpcChannelBuffer* pRpcChannelBuffer,
5355     PRPC_MESSAGE pRpcMessage,
5356     DWORD* pdwStubPhase);
5357 HRESULT STDMETHODCALLTYPE IShellDispatch_get_Parent_Proxy(
5358     IShellDispatch* This,
5359     IDispatch **ppid);
5360 void __RPC_STUB IShellDispatch_get_Parent_Stub(
5361     IRpcStubBuffer* This,
5362     IRpcChannelBuffer* pRpcChannelBuffer,
5363     PRPC_MESSAGE pRpcMessage,
5364     DWORD* pdwStubPhase);
5365 HRESULT STDMETHODCALLTYPE IShellDispatch_NameSpace_Proxy(
5366     IShellDispatch* This,
5367     VARIANT vDir,
5368     Folder **ppsdf);
5369 void __RPC_STUB IShellDispatch_NameSpace_Stub(
5370     IRpcStubBuffer* This,
5371     IRpcChannelBuffer* pRpcChannelBuffer,
5372     PRPC_MESSAGE pRpcMessage,
5373     DWORD* pdwStubPhase);
5374 HRESULT STDMETHODCALLTYPE IShellDispatch_BrowseForFolder_Proxy(
5375     IShellDispatch* This,
5376     LONG Hwnd,
5377     BSTR Title,
5378     LONG Options,
5379     VARIANT RootFolder,
5380     Folder **ppsdf);
5381 void __RPC_STUB IShellDispatch_BrowseForFolder_Stub(
5382     IRpcStubBuffer* This,
5383     IRpcChannelBuffer* pRpcChannelBuffer,
5384     PRPC_MESSAGE pRpcMessage,
5385     DWORD* pdwStubPhase);
5386 HRESULT STDMETHODCALLTYPE IShellDispatch_Windows_Proxy(
5387     IShellDispatch* This,
5388     IDispatch **ppid);
5389 void __RPC_STUB IShellDispatch_Windows_Stub(
5390     IRpcStubBuffer* This,
5391     IRpcChannelBuffer* pRpcChannelBuffer,
5392     PRPC_MESSAGE pRpcMessage,
5393     DWORD* pdwStubPhase);
5394 HRESULT STDMETHODCALLTYPE IShellDispatch_Open_Proxy(
5395     IShellDispatch* This,
5396     VARIANT vDir);
5397 void __RPC_STUB IShellDispatch_Open_Stub(
5398     IRpcStubBuffer* This,
5399     IRpcChannelBuffer* pRpcChannelBuffer,
5400     PRPC_MESSAGE pRpcMessage,
5401     DWORD* pdwStubPhase);
5402 HRESULT STDMETHODCALLTYPE IShellDispatch_Explore_Proxy(
5403     IShellDispatch* This,
5404     VARIANT vDir);
5405 void __RPC_STUB IShellDispatch_Explore_Stub(
5406     IRpcStubBuffer* This,
5407     IRpcChannelBuffer* pRpcChannelBuffer,
5408     PRPC_MESSAGE pRpcMessage,
5409     DWORD* pdwStubPhase);
5410 HRESULT STDMETHODCALLTYPE IShellDispatch_MinimizeAll_Proxy(
5411     IShellDispatch* This);
5412 void __RPC_STUB IShellDispatch_MinimizeAll_Stub(
5413     IRpcStubBuffer* This,
5414     IRpcChannelBuffer* pRpcChannelBuffer,
5415     PRPC_MESSAGE pRpcMessage,
5416     DWORD* pdwStubPhase);
5417 HRESULT STDMETHODCALLTYPE IShellDispatch_UndoMinimizeALL_Proxy(
5418     IShellDispatch* This);
5419 void __RPC_STUB IShellDispatch_UndoMinimizeALL_Stub(
5420     IRpcStubBuffer* This,
5421     IRpcChannelBuffer* pRpcChannelBuffer,
5422     PRPC_MESSAGE pRpcMessage,
5423     DWORD* pdwStubPhase);
5424 HRESULT STDMETHODCALLTYPE IShellDispatch_FileRun_Proxy(
5425     IShellDispatch* This);
5426 void __RPC_STUB IShellDispatch_FileRun_Stub(
5427     IRpcStubBuffer* This,
5428     IRpcChannelBuffer* pRpcChannelBuffer,
5429     PRPC_MESSAGE pRpcMessage,
5430     DWORD* pdwStubPhase);
5431 HRESULT STDMETHODCALLTYPE IShellDispatch_CascadeWindows_Proxy(
5432     IShellDispatch* This);
5433 void __RPC_STUB IShellDispatch_CascadeWindows_Stub(
5434     IRpcStubBuffer* This,
5435     IRpcChannelBuffer* pRpcChannelBuffer,
5436     PRPC_MESSAGE pRpcMessage,
5437     DWORD* pdwStubPhase);
5438 HRESULT STDMETHODCALLTYPE IShellDispatch_TileVertically_Proxy(
5439     IShellDispatch* This);
5440 void __RPC_STUB IShellDispatch_TileVertically_Stub(
5441     IRpcStubBuffer* This,
5442     IRpcChannelBuffer* pRpcChannelBuffer,
5443     PRPC_MESSAGE pRpcMessage,
5444     DWORD* pdwStubPhase);
5445 HRESULT STDMETHODCALLTYPE IShellDispatch_TileHorizontally_Proxy(
5446     IShellDispatch* This);
5447 void __RPC_STUB IShellDispatch_TileHorizontally_Stub(
5448     IRpcStubBuffer* This,
5449     IRpcChannelBuffer* pRpcChannelBuffer,
5450     PRPC_MESSAGE pRpcMessage,
5451     DWORD* pdwStubPhase);
5452 HRESULT STDMETHODCALLTYPE IShellDispatch_ShutdownWindows_Proxy(
5453     IShellDispatch* This);
5454 void __RPC_STUB IShellDispatch_ShutdownWindows_Stub(
5455     IRpcStubBuffer* This,
5456     IRpcChannelBuffer* pRpcChannelBuffer,
5457     PRPC_MESSAGE pRpcMessage,
5458     DWORD* pdwStubPhase);
5459 HRESULT STDMETHODCALLTYPE IShellDispatch_Suspend_Proxy(
5460     IShellDispatch* This);
5461 void __RPC_STUB IShellDispatch_Suspend_Stub(
5462     IRpcStubBuffer* This,
5463     IRpcChannelBuffer* pRpcChannelBuffer,
5464     PRPC_MESSAGE pRpcMessage,
5465     DWORD* pdwStubPhase);
5466 HRESULT STDMETHODCALLTYPE IShellDispatch_EjectPC_Proxy(
5467     IShellDispatch* This);
5468 void __RPC_STUB IShellDispatch_EjectPC_Stub(
5469     IRpcStubBuffer* This,
5470     IRpcChannelBuffer* pRpcChannelBuffer,
5471     PRPC_MESSAGE pRpcMessage,
5472     DWORD* pdwStubPhase);
5473 HRESULT STDMETHODCALLTYPE IShellDispatch_SetTime_Proxy(
5474     IShellDispatch* This);
5475 void __RPC_STUB IShellDispatch_SetTime_Stub(
5476     IRpcStubBuffer* This,
5477     IRpcChannelBuffer* pRpcChannelBuffer,
5478     PRPC_MESSAGE pRpcMessage,
5479     DWORD* pdwStubPhase);
5480 HRESULT STDMETHODCALLTYPE IShellDispatch_TrayProperties_Proxy(
5481     IShellDispatch* This);
5482 void __RPC_STUB IShellDispatch_TrayProperties_Stub(
5483     IRpcStubBuffer* This,
5484     IRpcChannelBuffer* pRpcChannelBuffer,
5485     PRPC_MESSAGE pRpcMessage,
5486     DWORD* pdwStubPhase);
5487 HRESULT STDMETHODCALLTYPE IShellDispatch_Help_Proxy(
5488     IShellDispatch* This);
5489 void __RPC_STUB IShellDispatch_Help_Stub(
5490     IRpcStubBuffer* This,
5491     IRpcChannelBuffer* pRpcChannelBuffer,
5492     PRPC_MESSAGE pRpcMessage,
5493     DWORD* pdwStubPhase);
5494 HRESULT STDMETHODCALLTYPE IShellDispatch_FindFiles_Proxy(
5495     IShellDispatch* This);
5496 void __RPC_STUB IShellDispatch_FindFiles_Stub(
5497     IRpcStubBuffer* This,
5498     IRpcChannelBuffer* pRpcChannelBuffer,
5499     PRPC_MESSAGE pRpcMessage,
5500     DWORD* pdwStubPhase);
5501 HRESULT STDMETHODCALLTYPE IShellDispatch_FindComputer_Proxy(
5502     IShellDispatch* This);
5503 void __RPC_STUB IShellDispatch_FindComputer_Stub(
5504     IRpcStubBuffer* This,
5505     IRpcChannelBuffer* pRpcChannelBuffer,
5506     PRPC_MESSAGE pRpcMessage,
5507     DWORD* pdwStubPhase);
5508 HRESULT STDMETHODCALLTYPE IShellDispatch_RefreshMenu_Proxy(
5509     IShellDispatch* This);
5510 void __RPC_STUB IShellDispatch_RefreshMenu_Stub(
5511     IRpcStubBuffer* This,
5512     IRpcChannelBuffer* pRpcChannelBuffer,
5513     PRPC_MESSAGE pRpcMessage,
5514     DWORD* pdwStubPhase);
5515 HRESULT STDMETHODCALLTYPE IShellDispatch_ControlPanelItem_Proxy(
5516     IShellDispatch* This,
5517     BSTR bstrDir);
5518 void __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 
5532 DEFINE_GUID(IID_IShellDispatch2, 0xa4c6892c, 0x3ba9, 0x11d2, 0x9d,0xea, 0x00,0xc0,0x4f,0xb1,0x61,0x62);
5533 #if defined(__cplusplus) && !defined(CINTERFACE)
5534 MIDL_INTERFACE("a4c6892c-3ba9-11d2-9dea-00c04fb16162")
5535 IShellDispatch2 : 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
5586 typedef 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;
5770 interface 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 ***/
5821 static FORCEINLINE HRESULT IShellDispatch2_QueryInterface(IShellDispatch2* This,REFIID riid,void **ppvObject) {
5822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5823 }
5824 static FORCEINLINE ULONG IShellDispatch2_AddRef(IShellDispatch2* This) {
5825     return This->lpVtbl->AddRef(This);
5826 }
5827 static FORCEINLINE ULONG IShellDispatch2_Release(IShellDispatch2* This) {
5828     return This->lpVtbl->Release(This);
5829 }
5830 /*** IDispatch methods ***/
5831 static FORCEINLINE HRESULT IShellDispatch2_GetTypeInfoCount(IShellDispatch2* This,UINT *pctinfo) {
5832     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
5833 }
5834 static FORCEINLINE HRESULT IShellDispatch2_GetTypeInfo(IShellDispatch2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
5835     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
5836 }
5837 static 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 }
5840 static 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 ***/
5844 static FORCEINLINE HRESULT IShellDispatch2_get_Application(IShellDispatch2* This,IDispatch **ppid) {
5845     return This->lpVtbl->get_Application(This,ppid);
5846 }
5847 static FORCEINLINE HRESULT IShellDispatch2_get_Parent(IShellDispatch2* This,IDispatch **ppid) {
5848     return This->lpVtbl->get_Parent(This,ppid);
5849 }
5850 static FORCEINLINE HRESULT IShellDispatch2_NameSpace(IShellDispatch2* This,VARIANT vDir,Folder **ppsdf) {
5851     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
5852 }
5853 static 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 }
5856 static FORCEINLINE HRESULT IShellDispatch2_Windows(IShellDispatch2* This,IDispatch **ppid) {
5857     return This->lpVtbl->Windows(This,ppid);
5858 }
5859 static FORCEINLINE HRESULT IShellDispatch2_Open(IShellDispatch2* This,VARIANT vDir) {
5860     return This->lpVtbl->Open(This,vDir);
5861 }
5862 static FORCEINLINE HRESULT IShellDispatch2_Explore(IShellDispatch2* This,VARIANT vDir) {
5863     return This->lpVtbl->Explore(This,vDir);
5864 }
5865 static FORCEINLINE HRESULT IShellDispatch2_MinimizeAll(IShellDispatch2* This) {
5866     return This->lpVtbl->MinimizeAll(This);
5867 }
5868 static FORCEINLINE HRESULT IShellDispatch2_UndoMinimizeALL(IShellDispatch2* This) {
5869     return This->lpVtbl->UndoMinimizeALL(This);
5870 }
5871 static FORCEINLINE HRESULT IShellDispatch2_FileRun(IShellDispatch2* This) {
5872     return This->lpVtbl->FileRun(This);
5873 }
5874 static FORCEINLINE HRESULT IShellDispatch2_CascadeWindows(IShellDispatch2* This) {
5875     return This->lpVtbl->CascadeWindows(This);
5876 }
5877 static FORCEINLINE HRESULT IShellDispatch2_TileVertically(IShellDispatch2* This) {
5878     return This->lpVtbl->TileVertically(This);
5879 }
5880 static FORCEINLINE HRESULT IShellDispatch2_TileHorizontally(IShellDispatch2* This) {
5881     return This->lpVtbl->TileHorizontally(This);
5882 }
5883 static FORCEINLINE HRESULT IShellDispatch2_ShutdownWindows(IShellDispatch2* This) {
5884     return This->lpVtbl->ShutdownWindows(This);
5885 }
5886 static FORCEINLINE HRESULT IShellDispatch2_Suspend(IShellDispatch2* This) {
5887     return This->lpVtbl->Suspend(This);
5888 }
5889 static FORCEINLINE HRESULT IShellDispatch2_EjectPC(IShellDispatch2* This) {
5890     return This->lpVtbl->EjectPC(This);
5891 }
5892 static FORCEINLINE HRESULT IShellDispatch2_SetTime(IShellDispatch2* This) {
5893     return This->lpVtbl->SetTime(This);
5894 }
5895 static FORCEINLINE HRESULT IShellDispatch2_TrayProperties(IShellDispatch2* This) {
5896     return This->lpVtbl->TrayProperties(This);
5897 }
5898 static FORCEINLINE HRESULT IShellDispatch2_Help(IShellDispatch2* This) {
5899     return This->lpVtbl->Help(This);
5900 }
5901 static FORCEINLINE HRESULT IShellDispatch2_FindFiles(IShellDispatch2* This) {
5902     return This->lpVtbl->FindFiles(This);
5903 }
5904 static FORCEINLINE HRESULT IShellDispatch2_FindComputer(IShellDispatch2* This) {
5905     return This->lpVtbl->FindComputer(This);
5906 }
5907 static FORCEINLINE HRESULT IShellDispatch2_RefreshMenu(IShellDispatch2* This) {
5908     return This->lpVtbl->RefreshMenu(This);
5909 }
5910 static FORCEINLINE HRESULT IShellDispatch2_ControlPanelItem(IShellDispatch2* This,BSTR bstrDir) {
5911     return This->lpVtbl->ControlPanelItem(This,bstrDir);
5912 }
5913 /*** IShellDispatch2 methods ***/
5914 static FORCEINLINE HRESULT IShellDispatch2_IsRestricted(IShellDispatch2* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
5915     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
5916 }
5917 static 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 }
5920 static FORCEINLINE HRESULT IShellDispatch2_FindPrinter(IShellDispatch2* This,BSTR name,BSTR location,BSTR model) {
5921     return This->lpVtbl->FindPrinter(This,name,location,model);
5922 }
5923 static FORCEINLINE HRESULT IShellDispatch2_GetSystemInformation(IShellDispatch2* This,BSTR name,VARIANT *pv) {
5924     return This->lpVtbl->GetSystemInformation(This,name,pv);
5925 }
5926 static FORCEINLINE HRESULT IShellDispatch2_ServiceStart(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
5927     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
5928 }
5929 static FORCEINLINE HRESULT IShellDispatch2_ServiceStop(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
5930     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
5931 }
5932 static FORCEINLINE HRESULT IShellDispatch2_IsServiceRunning(IShellDispatch2* This,BSTR ServiceName,VARIANT *pRunning) {
5933     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
5934 }
5935 static FORCEINLINE HRESULT IShellDispatch2_CanStartStopService(IShellDispatch2* This,BSTR ServiceName,VARIANT *pCanStartStop) {
5936     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
5937 }
5938 static 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 
5946 HRESULT STDMETHODCALLTYPE IShellDispatch2_IsRestricted_Proxy(
5947     IShellDispatch2* This,
5948     BSTR Group,
5949     BSTR Restriction,
5950     LONG *plRestrictValue);
5951 void __RPC_STUB IShellDispatch2_IsRestricted_Stub(
5952     IRpcStubBuffer* This,
5953     IRpcChannelBuffer* pRpcChannelBuffer,
5954     PRPC_MESSAGE pRpcMessage,
5955     DWORD* pdwStubPhase);
5956 HRESULT STDMETHODCALLTYPE IShellDispatch2_ShellExecute_Proxy(
5957     IShellDispatch2* This,
5958     BSTR File,
5959     VARIANT vArgs,
5960     VARIANT vDir,
5961     VARIANT vOperation,
5962     VARIANT vShow);
5963 void __RPC_STUB IShellDispatch2_ShellExecute_Stub(
5964     IRpcStubBuffer* This,
5965     IRpcChannelBuffer* pRpcChannelBuffer,
5966     PRPC_MESSAGE pRpcMessage,
5967     DWORD* pdwStubPhase);
5968 HRESULT STDMETHODCALLTYPE IShellDispatch2_FindPrinter_Proxy(
5969     IShellDispatch2* This,
5970     BSTR name,
5971     BSTR location,
5972     BSTR model);
5973 void __RPC_STUB IShellDispatch2_FindPrinter_Stub(
5974     IRpcStubBuffer* This,
5975     IRpcChannelBuffer* pRpcChannelBuffer,
5976     PRPC_MESSAGE pRpcMessage,
5977     DWORD* pdwStubPhase);
5978 HRESULT STDMETHODCALLTYPE IShellDispatch2_GetSystemInformation_Proxy(
5979     IShellDispatch2* This,
5980     BSTR name,
5981     VARIANT *pv);
5982 void __RPC_STUB IShellDispatch2_GetSystemInformation_Stub(
5983     IRpcStubBuffer* This,
5984     IRpcChannelBuffer* pRpcChannelBuffer,
5985     PRPC_MESSAGE pRpcMessage,
5986     DWORD* pdwStubPhase);
5987 HRESULT STDMETHODCALLTYPE IShellDispatch2_ServiceStart_Proxy(
5988     IShellDispatch2* This,
5989     BSTR ServiceName,
5990     VARIANT Persistent,
5991     VARIANT *pSuccess);
5992 void __RPC_STUB IShellDispatch2_ServiceStart_Stub(
5993     IRpcStubBuffer* This,
5994     IRpcChannelBuffer* pRpcChannelBuffer,
5995     PRPC_MESSAGE pRpcMessage,
5996     DWORD* pdwStubPhase);
5997 HRESULT STDMETHODCALLTYPE IShellDispatch2_ServiceStop_Proxy(
5998     IShellDispatch2* This,
5999     BSTR ServiceName,
6000     VARIANT Persistent,
6001     VARIANT *pSuccess);
6002 void __RPC_STUB IShellDispatch2_ServiceStop_Stub(
6003     IRpcStubBuffer* This,
6004     IRpcChannelBuffer* pRpcChannelBuffer,
6005     PRPC_MESSAGE pRpcMessage,
6006     DWORD* pdwStubPhase);
6007 HRESULT STDMETHODCALLTYPE IShellDispatch2_IsServiceRunning_Proxy(
6008     IShellDispatch2* This,
6009     BSTR ServiceName,
6010     VARIANT *pRunning);
6011 void __RPC_STUB IShellDispatch2_IsServiceRunning_Stub(
6012     IRpcStubBuffer* This,
6013     IRpcChannelBuffer* pRpcChannelBuffer,
6014     PRPC_MESSAGE pRpcMessage,
6015     DWORD* pdwStubPhase);
6016 HRESULT STDMETHODCALLTYPE IShellDispatch2_CanStartStopService_Proxy(
6017     IShellDispatch2* This,
6018     BSTR ServiceName,
6019     VARIANT *pCanStartStop);
6020 void __RPC_STUB IShellDispatch2_CanStartStopService_Stub(
6021     IRpcStubBuffer* This,
6022     IRpcChannelBuffer* pRpcChannelBuffer,
6023     PRPC_MESSAGE pRpcMessage,
6024     DWORD* pdwStubPhase);
6025 HRESULT STDMETHODCALLTYPE IShellDispatch2_ShowBrowserBar_Proxy(
6026     IShellDispatch2* This,
6027     BSTR bstrClsid,
6028     VARIANT bShow,
6029     VARIANT *pSuccess);
6030 void __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 
6044 DEFINE_GUID(IID_IShellDispatch3, 0x177160ca, 0xbb5a, 0x411c, 0x84,0x1d, 0xbd,0x38,0xfa,0xcd,0xea,0xa0);
6045 #if defined(__cplusplus) && !defined(CINTERFACE)
6046 MIDL_INTERFACE("177160ca-bb5a-411c-841d-bd38facdeaa0")
6047 IShellDispatch3 : 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
6058 typedef 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;
6248 interface 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 ***/
6301 static FORCEINLINE HRESULT IShellDispatch3_QueryInterface(IShellDispatch3* This,REFIID riid,void **ppvObject) {
6302     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6303 }
6304 static FORCEINLINE ULONG IShellDispatch3_AddRef(IShellDispatch3* This) {
6305     return This->lpVtbl->AddRef(This);
6306 }
6307 static FORCEINLINE ULONG IShellDispatch3_Release(IShellDispatch3* This) {
6308     return This->lpVtbl->Release(This);
6309 }
6310 /*** IDispatch methods ***/
6311 static FORCEINLINE HRESULT IShellDispatch3_GetTypeInfoCount(IShellDispatch3* This,UINT *pctinfo) {
6312     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
6313 }
6314 static FORCEINLINE HRESULT IShellDispatch3_GetTypeInfo(IShellDispatch3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
6315     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
6316 }
6317 static 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 }
6320 static 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 ***/
6324 static FORCEINLINE HRESULT IShellDispatch3_get_Application(IShellDispatch3* This,IDispatch **ppid) {
6325     return This->lpVtbl->get_Application(This,ppid);
6326 }
6327 static FORCEINLINE HRESULT IShellDispatch3_get_Parent(IShellDispatch3* This,IDispatch **ppid) {
6328     return This->lpVtbl->get_Parent(This,ppid);
6329 }
6330 static FORCEINLINE HRESULT IShellDispatch3_NameSpace(IShellDispatch3* This,VARIANT vDir,Folder **ppsdf) {
6331     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
6332 }
6333 static 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 }
6336 static FORCEINLINE HRESULT IShellDispatch3_Windows(IShellDispatch3* This,IDispatch **ppid) {
6337     return This->lpVtbl->Windows(This,ppid);
6338 }
6339 static FORCEINLINE HRESULT IShellDispatch3_Open(IShellDispatch3* This,VARIANT vDir) {
6340     return This->lpVtbl->Open(This,vDir);
6341 }
6342 static FORCEINLINE HRESULT IShellDispatch3_Explore(IShellDispatch3* This,VARIANT vDir) {
6343     return This->lpVtbl->Explore(This,vDir);
6344 }
6345 static FORCEINLINE HRESULT IShellDispatch3_MinimizeAll(IShellDispatch3* This) {
6346     return This->lpVtbl->MinimizeAll(This);
6347 }
6348 static FORCEINLINE HRESULT IShellDispatch3_UndoMinimizeALL(IShellDispatch3* This) {
6349     return This->lpVtbl->UndoMinimizeALL(This);
6350 }
6351 static FORCEINLINE HRESULT IShellDispatch3_FileRun(IShellDispatch3* This) {
6352     return This->lpVtbl->FileRun(This);
6353 }
6354 static FORCEINLINE HRESULT IShellDispatch3_CascadeWindows(IShellDispatch3* This) {
6355     return This->lpVtbl->CascadeWindows(This);
6356 }
6357 static FORCEINLINE HRESULT IShellDispatch3_TileVertically(IShellDispatch3* This) {
6358     return This->lpVtbl->TileVertically(This);
6359 }
6360 static FORCEINLINE HRESULT IShellDispatch3_TileHorizontally(IShellDispatch3* This) {
6361     return This->lpVtbl->TileHorizontally(This);
6362 }
6363 static FORCEINLINE HRESULT IShellDispatch3_ShutdownWindows(IShellDispatch3* This) {
6364     return This->lpVtbl->ShutdownWindows(This);
6365 }
6366 static FORCEINLINE HRESULT IShellDispatch3_Suspend(IShellDispatch3* This) {
6367     return This->lpVtbl->Suspend(This);
6368 }
6369 static FORCEINLINE HRESULT IShellDispatch3_EjectPC(IShellDispatch3* This) {
6370     return This->lpVtbl->EjectPC(This);
6371 }
6372 static FORCEINLINE HRESULT IShellDispatch3_SetTime(IShellDispatch3* This) {
6373     return This->lpVtbl->SetTime(This);
6374 }
6375 static FORCEINLINE HRESULT IShellDispatch3_TrayProperties(IShellDispatch3* This) {
6376     return This->lpVtbl->TrayProperties(This);
6377 }
6378 static FORCEINLINE HRESULT IShellDispatch3_Help(IShellDispatch3* This) {
6379     return This->lpVtbl->Help(This);
6380 }
6381 static FORCEINLINE HRESULT IShellDispatch3_FindFiles(IShellDispatch3* This) {
6382     return This->lpVtbl->FindFiles(This);
6383 }
6384 static FORCEINLINE HRESULT IShellDispatch3_FindComputer(IShellDispatch3* This) {
6385     return This->lpVtbl->FindComputer(This);
6386 }
6387 static FORCEINLINE HRESULT IShellDispatch3_RefreshMenu(IShellDispatch3* This) {
6388     return This->lpVtbl->RefreshMenu(This);
6389 }
6390 static FORCEINLINE HRESULT IShellDispatch3_ControlPanelItem(IShellDispatch3* This,BSTR bstrDir) {
6391     return This->lpVtbl->ControlPanelItem(This,bstrDir);
6392 }
6393 /*** IShellDispatch2 methods ***/
6394 static FORCEINLINE HRESULT IShellDispatch3_IsRestricted(IShellDispatch3* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
6395     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
6396 }
6397 static 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 }
6400 static FORCEINLINE HRESULT IShellDispatch3_FindPrinter(IShellDispatch3* This,BSTR name,BSTR location,BSTR model) {
6401     return This->lpVtbl->FindPrinter(This,name,location,model);
6402 }
6403 static FORCEINLINE HRESULT IShellDispatch3_GetSystemInformation(IShellDispatch3* This,BSTR name,VARIANT *pv) {
6404     return This->lpVtbl->GetSystemInformation(This,name,pv);
6405 }
6406 static FORCEINLINE HRESULT IShellDispatch3_ServiceStart(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6407     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
6408 }
6409 static FORCEINLINE HRESULT IShellDispatch3_ServiceStop(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6410     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
6411 }
6412 static FORCEINLINE HRESULT IShellDispatch3_IsServiceRunning(IShellDispatch3* This,BSTR ServiceName,VARIANT *pRunning) {
6413     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
6414 }
6415 static FORCEINLINE HRESULT IShellDispatch3_CanStartStopService(IShellDispatch3* This,BSTR ServiceName,VARIANT *pCanStartStop) {
6416     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
6417 }
6418 static 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 ***/
6422 static 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 
6430 HRESULT STDMETHODCALLTYPE IShellDispatch3_AddToRecent_Proxy(
6431     IShellDispatch3* This,
6432     VARIANT varFile,
6433     BSTR bstrCategory);
6434 void __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 
6448 DEFINE_GUID(IID_IShellDispatch4, 0xefd84b2d, 0x4bcf, 0x4298, 0xbe,0x25, 0xeb,0x54,0x2a,0x59,0xfb,0xda);
6449 #if defined(__cplusplus) && !defined(CINTERFACE)
6450 MIDL_INTERFACE("efd84b2d-4bcf-4298-be25-eb542a59fbda")
6451 IShellDispatch4 : 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
6472 typedef 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;
6679 interface 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 ***/
6737 static FORCEINLINE HRESULT IShellDispatch4_QueryInterface(IShellDispatch4* This,REFIID riid,void **ppvObject) {
6738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6739 }
6740 static FORCEINLINE ULONG IShellDispatch4_AddRef(IShellDispatch4* This) {
6741     return This->lpVtbl->AddRef(This);
6742 }
6743 static FORCEINLINE ULONG IShellDispatch4_Release(IShellDispatch4* This) {
6744     return This->lpVtbl->Release(This);
6745 }
6746 /*** IDispatch methods ***/
6747 static FORCEINLINE HRESULT IShellDispatch4_GetTypeInfoCount(IShellDispatch4* This,UINT *pctinfo) {
6748     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
6749 }
6750 static FORCEINLINE HRESULT IShellDispatch4_GetTypeInfo(IShellDispatch4* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
6751     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
6752 }
6753 static 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 }
6756 static 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 ***/
6760 static FORCEINLINE HRESULT IShellDispatch4_get_Application(IShellDispatch4* This,IDispatch **ppid) {
6761     return This->lpVtbl->get_Application(This,ppid);
6762 }
6763 static FORCEINLINE HRESULT IShellDispatch4_get_Parent(IShellDispatch4* This,IDispatch **ppid) {
6764     return This->lpVtbl->get_Parent(This,ppid);
6765 }
6766 static FORCEINLINE HRESULT IShellDispatch4_NameSpace(IShellDispatch4* This,VARIANT vDir,Folder **ppsdf) {
6767     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
6768 }
6769 static 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 }
6772 static FORCEINLINE HRESULT IShellDispatch4_Windows(IShellDispatch4* This,IDispatch **ppid) {
6773     return This->lpVtbl->Windows(This,ppid);
6774 }
6775 static FORCEINLINE HRESULT IShellDispatch4_Open(IShellDispatch4* This,VARIANT vDir) {
6776     return This->lpVtbl->Open(This,vDir);
6777 }
6778 static FORCEINLINE HRESULT IShellDispatch4_Explore(IShellDispatch4* This,VARIANT vDir) {
6779     return This->lpVtbl->Explore(This,vDir);
6780 }
6781 static FORCEINLINE HRESULT IShellDispatch4_MinimizeAll(IShellDispatch4* This) {
6782     return This->lpVtbl->MinimizeAll(This);
6783 }
6784 static FORCEINLINE HRESULT IShellDispatch4_UndoMinimizeALL(IShellDispatch4* This) {
6785     return This->lpVtbl->UndoMinimizeALL(This);
6786 }
6787 static FORCEINLINE HRESULT IShellDispatch4_FileRun(IShellDispatch4* This) {
6788     return This->lpVtbl->FileRun(This);
6789 }
6790 static FORCEINLINE HRESULT IShellDispatch4_CascadeWindows(IShellDispatch4* This) {
6791     return This->lpVtbl->CascadeWindows(This);
6792 }
6793 static FORCEINLINE HRESULT IShellDispatch4_TileVertically(IShellDispatch4* This) {
6794     return This->lpVtbl->TileVertically(This);
6795 }
6796 static FORCEINLINE HRESULT IShellDispatch4_TileHorizontally(IShellDispatch4* This) {
6797     return This->lpVtbl->TileHorizontally(This);
6798 }
6799 static FORCEINLINE HRESULT IShellDispatch4_ShutdownWindows(IShellDispatch4* This) {
6800     return This->lpVtbl->ShutdownWindows(This);
6801 }
6802 static FORCEINLINE HRESULT IShellDispatch4_Suspend(IShellDispatch4* This) {
6803     return This->lpVtbl->Suspend(This);
6804 }
6805 static FORCEINLINE HRESULT IShellDispatch4_EjectPC(IShellDispatch4* This) {
6806     return This->lpVtbl->EjectPC(This);
6807 }
6808 static FORCEINLINE HRESULT IShellDispatch4_SetTime(IShellDispatch4* This) {
6809     return This->lpVtbl->SetTime(This);
6810 }
6811 static FORCEINLINE HRESULT IShellDispatch4_TrayProperties(IShellDispatch4* This) {
6812     return This->lpVtbl->TrayProperties(This);
6813 }
6814 static FORCEINLINE HRESULT IShellDispatch4_Help(IShellDispatch4* This) {
6815     return This->lpVtbl->Help(This);
6816 }
6817 static FORCEINLINE HRESULT IShellDispatch4_FindFiles(IShellDispatch4* This) {
6818     return This->lpVtbl->FindFiles(This);
6819 }
6820 static FORCEINLINE HRESULT IShellDispatch4_FindComputer(IShellDispatch4* This) {
6821     return This->lpVtbl->FindComputer(This);
6822 }
6823 static FORCEINLINE HRESULT IShellDispatch4_RefreshMenu(IShellDispatch4* This) {
6824     return This->lpVtbl->RefreshMenu(This);
6825 }
6826 static FORCEINLINE HRESULT IShellDispatch4_ControlPanelItem(IShellDispatch4* This,BSTR bstrDir) {
6827     return This->lpVtbl->ControlPanelItem(This,bstrDir);
6828 }
6829 /*** IShellDispatch2 methods ***/
6830 static FORCEINLINE HRESULT IShellDispatch4_IsRestricted(IShellDispatch4* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
6831     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
6832 }
6833 static 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 }
6836 static FORCEINLINE HRESULT IShellDispatch4_FindPrinter(IShellDispatch4* This,BSTR name,BSTR location,BSTR model) {
6837     return This->lpVtbl->FindPrinter(This,name,location,model);
6838 }
6839 static FORCEINLINE HRESULT IShellDispatch4_GetSystemInformation(IShellDispatch4* This,BSTR name,VARIANT *pv) {
6840     return This->lpVtbl->GetSystemInformation(This,name,pv);
6841 }
6842 static FORCEINLINE HRESULT IShellDispatch4_ServiceStart(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6843     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
6844 }
6845 static FORCEINLINE HRESULT IShellDispatch4_ServiceStop(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
6846     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
6847 }
6848 static FORCEINLINE HRESULT IShellDispatch4_IsServiceRunning(IShellDispatch4* This,BSTR ServiceName,VARIANT *pRunning) {
6849     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
6850 }
6851 static FORCEINLINE HRESULT IShellDispatch4_CanStartStopService(IShellDispatch4* This,BSTR ServiceName,VARIANT *pCanStartStop) {
6852     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
6853 }
6854 static 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 ***/
6858 static FORCEINLINE HRESULT IShellDispatch4_AddToRecent(IShellDispatch4* This,VARIANT varFile,BSTR bstrCategory) {
6859     return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
6860 }
6861 /*** IShellDispatch4 methods ***/
6862 static FORCEINLINE HRESULT IShellDispatch4_WindowsSecurity(IShellDispatch4* This) {
6863     return This->lpVtbl->WindowsSecurity(This);
6864 }
6865 static FORCEINLINE HRESULT IShellDispatch4_ToggleDesktop(IShellDispatch4* This) {
6866     return This->lpVtbl->ToggleDesktop(This);
6867 }
6868 static FORCEINLINE HRESULT IShellDispatch4_ExplorerPolicy(IShellDispatch4* This,BSTR bstrPolicyName,VARIANT *pValue) {
6869     return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
6870 }
6871 static 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 
6879 HRESULT STDMETHODCALLTYPE IShellDispatch4_WindowsSecurity_Proxy(
6880     IShellDispatch4* This);
6881 void __RPC_STUB IShellDispatch4_WindowsSecurity_Stub(
6882     IRpcStubBuffer* This,
6883     IRpcChannelBuffer* pRpcChannelBuffer,
6884     PRPC_MESSAGE pRpcMessage,
6885     DWORD* pdwStubPhase);
6886 HRESULT STDMETHODCALLTYPE IShellDispatch4_ToggleDesktop_Proxy(
6887     IShellDispatch4* This);
6888 void __RPC_STUB IShellDispatch4_ToggleDesktop_Stub(
6889     IRpcStubBuffer* This,
6890     IRpcChannelBuffer* pRpcChannelBuffer,
6891     PRPC_MESSAGE pRpcMessage,
6892     DWORD* pdwStubPhase);
6893 HRESULT STDMETHODCALLTYPE IShellDispatch4_ExplorerPolicy_Proxy(
6894     IShellDispatch4* This,
6895     BSTR bstrPolicyName,
6896     VARIANT *pValue);
6897 void __RPC_STUB IShellDispatch4_ExplorerPolicy_Stub(
6898     IRpcStubBuffer* This,
6899     IRpcChannelBuffer* pRpcChannelBuffer,
6900     PRPC_MESSAGE pRpcMessage,
6901     DWORD* pdwStubPhase);
6902 HRESULT STDMETHODCALLTYPE IShellDispatch4_GetSetting_Proxy(
6903     IShellDispatch4* This,
6904     LONG lSetting,
6905     VARIANT_BOOL *pResult);
6906 void __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 
6920 DEFINE_GUID(IID_IShellDispatch5, 0x866738b9, 0x6cf2, 0x4de8, 0x87,0x67, 0xf7,0x94,0xeb,0xe7,0x4f,0x4e);
6921 #if defined(__cplusplus) && !defined(CINTERFACE)
6922 MIDL_INTERFACE("866738b9-6cf2-4de8-8767-f794ebe74f4e")
6923 IShellDispatch5 : 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
6933 typedef 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;
7144 interface 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 ***/
7204 static FORCEINLINE HRESULT IShellDispatch5_QueryInterface(IShellDispatch5* This,REFIID riid,void **ppvObject) {
7205     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7206 }
7207 static FORCEINLINE ULONG IShellDispatch5_AddRef(IShellDispatch5* This) {
7208     return This->lpVtbl->AddRef(This);
7209 }
7210 static FORCEINLINE ULONG IShellDispatch5_Release(IShellDispatch5* This) {
7211     return This->lpVtbl->Release(This);
7212 }
7213 /*** IDispatch methods ***/
7214 static FORCEINLINE HRESULT IShellDispatch5_GetTypeInfoCount(IShellDispatch5* This,UINT *pctinfo) {
7215     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
7216 }
7217 static FORCEINLINE HRESULT IShellDispatch5_GetTypeInfo(IShellDispatch5* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
7218     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
7219 }
7220 static 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 }
7223 static 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 ***/
7227 static FORCEINLINE HRESULT IShellDispatch5_get_Application(IShellDispatch5* This,IDispatch **ppid) {
7228     return This->lpVtbl->get_Application(This,ppid);
7229 }
7230 static FORCEINLINE HRESULT IShellDispatch5_get_Parent(IShellDispatch5* This,IDispatch **ppid) {
7231     return This->lpVtbl->get_Parent(This,ppid);
7232 }
7233 static FORCEINLINE HRESULT IShellDispatch5_NameSpace(IShellDispatch5* This,VARIANT vDir,Folder **ppsdf) {
7234     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
7235 }
7236 static 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 }
7239 static FORCEINLINE HRESULT IShellDispatch5_Windows(IShellDispatch5* This,IDispatch **ppid) {
7240     return This->lpVtbl->Windows(This,ppid);
7241 }
7242 static FORCEINLINE HRESULT IShellDispatch5_Open(IShellDispatch5* This,VARIANT vDir) {
7243     return This->lpVtbl->Open(This,vDir);
7244 }
7245 static FORCEINLINE HRESULT IShellDispatch5_Explore(IShellDispatch5* This,VARIANT vDir) {
7246     return This->lpVtbl->Explore(This,vDir);
7247 }
7248 static FORCEINLINE HRESULT IShellDispatch5_MinimizeAll(IShellDispatch5* This) {
7249     return This->lpVtbl->MinimizeAll(This);
7250 }
7251 static FORCEINLINE HRESULT IShellDispatch5_UndoMinimizeALL(IShellDispatch5* This) {
7252     return This->lpVtbl->UndoMinimizeALL(This);
7253 }
7254 static FORCEINLINE HRESULT IShellDispatch5_FileRun(IShellDispatch5* This) {
7255     return This->lpVtbl->FileRun(This);
7256 }
7257 static FORCEINLINE HRESULT IShellDispatch5_CascadeWindows(IShellDispatch5* This) {
7258     return This->lpVtbl->CascadeWindows(This);
7259 }
7260 static FORCEINLINE HRESULT IShellDispatch5_TileVertically(IShellDispatch5* This) {
7261     return This->lpVtbl->TileVertically(This);
7262 }
7263 static FORCEINLINE HRESULT IShellDispatch5_TileHorizontally(IShellDispatch5* This) {
7264     return This->lpVtbl->TileHorizontally(This);
7265 }
7266 static FORCEINLINE HRESULT IShellDispatch5_ShutdownWindows(IShellDispatch5* This) {
7267     return This->lpVtbl->ShutdownWindows(This);
7268 }
7269 static FORCEINLINE HRESULT IShellDispatch5_Suspend(IShellDispatch5* This) {
7270     return This->lpVtbl->Suspend(This);
7271 }
7272 static FORCEINLINE HRESULT IShellDispatch5_EjectPC(IShellDispatch5* This) {
7273     return This->lpVtbl->EjectPC(This);
7274 }
7275 static FORCEINLINE HRESULT IShellDispatch5_SetTime(IShellDispatch5* This) {
7276     return This->lpVtbl->SetTime(This);
7277 }
7278 static FORCEINLINE HRESULT IShellDispatch5_TrayProperties(IShellDispatch5* This) {
7279     return This->lpVtbl->TrayProperties(This);
7280 }
7281 static FORCEINLINE HRESULT IShellDispatch5_Help(IShellDispatch5* This) {
7282     return This->lpVtbl->Help(This);
7283 }
7284 static FORCEINLINE HRESULT IShellDispatch5_FindFiles(IShellDispatch5* This) {
7285     return This->lpVtbl->FindFiles(This);
7286 }
7287 static FORCEINLINE HRESULT IShellDispatch5_FindComputer(IShellDispatch5* This) {
7288     return This->lpVtbl->FindComputer(This);
7289 }
7290 static FORCEINLINE HRESULT IShellDispatch5_RefreshMenu(IShellDispatch5* This) {
7291     return This->lpVtbl->RefreshMenu(This);
7292 }
7293 static FORCEINLINE HRESULT IShellDispatch5_ControlPanelItem(IShellDispatch5* This,BSTR bstrDir) {
7294     return This->lpVtbl->ControlPanelItem(This,bstrDir);
7295 }
7296 /*** IShellDispatch2 methods ***/
7297 static FORCEINLINE HRESULT IShellDispatch5_IsRestricted(IShellDispatch5* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
7298     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
7299 }
7300 static 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 }
7303 static FORCEINLINE HRESULT IShellDispatch5_FindPrinter(IShellDispatch5* This,BSTR name,BSTR location,BSTR model) {
7304     return This->lpVtbl->FindPrinter(This,name,location,model);
7305 }
7306 static FORCEINLINE HRESULT IShellDispatch5_GetSystemInformation(IShellDispatch5* This,BSTR name,VARIANT *pv) {
7307     return This->lpVtbl->GetSystemInformation(This,name,pv);
7308 }
7309 static FORCEINLINE HRESULT IShellDispatch5_ServiceStart(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7310     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
7311 }
7312 static FORCEINLINE HRESULT IShellDispatch5_ServiceStop(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7313     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
7314 }
7315 static FORCEINLINE HRESULT IShellDispatch5_IsServiceRunning(IShellDispatch5* This,BSTR ServiceName,VARIANT *pRunning) {
7316     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
7317 }
7318 static FORCEINLINE HRESULT IShellDispatch5_CanStartStopService(IShellDispatch5* This,BSTR ServiceName,VARIANT *pCanStartStop) {
7319     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
7320 }
7321 static 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 ***/
7325 static FORCEINLINE HRESULT IShellDispatch5_AddToRecent(IShellDispatch5* This,VARIANT varFile,BSTR bstrCategory) {
7326     return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
7327 }
7328 /*** IShellDispatch4 methods ***/
7329 static FORCEINLINE HRESULT IShellDispatch5_WindowsSecurity(IShellDispatch5* This) {
7330     return This->lpVtbl->WindowsSecurity(This);
7331 }
7332 static FORCEINLINE HRESULT IShellDispatch5_ToggleDesktop(IShellDispatch5* This) {
7333     return This->lpVtbl->ToggleDesktop(This);
7334 }
7335 static FORCEINLINE HRESULT IShellDispatch5_ExplorerPolicy(IShellDispatch5* This,BSTR bstrPolicyName,VARIANT *pValue) {
7336     return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
7337 }
7338 static FORCEINLINE HRESULT IShellDispatch5_GetSetting(IShellDispatch5* This,LONG lSetting,VARIANT_BOOL *pResult) {
7339     return This->lpVtbl->GetSetting(This,lSetting,pResult);
7340 }
7341 /*** IShellDispatch5 methods ***/
7342 static FORCEINLINE HRESULT IShellDispatch5_WindowSwitcher(IShellDispatch5* This) {
7343     return This->lpVtbl->WindowSwitcher(This);
7344 }
7345 #endif
7346 #endif
7347 
7348 #endif
7349 
7350 HRESULT STDMETHODCALLTYPE IShellDispatch5_WindowSwitcher_Proxy(
7351     IShellDispatch5* This);
7352 void __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 
7367 DEFINE_GUID(IID_IShellDispatch6, 0x286e6f1b, 0x7113, 0x4355, 0x95,0x62, 0x96,0xb7,0xe9,0xd6,0x4c,0x54);
7368 #if defined(__cplusplus) && !defined(CINTERFACE)
7369 MIDL_INTERFACE("286e6f1b-7113-4355-9562-96b7e9d64c54")
7370 IShellDispatch6 : 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
7380 typedef 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;
7595 interface 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 ***/
7657 static FORCEINLINE HRESULT IShellDispatch6_QueryInterface(IShellDispatch6* This,REFIID riid,void **ppvObject) {
7658     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7659 }
7660 static FORCEINLINE ULONG IShellDispatch6_AddRef(IShellDispatch6* This) {
7661     return This->lpVtbl->AddRef(This);
7662 }
7663 static FORCEINLINE ULONG IShellDispatch6_Release(IShellDispatch6* This) {
7664     return This->lpVtbl->Release(This);
7665 }
7666 /*** IDispatch methods ***/
7667 static FORCEINLINE HRESULT IShellDispatch6_GetTypeInfoCount(IShellDispatch6* This,UINT *pctinfo) {
7668     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
7669 }
7670 static FORCEINLINE HRESULT IShellDispatch6_GetTypeInfo(IShellDispatch6* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
7671     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
7672 }
7673 static 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 }
7676 static 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 ***/
7680 static FORCEINLINE HRESULT IShellDispatch6_get_Application(IShellDispatch6* This,IDispatch **ppid) {
7681     return This->lpVtbl->get_Application(This,ppid);
7682 }
7683 static FORCEINLINE HRESULT IShellDispatch6_get_Parent(IShellDispatch6* This,IDispatch **ppid) {
7684     return This->lpVtbl->get_Parent(This,ppid);
7685 }
7686 static FORCEINLINE HRESULT IShellDispatch6_NameSpace(IShellDispatch6* This,VARIANT vDir,Folder **ppsdf) {
7687     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
7688 }
7689 static 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 }
7692 static FORCEINLINE HRESULT IShellDispatch6_Windows(IShellDispatch6* This,IDispatch **ppid) {
7693     return This->lpVtbl->Windows(This,ppid);
7694 }
7695 static FORCEINLINE HRESULT IShellDispatch6_Open(IShellDispatch6* This,VARIANT vDir) {
7696     return This->lpVtbl->Open(This,vDir);
7697 }
7698 static FORCEINLINE HRESULT IShellDispatch6_Explore(IShellDispatch6* This,VARIANT vDir) {
7699     return This->lpVtbl->Explore(This,vDir);
7700 }
7701 static FORCEINLINE HRESULT IShellDispatch6_MinimizeAll(IShellDispatch6* This) {
7702     return This->lpVtbl->MinimizeAll(This);
7703 }
7704 static FORCEINLINE HRESULT IShellDispatch6_UndoMinimizeALL(IShellDispatch6* This) {
7705     return This->lpVtbl->UndoMinimizeALL(This);
7706 }
7707 static FORCEINLINE HRESULT IShellDispatch6_FileRun(IShellDispatch6* This) {
7708     return This->lpVtbl->FileRun(This);
7709 }
7710 static FORCEINLINE HRESULT IShellDispatch6_CascadeWindows(IShellDispatch6* This) {
7711     return This->lpVtbl->CascadeWindows(This);
7712 }
7713 static FORCEINLINE HRESULT IShellDispatch6_TileVertically(IShellDispatch6* This) {
7714     return This->lpVtbl->TileVertically(This);
7715 }
7716 static FORCEINLINE HRESULT IShellDispatch6_TileHorizontally(IShellDispatch6* This) {
7717     return This->lpVtbl->TileHorizontally(This);
7718 }
7719 static FORCEINLINE HRESULT IShellDispatch6_ShutdownWindows(IShellDispatch6* This) {
7720     return This->lpVtbl->ShutdownWindows(This);
7721 }
7722 static FORCEINLINE HRESULT IShellDispatch6_Suspend(IShellDispatch6* This) {
7723     return This->lpVtbl->Suspend(This);
7724 }
7725 static FORCEINLINE HRESULT IShellDispatch6_EjectPC(IShellDispatch6* This) {
7726     return This->lpVtbl->EjectPC(This);
7727 }
7728 static FORCEINLINE HRESULT IShellDispatch6_SetTime(IShellDispatch6* This) {
7729     return This->lpVtbl->SetTime(This);
7730 }
7731 static FORCEINLINE HRESULT IShellDispatch6_TrayProperties(IShellDispatch6* This) {
7732     return This->lpVtbl->TrayProperties(This);
7733 }
7734 static FORCEINLINE HRESULT IShellDispatch6_Help(IShellDispatch6* This) {
7735     return This->lpVtbl->Help(This);
7736 }
7737 static FORCEINLINE HRESULT IShellDispatch6_FindFiles(IShellDispatch6* This) {
7738     return This->lpVtbl->FindFiles(This);
7739 }
7740 static FORCEINLINE HRESULT IShellDispatch6_FindComputer(IShellDispatch6* This) {
7741     return This->lpVtbl->FindComputer(This);
7742 }
7743 static FORCEINLINE HRESULT IShellDispatch6_RefreshMenu(IShellDispatch6* This) {
7744     return This->lpVtbl->RefreshMenu(This);
7745 }
7746 static FORCEINLINE HRESULT IShellDispatch6_ControlPanelItem(IShellDispatch6* This,BSTR bstrDir) {
7747     return This->lpVtbl->ControlPanelItem(This,bstrDir);
7748 }
7749 /*** IShellDispatch2 methods ***/
7750 static FORCEINLINE HRESULT IShellDispatch6_IsRestricted(IShellDispatch6* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
7751     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
7752 }
7753 static 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 }
7756 static FORCEINLINE HRESULT IShellDispatch6_FindPrinter(IShellDispatch6* This,BSTR name,BSTR location,BSTR model) {
7757     return This->lpVtbl->FindPrinter(This,name,location,model);
7758 }
7759 static FORCEINLINE HRESULT IShellDispatch6_GetSystemInformation(IShellDispatch6* This,BSTR name,VARIANT *pv) {
7760     return This->lpVtbl->GetSystemInformation(This,name,pv);
7761 }
7762 static FORCEINLINE HRESULT IShellDispatch6_ServiceStart(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7763     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
7764 }
7765 static FORCEINLINE HRESULT IShellDispatch6_ServiceStop(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
7766     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
7767 }
7768 static FORCEINLINE HRESULT IShellDispatch6_IsServiceRunning(IShellDispatch6* This,BSTR ServiceName,VARIANT *pRunning) {
7769     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
7770 }
7771 static FORCEINLINE HRESULT IShellDispatch6_CanStartStopService(IShellDispatch6* This,BSTR ServiceName,VARIANT *pCanStartStop) {
7772     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
7773 }
7774 static 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 ***/
7778 static FORCEINLINE HRESULT IShellDispatch6_AddToRecent(IShellDispatch6* This,VARIANT varFile,BSTR bstrCategory) {
7779     return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
7780 }
7781 /*** IShellDispatch4 methods ***/
7782 static FORCEINLINE HRESULT IShellDispatch6_WindowsSecurity(IShellDispatch6* This) {
7783     return This->lpVtbl->WindowsSecurity(This);
7784 }
7785 static FORCEINLINE HRESULT IShellDispatch6_ToggleDesktop(IShellDispatch6* This) {
7786     return This->lpVtbl->ToggleDesktop(This);
7787 }
7788 static FORCEINLINE HRESULT IShellDispatch6_ExplorerPolicy(IShellDispatch6* This,BSTR bstrPolicyName,VARIANT *pValue) {
7789     return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
7790 }
7791 static FORCEINLINE HRESULT IShellDispatch6_GetSetting(IShellDispatch6* This,LONG lSetting,VARIANT_BOOL *pResult) {
7792     return This->lpVtbl->GetSetting(This,lSetting,pResult);
7793 }
7794 /*** IShellDispatch5 methods ***/
7795 static FORCEINLINE HRESULT IShellDispatch6_WindowSwitcher(IShellDispatch6* This) {
7796     return This->lpVtbl->WindowSwitcher(This);
7797 }
7798 /*** IShellDispatch6 methods ***/
7799 static FORCEINLINE HRESULT IShellDispatch6_SearchCommand(IShellDispatch6* This) {
7800     return This->lpVtbl->SearchCommand(This);
7801 }
7802 #endif
7803 #endif
7804 
7805 #endif
7806 
7807 HRESULT STDMETHODCALLTYPE IShellDispatch6_SearchCommand_Proxy(
7808     IShellDispatch6* This);
7809 void __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 
7822 DEFINE_GUID(CLSID_Shell, 0x13709620, 0xc279, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);
7823 
7824 #ifdef __cplusplus
7825 class 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 
7835 DEFINE_GUID(CLSID_ShellDispatchInproc, 0x0a89a860, 0xd7b1, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
7836 
7837 #ifdef __cplusplus
7838 class 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 
7844 typedef 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 
7890 DEFINE_GUID(IID_IFileSearchBand, 0x2d91eea1, 0x9932, 0x11d2, 0xbe,0x86, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1);
7891 #if defined(__cplusplus) && !defined(CINTERFACE)
7892 MIDL_INTERFACE("2d91eea1-9932-11d2-be86-00a0c9a83da1")
7893 IFileSearchBand : 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
7918 typedef 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;
7988 interface 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 ***/
8011 static FORCEINLINE HRESULT IFileSearchBand_QueryInterface(IFileSearchBand* This,REFIID riid,void **ppvObject) {
8012     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8013 }
8014 static FORCEINLINE ULONG IFileSearchBand_AddRef(IFileSearchBand* This) {
8015     return This->lpVtbl->AddRef(This);
8016 }
8017 static FORCEINLINE ULONG IFileSearchBand_Release(IFileSearchBand* This) {
8018     return This->lpVtbl->Release(This);
8019 }
8020 /*** IDispatch methods ***/
8021 static FORCEINLINE HRESULT IFileSearchBand_GetTypeInfoCount(IFileSearchBand* This,UINT *pctinfo) {
8022     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
8023 }
8024 static FORCEINLINE HRESULT IFileSearchBand_GetTypeInfo(IFileSearchBand* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
8025     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
8026 }
8027 static 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 }
8030 static 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 ***/
8034 static FORCEINLINE HRESULT IFileSearchBand_SetFocus(IFileSearchBand* This) {
8035     return This->lpVtbl->SetFocus(This);
8036 }
8037 static 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 }
8040 static FORCEINLINE HRESULT IFileSearchBand_get_SearchID(IFileSearchBand* This,BSTR *pbstrSearchID) {
8041     return This->lpVtbl->get_SearchID(This,pbstrSearchID);
8042 }
8043 static FORCEINLINE HRESULT IFileSearchBand_get_Scope(IFileSearchBand* This,VARIANT *pvarScope) {
8044     return This->lpVtbl->get_Scope(This,pvarScope);
8045 }
8046 static 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 
8054 HRESULT STDMETHODCALLTYPE IFileSearchBand_SetFocus_Proxy(
8055     IFileSearchBand* This);
8056 void __RPC_STUB IFileSearchBand_SetFocus_Stub(
8057     IRpcStubBuffer* This,
8058     IRpcChannelBuffer* pRpcChannelBuffer,
8059     PRPC_MESSAGE pRpcMessage,
8060     DWORD* pdwStubPhase);
8061 HRESULT STDMETHODCALLTYPE IFileSearchBand_SetSearchParameters_Proxy(
8062     IFileSearchBand* This,
8063     BSTR *pbstrSearchID,
8064     VARIANT_BOOL bNavToResults,
8065     VARIANT *pvarScope,
8066     VARIANT *pvarQueryFile);
8067 void __RPC_STUB IFileSearchBand_SetSearchParameters_Stub(
8068     IRpcStubBuffer* This,
8069     IRpcChannelBuffer* pRpcChannelBuffer,
8070     PRPC_MESSAGE pRpcMessage,
8071     DWORD* pdwStubPhase);
8072 HRESULT STDMETHODCALLTYPE IFileSearchBand_get_SearchID_Proxy(
8073     IFileSearchBand* This,
8074     BSTR *pbstrSearchID);
8075 void __RPC_STUB IFileSearchBand_get_SearchID_Stub(
8076     IRpcStubBuffer* This,
8077     IRpcChannelBuffer* pRpcChannelBuffer,
8078     PRPC_MESSAGE pRpcMessage,
8079     DWORD* pdwStubPhase);
8080 HRESULT STDMETHODCALLTYPE IFileSearchBand_get_Scope_Proxy(
8081     IFileSearchBand* This,
8082     VARIANT *pvarScope);
8083 void __RPC_STUB IFileSearchBand_get_Scope_Stub(
8084     IRpcStubBuffer* This,
8085     IRpcChannelBuffer* pRpcChannelBuffer,
8086     PRPC_MESSAGE pRpcMessage,
8087     DWORD* pdwStubPhase);
8088 HRESULT STDMETHODCALLTYPE IFileSearchBand_get_QueryFile_Proxy(
8089     IFileSearchBand* This,
8090     VARIANT *pvarFile);
8091 void __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 
8103 DEFINE_GUID(CLSID_FileSearchBand, 0xc4ee31f3, 0x4768, 0x11d2, 0xbe,0x5c, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1);
8104 
8105 #ifdef __cplusplus
8106 class 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 
8118 DEFINE_GUID(IID_IWebWizardHost, 0x18bcc359, 0x4990, 0x4bfb, 0xb9,0x51, 0x3c,0x83,0x70,0x2b,0xe5,0xf9);
8119 #if defined(__cplusplus) && !defined(CINTERFACE)
8120 MIDL_INTERFACE("18bcc359-4990-4bfb-b951-3c83702be5f9")
8121 IWebWizardHost : 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
8160 typedef 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;
8246 interface 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 ***/
8273 static FORCEINLINE HRESULT IWebWizardHost_QueryInterface(IWebWizardHost* This,REFIID riid,void **ppvObject) {
8274     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8275 }
8276 static FORCEINLINE ULONG IWebWizardHost_AddRef(IWebWizardHost* This) {
8277     return This->lpVtbl->AddRef(This);
8278 }
8279 static FORCEINLINE ULONG IWebWizardHost_Release(IWebWizardHost* This) {
8280     return This->lpVtbl->Release(This);
8281 }
8282 /*** IDispatch methods ***/
8283 static FORCEINLINE HRESULT IWebWizardHost_GetTypeInfoCount(IWebWizardHost* This,UINT *pctinfo) {
8284     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
8285 }
8286 static FORCEINLINE HRESULT IWebWizardHost_GetTypeInfo(IWebWizardHost* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
8287     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
8288 }
8289 static 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 }
8292 static 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 ***/
8296 static FORCEINLINE HRESULT IWebWizardHost_FinalBack(IWebWizardHost* This) {
8297     return This->lpVtbl->FinalBack(This);
8298 }
8299 static FORCEINLINE HRESULT IWebWizardHost_FinalNext(IWebWizardHost* This) {
8300     return This->lpVtbl->FinalNext(This);
8301 }
8302 static FORCEINLINE HRESULT IWebWizardHost_Cancel(IWebWizardHost* This) {
8303     return This->lpVtbl->Cancel(This);
8304 }
8305 static FORCEINLINE HRESULT IWebWizardHost_put_Caption(IWebWizardHost* This,BSTR bstrCaption) {
8306     return This->lpVtbl->put_Caption(This,bstrCaption);
8307 }
8308 static FORCEINLINE HRESULT IWebWizardHost_get_Caption(IWebWizardHost* This,BSTR *pbstrCaption) {
8309     return This->lpVtbl->get_Caption(This,pbstrCaption);
8310 }
8311 static FORCEINLINE HRESULT IWebWizardHost_put_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8312     return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
8313 }
8314 static FORCEINLINE HRESULT IWebWizardHost_get_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8315     return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
8316 }
8317 static 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 }
8320 static 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 
8328 HRESULT STDMETHODCALLTYPE IWebWizardHost_FinalBack_Proxy(
8329     IWebWizardHost* This);
8330 void __RPC_STUB IWebWizardHost_FinalBack_Stub(
8331     IRpcStubBuffer* This,
8332     IRpcChannelBuffer* pRpcChannelBuffer,
8333     PRPC_MESSAGE pRpcMessage,
8334     DWORD* pdwStubPhase);
8335 HRESULT STDMETHODCALLTYPE IWebWizardHost_FinalNext_Proxy(
8336     IWebWizardHost* This);
8337 void __RPC_STUB IWebWizardHost_FinalNext_Stub(
8338     IRpcStubBuffer* This,
8339     IRpcChannelBuffer* pRpcChannelBuffer,
8340     PRPC_MESSAGE pRpcMessage,
8341     DWORD* pdwStubPhase);
8342 HRESULT STDMETHODCALLTYPE IWebWizardHost_Cancel_Proxy(
8343     IWebWizardHost* This);
8344 void __RPC_STUB IWebWizardHost_Cancel_Stub(
8345     IRpcStubBuffer* This,
8346     IRpcChannelBuffer* pRpcChannelBuffer,
8347     PRPC_MESSAGE pRpcMessage,
8348     DWORD* pdwStubPhase);
8349 HRESULT STDMETHODCALLTYPE IWebWizardHost_put_Caption_Proxy(
8350     IWebWizardHost* This,
8351     BSTR bstrCaption);
8352 void __RPC_STUB IWebWizardHost_put_Caption_Stub(
8353     IRpcStubBuffer* This,
8354     IRpcChannelBuffer* pRpcChannelBuffer,
8355     PRPC_MESSAGE pRpcMessage,
8356     DWORD* pdwStubPhase);
8357 HRESULT STDMETHODCALLTYPE IWebWizardHost_get_Caption_Proxy(
8358     IWebWizardHost* This,
8359     BSTR *pbstrCaption);
8360 void __RPC_STUB IWebWizardHost_get_Caption_Stub(
8361     IRpcStubBuffer* This,
8362     IRpcChannelBuffer* pRpcChannelBuffer,
8363     PRPC_MESSAGE pRpcMessage,
8364     DWORD* pdwStubPhase);
8365 HRESULT STDMETHODCALLTYPE IWebWizardHost_put_Property_Proxy(
8366     IWebWizardHost* This,
8367     BSTR bstrPropertyName,
8368     VARIANT *pvProperty);
8369 void __RPC_STUB IWebWizardHost_put_Property_Stub(
8370     IRpcStubBuffer* This,
8371     IRpcChannelBuffer* pRpcChannelBuffer,
8372     PRPC_MESSAGE pRpcMessage,
8373     DWORD* pdwStubPhase);
8374 HRESULT STDMETHODCALLTYPE IWebWizardHost_get_Property_Proxy(
8375     IWebWizardHost* This,
8376     BSTR bstrPropertyName,
8377     VARIANT *pvProperty);
8378 void __RPC_STUB IWebWizardHost_get_Property_Stub(
8379     IRpcStubBuffer* This,
8380     IRpcChannelBuffer* pRpcChannelBuffer,
8381     PRPC_MESSAGE pRpcMessage,
8382     DWORD* pdwStubPhase);
8383 HRESULT STDMETHODCALLTYPE IWebWizardHost_SetWizardButtons_Proxy(
8384     IWebWizardHost* This,
8385     VARIANT_BOOL vfEnableBack,
8386     VARIANT_BOOL vfEnableNext,
8387     VARIANT_BOOL vfLastPage);
8388 void __RPC_STUB IWebWizardHost_SetWizardButtons_Stub(
8389     IRpcStubBuffer* This,
8390     IRpcChannelBuffer* pRpcChannelBuffer,
8391     PRPC_MESSAGE pRpcMessage,
8392     DWORD* pdwStubPhase);
8393 HRESULT STDMETHODCALLTYPE IWebWizardHost_SetHeaderText_Proxy(
8394     IWebWizardHost* This,
8395     BSTR bstrHeaderTitle,
8396     BSTR bstrHeaderSubtitle);
8397 void __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 
8411 DEFINE_GUID(IID_INewWDEvents, 0x0751c551, 0x7568, 0x41c9, 0x8e,0x5b, 0xe2,0x2e,0x38,0x91,0x92,0x36);
8412 #if defined(__cplusplus) && !defined(CINTERFACE)
8413 MIDL_INTERFACE("0751c551-7568-41c9-8e5b-e22e38919236")
8414 INewWDEvents : 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
8425 typedef 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;
8517 interface 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 ***/
8546 static FORCEINLINE HRESULT INewWDEvents_QueryInterface(INewWDEvents* This,REFIID riid,void **ppvObject) {
8547     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8548 }
8549 static FORCEINLINE ULONG INewWDEvents_AddRef(INewWDEvents* This) {
8550     return This->lpVtbl->AddRef(This);
8551 }
8552 static FORCEINLINE ULONG INewWDEvents_Release(INewWDEvents* This) {
8553     return This->lpVtbl->Release(This);
8554 }
8555 /*** IDispatch methods ***/
8556 static FORCEINLINE HRESULT INewWDEvents_GetTypeInfoCount(INewWDEvents* This,UINT *pctinfo) {
8557     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
8558 }
8559 static FORCEINLINE HRESULT INewWDEvents_GetTypeInfo(INewWDEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
8560     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
8561 }
8562 static 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 }
8565 static 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 ***/
8569 static FORCEINLINE HRESULT INewWDEvents_FinalBack(INewWDEvents* This) {
8570     return This->lpVtbl->FinalBack(This);
8571 }
8572 static FORCEINLINE HRESULT INewWDEvents_FinalNext(INewWDEvents* This) {
8573     return This->lpVtbl->FinalNext(This);
8574 }
8575 static FORCEINLINE HRESULT INewWDEvents_Cancel(INewWDEvents* This) {
8576     return This->lpVtbl->Cancel(This);
8577 }
8578 static FORCEINLINE HRESULT INewWDEvents_put_Caption(INewWDEvents* This,BSTR bstrCaption) {
8579     return This->lpVtbl->put_Caption(This,bstrCaption);
8580 }
8581 static FORCEINLINE HRESULT INewWDEvents_get_Caption(INewWDEvents* This,BSTR *pbstrCaption) {
8582     return This->lpVtbl->get_Caption(This,pbstrCaption);
8583 }
8584 static FORCEINLINE HRESULT INewWDEvents_put_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8585     return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
8586 }
8587 static FORCEINLINE HRESULT INewWDEvents_get_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
8588     return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
8589 }
8590 static 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 }
8593 static FORCEINLINE HRESULT INewWDEvents_SetHeaderText(INewWDEvents* This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle) {
8594     return This->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle);
8595 }
8596 /*** INewWDEvents methods ***/
8597 static 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 
8605 HRESULT STDMETHODCALLTYPE INewWDEvents_PassportAuthenticate_Proxy(
8606     INewWDEvents* This,
8607     BSTR bstrSignInUrl,
8608     VARIANT_BOOL *pvfAuthenitcated);
8609 void __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 
8623 typedef IAutoComplete *LPAUTOCOMPLETE;
8624 DEFINE_GUID(IID_IAutoComplete, 0x00bb2762, 0x6a77, 0x11d0, 0xa5,0x35, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
8625 #if defined(__cplusplus) && !defined(CINTERFACE)
8626 MIDL_INTERFACE("00bb2762-6a77-11d0-a535-00c04fd7d062")
8627 IAutoComplete : 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
8643 typedef 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;
8672 interface 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 ***/
8687 static FORCEINLINE HRESULT IAutoComplete_QueryInterface(IAutoComplete* This,REFIID riid,void **ppvObject) {
8688     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8689 }
8690 static FORCEINLINE ULONG IAutoComplete_AddRef(IAutoComplete* This) {
8691     return This->lpVtbl->AddRef(This);
8692 }
8693 static FORCEINLINE ULONG IAutoComplete_Release(IAutoComplete* This) {
8694     return This->lpVtbl->Release(This);
8695 }
8696 /*** IAutoComplete methods ***/
8697 static 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 }
8700 static FORCEINLINE HRESULT IAutoComplete_Enable(IAutoComplete* This,WINBOOL fEnable) {
8701     return This->lpVtbl->Enable(This,fEnable);
8702 }
8703 #endif
8704 #endif
8705 
8706 #endif
8707 
8708 HRESULT STDMETHODCALLTYPE IAutoComplete_Init_Proxy(
8709     IAutoComplete* This,
8710     HWND hwndEdit,
8711     IUnknown *punkACL,
8712     LPCWSTR pwszRegKeyPath,
8713     LPCWSTR pwszQuickComplete);
8714 void __RPC_STUB IAutoComplete_Init_Stub(
8715     IRpcStubBuffer* This,
8716     IRpcChannelBuffer* pRpcChannelBuffer,
8717     PRPC_MESSAGE pRpcMessage,
8718     DWORD* pdwStubPhase);
8719 HRESULT STDMETHODCALLTYPE IAutoComplete_Enable_Proxy(
8720     IAutoComplete* This,
8721     WINBOOL fEnable);
8722 void __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 
8736 typedef IAutoComplete2 *LPAUTOCOMPLETE2;
8737 typedef 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;
8749 DEFINE_GUID(IID_IAutoComplete2, 0xeac04bc0, 0x3791, 0x11d2, 0xbb,0x95, 0x00,0x60,0x97,0x7b,0x46,0x4c);
8750 #if defined(__cplusplus) && !defined(CINTERFACE)
8751 MIDL_INTERFACE("eac04bc0-3791-11d2-bb95-0060977b464c")
8752 IAutoComplete2 : 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
8765 typedef 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;
8803 interface 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 ***/
8821 static FORCEINLINE HRESULT IAutoComplete2_QueryInterface(IAutoComplete2* This,REFIID riid,void **ppvObject) {
8822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8823 }
8824 static FORCEINLINE ULONG IAutoComplete2_AddRef(IAutoComplete2* This) {
8825     return This->lpVtbl->AddRef(This);
8826 }
8827 static FORCEINLINE ULONG IAutoComplete2_Release(IAutoComplete2* This) {
8828     return This->lpVtbl->Release(This);
8829 }
8830 /*** IAutoComplete methods ***/
8831 static 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 }
8834 static FORCEINLINE HRESULT IAutoComplete2_Enable(IAutoComplete2* This,WINBOOL fEnable) {
8835     return This->lpVtbl->Enable(This,fEnable);
8836 }
8837 /*** IAutoComplete2 methods ***/
8838 static FORCEINLINE HRESULT IAutoComplete2_SetOptions(IAutoComplete2* This,DWORD dwFlag) {
8839     return This->lpVtbl->SetOptions(This,dwFlag);
8840 }
8841 static FORCEINLINE HRESULT IAutoComplete2_GetOptions(IAutoComplete2* This,DWORD *pdwFlag) {
8842     return This->lpVtbl->GetOptions(This,pdwFlag);
8843 }
8844 #endif
8845 #endif
8846 
8847 #endif
8848 
8849 HRESULT STDMETHODCALLTYPE IAutoComplete2_SetOptions_Proxy(
8850     IAutoComplete2* This,
8851     DWORD dwFlag);
8852 void __RPC_STUB IAutoComplete2_SetOptions_Stub(
8853     IRpcStubBuffer* This,
8854     IRpcChannelBuffer* pRpcChannelBuffer,
8855     PRPC_MESSAGE pRpcMessage,
8856     DWORD* pdwStubPhase);
8857 HRESULT STDMETHODCALLTYPE IAutoComplete2_GetOptions_Proxy(
8858     IAutoComplete2* This,
8859     DWORD *pdwFlag);
8860 void __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 
8875 typedef IEnumACString *PENUMACSTRING;
8876 typedef IEnumACString *LPENUMACSTRING;
8877 typedef enum _tagACENUMOPTION {
8878     ACEO_NONE = 0x0,
8879     ACEO_MOSTRECENTFIRST = 0x1,
8880     ACEO_FIRSTUNUSED = 0x10000
8881 } ACENUMOPTION;
8882 DEFINE_GUID(IID_IEnumACString, 0x8e74c210, 0xcf9d, 0x4eaf, 0xa4,0x03, 0x73,0x56,0x42,0x8f,0x0a,0x5a);
8883 #if defined(__cplusplus) && !defined(CINTERFACE)
8884 MIDL_INTERFACE("8e74c210-cf9d-4eaf-a403-7356428f0a5a")
8885 IEnumACString : 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
8903 typedef 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;
8953 interface 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 ***/
8974 static FORCEINLINE HRESULT IEnumACString_QueryInterface(IEnumACString* This,REFIID riid,void **ppvObject) {
8975     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8976 }
8977 static FORCEINLINE ULONG IEnumACString_AddRef(IEnumACString* This) {
8978     return This->lpVtbl->AddRef(This);
8979 }
8980 static FORCEINLINE ULONG IEnumACString_Release(IEnumACString* This) {
8981     return This->lpVtbl->Release(This);
8982 }
8983 /*** IEnumString methods ***/
8984 static FORCEINLINE HRESULT IEnumACString_Next(IEnumACString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
8985     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
8986 }
8987 static FORCEINLINE HRESULT IEnumACString_Skip(IEnumACString* This,ULONG celt) {
8988     return This->lpVtbl->Skip(This,celt);
8989 }
8990 static FORCEINLINE HRESULT IEnumACString_Reset(IEnumACString* This) {
8991     return This->lpVtbl->Reset(This);
8992 }
8993 static FORCEINLINE HRESULT IEnumACString_Clone(IEnumACString* This,IEnumString **ppenum) {
8994     return This->lpVtbl->Clone(This,ppenum);
8995 }
8996 /*** IEnumACString methods ***/
8997 static FORCEINLINE HRESULT IEnumACString_NextItem(IEnumACString* This,LPWSTR pszUrl,ULONG cchMax,ULONG *pulSortIndex) {
8998     return This->lpVtbl->NextItem(This,pszUrl,cchMax,pulSortIndex);
8999 }
9000 static FORCEINLINE HRESULT IEnumACString_SetEnumOptions(IEnumACString* This,DWORD dwOptions) {
9001     return This->lpVtbl->SetEnumOptions(This,dwOptions);
9002 }
9003 static FORCEINLINE HRESULT IEnumACString_GetEnumOptions(IEnumACString* This,DWORD *pdwOptions) {
9004     return This->lpVtbl->GetEnumOptions(This,pdwOptions);
9005 }
9006 #endif
9007 #endif
9008 
9009 #endif
9010 
9011 HRESULT STDMETHODCALLTYPE IEnumACString_NextItem_Proxy(
9012     IEnumACString* This,
9013     LPWSTR pszUrl,
9014     ULONG cchMax,
9015     ULONG *pulSortIndex);
9016 void __RPC_STUB IEnumACString_NextItem_Stub(
9017     IRpcStubBuffer* This,
9018     IRpcChannelBuffer* pRpcChannelBuffer,
9019     PRPC_MESSAGE pRpcMessage,
9020     DWORD* pdwStubPhase);
9021 HRESULT STDMETHODCALLTYPE IEnumACString_SetEnumOptions_Proxy(
9022     IEnumACString* This,
9023     DWORD dwOptions);
9024 void __RPC_STUB IEnumACString_SetEnumOptions_Stub(
9025     IRpcStubBuffer* This,
9026     IRpcChannelBuffer* pRpcChannelBuffer,
9027     PRPC_MESSAGE pRpcMessage,
9028     DWORD* pdwStubPhase);
9029 HRESULT STDMETHODCALLTYPE IEnumACString_GetEnumOptions_Proxy(
9030     IEnumACString* This,
9031     DWORD *pdwOptions);
9032 void __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 
9046 DEFINE_GUID(IID_IDataObjectAsyncCapability, 0x3d8b0590, 0xf691, 0x11d2, 0x8e,0xa9, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
9047 #if defined(__cplusplus) && !defined(CINTERFACE)
9048 MIDL_INTERFACE("3d8b0590-f691-11d2-8ea9-006097df5bd4")
9049 IDataObjectAsyncCapability : 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
9073 typedef 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;
9113 interface 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 ***/
9131 static FORCEINLINE HRESULT IDataObjectAsyncCapability_QueryInterface(IDataObjectAsyncCapability* This,REFIID riid,void **ppvObject) {
9132     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9133 }
9134 static FORCEINLINE ULONG IDataObjectAsyncCapability_AddRef(IDataObjectAsyncCapability* This) {
9135     return This->lpVtbl->AddRef(This);
9136 }
9137 static FORCEINLINE ULONG IDataObjectAsyncCapability_Release(IDataObjectAsyncCapability* This) {
9138     return This->lpVtbl->Release(This);
9139 }
9140 /*** IDataObjectAsyncCapability methods ***/
9141 static FORCEINLINE HRESULT IDataObjectAsyncCapability_SetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL fDoOpAsync) {
9142     return This->lpVtbl->SetAsyncMode(This,fDoOpAsync);
9143 }
9144 static FORCEINLINE HRESULT IDataObjectAsyncCapability_GetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL *pfIsOpAsync) {
9145     return This->lpVtbl->GetAsyncMode(This,pfIsOpAsync);
9146 }
9147 static FORCEINLINE HRESULT IDataObjectAsyncCapability_StartOperation(IDataObjectAsyncCapability* This,IBindCtx *pbcReserved) {
9148     return This->lpVtbl->StartOperation(This,pbcReserved);
9149 }
9150 static FORCEINLINE HRESULT IDataObjectAsyncCapability_InOperation(IDataObjectAsyncCapability* This,WINBOOL *pfInAsyncOp) {
9151     return This->lpVtbl->InOperation(This,pfInAsyncOp);
9152 }
9153 static 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 
9161 HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_SetAsyncMode_Proxy(
9162     IDataObjectAsyncCapability* This,
9163     WINBOOL fDoOpAsync);
9164 void __RPC_STUB IDataObjectAsyncCapability_SetAsyncMode_Stub(
9165     IRpcStubBuffer* This,
9166     IRpcChannelBuffer* pRpcChannelBuffer,
9167     PRPC_MESSAGE pRpcMessage,
9168     DWORD* pdwStubPhase);
9169 HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_GetAsyncMode_Proxy(
9170     IDataObjectAsyncCapability* This,
9171     WINBOOL *pfIsOpAsync);
9172 void __RPC_STUB IDataObjectAsyncCapability_GetAsyncMode_Stub(
9173     IRpcStubBuffer* This,
9174     IRpcChannelBuffer* pRpcChannelBuffer,
9175     PRPC_MESSAGE pRpcMessage,
9176     DWORD* pdwStubPhase);
9177 HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_StartOperation_Proxy(
9178     IDataObjectAsyncCapability* This,
9179     IBindCtx *pbcReserved);
9180 void __RPC_STUB IDataObjectAsyncCapability_StartOperation_Stub(
9181     IRpcStubBuffer* This,
9182     IRpcChannelBuffer* pRpcChannelBuffer,
9183     PRPC_MESSAGE pRpcMessage,
9184     DWORD* pdwStubPhase);
9185 HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_InOperation_Proxy(
9186     IDataObjectAsyncCapability* This,
9187     WINBOOL *pfInAsyncOp);
9188 void __RPC_STUB IDataObjectAsyncCapability_InOperation_Stub(
9189     IRpcStubBuffer* This,
9190     IRpcChannelBuffer* pRpcChannelBuffer,
9191     PRPC_MESSAGE pRpcMessage,
9192     DWORD* pdwStubPhase);
9193 HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_EndOperation_Proxy(
9194     IDataObjectAsyncCapability* This,
9195     HRESULT hResult,
9196     IBindCtx *pbcReserved,
9197     DWORD dwEffects);
9198 void __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 
9209 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
9210 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
9211 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
9212 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
9213 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
9214 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
9215 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
9216 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
9217 
9218 /* End additional prototypes */
9219 
9220 #ifdef __cplusplus
9221 }
9222 #endif
9223 
9224 #endif /* __shldisp_h__ */
9225