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