zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

shldisp.h (306846B) - Raw


      1 /*** Autogenerated by WIDL 10.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 inline HRESULT IFolderViewOC_QueryInterface(IFolderViewOC* This,REFIID riid,void **ppvObject) {
    488     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    489 }
    490 static inline ULONG IFolderViewOC_AddRef(IFolderViewOC* This) {
    491     return This->lpVtbl->AddRef(This);
    492 }
    493 static inline ULONG IFolderViewOC_Release(IFolderViewOC* This) {
    494     return This->lpVtbl->Release(This);
    495 }
    496 /*** IDispatch methods ***/
    497 static inline HRESULT IFolderViewOC_GetTypeInfoCount(IFolderViewOC* This,UINT *pctinfo) {
    498     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    499 }
    500 static inline HRESULT IFolderViewOC_GetTypeInfo(IFolderViewOC* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    501     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    502 }
    503 static inline 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 inline 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 inline 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 inline HRESULT DShellFolderViewEvents_QueryInterface(DShellFolderViewEvents* This,REFIID riid,void **ppvObject) {
    603     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    604 }
    605 static inline ULONG DShellFolderViewEvents_AddRef(DShellFolderViewEvents* This) {
    606     return This->lpVtbl->AddRef(This);
    607 }
    608 static inline ULONG DShellFolderViewEvents_Release(DShellFolderViewEvents* This) {
    609     return This->lpVtbl->Release(This);
    610 }
    611 /*** IDispatch methods ***/
    612 static inline HRESULT DShellFolderViewEvents_GetTypeInfoCount(DShellFolderViewEvents* This,UINT *pctinfo) {
    613     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    614 }
    615 static inline HRESULT DShellFolderViewEvents_GetTypeInfo(DShellFolderViewEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    616     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    617 }
    618 static inline 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 inline 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 inline HRESULT DFConstraint_QueryInterface(DFConstraint* This,REFIID riid,void **ppvObject) {
    744     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    745 }
    746 static inline ULONG DFConstraint_AddRef(DFConstraint* This) {
    747     return This->lpVtbl->AddRef(This);
    748 }
    749 static inline ULONG DFConstraint_Release(DFConstraint* This) {
    750     return This->lpVtbl->Release(This);
    751 }
    752 /*** IDispatch methods ***/
    753 static inline HRESULT DFConstraint_GetTypeInfoCount(DFConstraint* This,UINT *pctinfo) {
    754     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    755 }
    756 static inline HRESULT DFConstraint_GetTypeInfo(DFConstraint* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    757     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    758 }
    759 static inline 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 inline 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 inline HRESULT DFConstraint_get_Name(DFConstraint* This,BSTR *pbs) {
    767     return This->lpVtbl->get_Name(This,pbs);
    768 }
    769 static inline 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 inline HRESULT Folder_QueryInterface(Folder* This,REFIID riid,void **ppvObject) {
    956     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    957 }
    958 static inline ULONG Folder_AddRef(Folder* This) {
    959     return This->lpVtbl->AddRef(This);
    960 }
    961 static inline ULONG Folder_Release(Folder* This) {
    962     return This->lpVtbl->Release(This);
    963 }
    964 /*** IDispatch methods ***/
    965 static inline HRESULT Folder_GetTypeInfoCount(Folder* This,UINT *pctinfo) {
    966     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    967 }
    968 static inline HRESULT Folder_GetTypeInfo(Folder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    969     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    970 }
    971 static inline 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 inline 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 inline HRESULT Folder_get_Title(Folder* This,BSTR *pbs) {
    979     return This->lpVtbl->get_Title(This,pbs);
    980 }
    981 static inline HRESULT Folder_get_Application(Folder* This,IDispatch **ppid) {
    982     return This->lpVtbl->get_Application(This,ppid);
    983 }
    984 static inline HRESULT Folder_get_Parent(Folder* This,IDispatch **ppid) {
    985     return This->lpVtbl->get_Parent(This,ppid);
    986 }
    987 static inline HRESULT Folder_get_ParentFolder(Folder* This,Folder **ppsf) {
    988     return This->lpVtbl->get_ParentFolder(This,ppsf);
    989 }
    990 static inline HRESULT Folder_Items(Folder* This,FolderItems **ppid) {
    991     return This->lpVtbl->Items(This,ppid);
    992 }
    993 static inline HRESULT Folder_ParseName(Folder* This,BSTR bName,FolderItem **ppid) {
    994     return This->lpVtbl->ParseName(This,bName,ppid);
    995 }
    996 static inline HRESULT Folder_NewFolder(Folder* This,BSTR bName,VARIANT vOptions) {
    997     return This->lpVtbl->NewFolder(This,bName,vOptions);
    998 }
    999 static inline HRESULT Folder_MoveHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
   1000     return This->lpVtbl->MoveHere(This,vItem,vOptions);
   1001 }
   1002 static inline HRESULT Folder_CopyHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
   1003     return This->lpVtbl->CopyHere(This,vItem,vOptions);
   1004 }
   1005 static inline 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 inline HRESULT Folder2_QueryInterface(Folder2* This,REFIID riid,void **ppvObject) {
   1196     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1197 }
   1198 static inline ULONG Folder2_AddRef(Folder2* This) {
   1199     return This->lpVtbl->AddRef(This);
   1200 }
   1201 static inline ULONG Folder2_Release(Folder2* This) {
   1202     return This->lpVtbl->Release(This);
   1203 }
   1204 /*** IDispatch methods ***/
   1205 static inline HRESULT Folder2_GetTypeInfoCount(Folder2* This,UINT *pctinfo) {
   1206     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1207 }
   1208 static inline HRESULT Folder2_GetTypeInfo(Folder2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1209     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1210 }
   1211 static inline 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 inline 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 inline HRESULT Folder2_get_Title(Folder2* This,BSTR *pbs) {
   1219     return This->lpVtbl->get_Title(This,pbs);
   1220 }
   1221 static inline HRESULT Folder2_get_Application(Folder2* This,IDispatch **ppid) {
   1222     return This->lpVtbl->get_Application(This,ppid);
   1223 }
   1224 static inline HRESULT Folder2_get_Parent(Folder2* This,IDispatch **ppid) {
   1225     return This->lpVtbl->get_Parent(This,ppid);
   1226 }
   1227 static inline HRESULT Folder2_get_ParentFolder(Folder2* This,Folder **ppsf) {
   1228     return This->lpVtbl->get_ParentFolder(This,ppsf);
   1229 }
   1230 static inline HRESULT Folder2_Items(Folder2* This,FolderItems **ppid) {
   1231     return This->lpVtbl->Items(This,ppid);
   1232 }
   1233 static inline HRESULT Folder2_ParseName(Folder2* This,BSTR bName,FolderItem **ppid) {
   1234     return This->lpVtbl->ParseName(This,bName,ppid);
   1235 }
   1236 static inline HRESULT Folder2_NewFolder(Folder2* This,BSTR bName,VARIANT vOptions) {
   1237     return This->lpVtbl->NewFolder(This,bName,vOptions);
   1238 }
   1239 static inline HRESULT Folder2_MoveHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
   1240     return This->lpVtbl->MoveHere(This,vItem,vOptions);
   1241 }
   1242 static inline HRESULT Folder2_CopyHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
   1243     return This->lpVtbl->CopyHere(This,vItem,vOptions);
   1244 }
   1245 static inline 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 inline HRESULT Folder2_get_Self(Folder2* This,FolderItem **ppfi) {
   1250     return This->lpVtbl->get_Self(This,ppfi);
   1251 }
   1252 static inline HRESULT Folder2_get_OfflineStatus(Folder2* This,LONG *pul) {
   1253     return This->lpVtbl->get_OfflineStatus(This,pul);
   1254 }
   1255 static inline HRESULT Folder2_Synchronize(Folder2* This) {
   1256     return This->lpVtbl->Synchronize(This);
   1257 }
   1258 static inline HRESULT Folder2_get_HaveToShowWebViewBarricade(Folder2* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
   1259     return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
   1260 }
   1261 static inline 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 inline HRESULT Folder3_QueryInterface(Folder3* This,REFIID riid,void **ppvObject) {
   1462     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1463 }
   1464 static inline ULONG Folder3_AddRef(Folder3* This) {
   1465     return This->lpVtbl->AddRef(This);
   1466 }
   1467 static inline ULONG Folder3_Release(Folder3* This) {
   1468     return This->lpVtbl->Release(This);
   1469 }
   1470 /*** IDispatch methods ***/
   1471 static inline HRESULT Folder3_GetTypeInfoCount(Folder3* This,UINT *pctinfo) {
   1472     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1473 }
   1474 static inline HRESULT Folder3_GetTypeInfo(Folder3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1475     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1476 }
   1477 static inline 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 inline 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 inline HRESULT Folder3_get_Title(Folder3* This,BSTR *pbs) {
   1485     return This->lpVtbl->get_Title(This,pbs);
   1486 }
   1487 static inline HRESULT Folder3_get_Application(Folder3* This,IDispatch **ppid) {
   1488     return This->lpVtbl->get_Application(This,ppid);
   1489 }
   1490 static inline HRESULT Folder3_get_Parent(Folder3* This,IDispatch **ppid) {
   1491     return This->lpVtbl->get_Parent(This,ppid);
   1492 }
   1493 static inline HRESULT Folder3_get_ParentFolder(Folder3* This,Folder **ppsf) {
   1494     return This->lpVtbl->get_ParentFolder(This,ppsf);
   1495 }
   1496 static inline HRESULT Folder3_Items(Folder3* This,FolderItems **ppid) {
   1497     return This->lpVtbl->Items(This,ppid);
   1498 }
   1499 static inline HRESULT Folder3_ParseName(Folder3* This,BSTR bName,FolderItem **ppid) {
   1500     return This->lpVtbl->ParseName(This,bName,ppid);
   1501 }
   1502 static inline HRESULT Folder3_NewFolder(Folder3* This,BSTR bName,VARIANT vOptions) {
   1503     return This->lpVtbl->NewFolder(This,bName,vOptions);
   1504 }
   1505 static inline HRESULT Folder3_MoveHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
   1506     return This->lpVtbl->MoveHere(This,vItem,vOptions);
   1507 }
   1508 static inline HRESULT Folder3_CopyHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
   1509     return This->lpVtbl->CopyHere(This,vItem,vOptions);
   1510 }
   1511 static inline 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 inline HRESULT Folder3_get_Self(Folder3* This,FolderItem **ppfi) {
   1516     return This->lpVtbl->get_Self(This,ppfi);
   1517 }
   1518 static inline HRESULT Folder3_get_OfflineStatus(Folder3* This,LONG *pul) {
   1519     return This->lpVtbl->get_OfflineStatus(This,pul);
   1520 }
   1521 static inline HRESULT Folder3_Synchronize(Folder3* This) {
   1522     return This->lpVtbl->Synchronize(This);
   1523 }
   1524 static inline HRESULT Folder3_get_HaveToShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
   1525     return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
   1526 }
   1527 static inline HRESULT Folder3_DismissedWebViewBarricade(Folder3* This) {
   1528     return This->lpVtbl->DismissedWebViewBarricade(This);
   1529 }
   1530 /*** Folder3 methods ***/
   1531 static inline HRESULT Folder3_get_ShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbShowWebViewBarricade) {
   1532     return This->lpVtbl->get_ShowWebViewBarricade(This,pbShowWebViewBarricade);
   1533 }
   1534 static inline 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 inline HRESULT FolderItem_QueryInterface(FolderItem* This,REFIID riid,void **ppvObject) {
   1766     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1767 }
   1768 static inline ULONG FolderItem_AddRef(FolderItem* This) {
   1769     return This->lpVtbl->AddRef(This);
   1770 }
   1771 static inline ULONG FolderItem_Release(FolderItem* This) {
   1772     return This->lpVtbl->Release(This);
   1773 }
   1774 /*** IDispatch methods ***/
   1775 static inline HRESULT FolderItem_GetTypeInfoCount(FolderItem* This,UINT *pctinfo) {
   1776     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1777 }
   1778 static inline HRESULT FolderItem_GetTypeInfo(FolderItem* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1779     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1780 }
   1781 static inline 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 inline 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 inline HRESULT FolderItem_get_Application(FolderItem* This,IDispatch **ppid) {
   1789     return This->lpVtbl->get_Application(This,ppid);
   1790 }
   1791 static inline HRESULT FolderItem_get_Parent(FolderItem* This,IDispatch **ppid) {
   1792     return This->lpVtbl->get_Parent(This,ppid);
   1793 }
   1794 static inline HRESULT FolderItem_get_Name(FolderItem* This,BSTR *pbs) {
   1795     return This->lpVtbl->get_Name(This,pbs);
   1796 }
   1797 static inline HRESULT FolderItem_put_Name(FolderItem* This,BSTR bs) {
   1798     return This->lpVtbl->put_Name(This,bs);
   1799 }
   1800 static inline HRESULT FolderItem_get_Path(FolderItem* This,BSTR *pbs) {
   1801     return This->lpVtbl->get_Path(This,pbs);
   1802 }
   1803 static inline HRESULT FolderItem_get_GetLink(FolderItem* This,IDispatch **ppid) {
   1804     return This->lpVtbl->get_GetLink(This,ppid);
   1805 }
   1806 static inline HRESULT FolderItem_get_GetFolder(FolderItem* This,IDispatch **ppid) {
   1807     return This->lpVtbl->get_GetFolder(This,ppid);
   1808 }
   1809 static inline HRESULT FolderItem_get_IsLink(FolderItem* This,VARIANT_BOOL *pb) {
   1810     return This->lpVtbl->get_IsLink(This,pb);
   1811 }
   1812 static inline HRESULT FolderItem_get_IsFolder(FolderItem* This,VARIANT_BOOL *pb) {
   1813     return This->lpVtbl->get_IsFolder(This,pb);
   1814 }
   1815 static inline HRESULT FolderItem_get_IsFileSystem(FolderItem* This,VARIANT_BOOL *pb) {
   1816     return This->lpVtbl->get_IsFileSystem(This,pb);
   1817 }
   1818 static inline HRESULT FolderItem_get_IsBrowsable(FolderItem* This,VARIANT_BOOL *pb) {
   1819     return This->lpVtbl->get_IsBrowsable(This,pb);
   1820 }
   1821 static inline HRESULT FolderItem_get_ModifyDate(FolderItem* This,DATE *pdt) {
   1822     return This->lpVtbl->get_ModifyDate(This,pdt);
   1823 }
   1824 static inline HRESULT FolderItem_put_ModifyDate(FolderItem* This,DATE dt) {
   1825     return This->lpVtbl->put_ModifyDate(This,dt);
   1826 }
   1827 static inline HRESULT FolderItem_get_Size(FolderItem* This,LONG *pul) {
   1828     return This->lpVtbl->get_Size(This,pul);
   1829 }
   1830 static inline HRESULT FolderItem_get_Type(FolderItem* This,BSTR *pbs) {
   1831     return This->lpVtbl->get_Type(This,pbs);
   1832 }
   1833 static inline HRESULT FolderItem_Verbs(FolderItem* This,FolderItemVerbs **ppfic) {
   1834     return This->lpVtbl->Verbs(This,ppfic);
   1835 }
   1836 static inline 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 inline HRESULT FolderItem2_QueryInterface(FolderItem2* This,REFIID riid,void **ppvObject) {
   2038     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2039 }
   2040 static inline ULONG FolderItem2_AddRef(FolderItem2* This) {
   2041     return This->lpVtbl->AddRef(This);
   2042 }
   2043 static inline ULONG FolderItem2_Release(FolderItem2* This) {
   2044     return This->lpVtbl->Release(This);
   2045 }
   2046 /*** IDispatch methods ***/
   2047 static inline HRESULT FolderItem2_GetTypeInfoCount(FolderItem2* This,UINT *pctinfo) {
   2048     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2049 }
   2050 static inline HRESULT FolderItem2_GetTypeInfo(FolderItem2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2051     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2052 }
   2053 static inline 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 inline 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 inline HRESULT FolderItem2_get_Application(FolderItem2* This,IDispatch **ppid) {
   2061     return This->lpVtbl->get_Application(This,ppid);
   2062 }
   2063 static inline HRESULT FolderItem2_get_Parent(FolderItem2* This,IDispatch **ppid) {
   2064     return This->lpVtbl->get_Parent(This,ppid);
   2065 }
   2066 static inline HRESULT FolderItem2_get_Name(FolderItem2* This,BSTR *pbs) {
   2067     return This->lpVtbl->get_Name(This,pbs);
   2068 }
   2069 static inline HRESULT FolderItem2_put_Name(FolderItem2* This,BSTR bs) {
   2070     return This->lpVtbl->put_Name(This,bs);
   2071 }
   2072 static inline HRESULT FolderItem2_get_Path(FolderItem2* This,BSTR *pbs) {
   2073     return This->lpVtbl->get_Path(This,pbs);
   2074 }
   2075 static inline HRESULT FolderItem2_get_GetLink(FolderItem2* This,IDispatch **ppid) {
   2076     return This->lpVtbl->get_GetLink(This,ppid);
   2077 }
   2078 static inline HRESULT FolderItem2_get_GetFolder(FolderItem2* This,IDispatch **ppid) {
   2079     return This->lpVtbl->get_GetFolder(This,ppid);
   2080 }
   2081 static inline HRESULT FolderItem2_get_IsLink(FolderItem2* This,VARIANT_BOOL *pb) {
   2082     return This->lpVtbl->get_IsLink(This,pb);
   2083 }
   2084 static inline HRESULT FolderItem2_get_IsFolder(FolderItem2* This,VARIANT_BOOL *pb) {
   2085     return This->lpVtbl->get_IsFolder(This,pb);
   2086 }
   2087 static inline HRESULT FolderItem2_get_IsFileSystem(FolderItem2* This,VARIANT_BOOL *pb) {
   2088     return This->lpVtbl->get_IsFileSystem(This,pb);
   2089 }
   2090 static inline HRESULT FolderItem2_get_IsBrowsable(FolderItem2* This,VARIANT_BOOL *pb) {
   2091     return This->lpVtbl->get_IsBrowsable(This,pb);
   2092 }
   2093 static inline HRESULT FolderItem2_get_ModifyDate(FolderItem2* This,DATE *pdt) {
   2094     return This->lpVtbl->get_ModifyDate(This,pdt);
   2095 }
   2096 static inline HRESULT FolderItem2_put_ModifyDate(FolderItem2* This,DATE dt) {
   2097     return This->lpVtbl->put_ModifyDate(This,dt);
   2098 }
   2099 static inline HRESULT FolderItem2_get_Size(FolderItem2* This,LONG *pul) {
   2100     return This->lpVtbl->get_Size(This,pul);
   2101 }
   2102 static inline HRESULT FolderItem2_get_Type(FolderItem2* This,BSTR *pbs) {
   2103     return This->lpVtbl->get_Type(This,pbs);
   2104 }
   2105 static inline HRESULT FolderItem2_Verbs(FolderItem2* This,FolderItemVerbs **ppfic) {
   2106     return This->lpVtbl->Verbs(This,ppfic);
   2107 }
   2108 static inline HRESULT FolderItem2_InvokeVerb(FolderItem2* This,VARIANT vVerb) {
   2109     return This->lpVtbl->InvokeVerb(This,vVerb);
   2110 }
   2111 /*** FolderItem2 methods ***/
   2112 static inline HRESULT FolderItem2_InvokeVerbEx(FolderItem2* This,VARIANT vVerb,VARIANT vArgs) {
   2113     return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
   2114 }
   2115 static inline 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 inline HRESULT FolderItems_QueryInterface(FolderItems* This,REFIID riid,void **ppvObject) {
   2265     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2266 }
   2267 static inline ULONG FolderItems_AddRef(FolderItems* This) {
   2268     return This->lpVtbl->AddRef(This);
   2269 }
   2270 static inline ULONG FolderItems_Release(FolderItems* This) {
   2271     return This->lpVtbl->Release(This);
   2272 }
   2273 /*** IDispatch methods ***/
   2274 static inline HRESULT FolderItems_GetTypeInfoCount(FolderItems* This,UINT *pctinfo) {
   2275     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2276 }
   2277 static inline HRESULT FolderItems_GetTypeInfo(FolderItems* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2278     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2279 }
   2280 static inline 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 inline 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 inline HRESULT FolderItems_get_Count(FolderItems* This,LONG *plCount) {
   2288     return This->lpVtbl->get_Count(This,plCount);
   2289 }
   2290 static inline HRESULT FolderItems_get_Application(FolderItems* This,IDispatch **ppid) {
   2291     return This->lpVtbl->get_Application(This,ppid);
   2292 }
   2293 static inline HRESULT FolderItems_get_Parent(FolderItems* This,IDispatch **ppid) {
   2294     return This->lpVtbl->get_Parent(This,ppid);
   2295 }
   2296 static inline HRESULT FolderItems_Item(FolderItems* This,VARIANT index,FolderItem **ppid) {
   2297     return This->lpVtbl->Item(This,index,ppid);
   2298 }
   2299 static inline 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 inline HRESULT FolderItems2_QueryInterface(FolderItems2* This,REFIID riid,void **ppvObject) {
   2432     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2433 }
   2434 static inline ULONG FolderItems2_AddRef(FolderItems2* This) {
   2435     return This->lpVtbl->AddRef(This);
   2436 }
   2437 static inline ULONG FolderItems2_Release(FolderItems2* This) {
   2438     return This->lpVtbl->Release(This);
   2439 }
   2440 /*** IDispatch methods ***/
   2441 static inline HRESULT FolderItems2_GetTypeInfoCount(FolderItems2* This,UINT *pctinfo) {
   2442     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2443 }
   2444 static inline HRESULT FolderItems2_GetTypeInfo(FolderItems2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2445     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2446 }
   2447 static inline 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 inline 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 inline HRESULT FolderItems2_get_Count(FolderItems2* This,LONG *plCount) {
   2455     return This->lpVtbl->get_Count(This,plCount);
   2456 }
   2457 static inline HRESULT FolderItems2_get_Application(FolderItems2* This,IDispatch **ppid) {
   2458     return This->lpVtbl->get_Application(This,ppid);
   2459 }
   2460 static inline HRESULT FolderItems2_get_Parent(FolderItems2* This,IDispatch **ppid) {
   2461     return This->lpVtbl->get_Parent(This,ppid);
   2462 }
   2463 static inline HRESULT FolderItems2_Item(FolderItems2* This,VARIANT index,FolderItem **ppid) {
   2464     return This->lpVtbl->Item(This,index,ppid);
   2465 }
   2466 static inline HRESULT FolderItems2__NewEnum(FolderItems2* This,IUnknown **ppunk) {
   2467     return This->lpVtbl->_NewEnum(This,ppunk);
   2468 }
   2469 /*** FolderItems2 methods ***/
   2470 static inline 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 inline HRESULT FolderItems3_QueryInterface(FolderItems3* This,REFIID riid,void **ppvObject) {
   2619     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2620 }
   2621 static inline ULONG FolderItems3_AddRef(FolderItems3* This) {
   2622     return This->lpVtbl->AddRef(This);
   2623 }
   2624 static inline ULONG FolderItems3_Release(FolderItems3* This) {
   2625     return This->lpVtbl->Release(This);
   2626 }
   2627 /*** IDispatch methods ***/
   2628 static inline HRESULT FolderItems3_GetTypeInfoCount(FolderItems3* This,UINT *pctinfo) {
   2629     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2630 }
   2631 static inline HRESULT FolderItems3_GetTypeInfo(FolderItems3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2632     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2633 }
   2634 static inline 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 inline 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 inline HRESULT FolderItems3_get_Count(FolderItems3* This,LONG *plCount) {
   2642     return This->lpVtbl->get_Count(This,plCount);
   2643 }
   2644 static inline HRESULT FolderItems3_get_Application(FolderItems3* This,IDispatch **ppid) {
   2645     return This->lpVtbl->get_Application(This,ppid);
   2646 }
   2647 static inline HRESULT FolderItems3_get_Parent(FolderItems3* This,IDispatch **ppid) {
   2648     return This->lpVtbl->get_Parent(This,ppid);
   2649 }
   2650 static inline HRESULT FolderItems3_Item(FolderItems3* This,VARIANT index,FolderItem **ppid) {
   2651     return This->lpVtbl->Item(This,index,ppid);
   2652 }
   2653 static inline HRESULT FolderItems3__NewEnum(FolderItems3* This,IUnknown **ppunk) {
   2654     return This->lpVtbl->_NewEnum(This,ppunk);
   2655 }
   2656 /*** FolderItems2 methods ***/
   2657 static inline HRESULT FolderItems3_InvokeVerbEx(FolderItems3* This,VARIANT vVerb,VARIANT vArgs) {
   2658     return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
   2659 }
   2660 /*** FolderItems3 methods ***/
   2661 static inline HRESULT FolderItems3_Filter(FolderItems3* This,LONG grfFlags,BSTR bstrFileSpec) {
   2662     return This->lpVtbl->Filter(This,grfFlags,bstrFileSpec);
   2663 }
   2664 static inline 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 inline HRESULT FolderItemVerb_QueryInterface(FolderItemVerb* This,REFIID riid,void **ppvObject) {
   2790     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2791 }
   2792 static inline ULONG FolderItemVerb_AddRef(FolderItemVerb* This) {
   2793     return This->lpVtbl->AddRef(This);
   2794 }
   2795 static inline ULONG FolderItemVerb_Release(FolderItemVerb* This) {
   2796     return This->lpVtbl->Release(This);
   2797 }
   2798 /*** IDispatch methods ***/
   2799 static inline HRESULT FolderItemVerb_GetTypeInfoCount(FolderItemVerb* This,UINT *pctinfo) {
   2800     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2801 }
   2802 static inline HRESULT FolderItemVerb_GetTypeInfo(FolderItemVerb* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2803     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2804 }
   2805 static inline 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 inline 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 inline HRESULT FolderItemVerb_get_Application(FolderItemVerb* This,IDispatch **ppid) {
   2813     return This->lpVtbl->get_Application(This,ppid);
   2814 }
   2815 static inline HRESULT FolderItemVerb_get_Parent(FolderItemVerb* This,IDispatch **ppid) {
   2816     return This->lpVtbl->get_Parent(This,ppid);
   2817 }
   2818 static inline HRESULT FolderItemVerb_get_Name(FolderItemVerb* This,BSTR *pbs) {
   2819     return This->lpVtbl->get_Name(This,pbs);
   2820 }
   2821 static inline 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 inline HRESULT FolderItemVerbs_QueryInterface(FolderItemVerbs* This,REFIID riid,void **ppvObject) {
   2958     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2959 }
   2960 static inline ULONG FolderItemVerbs_AddRef(FolderItemVerbs* This) {
   2961     return This->lpVtbl->AddRef(This);
   2962 }
   2963 static inline ULONG FolderItemVerbs_Release(FolderItemVerbs* This) {
   2964     return This->lpVtbl->Release(This);
   2965 }
   2966 /*** IDispatch methods ***/
   2967 static inline HRESULT FolderItemVerbs_GetTypeInfoCount(FolderItemVerbs* This,UINT *pctinfo) {
   2968     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2969 }
   2970 static inline HRESULT FolderItemVerbs_GetTypeInfo(FolderItemVerbs* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2971     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2972 }
   2973 static inline 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 inline 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 inline HRESULT FolderItemVerbs_get_Count(FolderItemVerbs* This,LONG *plCount) {
   2981     return This->lpVtbl->get_Count(This,plCount);
   2982 }
   2983 static inline HRESULT FolderItemVerbs_get_Application(FolderItemVerbs* This,IDispatch **ppid) {
   2984     return This->lpVtbl->get_Application(This,ppid);
   2985 }
   2986 static inline HRESULT FolderItemVerbs_get_Parent(FolderItemVerbs* This,IDispatch **ppid) {
   2987     return This->lpVtbl->get_Parent(This,ppid);
   2988 }
   2989 static inline HRESULT FolderItemVerbs_Item(FolderItemVerbs* This,VARIANT index,FolderItemVerb **ppid) {
   2990     return This->lpVtbl->Item(This,index,ppid);
   2991 }
   2992 static inline 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 inline HRESULT IShellLinkDual_QueryInterface(IShellLinkDual* This,REFIID riid,void **ppvObject) {
   3219     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3220 }
   3221 static inline ULONG IShellLinkDual_AddRef(IShellLinkDual* This) {
   3222     return This->lpVtbl->AddRef(This);
   3223 }
   3224 static inline ULONG IShellLinkDual_Release(IShellLinkDual* This) {
   3225     return This->lpVtbl->Release(This);
   3226 }
   3227 /*** IDispatch methods ***/
   3228 static inline HRESULT IShellLinkDual_GetTypeInfoCount(IShellLinkDual* This,UINT *pctinfo) {
   3229     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3230 }
   3231 static inline HRESULT IShellLinkDual_GetTypeInfo(IShellLinkDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3232     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3233 }
   3234 static inline 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 inline 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 inline HRESULT IShellLinkDual_get_Path(IShellLinkDual* This,BSTR *pbs) {
   3242     return This->lpVtbl->get_Path(This,pbs);
   3243 }
   3244 static inline HRESULT IShellLinkDual_put_Path(IShellLinkDual* This,BSTR bs) {
   3245     return This->lpVtbl->put_Path(This,bs);
   3246 }
   3247 static inline HRESULT IShellLinkDual_get_Description(IShellLinkDual* This,BSTR *pbs) {
   3248     return This->lpVtbl->get_Description(This,pbs);
   3249 }
   3250 static inline HRESULT IShellLinkDual_put_Description(IShellLinkDual* This,BSTR bs) {
   3251     return This->lpVtbl->put_Description(This,bs);
   3252 }
   3253 static inline HRESULT IShellLinkDual_get_WorkingDirectory(IShellLinkDual* This,BSTR *pbs) {
   3254     return This->lpVtbl->get_WorkingDirectory(This,pbs);
   3255 }
   3256 static inline HRESULT IShellLinkDual_put_WorkingDirectory(IShellLinkDual* This,BSTR bs) {
   3257     return This->lpVtbl->put_WorkingDirectory(This,bs);
   3258 }
   3259 static inline HRESULT IShellLinkDual_get_Arguments(IShellLinkDual* This,BSTR *pbs) {
   3260     return This->lpVtbl->get_Arguments(This,pbs);
   3261 }
   3262 static inline HRESULT IShellLinkDual_put_Arguments(IShellLinkDual* This,BSTR bs) {
   3263     return This->lpVtbl->put_Arguments(This,bs);
   3264 }
   3265 static inline HRESULT IShellLinkDual_get_Hotkey(IShellLinkDual* This,int *piHK) {
   3266     return This->lpVtbl->get_Hotkey(This,piHK);
   3267 }
   3268 static inline HRESULT IShellLinkDual_put_Hotkey(IShellLinkDual* This,int iHK) {
   3269     return This->lpVtbl->put_Hotkey(This,iHK);
   3270 }
   3271 static inline HRESULT IShellLinkDual_get_ShowCommand(IShellLinkDual* This,int *piShowCommand) {
   3272     return This->lpVtbl->get_ShowCommand(This,piShowCommand);
   3273 }
   3274 static inline HRESULT IShellLinkDual_put_ShowCommand(IShellLinkDual* This,int iShowCommand) {
   3275     return This->lpVtbl->put_ShowCommand(This,iShowCommand);
   3276 }
   3277 static inline HRESULT IShellLinkDual_Resolve(IShellLinkDual* This,int fFlags) {
   3278     return This->lpVtbl->Resolve(This,fFlags);
   3279 }
   3280 static inline HRESULT IShellLinkDual_GetIconLocation(IShellLinkDual* This,BSTR *pbs,int *piIcon) {
   3281     return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
   3282 }
   3283 static inline HRESULT IShellLinkDual_SetIconLocation(IShellLinkDual* This,BSTR bs,int iIcon) {
   3284     return This->lpVtbl->SetIconLocation(This,bs,iIcon);
   3285 }
   3286 static inline 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 inline HRESULT IShellLinkDual2_QueryInterface(IShellLinkDual2* This,REFIID riid,void **ppvObject) {
   3473     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3474 }
   3475 static inline ULONG IShellLinkDual2_AddRef(IShellLinkDual2* This) {
   3476     return This->lpVtbl->AddRef(This);
   3477 }
   3478 static inline ULONG IShellLinkDual2_Release(IShellLinkDual2* This) {
   3479     return This->lpVtbl->Release(This);
   3480 }
   3481 /*** IDispatch methods ***/
   3482 static inline HRESULT IShellLinkDual2_GetTypeInfoCount(IShellLinkDual2* This,UINT *pctinfo) {
   3483     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3484 }
   3485 static inline HRESULT IShellLinkDual2_GetTypeInfo(IShellLinkDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3486     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3487 }
   3488 static inline 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 inline 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 inline HRESULT IShellLinkDual2_get_Path(IShellLinkDual2* This,BSTR *pbs) {
   3496     return This->lpVtbl->get_Path(This,pbs);
   3497 }
   3498 static inline HRESULT IShellLinkDual2_put_Path(IShellLinkDual2* This,BSTR bs) {
   3499     return This->lpVtbl->put_Path(This,bs);
   3500 }
   3501 static inline HRESULT IShellLinkDual2_get_Description(IShellLinkDual2* This,BSTR *pbs) {
   3502     return This->lpVtbl->get_Description(This,pbs);
   3503 }
   3504 static inline HRESULT IShellLinkDual2_put_Description(IShellLinkDual2* This,BSTR bs) {
   3505     return This->lpVtbl->put_Description(This,bs);
   3506 }
   3507 static inline HRESULT IShellLinkDual2_get_WorkingDirectory(IShellLinkDual2* This,BSTR *pbs) {
   3508     return This->lpVtbl->get_WorkingDirectory(This,pbs);
   3509 }
   3510 static inline HRESULT IShellLinkDual2_put_WorkingDirectory(IShellLinkDual2* This,BSTR bs) {
   3511     return This->lpVtbl->put_WorkingDirectory(This,bs);
   3512 }
   3513 static inline HRESULT IShellLinkDual2_get_Arguments(IShellLinkDual2* This,BSTR *pbs) {
   3514     return This->lpVtbl->get_Arguments(This,pbs);
   3515 }
   3516 static inline HRESULT IShellLinkDual2_put_Arguments(IShellLinkDual2* This,BSTR bs) {
   3517     return This->lpVtbl->put_Arguments(This,bs);
   3518 }
   3519 static inline HRESULT IShellLinkDual2_get_Hotkey(IShellLinkDual2* This,int *piHK) {
   3520     return This->lpVtbl->get_Hotkey(This,piHK);
   3521 }
   3522 static inline HRESULT IShellLinkDual2_put_Hotkey(IShellLinkDual2* This,int iHK) {
   3523     return This->lpVtbl->put_Hotkey(This,iHK);
   3524 }
   3525 static inline HRESULT IShellLinkDual2_get_ShowCommand(IShellLinkDual2* This,int *piShowCommand) {
   3526     return This->lpVtbl->get_ShowCommand(This,piShowCommand);
   3527 }
   3528 static inline HRESULT IShellLinkDual2_put_ShowCommand(IShellLinkDual2* This,int iShowCommand) {
   3529     return This->lpVtbl->put_ShowCommand(This,iShowCommand);
   3530 }
   3531 static inline HRESULT IShellLinkDual2_Resolve(IShellLinkDual2* This,int fFlags) {
   3532     return This->lpVtbl->Resolve(This,fFlags);
   3533 }
   3534 static inline HRESULT IShellLinkDual2_GetIconLocation(IShellLinkDual2* This,BSTR *pbs,int *piIcon) {
   3535     return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
   3536 }
   3537 static inline HRESULT IShellLinkDual2_SetIconLocation(IShellLinkDual2* This,BSTR bs,int iIcon) {
   3538     return This->lpVtbl->SetIconLocation(This,bs,iIcon);
   3539 }
   3540 static inline HRESULT IShellLinkDual2_Save(IShellLinkDual2* This,VARIANT vWhere) {
   3541     return This->lpVtbl->Save(This,vWhere);
   3542 }
   3543 /*** IShellLinkDual2 methods ***/
   3544 static inline 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 inline HRESULT IShellFolderViewDual_QueryInterface(IShellFolderViewDual* This,REFIID riid,void **ppvObject) {
   3732     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3733 }
   3734 static inline ULONG IShellFolderViewDual_AddRef(IShellFolderViewDual* This) {
   3735     return This->lpVtbl->AddRef(This);
   3736 }
   3737 static inline ULONG IShellFolderViewDual_Release(IShellFolderViewDual* This) {
   3738     return This->lpVtbl->Release(This);
   3739 }
   3740 /*** IDispatch methods ***/
   3741 static inline HRESULT IShellFolderViewDual_GetTypeInfoCount(IShellFolderViewDual* This,UINT *pctinfo) {
   3742     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3743 }
   3744 static inline HRESULT IShellFolderViewDual_GetTypeInfo(IShellFolderViewDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3745     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3746 }
   3747 static inline 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 inline 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 inline HRESULT IShellFolderViewDual_get_Application(IShellFolderViewDual* This,IDispatch **ppid) {
   3755     return This->lpVtbl->get_Application(This,ppid);
   3756 }
   3757 static inline HRESULT IShellFolderViewDual_get_Parent(IShellFolderViewDual* This,IDispatch **ppid) {
   3758     return This->lpVtbl->get_Parent(This,ppid);
   3759 }
   3760 static inline HRESULT IShellFolderViewDual_get_Folder(IShellFolderViewDual* This,Folder **ppid) {
   3761     return This->lpVtbl->get_Folder(This,ppid);
   3762 }
   3763 static inline HRESULT IShellFolderViewDual_SelectedItems(IShellFolderViewDual* This,FolderItems **ppid) {
   3764     return This->lpVtbl->SelectedItems(This,ppid);
   3765 }
   3766 static inline HRESULT IShellFolderViewDual_get_FocusedItem(IShellFolderViewDual* This,FolderItem **ppid) {
   3767     return This->lpVtbl->get_FocusedItem(This,ppid);
   3768 }
   3769 static inline HRESULT IShellFolderViewDual_SelectItem(IShellFolderViewDual* This,VARIANT *pvfi,int dwFlags) {
   3770     return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
   3771 }
   3772 static inline 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 inline HRESULT IShellFolderViewDual_get_Script(IShellFolderViewDual* This,IDispatch **ppDisp) {
   3776     return This->lpVtbl->get_Script(This,ppDisp);
   3777 }
   3778 static inline 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 inline HRESULT IShellFolderViewDual2_QueryInterface(IShellFolderViewDual2* This,REFIID riid,void **ppvObject) {
   3948     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3949 }
   3950 static inline ULONG IShellFolderViewDual2_AddRef(IShellFolderViewDual2* This) {
   3951     return This->lpVtbl->AddRef(This);
   3952 }
   3953 static inline ULONG IShellFolderViewDual2_Release(IShellFolderViewDual2* This) {
   3954     return This->lpVtbl->Release(This);
   3955 }
   3956 /*** IDispatch methods ***/
   3957 static inline HRESULT IShellFolderViewDual2_GetTypeInfoCount(IShellFolderViewDual2* This,UINT *pctinfo) {
   3958     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3959 }
   3960 static inline HRESULT IShellFolderViewDual2_GetTypeInfo(IShellFolderViewDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3961     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3962 }
   3963 static inline 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 inline 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 inline HRESULT IShellFolderViewDual2_get_Application(IShellFolderViewDual2* This,IDispatch **ppid) {
   3971     return This->lpVtbl->get_Application(This,ppid);
   3972 }
   3973 static inline HRESULT IShellFolderViewDual2_get_Parent(IShellFolderViewDual2* This,IDispatch **ppid) {
   3974     return This->lpVtbl->get_Parent(This,ppid);
   3975 }
   3976 static inline HRESULT IShellFolderViewDual2_get_Folder(IShellFolderViewDual2* This,Folder **ppid) {
   3977     return This->lpVtbl->get_Folder(This,ppid);
   3978 }
   3979 static inline HRESULT IShellFolderViewDual2_SelectedItems(IShellFolderViewDual2* This,FolderItems **ppid) {
   3980     return This->lpVtbl->SelectedItems(This,ppid);
   3981 }
   3982 static inline HRESULT IShellFolderViewDual2_get_FocusedItem(IShellFolderViewDual2* This,FolderItem **ppid) {
   3983     return This->lpVtbl->get_FocusedItem(This,ppid);
   3984 }
   3985 static inline HRESULT IShellFolderViewDual2_SelectItem(IShellFolderViewDual2* This,VARIANT *pvfi,int dwFlags) {
   3986     return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
   3987 }
   3988 static inline 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 inline HRESULT IShellFolderViewDual2_get_Script(IShellFolderViewDual2* This,IDispatch **ppDisp) {
   3992     return This->lpVtbl->get_Script(This,ppDisp);
   3993 }
   3994 static inline HRESULT IShellFolderViewDual2_get_ViewOptions(IShellFolderViewDual2* This,LONG *plViewOptions) {
   3995     return This->lpVtbl->get_ViewOptions(This,plViewOptions);
   3996 }
   3997 /*** IShellFolderViewDual2 methods ***/
   3998 static inline HRESULT IShellFolderViewDual2_get_CurrentViewMode(IShellFolderViewDual2* This,UINT *pViewMode) {
   3999     return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
   4000 }
   4001 static inline HRESULT IShellFolderViewDual2_put_CurrentViewMode(IShellFolderViewDual2* This,UINT ViewMode) {
   4002     return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
   4003 }
   4004 static inline 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 inline HRESULT IShellFolderViewDual3_QueryInterface(IShellFolderViewDual3* This,REFIID riid,void **ppvObject) {
   4239     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4240 }
   4241 static inline ULONG IShellFolderViewDual3_AddRef(IShellFolderViewDual3* This) {
   4242     return This->lpVtbl->AddRef(This);
   4243 }
   4244 static inline ULONG IShellFolderViewDual3_Release(IShellFolderViewDual3* This) {
   4245     return This->lpVtbl->Release(This);
   4246 }
   4247 /*** IDispatch methods ***/
   4248 static inline HRESULT IShellFolderViewDual3_GetTypeInfoCount(IShellFolderViewDual3* This,UINT *pctinfo) {
   4249     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   4250 }
   4251 static inline HRESULT IShellFolderViewDual3_GetTypeInfo(IShellFolderViewDual3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   4252     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   4253 }
   4254 static inline 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 inline 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 inline HRESULT IShellFolderViewDual3_get_Application(IShellFolderViewDual3* This,IDispatch **ppid) {
   4262     return This->lpVtbl->get_Application(This,ppid);
   4263 }
   4264 static inline HRESULT IShellFolderViewDual3_get_Parent(IShellFolderViewDual3* This,IDispatch **ppid) {
   4265     return This->lpVtbl->get_Parent(This,ppid);
   4266 }
   4267 static inline HRESULT IShellFolderViewDual3_get_Folder(IShellFolderViewDual3* This,Folder **ppid) {
   4268     return This->lpVtbl->get_Folder(This,ppid);
   4269 }
   4270 static inline HRESULT IShellFolderViewDual3_SelectedItems(IShellFolderViewDual3* This,FolderItems **ppid) {
   4271     return This->lpVtbl->SelectedItems(This,ppid);
   4272 }
   4273 static inline HRESULT IShellFolderViewDual3_get_FocusedItem(IShellFolderViewDual3* This,FolderItem **ppid) {
   4274     return This->lpVtbl->get_FocusedItem(This,ppid);
   4275 }
   4276 static inline HRESULT IShellFolderViewDual3_SelectItem(IShellFolderViewDual3* This,VARIANT *pvfi,int dwFlags) {
   4277     return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
   4278 }
   4279 static inline 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 inline HRESULT IShellFolderViewDual3_get_Script(IShellFolderViewDual3* This,IDispatch **ppDisp) {
   4283     return This->lpVtbl->get_Script(This,ppDisp);
   4284 }
   4285 static inline HRESULT IShellFolderViewDual3_get_ViewOptions(IShellFolderViewDual3* This,LONG *plViewOptions) {
   4286     return This->lpVtbl->get_ViewOptions(This,plViewOptions);
   4287 }
   4288 /*** IShellFolderViewDual2 methods ***/
   4289 static inline HRESULT IShellFolderViewDual3_get_CurrentViewMode(IShellFolderViewDual3* This,UINT *pViewMode) {
   4290     return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
   4291 }
   4292 static inline HRESULT IShellFolderViewDual3_put_CurrentViewMode(IShellFolderViewDual3* This,UINT ViewMode) {
   4293     return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
   4294 }
   4295 static inline HRESULT IShellFolderViewDual3_SelectItemRelative(IShellFolderViewDual3* This,int iRelative) {
   4296     return This->lpVtbl->SelectItemRelative(This,iRelative);
   4297 }
   4298 /*** IShellFolderViewDual3 methods ***/
   4299 static inline HRESULT IShellFolderViewDual3_get_GroupBy(IShellFolderViewDual3* This,BSTR *pbstrGroupBy) {
   4300     return This->lpVtbl->get_GroupBy(This,pbstrGroupBy);
   4301 }
   4302 static inline HRESULT IShellFolderViewDual3_put_GroupBy(IShellFolderViewDual3* This,BSTR bstrGroupBy) {
   4303     return This->lpVtbl->put_GroupBy(This,bstrGroupBy);
   4304 }
   4305 static inline HRESULT IShellFolderViewDual3_get_FolderFlags(IShellFolderViewDual3* This,DWORD *pdwFlags) {
   4306     return This->lpVtbl->get_FolderFlags(This,pdwFlags);
   4307 }
   4308 static inline HRESULT IShellFolderViewDual3_put_FolderFlags(IShellFolderViewDual3* This,DWORD dwFlags) {
   4309     return This->lpVtbl->put_FolderFlags(This,dwFlags);
   4310 }
   4311 static inline HRESULT IShellFolderViewDual3_get_SortColumns(IShellFolderViewDual3* This,BSTR *pbstrSortColumns) {
   4312     return This->lpVtbl->get_SortColumns(This,pbstrSortColumns);
   4313 }
   4314 static inline HRESULT IShellFolderViewDual3_put_SortColumns(IShellFolderViewDual3* This,BSTR bstrSortColumns) {
   4315     return This->lpVtbl->put_SortColumns(This,bstrSortColumns);
   4316 }
   4317 static inline HRESULT IShellFolderViewDual3_put_IconSize(IShellFolderViewDual3* This,int iIconSize) {
   4318     return This->lpVtbl->put_IconSize(This,iIconSize);
   4319 }
   4320 static inline HRESULT IShellFolderViewDual3_get_IconSize(IShellFolderViewDual3* This,int *piIconSize) {
   4321     return This->lpVtbl->get_IconSize(This,piIconSize);
   4322 }
   4323 static inline 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 inline HRESULT IShellDispatch_QueryInterface(IShellDispatch* This,REFIID riid,void **ppvObject) {
   4619     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4620 }
   4621 static inline ULONG IShellDispatch_AddRef(IShellDispatch* This) {
   4622     return This->lpVtbl->AddRef(This);
   4623 }
   4624 static inline ULONG IShellDispatch_Release(IShellDispatch* This) {
   4625     return This->lpVtbl->Release(This);
   4626 }
   4627 /*** IDispatch methods ***/
   4628 static inline HRESULT IShellDispatch_GetTypeInfoCount(IShellDispatch* This,UINT *pctinfo) {
   4629     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   4630 }
   4631 static inline HRESULT IShellDispatch_GetTypeInfo(IShellDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   4632     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   4633 }
   4634 static inline 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 inline 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 inline HRESULT IShellDispatch_get_Application(IShellDispatch* This,IDispatch **ppid) {
   4642     return This->lpVtbl->get_Application(This,ppid);
   4643 }
   4644 static inline HRESULT IShellDispatch_get_Parent(IShellDispatch* This,IDispatch **ppid) {
   4645     return This->lpVtbl->get_Parent(This,ppid);
   4646 }
   4647 static inline HRESULT IShellDispatch_NameSpace(IShellDispatch* This,VARIANT vDir,Folder **ppsdf) {
   4648     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
   4649 }
   4650 static inline 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 inline HRESULT IShellDispatch_Windows(IShellDispatch* This,IDispatch **ppid) {
   4654     return This->lpVtbl->Windows(This,ppid);
   4655 }
   4656 static inline HRESULT IShellDispatch_Open(IShellDispatch* This,VARIANT vDir) {
   4657     return This->lpVtbl->Open(This,vDir);
   4658 }
   4659 static inline HRESULT IShellDispatch_Explore(IShellDispatch* This,VARIANT vDir) {
   4660     return This->lpVtbl->Explore(This,vDir);
   4661 }
   4662 static inline HRESULT IShellDispatch_MinimizeAll(IShellDispatch* This) {
   4663     return This->lpVtbl->MinimizeAll(This);
   4664 }
   4665 static inline HRESULT IShellDispatch_UndoMinimizeALL(IShellDispatch* This) {
   4666     return This->lpVtbl->UndoMinimizeALL(This);
   4667 }
   4668 static inline HRESULT IShellDispatch_FileRun(IShellDispatch* This) {
   4669     return This->lpVtbl->FileRun(This);
   4670 }
   4671 static inline HRESULT IShellDispatch_CascadeWindows(IShellDispatch* This) {
   4672     return This->lpVtbl->CascadeWindows(This);
   4673 }
   4674 static inline HRESULT IShellDispatch_TileVertically(IShellDispatch* This) {
   4675     return This->lpVtbl->TileVertically(This);
   4676 }
   4677 static inline HRESULT IShellDispatch_TileHorizontally(IShellDispatch* This) {
   4678     return This->lpVtbl->TileHorizontally(This);
   4679 }
   4680 static inline HRESULT IShellDispatch_ShutdownWindows(IShellDispatch* This) {
   4681     return This->lpVtbl->ShutdownWindows(This);
   4682 }
   4683 static inline HRESULT IShellDispatch_Suspend(IShellDispatch* This) {
   4684     return This->lpVtbl->Suspend(This);
   4685 }
   4686 static inline HRESULT IShellDispatch_EjectPC(IShellDispatch* This) {
   4687     return This->lpVtbl->EjectPC(This);
   4688 }
   4689 static inline HRESULT IShellDispatch_SetTime(IShellDispatch* This) {
   4690     return This->lpVtbl->SetTime(This);
   4691 }
   4692 static inline HRESULT IShellDispatch_TrayProperties(IShellDispatch* This) {
   4693     return This->lpVtbl->TrayProperties(This);
   4694 }
   4695 static inline HRESULT IShellDispatch_Help(IShellDispatch* This) {
   4696     return This->lpVtbl->Help(This);
   4697 }
   4698 static inline HRESULT IShellDispatch_FindFiles(IShellDispatch* This) {
   4699     return This->lpVtbl->FindFiles(This);
   4700 }
   4701 static inline HRESULT IShellDispatch_FindComputer(IShellDispatch* This) {
   4702     return This->lpVtbl->FindComputer(This);
   4703 }
   4704 static inline HRESULT IShellDispatch_RefreshMenu(IShellDispatch* This) {
   4705     return This->lpVtbl->RefreshMenu(This);
   4706 }
   4707 static inline 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 inline HRESULT IShellDispatch2_QueryInterface(IShellDispatch2* This,REFIID riid,void **ppvObject) {
   5015     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5016 }
   5017 static inline ULONG IShellDispatch2_AddRef(IShellDispatch2* This) {
   5018     return This->lpVtbl->AddRef(This);
   5019 }
   5020 static inline ULONG IShellDispatch2_Release(IShellDispatch2* This) {
   5021     return This->lpVtbl->Release(This);
   5022 }
   5023 /*** IDispatch methods ***/
   5024 static inline HRESULT IShellDispatch2_GetTypeInfoCount(IShellDispatch2* This,UINT *pctinfo) {
   5025     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5026 }
   5027 static inline HRESULT IShellDispatch2_GetTypeInfo(IShellDispatch2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5028     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5029 }
   5030 static inline 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 inline 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 inline HRESULT IShellDispatch2_get_Application(IShellDispatch2* This,IDispatch **ppid) {
   5038     return This->lpVtbl->get_Application(This,ppid);
   5039 }
   5040 static inline HRESULT IShellDispatch2_get_Parent(IShellDispatch2* This,IDispatch **ppid) {
   5041     return This->lpVtbl->get_Parent(This,ppid);
   5042 }
   5043 static inline HRESULT IShellDispatch2_NameSpace(IShellDispatch2* This,VARIANT vDir,Folder **ppsdf) {
   5044     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
   5045 }
   5046 static inline 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 inline HRESULT IShellDispatch2_Windows(IShellDispatch2* This,IDispatch **ppid) {
   5050     return This->lpVtbl->Windows(This,ppid);
   5051 }
   5052 static inline HRESULT IShellDispatch2_Open(IShellDispatch2* This,VARIANT vDir) {
   5053     return This->lpVtbl->Open(This,vDir);
   5054 }
   5055 static inline HRESULT IShellDispatch2_Explore(IShellDispatch2* This,VARIANT vDir) {
   5056     return This->lpVtbl->Explore(This,vDir);
   5057 }
   5058 static inline HRESULT IShellDispatch2_MinimizeAll(IShellDispatch2* This) {
   5059     return This->lpVtbl->MinimizeAll(This);
   5060 }
   5061 static inline HRESULT IShellDispatch2_UndoMinimizeALL(IShellDispatch2* This) {
   5062     return This->lpVtbl->UndoMinimizeALL(This);
   5063 }
   5064 static inline HRESULT IShellDispatch2_FileRun(IShellDispatch2* This) {
   5065     return This->lpVtbl->FileRun(This);
   5066 }
   5067 static inline HRESULT IShellDispatch2_CascadeWindows(IShellDispatch2* This) {
   5068     return This->lpVtbl->CascadeWindows(This);
   5069 }
   5070 static inline HRESULT IShellDispatch2_TileVertically(IShellDispatch2* This) {
   5071     return This->lpVtbl->TileVertically(This);
   5072 }
   5073 static inline HRESULT IShellDispatch2_TileHorizontally(IShellDispatch2* This) {
   5074     return This->lpVtbl->TileHorizontally(This);
   5075 }
   5076 static inline HRESULT IShellDispatch2_ShutdownWindows(IShellDispatch2* This) {
   5077     return This->lpVtbl->ShutdownWindows(This);
   5078 }
   5079 static inline HRESULT IShellDispatch2_Suspend(IShellDispatch2* This) {
   5080     return This->lpVtbl->Suspend(This);
   5081 }
   5082 static inline HRESULT IShellDispatch2_EjectPC(IShellDispatch2* This) {
   5083     return This->lpVtbl->EjectPC(This);
   5084 }
   5085 static inline HRESULT IShellDispatch2_SetTime(IShellDispatch2* This) {
   5086     return This->lpVtbl->SetTime(This);
   5087 }
   5088 static inline HRESULT IShellDispatch2_TrayProperties(IShellDispatch2* This) {
   5089     return This->lpVtbl->TrayProperties(This);
   5090 }
   5091 static inline HRESULT IShellDispatch2_Help(IShellDispatch2* This) {
   5092     return This->lpVtbl->Help(This);
   5093 }
   5094 static inline HRESULT IShellDispatch2_FindFiles(IShellDispatch2* This) {
   5095     return This->lpVtbl->FindFiles(This);
   5096 }
   5097 static inline HRESULT IShellDispatch2_FindComputer(IShellDispatch2* This) {
   5098     return This->lpVtbl->FindComputer(This);
   5099 }
   5100 static inline HRESULT IShellDispatch2_RefreshMenu(IShellDispatch2* This) {
   5101     return This->lpVtbl->RefreshMenu(This);
   5102 }
   5103 static inline HRESULT IShellDispatch2_ControlPanelItem(IShellDispatch2* This,BSTR bstrDir) {
   5104     return This->lpVtbl->ControlPanelItem(This,bstrDir);
   5105 }
   5106 /*** IShellDispatch2 methods ***/
   5107 static inline HRESULT IShellDispatch2_IsRestricted(IShellDispatch2* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
   5108     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
   5109 }
   5110 static inline 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 inline HRESULT IShellDispatch2_FindPrinter(IShellDispatch2* This,BSTR name,BSTR location,BSTR model) {
   5114     return This->lpVtbl->FindPrinter(This,name,location,model);
   5115 }
   5116 static inline HRESULT IShellDispatch2_GetSystemInformation(IShellDispatch2* This,BSTR name,VARIANT *pv) {
   5117     return This->lpVtbl->GetSystemInformation(This,name,pv);
   5118 }
   5119 static inline HRESULT IShellDispatch2_ServiceStart(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   5120     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
   5121 }
   5122 static inline HRESULT IShellDispatch2_ServiceStop(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   5123     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
   5124 }
   5125 static inline HRESULT IShellDispatch2_IsServiceRunning(IShellDispatch2* This,BSTR ServiceName,VARIANT *pRunning) {
   5126     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
   5127 }
   5128 static inline HRESULT IShellDispatch2_CanStartStopService(IShellDispatch2* This,BSTR ServiceName,VARIANT *pCanStartStop) {
   5129     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
   5130 }
   5131 static inline 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 inline HRESULT IShellDispatch3_QueryInterface(IShellDispatch3* This,REFIID riid,void **ppvObject) {
   5407     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5408 }
   5409 static inline ULONG IShellDispatch3_AddRef(IShellDispatch3* This) {
   5410     return This->lpVtbl->AddRef(This);
   5411 }
   5412 static inline ULONG IShellDispatch3_Release(IShellDispatch3* This) {
   5413     return This->lpVtbl->Release(This);
   5414 }
   5415 /*** IDispatch methods ***/
   5416 static inline HRESULT IShellDispatch3_GetTypeInfoCount(IShellDispatch3* This,UINT *pctinfo) {
   5417     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5418 }
   5419 static inline HRESULT IShellDispatch3_GetTypeInfo(IShellDispatch3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5420     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5421 }
   5422 static inline 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 inline 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 inline HRESULT IShellDispatch3_get_Application(IShellDispatch3* This,IDispatch **ppid) {
   5430     return This->lpVtbl->get_Application(This,ppid);
   5431 }
   5432 static inline HRESULT IShellDispatch3_get_Parent(IShellDispatch3* This,IDispatch **ppid) {
   5433     return This->lpVtbl->get_Parent(This,ppid);
   5434 }
   5435 static inline HRESULT IShellDispatch3_NameSpace(IShellDispatch3* This,VARIANT vDir,Folder **ppsdf) {
   5436     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
   5437 }
   5438 static inline 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 inline HRESULT IShellDispatch3_Windows(IShellDispatch3* This,IDispatch **ppid) {
   5442     return This->lpVtbl->Windows(This,ppid);
   5443 }
   5444 static inline HRESULT IShellDispatch3_Open(IShellDispatch3* This,VARIANT vDir) {
   5445     return This->lpVtbl->Open(This,vDir);
   5446 }
   5447 static inline HRESULT IShellDispatch3_Explore(IShellDispatch3* This,VARIANT vDir) {
   5448     return This->lpVtbl->Explore(This,vDir);
   5449 }
   5450 static inline HRESULT IShellDispatch3_MinimizeAll(IShellDispatch3* This) {
   5451     return This->lpVtbl->MinimizeAll(This);
   5452 }
   5453 static inline HRESULT IShellDispatch3_UndoMinimizeALL(IShellDispatch3* This) {
   5454     return This->lpVtbl->UndoMinimizeALL(This);
   5455 }
   5456 static inline HRESULT IShellDispatch3_FileRun(IShellDispatch3* This) {
   5457     return This->lpVtbl->FileRun(This);
   5458 }
   5459 static inline HRESULT IShellDispatch3_CascadeWindows(IShellDispatch3* This) {
   5460     return This->lpVtbl->CascadeWindows(This);
   5461 }
   5462 static inline HRESULT IShellDispatch3_TileVertically(IShellDispatch3* This) {
   5463     return This->lpVtbl->TileVertically(This);
   5464 }
   5465 static inline HRESULT IShellDispatch3_TileHorizontally(IShellDispatch3* This) {
   5466     return This->lpVtbl->TileHorizontally(This);
   5467 }
   5468 static inline HRESULT IShellDispatch3_ShutdownWindows(IShellDispatch3* This) {
   5469     return This->lpVtbl->ShutdownWindows(This);
   5470 }
   5471 static inline HRESULT IShellDispatch3_Suspend(IShellDispatch3* This) {
   5472     return This->lpVtbl->Suspend(This);
   5473 }
   5474 static inline HRESULT IShellDispatch3_EjectPC(IShellDispatch3* This) {
   5475     return This->lpVtbl->EjectPC(This);
   5476 }
   5477 static inline HRESULT IShellDispatch3_SetTime(IShellDispatch3* This) {
   5478     return This->lpVtbl->SetTime(This);
   5479 }
   5480 static inline HRESULT IShellDispatch3_TrayProperties(IShellDispatch3* This) {
   5481     return This->lpVtbl->TrayProperties(This);
   5482 }
   5483 static inline HRESULT IShellDispatch3_Help(IShellDispatch3* This) {
   5484     return This->lpVtbl->Help(This);
   5485 }
   5486 static inline HRESULT IShellDispatch3_FindFiles(IShellDispatch3* This) {
   5487     return This->lpVtbl->FindFiles(This);
   5488 }
   5489 static inline HRESULT IShellDispatch3_FindComputer(IShellDispatch3* This) {
   5490     return This->lpVtbl->FindComputer(This);
   5491 }
   5492 static inline HRESULT IShellDispatch3_RefreshMenu(IShellDispatch3* This) {
   5493     return This->lpVtbl->RefreshMenu(This);
   5494 }
   5495 static inline HRESULT IShellDispatch3_ControlPanelItem(IShellDispatch3* This,BSTR bstrDir) {
   5496     return This->lpVtbl->ControlPanelItem(This,bstrDir);
   5497 }
   5498 /*** IShellDispatch2 methods ***/
   5499 static inline HRESULT IShellDispatch3_IsRestricted(IShellDispatch3* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
   5500     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
   5501 }
   5502 static inline 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 inline HRESULT IShellDispatch3_FindPrinter(IShellDispatch3* This,BSTR name,BSTR location,BSTR model) {
   5506     return This->lpVtbl->FindPrinter(This,name,location,model);
   5507 }
   5508 static inline HRESULT IShellDispatch3_GetSystemInformation(IShellDispatch3* This,BSTR name,VARIANT *pv) {
   5509     return This->lpVtbl->GetSystemInformation(This,name,pv);
   5510 }
   5511 static inline HRESULT IShellDispatch3_ServiceStart(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   5512     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
   5513 }
   5514 static inline HRESULT IShellDispatch3_ServiceStop(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   5515     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
   5516 }
   5517 static inline HRESULT IShellDispatch3_IsServiceRunning(IShellDispatch3* This,BSTR ServiceName,VARIANT *pRunning) {
   5518     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
   5519 }
   5520 static inline HRESULT IShellDispatch3_CanStartStopService(IShellDispatch3* This,BSTR ServiceName,VARIANT *pCanStartStop) {
   5521     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
   5522 }
   5523 static inline 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 inline 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 inline HRESULT IShellDispatch4_QueryInterface(IShellDispatch4* This,REFIID riid,void **ppvObject) {
   5835     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5836 }
   5837 static inline ULONG IShellDispatch4_AddRef(IShellDispatch4* This) {
   5838     return This->lpVtbl->AddRef(This);
   5839 }
   5840 static inline ULONG IShellDispatch4_Release(IShellDispatch4* This) {
   5841     return This->lpVtbl->Release(This);
   5842 }
   5843 /*** IDispatch methods ***/
   5844 static inline HRESULT IShellDispatch4_GetTypeInfoCount(IShellDispatch4* This,UINT *pctinfo) {
   5845     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5846 }
   5847 static inline HRESULT IShellDispatch4_GetTypeInfo(IShellDispatch4* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5848     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5849 }
   5850 static inline 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 inline 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 inline HRESULT IShellDispatch4_get_Application(IShellDispatch4* This,IDispatch **ppid) {
   5858     return This->lpVtbl->get_Application(This,ppid);
   5859 }
   5860 static inline HRESULT IShellDispatch4_get_Parent(IShellDispatch4* This,IDispatch **ppid) {
   5861     return This->lpVtbl->get_Parent(This,ppid);
   5862 }
   5863 static inline HRESULT IShellDispatch4_NameSpace(IShellDispatch4* This,VARIANT vDir,Folder **ppsdf) {
   5864     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
   5865 }
   5866 static inline 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 inline HRESULT IShellDispatch4_Windows(IShellDispatch4* This,IDispatch **ppid) {
   5870     return This->lpVtbl->Windows(This,ppid);
   5871 }
   5872 static inline HRESULT IShellDispatch4_Open(IShellDispatch4* This,VARIANT vDir) {
   5873     return This->lpVtbl->Open(This,vDir);
   5874 }
   5875 static inline HRESULT IShellDispatch4_Explore(IShellDispatch4* This,VARIANT vDir) {
   5876     return This->lpVtbl->Explore(This,vDir);
   5877 }
   5878 static inline HRESULT IShellDispatch4_MinimizeAll(IShellDispatch4* This) {
   5879     return This->lpVtbl->MinimizeAll(This);
   5880 }
   5881 static inline HRESULT IShellDispatch4_UndoMinimizeALL(IShellDispatch4* This) {
   5882     return This->lpVtbl->UndoMinimizeALL(This);
   5883 }
   5884 static inline HRESULT IShellDispatch4_FileRun(IShellDispatch4* This) {
   5885     return This->lpVtbl->FileRun(This);
   5886 }
   5887 static inline HRESULT IShellDispatch4_CascadeWindows(IShellDispatch4* This) {
   5888     return This->lpVtbl->CascadeWindows(This);
   5889 }
   5890 static inline HRESULT IShellDispatch4_TileVertically(IShellDispatch4* This) {
   5891     return This->lpVtbl->TileVertically(This);
   5892 }
   5893 static inline HRESULT IShellDispatch4_TileHorizontally(IShellDispatch4* This) {
   5894     return This->lpVtbl->TileHorizontally(This);
   5895 }
   5896 static inline HRESULT IShellDispatch4_ShutdownWindows(IShellDispatch4* This) {
   5897     return This->lpVtbl->ShutdownWindows(This);
   5898 }
   5899 static inline HRESULT IShellDispatch4_Suspend(IShellDispatch4* This) {
   5900     return This->lpVtbl->Suspend(This);
   5901 }
   5902 static inline HRESULT IShellDispatch4_EjectPC(IShellDispatch4* This) {
   5903     return This->lpVtbl->EjectPC(This);
   5904 }
   5905 static inline HRESULT IShellDispatch4_SetTime(IShellDispatch4* This) {
   5906     return This->lpVtbl->SetTime(This);
   5907 }
   5908 static inline HRESULT IShellDispatch4_TrayProperties(IShellDispatch4* This) {
   5909     return This->lpVtbl->TrayProperties(This);
   5910 }
   5911 static inline HRESULT IShellDispatch4_Help(IShellDispatch4* This) {
   5912     return This->lpVtbl->Help(This);
   5913 }
   5914 static inline HRESULT IShellDispatch4_FindFiles(IShellDispatch4* This) {
   5915     return This->lpVtbl->FindFiles(This);
   5916 }
   5917 static inline HRESULT IShellDispatch4_FindComputer(IShellDispatch4* This) {
   5918     return This->lpVtbl->FindComputer(This);
   5919 }
   5920 static inline HRESULT IShellDispatch4_RefreshMenu(IShellDispatch4* This) {
   5921     return This->lpVtbl->RefreshMenu(This);
   5922 }
   5923 static inline HRESULT IShellDispatch4_ControlPanelItem(IShellDispatch4* This,BSTR bstrDir) {
   5924     return This->lpVtbl->ControlPanelItem(This,bstrDir);
   5925 }
   5926 /*** IShellDispatch2 methods ***/
   5927 static inline HRESULT IShellDispatch4_IsRestricted(IShellDispatch4* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
   5928     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
   5929 }
   5930 static inline 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 inline HRESULT IShellDispatch4_FindPrinter(IShellDispatch4* This,BSTR name,BSTR location,BSTR model) {
   5934     return This->lpVtbl->FindPrinter(This,name,location,model);
   5935 }
   5936 static inline HRESULT IShellDispatch4_GetSystemInformation(IShellDispatch4* This,BSTR name,VARIANT *pv) {
   5937     return This->lpVtbl->GetSystemInformation(This,name,pv);
   5938 }
   5939 static inline HRESULT IShellDispatch4_ServiceStart(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   5940     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
   5941 }
   5942 static inline HRESULT IShellDispatch4_ServiceStop(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   5943     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
   5944 }
   5945 static inline HRESULT IShellDispatch4_IsServiceRunning(IShellDispatch4* This,BSTR ServiceName,VARIANT *pRunning) {
   5946     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
   5947 }
   5948 static inline HRESULT IShellDispatch4_CanStartStopService(IShellDispatch4* This,BSTR ServiceName,VARIANT *pCanStartStop) {
   5949     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
   5950 }
   5951 static inline 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 inline HRESULT IShellDispatch4_AddToRecent(IShellDispatch4* This,VARIANT varFile,BSTR bstrCategory) {
   5956     return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
   5957 }
   5958 /*** IShellDispatch4 methods ***/
   5959 static inline HRESULT IShellDispatch4_WindowsSecurity(IShellDispatch4* This) {
   5960     return This->lpVtbl->WindowsSecurity(This);
   5961 }
   5962 static inline HRESULT IShellDispatch4_ToggleDesktop(IShellDispatch4* This) {
   5963     return This->lpVtbl->ToggleDesktop(This);
   5964 }
   5965 static inline HRESULT IShellDispatch4_ExplorerPolicy(IShellDispatch4* This,BSTR bstrPolicyName,VARIANT *pValue) {
   5966     return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
   5967 }
   5968 static inline 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 inline HRESULT IShellDispatch5_QueryInterface(IShellDispatch5* This,REFIID riid,void **ppvObject) {
   6271     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6272 }
   6273 static inline ULONG IShellDispatch5_AddRef(IShellDispatch5* This) {
   6274     return This->lpVtbl->AddRef(This);
   6275 }
   6276 static inline ULONG IShellDispatch5_Release(IShellDispatch5* This) {
   6277     return This->lpVtbl->Release(This);
   6278 }
   6279 /*** IDispatch methods ***/
   6280 static inline HRESULT IShellDispatch5_GetTypeInfoCount(IShellDispatch5* This,UINT *pctinfo) {
   6281     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   6282 }
   6283 static inline HRESULT IShellDispatch5_GetTypeInfo(IShellDispatch5* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   6284     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   6285 }
   6286 static inline 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 inline 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 inline HRESULT IShellDispatch5_get_Application(IShellDispatch5* This,IDispatch **ppid) {
   6294     return This->lpVtbl->get_Application(This,ppid);
   6295 }
   6296 static inline HRESULT IShellDispatch5_get_Parent(IShellDispatch5* This,IDispatch **ppid) {
   6297     return This->lpVtbl->get_Parent(This,ppid);
   6298 }
   6299 static inline HRESULT IShellDispatch5_NameSpace(IShellDispatch5* This,VARIANT vDir,Folder **ppsdf) {
   6300     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
   6301 }
   6302 static inline 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 inline HRESULT IShellDispatch5_Windows(IShellDispatch5* This,IDispatch **ppid) {
   6306     return This->lpVtbl->Windows(This,ppid);
   6307 }
   6308 static inline HRESULT IShellDispatch5_Open(IShellDispatch5* This,VARIANT vDir) {
   6309     return This->lpVtbl->Open(This,vDir);
   6310 }
   6311 static inline HRESULT IShellDispatch5_Explore(IShellDispatch5* This,VARIANT vDir) {
   6312     return This->lpVtbl->Explore(This,vDir);
   6313 }
   6314 static inline HRESULT IShellDispatch5_MinimizeAll(IShellDispatch5* This) {
   6315     return This->lpVtbl->MinimizeAll(This);
   6316 }
   6317 static inline HRESULT IShellDispatch5_UndoMinimizeALL(IShellDispatch5* This) {
   6318     return This->lpVtbl->UndoMinimizeALL(This);
   6319 }
   6320 static inline HRESULT IShellDispatch5_FileRun(IShellDispatch5* This) {
   6321     return This->lpVtbl->FileRun(This);
   6322 }
   6323 static inline HRESULT IShellDispatch5_CascadeWindows(IShellDispatch5* This) {
   6324     return This->lpVtbl->CascadeWindows(This);
   6325 }
   6326 static inline HRESULT IShellDispatch5_TileVertically(IShellDispatch5* This) {
   6327     return This->lpVtbl->TileVertically(This);
   6328 }
   6329 static inline HRESULT IShellDispatch5_TileHorizontally(IShellDispatch5* This) {
   6330     return This->lpVtbl->TileHorizontally(This);
   6331 }
   6332 static inline HRESULT IShellDispatch5_ShutdownWindows(IShellDispatch5* This) {
   6333     return This->lpVtbl->ShutdownWindows(This);
   6334 }
   6335 static inline HRESULT IShellDispatch5_Suspend(IShellDispatch5* This) {
   6336     return This->lpVtbl->Suspend(This);
   6337 }
   6338 static inline HRESULT IShellDispatch5_EjectPC(IShellDispatch5* This) {
   6339     return This->lpVtbl->EjectPC(This);
   6340 }
   6341 static inline HRESULT IShellDispatch5_SetTime(IShellDispatch5* This) {
   6342     return This->lpVtbl->SetTime(This);
   6343 }
   6344 static inline HRESULT IShellDispatch5_TrayProperties(IShellDispatch5* This) {
   6345     return This->lpVtbl->TrayProperties(This);
   6346 }
   6347 static inline HRESULT IShellDispatch5_Help(IShellDispatch5* This) {
   6348     return This->lpVtbl->Help(This);
   6349 }
   6350 static inline HRESULT IShellDispatch5_FindFiles(IShellDispatch5* This) {
   6351     return This->lpVtbl->FindFiles(This);
   6352 }
   6353 static inline HRESULT IShellDispatch5_FindComputer(IShellDispatch5* This) {
   6354     return This->lpVtbl->FindComputer(This);
   6355 }
   6356 static inline HRESULT IShellDispatch5_RefreshMenu(IShellDispatch5* This) {
   6357     return This->lpVtbl->RefreshMenu(This);
   6358 }
   6359 static inline HRESULT IShellDispatch5_ControlPanelItem(IShellDispatch5* This,BSTR bstrDir) {
   6360     return This->lpVtbl->ControlPanelItem(This,bstrDir);
   6361 }
   6362 /*** IShellDispatch2 methods ***/
   6363 static inline HRESULT IShellDispatch5_IsRestricted(IShellDispatch5* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
   6364     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
   6365 }
   6366 static inline 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 inline HRESULT IShellDispatch5_FindPrinter(IShellDispatch5* This,BSTR name,BSTR location,BSTR model) {
   6370     return This->lpVtbl->FindPrinter(This,name,location,model);
   6371 }
   6372 static inline HRESULT IShellDispatch5_GetSystemInformation(IShellDispatch5* This,BSTR name,VARIANT *pv) {
   6373     return This->lpVtbl->GetSystemInformation(This,name,pv);
   6374 }
   6375 static inline HRESULT IShellDispatch5_ServiceStart(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   6376     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
   6377 }
   6378 static inline HRESULT IShellDispatch5_ServiceStop(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   6379     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
   6380 }
   6381 static inline HRESULT IShellDispatch5_IsServiceRunning(IShellDispatch5* This,BSTR ServiceName,VARIANT *pRunning) {
   6382     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
   6383 }
   6384 static inline HRESULT IShellDispatch5_CanStartStopService(IShellDispatch5* This,BSTR ServiceName,VARIANT *pCanStartStop) {
   6385     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
   6386 }
   6387 static inline 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 inline HRESULT IShellDispatch5_AddToRecent(IShellDispatch5* This,VARIANT varFile,BSTR bstrCategory) {
   6392     return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
   6393 }
   6394 /*** IShellDispatch4 methods ***/
   6395 static inline HRESULT IShellDispatch5_WindowsSecurity(IShellDispatch5* This) {
   6396     return This->lpVtbl->WindowsSecurity(This);
   6397 }
   6398 static inline HRESULT IShellDispatch5_ToggleDesktop(IShellDispatch5* This) {
   6399     return This->lpVtbl->ToggleDesktop(This);
   6400 }
   6401 static inline HRESULT IShellDispatch5_ExplorerPolicy(IShellDispatch5* This,BSTR bstrPolicyName,VARIANT *pValue) {
   6402     return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
   6403 }
   6404 static inline HRESULT IShellDispatch5_GetSetting(IShellDispatch5* This,LONG lSetting,VARIANT_BOOL *pResult) {
   6405     return This->lpVtbl->GetSetting(This,lSetting,pResult);
   6406 }
   6407 /*** IShellDispatch5 methods ***/
   6408 static inline 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 inline HRESULT IShellDispatch6_QueryInterface(IShellDispatch6* This,REFIID riid,void **ppvObject) {
   6718     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6719 }
   6720 static inline ULONG IShellDispatch6_AddRef(IShellDispatch6* This) {
   6721     return This->lpVtbl->AddRef(This);
   6722 }
   6723 static inline ULONG IShellDispatch6_Release(IShellDispatch6* This) {
   6724     return This->lpVtbl->Release(This);
   6725 }
   6726 /*** IDispatch methods ***/
   6727 static inline HRESULT IShellDispatch6_GetTypeInfoCount(IShellDispatch6* This,UINT *pctinfo) {
   6728     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   6729 }
   6730 static inline HRESULT IShellDispatch6_GetTypeInfo(IShellDispatch6* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   6731     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   6732 }
   6733 static inline 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 inline 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 inline HRESULT IShellDispatch6_get_Application(IShellDispatch6* This,IDispatch **ppid) {
   6741     return This->lpVtbl->get_Application(This,ppid);
   6742 }
   6743 static inline HRESULT IShellDispatch6_get_Parent(IShellDispatch6* This,IDispatch **ppid) {
   6744     return This->lpVtbl->get_Parent(This,ppid);
   6745 }
   6746 static inline HRESULT IShellDispatch6_NameSpace(IShellDispatch6* This,VARIANT vDir,Folder **ppsdf) {
   6747     return This->lpVtbl->NameSpace(This,vDir,ppsdf);
   6748 }
   6749 static inline 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 inline HRESULT IShellDispatch6_Windows(IShellDispatch6* This,IDispatch **ppid) {
   6753     return This->lpVtbl->Windows(This,ppid);
   6754 }
   6755 static inline HRESULT IShellDispatch6_Open(IShellDispatch6* This,VARIANT vDir) {
   6756     return This->lpVtbl->Open(This,vDir);
   6757 }
   6758 static inline HRESULT IShellDispatch6_Explore(IShellDispatch6* This,VARIANT vDir) {
   6759     return This->lpVtbl->Explore(This,vDir);
   6760 }
   6761 static inline HRESULT IShellDispatch6_MinimizeAll(IShellDispatch6* This) {
   6762     return This->lpVtbl->MinimizeAll(This);
   6763 }
   6764 static inline HRESULT IShellDispatch6_UndoMinimizeALL(IShellDispatch6* This) {
   6765     return This->lpVtbl->UndoMinimizeALL(This);
   6766 }
   6767 static inline HRESULT IShellDispatch6_FileRun(IShellDispatch6* This) {
   6768     return This->lpVtbl->FileRun(This);
   6769 }
   6770 static inline HRESULT IShellDispatch6_CascadeWindows(IShellDispatch6* This) {
   6771     return This->lpVtbl->CascadeWindows(This);
   6772 }
   6773 static inline HRESULT IShellDispatch6_TileVertically(IShellDispatch6* This) {
   6774     return This->lpVtbl->TileVertically(This);
   6775 }
   6776 static inline HRESULT IShellDispatch6_TileHorizontally(IShellDispatch6* This) {
   6777     return This->lpVtbl->TileHorizontally(This);
   6778 }
   6779 static inline HRESULT IShellDispatch6_ShutdownWindows(IShellDispatch6* This) {
   6780     return This->lpVtbl->ShutdownWindows(This);
   6781 }
   6782 static inline HRESULT IShellDispatch6_Suspend(IShellDispatch6* This) {
   6783     return This->lpVtbl->Suspend(This);
   6784 }
   6785 static inline HRESULT IShellDispatch6_EjectPC(IShellDispatch6* This) {
   6786     return This->lpVtbl->EjectPC(This);
   6787 }
   6788 static inline HRESULT IShellDispatch6_SetTime(IShellDispatch6* This) {
   6789     return This->lpVtbl->SetTime(This);
   6790 }
   6791 static inline HRESULT IShellDispatch6_TrayProperties(IShellDispatch6* This) {
   6792     return This->lpVtbl->TrayProperties(This);
   6793 }
   6794 static inline HRESULT IShellDispatch6_Help(IShellDispatch6* This) {
   6795     return This->lpVtbl->Help(This);
   6796 }
   6797 static inline HRESULT IShellDispatch6_FindFiles(IShellDispatch6* This) {
   6798     return This->lpVtbl->FindFiles(This);
   6799 }
   6800 static inline HRESULT IShellDispatch6_FindComputer(IShellDispatch6* This) {
   6801     return This->lpVtbl->FindComputer(This);
   6802 }
   6803 static inline HRESULT IShellDispatch6_RefreshMenu(IShellDispatch6* This) {
   6804     return This->lpVtbl->RefreshMenu(This);
   6805 }
   6806 static inline HRESULT IShellDispatch6_ControlPanelItem(IShellDispatch6* This,BSTR bstrDir) {
   6807     return This->lpVtbl->ControlPanelItem(This,bstrDir);
   6808 }
   6809 /*** IShellDispatch2 methods ***/
   6810 static inline HRESULT IShellDispatch6_IsRestricted(IShellDispatch6* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
   6811     return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
   6812 }
   6813 static inline 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 inline HRESULT IShellDispatch6_FindPrinter(IShellDispatch6* This,BSTR name,BSTR location,BSTR model) {
   6817     return This->lpVtbl->FindPrinter(This,name,location,model);
   6818 }
   6819 static inline HRESULT IShellDispatch6_GetSystemInformation(IShellDispatch6* This,BSTR name,VARIANT *pv) {
   6820     return This->lpVtbl->GetSystemInformation(This,name,pv);
   6821 }
   6822 static inline HRESULT IShellDispatch6_ServiceStart(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   6823     return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
   6824 }
   6825 static inline HRESULT IShellDispatch6_ServiceStop(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
   6826     return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
   6827 }
   6828 static inline HRESULT IShellDispatch6_IsServiceRunning(IShellDispatch6* This,BSTR ServiceName,VARIANT *pRunning) {
   6829     return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
   6830 }
   6831 static inline HRESULT IShellDispatch6_CanStartStopService(IShellDispatch6* This,BSTR ServiceName,VARIANT *pCanStartStop) {
   6832     return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
   6833 }
   6834 static inline 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 inline HRESULT IShellDispatch6_AddToRecent(IShellDispatch6* This,VARIANT varFile,BSTR bstrCategory) {
   6839     return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
   6840 }
   6841 /*** IShellDispatch4 methods ***/
   6842 static inline HRESULT IShellDispatch6_WindowsSecurity(IShellDispatch6* This) {
   6843     return This->lpVtbl->WindowsSecurity(This);
   6844 }
   6845 static inline HRESULT IShellDispatch6_ToggleDesktop(IShellDispatch6* This) {
   6846     return This->lpVtbl->ToggleDesktop(This);
   6847 }
   6848 static inline HRESULT IShellDispatch6_ExplorerPolicy(IShellDispatch6* This,BSTR bstrPolicyName,VARIANT *pValue) {
   6849     return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
   6850 }
   6851 static inline HRESULT IShellDispatch6_GetSetting(IShellDispatch6* This,LONG lSetting,VARIANT_BOOL *pResult) {
   6852     return This->lpVtbl->GetSetting(This,lSetting,pResult);
   6853 }
   6854 /*** IShellDispatch5 methods ***/
   6855 static inline HRESULT IShellDispatch6_WindowSwitcher(IShellDispatch6* This) {
   6856     return This->lpVtbl->WindowSwitcher(This);
   6857 }
   6858 /*** IShellDispatch6 methods ***/
   6859 static inline 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 inline HRESULT IFileSearchBand_QueryInterface(IFileSearchBand* This,REFIID riid,void **ppvObject) {
   7066     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7067 }
   7068 static inline ULONG IFileSearchBand_AddRef(IFileSearchBand* This) {
   7069     return This->lpVtbl->AddRef(This);
   7070 }
   7071 static inline ULONG IFileSearchBand_Release(IFileSearchBand* This) {
   7072     return This->lpVtbl->Release(This);
   7073 }
   7074 /*** IDispatch methods ***/
   7075 static inline HRESULT IFileSearchBand_GetTypeInfoCount(IFileSearchBand* This,UINT *pctinfo) {
   7076     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   7077 }
   7078 static inline HRESULT IFileSearchBand_GetTypeInfo(IFileSearchBand* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   7079     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   7080 }
   7081 static inline 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 inline 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 inline HRESULT IFileSearchBand_SetFocus(IFileSearchBand* This) {
   7089     return This->lpVtbl->SetFocus(This);
   7090 }
   7091 static inline 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 inline HRESULT IFileSearchBand_get_SearchID(IFileSearchBand* This,BSTR *pbstrSearchID) {
   7095     return This->lpVtbl->get_SearchID(This,pbstrSearchID);
   7096 }
   7097 static inline HRESULT IFileSearchBand_get_Scope(IFileSearchBand* This,VARIANT *pvarScope) {
   7098     return This->lpVtbl->get_Scope(This,pvarScope);
   7099 }
   7100 static inline 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 inline HRESULT IWebWizardHost_QueryInterface(IWebWizardHost* This,REFIID riid,void **ppvObject) {
   7287     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7288 }
   7289 static inline ULONG IWebWizardHost_AddRef(IWebWizardHost* This) {
   7290     return This->lpVtbl->AddRef(This);
   7291 }
   7292 static inline ULONG IWebWizardHost_Release(IWebWizardHost* This) {
   7293     return This->lpVtbl->Release(This);
   7294 }
   7295 /*** IDispatch methods ***/
   7296 static inline HRESULT IWebWizardHost_GetTypeInfoCount(IWebWizardHost* This,UINT *pctinfo) {
   7297     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   7298 }
   7299 static inline HRESULT IWebWizardHost_GetTypeInfo(IWebWizardHost* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   7300     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   7301 }
   7302 static inline 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 inline 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 inline HRESULT IWebWizardHost_FinalBack(IWebWizardHost* This) {
   7310     return This->lpVtbl->FinalBack(This);
   7311 }
   7312 static inline HRESULT IWebWizardHost_FinalNext(IWebWizardHost* This) {
   7313     return This->lpVtbl->FinalNext(This);
   7314 }
   7315 static inline HRESULT IWebWizardHost_Cancel(IWebWizardHost* This) {
   7316     return This->lpVtbl->Cancel(This);
   7317 }
   7318 static inline HRESULT IWebWizardHost_put_Caption(IWebWizardHost* This,BSTR bstrCaption) {
   7319     return This->lpVtbl->put_Caption(This,bstrCaption);
   7320 }
   7321 static inline HRESULT IWebWizardHost_get_Caption(IWebWizardHost* This,BSTR *pbstrCaption) {
   7322     return This->lpVtbl->get_Caption(This,pbstrCaption);
   7323 }
   7324 static inline HRESULT IWebWizardHost_put_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
   7325     return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
   7326 }
   7327 static inline HRESULT IWebWizardHost_get_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
   7328     return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
   7329 }
   7330 static inline 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 inline 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 inline HRESULT INewWDEvents_QueryInterface(INewWDEvents* This,REFIID riid,void **ppvObject) {
   7487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7488 }
   7489 static inline ULONG INewWDEvents_AddRef(INewWDEvents* This) {
   7490     return This->lpVtbl->AddRef(This);
   7491 }
   7492 static inline ULONG INewWDEvents_Release(INewWDEvents* This) {
   7493     return This->lpVtbl->Release(This);
   7494 }
   7495 /*** IDispatch methods ***/
   7496 static inline HRESULT INewWDEvents_GetTypeInfoCount(INewWDEvents* This,UINT *pctinfo) {
   7497     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   7498 }
   7499 static inline HRESULT INewWDEvents_GetTypeInfo(INewWDEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   7500     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   7501 }
   7502 static inline 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 inline 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 inline HRESULT INewWDEvents_FinalBack(INewWDEvents* This) {
   7510     return This->lpVtbl->FinalBack(This);
   7511 }
   7512 static inline HRESULT INewWDEvents_FinalNext(INewWDEvents* This) {
   7513     return This->lpVtbl->FinalNext(This);
   7514 }
   7515 static inline HRESULT INewWDEvents_Cancel(INewWDEvents* This) {
   7516     return This->lpVtbl->Cancel(This);
   7517 }
   7518 static inline HRESULT INewWDEvents_put_Caption(INewWDEvents* This,BSTR bstrCaption) {
   7519     return This->lpVtbl->put_Caption(This,bstrCaption);
   7520 }
   7521 static inline HRESULT INewWDEvents_get_Caption(INewWDEvents* This,BSTR *pbstrCaption) {
   7522     return This->lpVtbl->get_Caption(This,pbstrCaption);
   7523 }
   7524 static inline HRESULT INewWDEvents_put_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
   7525     return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
   7526 }
   7527 static inline HRESULT INewWDEvents_get_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
   7528     return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
   7529 }
   7530 static inline 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 inline HRESULT INewWDEvents_SetHeaderText(INewWDEvents* This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle) {
   7534     return This->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle);
   7535 }
   7536 /*** INewWDEvents methods ***/
   7537 static inline 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 inline HRESULT IAutoComplete_QueryInterface(IAutoComplete* This,REFIID riid,void **ppvObject) {
   7621     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7622 }
   7623 static inline ULONG IAutoComplete_AddRef(IAutoComplete* This) {
   7624     return This->lpVtbl->AddRef(This);
   7625 }
   7626 static inline ULONG IAutoComplete_Release(IAutoComplete* This) {
   7627     return This->lpVtbl->Release(This);
   7628 }
   7629 /*** IAutoComplete methods ***/
   7630 static inline 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 inline 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 inline HRESULT IAutoComplete2_QueryInterface(IAutoComplete2* This,REFIID riid,void **ppvObject) {
   7737     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7738 }
   7739 static inline ULONG IAutoComplete2_AddRef(IAutoComplete2* This) {
   7740     return This->lpVtbl->AddRef(This);
   7741 }
   7742 static inline ULONG IAutoComplete2_Release(IAutoComplete2* This) {
   7743     return This->lpVtbl->Release(This);
   7744 }
   7745 /*** IAutoComplete methods ***/
   7746 static inline 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 inline HRESULT IAutoComplete2_Enable(IAutoComplete2* This,WINBOOL fEnable) {
   7750     return This->lpVtbl->Enable(This,fEnable);
   7751 }
   7752 /*** IAutoComplete2 methods ***/
   7753 static inline HRESULT IAutoComplete2_SetOptions(IAutoComplete2* This,DWORD dwFlag) {
   7754     return This->lpVtbl->SetOptions(This,dwFlag);
   7755 }
   7756 static inline 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 inline HRESULT IEnumACString_QueryInterface(IEnumACString* This,REFIID riid,void **ppvObject) {
   7875     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7876 }
   7877 static inline ULONG IEnumACString_AddRef(IEnumACString* This) {
   7878     return This->lpVtbl->AddRef(This);
   7879 }
   7880 static inline ULONG IEnumACString_Release(IEnumACString* This) {
   7881     return This->lpVtbl->Release(This);
   7882 }
   7883 /*** IEnumString methods ***/
   7884 static inline HRESULT IEnumACString_Next(IEnumACString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
   7885     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   7886 }
   7887 static inline HRESULT IEnumACString_Skip(IEnumACString* This,ULONG celt) {
   7888     return This->lpVtbl->Skip(This,celt);
   7889 }
   7890 static inline HRESULT IEnumACString_Reset(IEnumACString* This) {
   7891     return This->lpVtbl->Reset(This);
   7892 }
   7893 static inline HRESULT IEnumACString_Clone(IEnumACString* This,IEnumString **ppenum) {
   7894     return This->lpVtbl->Clone(This,ppenum);
   7895 }
   7896 /*** IEnumACString methods ***/
   7897 static inline HRESULT IEnumACString_NextItem(IEnumACString* This,LPWSTR pszUrl,ULONG cchMax,ULONG *pulSortIndex) {
   7898     return This->lpVtbl->NextItem(This,pszUrl,cchMax,pulSortIndex);
   7899 }
   7900 static inline HRESULT IEnumACString_SetEnumOptions(IEnumACString* This,DWORD dwOptions) {
   7901     return This->lpVtbl->SetEnumOptions(This,dwOptions);
   7902 }
   7903 static inline 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 inline HRESULT IDataObjectAsyncCapability_QueryInterface(IDataObjectAsyncCapability* This,REFIID riid,void **ppvObject) {
   8007     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8008 }
   8009 static inline ULONG IDataObjectAsyncCapability_AddRef(IDataObjectAsyncCapability* This) {
   8010     return This->lpVtbl->AddRef(This);
   8011 }
   8012 static inline ULONG IDataObjectAsyncCapability_Release(IDataObjectAsyncCapability* This) {
   8013     return This->lpVtbl->Release(This);
   8014 }
   8015 /*** IDataObjectAsyncCapability methods ***/
   8016 static inline HRESULT IDataObjectAsyncCapability_SetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL fDoOpAsync) {
   8017     return This->lpVtbl->SetAsyncMode(This,fDoOpAsync);
   8018 }
   8019 static inline HRESULT IDataObjectAsyncCapability_GetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL *pfIsOpAsync) {
   8020     return This->lpVtbl->GetAsyncMode(This,pfIsOpAsync);
   8021 }
   8022 static inline HRESULT IDataObjectAsyncCapability_StartOperation(IDataObjectAsyncCapability* This,IBindCtx *pbcReserved) {
   8023     return This->lpVtbl->StartOperation(This,pbcReserved);
   8024 }
   8025 static inline HRESULT IDataObjectAsyncCapability_InOperation(IDataObjectAsyncCapability* This,WINBOOL *pfInAsyncOp) {
   8026     return This->lpVtbl->InOperation(This,pfInAsyncOp);
   8027 }
   8028 static inline 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__ */