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