Regenerated header
diff --git a/mingw-w64-headers/include/shldisp.h b/mingw-w64-headers/include/shldisp.h
index f2ec0eb..bc0df34 100644
--- a/mingw-w64-headers/include/shldisp.h
+++ b/mingw-w64-headers/include/shldisp.h
@@ -1,35 +1,30 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 1.6 from shldisp.idl - Do not edit ***/
+
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
 
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
+#include <rpc.h>
+#include <rpcndr.h>
 
 #ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
 #endif
 
 #ifndef __shldisp_h__
 #define __shldisp_h__
 
+/* Forward declarations */
+
 #ifndef __IFolderViewOC_FWD_DEFINED__
 #define __IFolderViewOC_FWD_DEFINED__
-typedef struct IFolderViewOC IFolderViewOC;
+typedef interface IFolderViewOC IFolderViewOC;
 #endif
 
 #ifndef __DShellFolderViewEvents_FWD_DEFINED__
 #define __DShellFolderViewEvents_FWD_DEFINED__
-typedef struct DShellFolderViewEvents DShellFolderViewEvents;
+typedef interface DShellFolderViewEvents DShellFolderViewEvents;
 #endif
 
 #ifndef __ShellFolderViewOC_FWD_DEFINED__
@@ -38,87 +33,81 @@
 typedef class ShellFolderViewOC ShellFolderViewOC;
 #else
 typedef struct ShellFolderViewOC ShellFolderViewOC;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __ShellFolderViewOC_FWD_DEFINED__ */
 
 #ifndef __DFConstraint_FWD_DEFINED__
 #define __DFConstraint_FWD_DEFINED__
-typedef struct DFConstraint DFConstraint;
-#endif
-
-#ifndef __ISearchCommandExt_FWD_DEFINED__
-#define __ISearchCommandExt_FWD_DEFINED__
-typedef struct ISearchCommandExt ISearchCommandExt;
-#endif
-
-#ifndef __FolderItem_FWD_DEFINED__
-#define __FolderItem_FWD_DEFINED__
-typedef struct FolderItem FolderItem;
-#endif
-
-#ifndef __FolderItems_FWD_DEFINED__
-#define __FolderItems_FWD_DEFINED__
-typedef struct FolderItems FolderItems;
-#endif
-
-#ifndef __FolderItemVerb_FWD_DEFINED__
-#define __FolderItemVerb_FWD_DEFINED__
-typedef struct FolderItemVerb FolderItemVerb;
-#endif
-
-#ifndef __FolderItemVerbs_FWD_DEFINED__
-#define __FolderItemVerbs_FWD_DEFINED__
-typedef struct FolderItemVerbs FolderItemVerbs;
+typedef interface DFConstraint DFConstraint;
 #endif
 
 #ifndef __Folder_FWD_DEFINED__
 #define __Folder_FWD_DEFINED__
-typedef struct Folder Folder;
+typedef interface Folder Folder;
 #endif
 
 #ifndef __Folder2_FWD_DEFINED__
 #define __Folder2_FWD_DEFINED__
-typedef struct Folder2 Folder2;
+typedef interface Folder2 Folder2;
 #endif
 
 #ifndef __Folder3_FWD_DEFINED__
 #define __Folder3_FWD_DEFINED__
-typedef struct Folder3 Folder3;
+typedef interface Folder3 Folder3;
+#endif
+
+#ifndef __FolderItem_FWD_DEFINED__
+#define __FolderItem_FWD_DEFINED__
+typedef interface FolderItem FolderItem;
 #endif
 
 #ifndef __FolderItem2_FWD_DEFINED__
 #define __FolderItem2_FWD_DEFINED__
-typedef struct FolderItem2 FolderItem2;
+typedef interface FolderItem2 FolderItem2;
 #endif
 
 #ifndef __ShellFolderItem_FWD_DEFINED__
 #define __ShellFolderItem_FWD_DEFINED__
-
 #ifdef __cplusplus
 typedef class ShellFolderItem ShellFolderItem;
 #else
 typedef struct ShellFolderItem ShellFolderItem;
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __ShellFolderItem_FWD_DEFINED__ */
+
+#ifndef __FolderItems_FWD_DEFINED__
+#define __FolderItems_FWD_DEFINED__
+typedef interface FolderItems FolderItems;
 #endif
 
 #ifndef __FolderItems2_FWD_DEFINED__
 #define __FolderItems2_FWD_DEFINED__
-typedef struct FolderItems2 FolderItems2;
+typedef interface FolderItems2 FolderItems2;
 #endif
 
 #ifndef __FolderItems3_FWD_DEFINED__
 #define __FolderItems3_FWD_DEFINED__
-typedef struct FolderItems3 FolderItems3;
+typedef interface FolderItems3 FolderItems3;
+#endif
+
+#ifndef __FolderItemVerb_FWD_DEFINED__
+#define __FolderItemVerb_FWD_DEFINED__
+typedef interface FolderItemVerb FolderItemVerb;
+#endif
+
+#ifndef __FolderItemVerbs_FWD_DEFINED__
+#define __FolderItemVerbs_FWD_DEFINED__
+typedef interface FolderItemVerbs FolderItemVerbs;
 #endif
 
 #ifndef __IShellLinkDual_FWD_DEFINED__
 #define __IShellLinkDual_FWD_DEFINED__
-typedef struct IShellLinkDual IShellLinkDual;
+typedef interface IShellLinkDual IShellLinkDual;
 #endif
 
 #ifndef __IShellLinkDual2_FWD_DEFINED__
 #define __IShellLinkDual2_FWD_DEFINED__
-typedef struct IShellLinkDual2 IShellLinkDual2;
+typedef interface IShellLinkDual2 IShellLinkDual2;
 #endif
 
 #ifndef __ShellLinkObject_FWD_DEFINED__
@@ -127,17 +116,22 @@
 typedef class ShellLinkObject ShellLinkObject;
 #else
 typedef struct ShellLinkObject ShellLinkObject;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __ShellLinkObject_FWD_DEFINED__ */
 
 #ifndef __IShellFolderViewDual_FWD_DEFINED__
 #define __IShellFolderViewDual_FWD_DEFINED__
-typedef struct IShellFolderViewDual IShellFolderViewDual;
+typedef interface IShellFolderViewDual IShellFolderViewDual;
 #endif
 
 #ifndef __IShellFolderViewDual2_FWD_DEFINED__
 #define __IShellFolderViewDual2_FWD_DEFINED__
-typedef struct IShellFolderViewDual2 IShellFolderViewDual2;
+typedef interface IShellFolderViewDual2 IShellFolderViewDual2;
+#endif
+
+#ifndef __IShellFolderViewDual3_FWD_DEFINED__
+#define __IShellFolderViewDual3_FWD_DEFINED__
+typedef interface IShellFolderViewDual3 IShellFolderViewDual3;
 #endif
 
 #ifndef __ShellFolderView_FWD_DEFINED__
@@ -146,27 +140,37 @@
 typedef class ShellFolderView ShellFolderView;
 #else
 typedef struct ShellFolderView ShellFolderView;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __ShellFolderView_FWD_DEFINED__ */
 
 #ifndef __IShellDispatch_FWD_DEFINED__
 #define __IShellDispatch_FWD_DEFINED__
-typedef struct IShellDispatch IShellDispatch;
+typedef interface IShellDispatch IShellDispatch;
 #endif
 
 #ifndef __IShellDispatch2_FWD_DEFINED__
 #define __IShellDispatch2_FWD_DEFINED__
-typedef struct IShellDispatch2 IShellDispatch2;
+typedef interface IShellDispatch2 IShellDispatch2;
 #endif
 
 #ifndef __IShellDispatch3_FWD_DEFINED__
 #define __IShellDispatch3_FWD_DEFINED__
-typedef struct IShellDispatch3 IShellDispatch3;
+typedef interface IShellDispatch3 IShellDispatch3;
 #endif
 
 #ifndef __IShellDispatch4_FWD_DEFINED__
 #define __IShellDispatch4_FWD_DEFINED__
-typedef struct IShellDispatch4 IShellDispatch4;
+typedef interface IShellDispatch4 IShellDispatch4;
+#endif
+
+#ifndef __IShellDispatch5_FWD_DEFINED__
+#define __IShellDispatch5_FWD_DEFINED__
+typedef interface IShellDispatch5 IShellDispatch5;
+#endif
+
+#ifndef __IShellDispatch6_FWD_DEFINED__
+#define __IShellDispatch6_FWD_DEFINED__
+typedef interface IShellDispatch6 IShellDispatch6;
 #endif
 
 #ifndef __Shell_FWD_DEFINED__
@@ -175,8 +179,8 @@
 typedef class Shell Shell;
 #else
 typedef struct Shell Shell;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __Shell_FWD_DEFINED__ */
 
 #ifndef __ShellDispatchInproc_FWD_DEFINED__
 #define __ShellDispatchInproc_FWD_DEFINED__
@@ -184,35 +188,12 @@
 typedef class ShellDispatchInproc ShellDispatchInproc;
 #else
 typedef struct ShellDispatchInproc ShellDispatchInproc;
-#endif
-#endif
-
-#ifndef __WebViewFolderContents_FWD_DEFINED__
-#define __WebViewFolderContents_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class WebViewFolderContents WebViewFolderContents;
-#else
-typedef struct WebViewFolderContents WebViewFolderContents;
-#endif
-#endif
-
-#ifndef __DSearchCommandEvents_FWD_DEFINED__
-#define __DSearchCommandEvents_FWD_DEFINED__
-typedef struct DSearchCommandEvents DSearchCommandEvents;
-#endif
-
-#ifndef __SearchCommand_FWD_DEFINED__
-#define __SearchCommand_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class SearchCommand SearchCommand;
-#else
-typedef struct SearchCommand SearchCommand;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __ShellDispatchInproc_FWD_DEFINED__ */
 
 #ifndef __IFileSearchBand_FWD_DEFINED__
 #define __IFileSearchBand_FWD_DEFINED__
-typedef struct IFileSearchBand IFileSearchBand;
+typedef interface IFileSearchBand IFileSearchBand;
 #endif
 
 #ifndef __FileSearchBand_FWD_DEFINED__
@@ -221,377 +202,1590 @@
 typedef class FileSearchBand FileSearchBand;
 #else
 typedef struct FileSearchBand FileSearchBand;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __FileSearchBand_FWD_DEFINED__ */
 
 #ifndef __IWebWizardHost_FWD_DEFINED__
 #define __IWebWizardHost_FWD_DEFINED__
-typedef struct IWebWizardHost IWebWizardHost;
+typedef interface IWebWizardHost IWebWizardHost;
 #endif
 
 #ifndef __INewWDEvents_FWD_DEFINED__
 #define __INewWDEvents_FWD_DEFINED__
-typedef struct INewWDEvents INewWDEvents;
-#endif
-
-#ifndef __IPassportClientServices_FWD_DEFINED__
-#define __IPassportClientServices_FWD_DEFINED__
-typedef struct IPassportClientServices IPassportClientServices;
-#endif
-
-#ifndef __PassportClientServices_FWD_DEFINED__
-#define __PassportClientServices_FWD_DEFINED__
-#ifdef __cplusplus
-typedef class PassportClientServices PassportClientServices;
-#else
-typedef struct PassportClientServices PassportClientServices;
-#endif
+typedef interface INewWDEvents INewWDEvents;
 #endif
 
 #ifndef __IAutoComplete_FWD_DEFINED__
 #define __IAutoComplete_FWD_DEFINED__
-typedef struct IAutoComplete IAutoComplete;
+typedef interface IAutoComplete IAutoComplete;
 #endif
 
 #ifndef __IAutoComplete2_FWD_DEFINED__
 #define __IAutoComplete2_FWD_DEFINED__
-typedef struct IAutoComplete2 IAutoComplete2;
+typedef interface IAutoComplete2 IAutoComplete2;
 #endif
 
 #ifndef __IEnumACString_FWD_DEFINED__
 #define __IEnumACString_FWD_DEFINED__
-typedef struct IEnumACString IEnumACString;
+typedef interface IEnumACString IEnumACString;
 #endif
 
-#ifndef __IAsyncOperation_FWD_DEFINED__
-#define __IAsyncOperation_FWD_DEFINED__
-typedef struct IAsyncOperation IAsyncOperation;
+#ifndef __IDataObjectAsyncCapability_FWD_DEFINED__
+#define __IDataObjectAsyncCapability_FWD_DEFINED__
+typedef interface IDataObjectAsyncCapability IDataObjectAsyncCapability;
 #endif
 
-#include "ocidl.h"
+/* Headers for imported files */
+
+#include <ocidl.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __DShellFolderViewEvents_FWD_DEFINED__
+#define __DShellFolderViewEvents_FWD_DEFINED__
+typedef interface DShellFolderViewEvents DShellFolderViewEvents;
 #endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0000_v0_0_s_ifspec;
+#ifndef __IAutoComplete_FWD_DEFINED__
+#define __IAutoComplete_FWD_DEFINED__
+typedef interface IAutoComplete IAutoComplete;
+#endif
 
-#ifndef __Shell32_LIBRARY_DEFINED__
-#define __Shell32_LIBRARY_DEFINED__
-  typedef enum SearchCommandExecuteErrors {
-    SCEE_PATHNOTFOUND = 1,
-    SCEE_MAXFILESFOUND,SCEE_INDEXSEARCH,SCEE_CONSTRAINT,SCEE_SCOPEMISMATCH,
-    SCEE_CASESENINDEX,SCEE_INDEXNOTCOMPLETE
-  } SearchCommandExecuteErrors;
+#ifndef __FolderItem_FWD_DEFINED__
+#define __FolderItem_FWD_DEFINED__
+typedef interface FolderItem FolderItem;
+#endif
 
-  typedef enum OfflineFolderStatus {
-    OFS_INACTIVE = -1,OFS_ONLINE = 0,
-    OFS_OFFLINE,OFS_SERVERBACK,OFS_DIRTYCACHE
-  } OfflineFolderStatus;
+#ifndef __FolderItems_FWD_DEFINED__
+#define __FolderItems_FWD_DEFINED__
+typedef interface FolderItems FolderItems;
+#endif
 
-  typedef enum ShellFolderViewOptions {
-    SFVVO_SHOWALLOBJECTS = 0x1,SFVVO_SHOWEXTENSIONS = 0x2,SFVVO_SHOWCOMPCOLOR = 0x8,
-    SFVVO_SHOWSYSFILES = 0x20,SFVVO_WIN95CLASSIC = 0x40,SFVVO_DOUBLECLICKINWEBVIEW = 0x80,
-    SFVVO_DESKTOPHTML = 0x200
-  } ShellFolderViewOptions;
+#ifndef __FolderItemVerb_FWD_DEFINED__
+#define __FolderItemVerb_FWD_DEFINED__
+typedef interface FolderItemVerb FolderItemVerb;
+#endif
 
-  typedef enum ShellSpecialFolderConstants {
-    ssfDESKTOP = 0,ssfPROGRAMS = 0x2,ssfCONTROLS = 0x3,ssfPRINTERS = 0x4,ssfPERSONAL = 0x5,ssfFAVORITES = 0x6,ssfSTARTUP = 0x7,ssfRECENT = 0x8,
-    ssfSENDTO = 0x9,ssfBITBUCKET = 0xa,ssfSTARTMENU = 0xb,ssfDESKTOPDIRECTORY = 0x10,ssfDRIVES = 0x11,ssfNETWORK = 0x12,ssfNETHOOD = 0x13,
-    ssfFONTS = 0x14,ssfTEMPLATES = 0x15,ssfCOMMONSTARTMENU = 0x16,ssfCOMMONPROGRAMS = 0x17,ssfCOMMONSTARTUP = 0x18,ssfCOMMONDESKTOPDIR = 0x19,
-    ssfAPPDATA = 0x1a,ssfPRINTHOOD = 0x1b,ssfLOCALAPPDATA = 0x1c,ssfALTSTARTUP = 0x1d,ssfCOMMONALTSTARTUP = 0x1e,ssfCOMMONFAVORITES = 0x1f,
-    ssfINTERNETCACHE = 0x20,ssfCOOKIES = 0x21,ssfHISTORY = 0x22,ssfCOMMONAPPDATA = 0x23,ssfWINDOWS = 0x24,ssfSYSTEM = 0x25,ssfPROGRAMFILES = 0x26,
-    ssfMYPICTURES = 0x27,ssfPROFILE = 0x28,ssfSYSTEMx86 = 0x29,ssfPROGRAMFILESx86 = 0x30
-  } ShellSpecialFolderConstants;
+#ifndef __FolderItemVerbs_FWD_DEFINED__
+#define __FolderItemVerbs_FWD_DEFINED__
+typedef interface FolderItemVerbs FolderItemVerbs;
+#endif
 
-  EXTERN_C const IID LIBID_Shell32;
+
+DEFINE_GUID(LIBID_Shell32, 0x50a7e9b0, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
+
+/*****************************************************************************
+ * IFolderViewOC interface
+ */
 #ifndef __IFolderViewOC_INTERFACE_DEFINED__
 #define __IFolderViewOC_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFolderViewOC;
+
+DEFINE_GUID(IID_IFolderViewOC, 0x9ba05970, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFolderViewOC : public IDispatch {
-  public:
-    virtual HRESULT WINAPI SetFolderView(IDispatch *pdisp) = 0;
-  };
+MIDL_INTERFACE("9ba05970-f6a8-11cf-a442-00a0c90a8f39")
+IFolderViewOC : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE SetFolderView(
+        IDispatch *pdisp) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFolderViewOC, 0x9ba05970, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39)
+#endif
 #else
-  typedef struct IFolderViewOCVtbl {
+typedef struct IFolderViewOCVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFolderViewOC *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFolderViewOC *This);
-      ULONG (WINAPI *Release)(IFolderViewOC *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IFolderViewOC *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IFolderViewOC *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IFolderViewOC *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IFolderViewOC *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *SetFolderView)(IFolderViewOC *This,IDispatch *pdisp);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFolderViewOC* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFolderViewOC* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFolderViewOC* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFolderViewOC* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFolderViewOC* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFolderViewOC* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFolderViewOC* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFolderViewOC methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetFolderView)(
+        IFolderViewOC* This,
+        IDispatch *pdisp);
+
     END_INTERFACE
-  } IFolderViewOCVtbl;
-  struct IFolderViewOC {
-    CONST_VTBL struct IFolderViewOCVtbl *lpVtbl;
-  };
+} IFolderViewOCVtbl;
+interface IFolderViewOC {
+    CONST_VTBL IFolderViewOCVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IFolderViewOC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IFolderViewOC_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IFolderViewOC_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IFolderViewOC_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IFolderViewOC_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IFolderViewOC_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IFolderViewOC_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFolderViewOC methods ***/
 #define IFolderViewOC_SetFolderView(This,pdisp) (This)->lpVtbl->SetFolderView(This,pdisp)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFolderViewOC_QueryInterface(IFolderViewOC* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFolderViewOC_AddRef(IFolderViewOC* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFolderViewOC_Release(IFolderViewOC* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFolderViewOC_GetTypeInfoCount(IFolderViewOC* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFolderViewOC_GetTypeInfo(IFolderViewOC* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFolderViewOC_GetIDsOfNames(IFolderViewOC* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFolderViewOC_Invoke(IFolderViewOC* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFolderViewOC methods ***/
+static FORCEINLINE HRESULT IFolderViewOC_SetFolderView(IFolderViewOC* This,IDispatch *pdisp) {
+    return This->lpVtbl->SetFolderView(This,pdisp);
+}
 #endif
 #endif
-  HRESULT WINAPI IFolderViewOC_SetFolderView_Proxy(IFolderViewOC *This,IDispatch *pdisp);
-  void __RPC_STUB IFolderViewOC_SetFolderView_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IFolderViewOC_SetFolderView_Proxy(
+    IFolderViewOC* This,
+    IDispatch *pdisp);
+void __RPC_STUB IFolderViewOC_SetFolderView_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFolderViewOC_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * DShellFolderViewEvents dispinterface
+ */
 #ifndef __DShellFolderViewEvents_DISPINTERFACE_DEFINED__
 #define __DShellFolderViewEvents_DISPINTERFACE_DEFINED__
-  EXTERN_C const IID DIID_DShellFolderViewEvents;
+
+DEFINE_GUID(DIID_DShellFolderViewEvents, 0x62112aa2, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct DShellFolderViewEvents : public IDispatch {
-  };
+MIDL_INTERFACE("62112aa2-ebe4-11cf-a5fb-0020afe7292d")
+DShellFolderViewEvents : public IDispatch
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DShellFolderViewEvents, 0x62112aa2, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d)
+#endif
 #else
-  typedef struct DShellFolderViewEventsVtbl {
+typedef struct DShellFolderViewEventsVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(DShellFolderViewEvents *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(DShellFolderViewEvents *This);
-      ULONG (WINAPI *Release)(DShellFolderViewEvents *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(DShellFolderViewEvents *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(DShellFolderViewEvents *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(DShellFolderViewEvents *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(DShellFolderViewEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        DShellFolderViewEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        DShellFolderViewEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        DShellFolderViewEvents* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        DShellFolderViewEvents* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        DShellFolderViewEvents* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        DShellFolderViewEvents* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        DShellFolderViewEvents* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
     END_INTERFACE
-  } DShellFolderViewEventsVtbl;
-  struct DShellFolderViewEvents {
-    CONST_VTBL struct DShellFolderViewEventsVtbl *lpVtbl;
-  };
+} DShellFolderViewEventsVtbl;
+interface DShellFolderViewEvents {
+    CONST_VTBL DShellFolderViewEventsVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define DShellFolderViewEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define DShellFolderViewEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define DShellFolderViewEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define DShellFolderViewEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define DShellFolderViewEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define DShellFolderViewEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define DShellFolderViewEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#endif
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT DShellFolderViewEvents_QueryInterface(DShellFolderViewEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG DShellFolderViewEvents_AddRef(DShellFolderViewEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG DShellFolderViewEvents_Release(DShellFolderViewEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT DShellFolderViewEvents_GetTypeInfoCount(DShellFolderViewEvents* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT DShellFolderViewEvents_GetTypeInfo(DShellFolderViewEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT DShellFolderViewEvents_GetIDsOfNames(DShellFolderViewEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT DShellFolderViewEvents_Invoke(DShellFolderViewEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
 #endif
 #endif
 
-  EXTERN_C const CLSID CLSID_ShellFolderViewOC;
+#endif
+
+#endif  /* __DShellFolderViewEvents_DISPINTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ShellFolderViewOC coclass
+ */
+
+DEFINE_GUID(CLSID_ShellFolderViewOC, 0x9ba05971, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
+
 #ifdef __cplusplus
-  class ShellFolderViewOC;
+class DECLSPEC_UUID("9ba05971-f6a8-11cf-a442-00a0c90a8f39") ShellFolderViewOC;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ShellFolderViewOC, 0x9ba05971, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39)
+#endif
 #endif
 
+/*****************************************************************************
+ * DFConstraint interface
+ */
 #ifndef __DFConstraint_INTERFACE_DEFINED__
 #define __DFConstraint_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_DFConstraint;
+
+DEFINE_GUID(IID_DFConstraint, 0x4a3df050, 0x23bd, 0x11d2, 0x93,0x9f, 0x00,0xa0,0xc9,0x1e,0xed,0xba);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct DFConstraint : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Name(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI get_Value(VARIANT *pv) = 0;
-  };
+MIDL_INTERFACE("4a3df050-23bd-11d2-939f-00a0c91eedba")
+DFConstraint : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Value(
+        VARIANT *pv) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DFConstraint, 0x4a3df050, 0x23bd, 0x11d2, 0x93,0x9f, 0x00,0xa0,0xc9,0x1e,0xed,0xba)
+#endif
 #else
-  typedef struct DFConstraintVtbl {
+typedef struct DFConstraintVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(DFConstraint *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(DFConstraint *This);
-      ULONG (WINAPI *Release)(DFConstraint *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(DFConstraint *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(DFConstraint *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(DFConstraint *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(DFConstraint *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Name)(DFConstraint *This,BSTR *pbs);
-      HRESULT (WINAPI *get_Value)(DFConstraint *This,VARIANT *pv);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        DFConstraint* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        DFConstraint* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        DFConstraint* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        DFConstraint* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        DFConstraint* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        DFConstraint* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        DFConstraint* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** DFConstraint methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        DFConstraint* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Value)(
+        DFConstraint* This,
+        VARIANT *pv);
+
     END_INTERFACE
-  } DFConstraintVtbl;
-  struct DFConstraint {
-    CONST_VTBL struct DFConstraintVtbl *lpVtbl;
-  };
+} DFConstraintVtbl;
+interface DFConstraint {
+    CONST_VTBL DFConstraintVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define DFConstraint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define DFConstraint_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define DFConstraint_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define DFConstraint_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define DFConstraint_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define DFConstraint_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define DFConstraint_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** DFConstraint methods ***/
 #define DFConstraint_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
 #define DFConstraint_get_Value(This,pv) (This)->lpVtbl->get_Value(This,pv)
-#endif
-#endif
-  HRESULT WINAPI DFConstraint_get_Name_Proxy(DFConstraint *This,BSTR *pbs);
-  void __RPC_STUB DFConstraint_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI DFConstraint_get_Value_Proxy(DFConstraint *This,VARIANT *pv);
-  void __RPC_STUB DFConstraint_get_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __ISearchCommandExt_INTERFACE_DEFINED__
-#define __ISearchCommandExt_INTERFACE_DEFINED__
-  typedef enum __MIDL_ISearchCommandExt_0001 {
-    SCE_SEARCHFORFILES = 0,SCE_SEARCHFORCOMPUTERS = 1
-  } SEARCH_FOR_TYPE;
-
-  EXTERN_C const IID IID_ISearchCommandExt;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct ISearchCommandExt : public IDispatch {
-  public:
-    virtual HRESULT WINAPI ClearResults(void) = 0;
-    virtual HRESULT WINAPI NavigateToSearchResults(void) = 0;
-    virtual HRESULT WINAPI get_ProgressText(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI SaveSearch(void) = 0;
-    virtual HRESULT WINAPI GetErrorInfo(BSTR *pbs,int *phr) = 0;
-    virtual HRESULT WINAPI SearchFor(int iFor) = 0;
-    virtual HRESULT WINAPI GetScopeInfo(BSTR bsScope,int *pdwScopeInfo) = 0;
-    virtual HRESULT WINAPI RestoreSavedSearch(VARIANT *pvarFile) = 0;
-    virtual HRESULT WINAPI Execute(VARIANT *RecordsAffected,VARIANT *Parameters,__LONG32 Options) = 0;
-    virtual HRESULT WINAPI AddConstraint(BSTR Name,VARIANT Value) = 0;
-    virtual HRESULT WINAPI GetNextConstraint(VARIANT_BOOL fReset,DFConstraint **ppdfc) = 0;
-  };
 #else
-  typedef struct ISearchCommandExtVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(ISearchCommandExt *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(ISearchCommandExt *This);
-      ULONG (WINAPI *Release)(ISearchCommandExt *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(ISearchCommandExt *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(ISearchCommandExt *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(ISearchCommandExt *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(ISearchCommandExt *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *ClearResults)(ISearchCommandExt *This);
-      HRESULT (WINAPI *NavigateToSearchResults)(ISearchCommandExt *This);
-      HRESULT (WINAPI *get_ProgressText)(ISearchCommandExt *This,BSTR *pbs);
-      HRESULT (WINAPI *SaveSearch)(ISearchCommandExt *This);
-      HRESULT (WINAPI *GetErrorInfo)(ISearchCommandExt *This,BSTR *pbs,int *phr);
-      HRESULT (WINAPI *SearchFor)(ISearchCommandExt *This,int iFor);
-      HRESULT (WINAPI *GetScopeInfo)(ISearchCommandExt *This,BSTR bsScope,int *pdwScopeInfo);
-      HRESULT (WINAPI *RestoreSavedSearch)(ISearchCommandExt *This,VARIANT *pvarFile);
-      HRESULT (WINAPI *Execute)(ISearchCommandExt *This,VARIANT *RecordsAffected,VARIANT *Parameters,__LONG32 Options);
-      HRESULT (WINAPI *AddConstraint)(ISearchCommandExt *This,BSTR Name,VARIANT Value);
-      HRESULT (WINAPI *GetNextConstraint)(ISearchCommandExt *This,VARIANT_BOOL fReset,DFConstraint **ppdfc);
-    END_INTERFACE
-  } ISearchCommandExtVtbl;
-  struct ISearchCommandExt {
-    CONST_VTBL struct ISearchCommandExtVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define ISearchCommandExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISearchCommandExt_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISearchCommandExt_Release(This) (This)->lpVtbl->Release(This)
-#define ISearchCommandExt_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define ISearchCommandExt_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define ISearchCommandExt_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define ISearchCommandExt_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define ISearchCommandExt_ClearResults(This) (This)->lpVtbl->ClearResults(This)
-#define ISearchCommandExt_NavigateToSearchResults(This) (This)->lpVtbl->NavigateToSearchResults(This)
-#define ISearchCommandExt_get_ProgressText(This,pbs) (This)->lpVtbl->get_ProgressText(This,pbs)
-#define ISearchCommandExt_SaveSearch(This) (This)->lpVtbl->SaveSearch(This)
-#define ISearchCommandExt_GetErrorInfo(This,pbs,phr) (This)->lpVtbl->GetErrorInfo(This,pbs,phr)
-#define ISearchCommandExt_SearchFor(This,iFor) (This)->lpVtbl->SearchFor(This,iFor)
-#define ISearchCommandExt_GetScopeInfo(This,bsScope,pdwScopeInfo) (This)->lpVtbl->GetScopeInfo(This,bsScope,pdwScopeInfo)
-#define ISearchCommandExt_RestoreSavedSearch(This,pvarFile) (This)->lpVtbl->RestoreSavedSearch(This,pvarFile)
-#define ISearchCommandExt_Execute(This,RecordsAffected,Parameters,Options) (This)->lpVtbl->Execute(This,RecordsAffected,Parameters,Options)
-#define ISearchCommandExt_AddConstraint(This,Name,Value) (This)->lpVtbl->AddConstraint(This,Name,Value)
-#define ISearchCommandExt_GetNextConstraint(This,fReset,ppdfc) (This)->lpVtbl->GetNextConstraint(This,fReset,ppdfc)
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT DFConstraint_QueryInterface(DFConstraint* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG DFConstraint_AddRef(DFConstraint* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG DFConstraint_Release(DFConstraint* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT DFConstraint_GetTypeInfoCount(DFConstraint* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT DFConstraint_GetTypeInfo(DFConstraint* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT DFConstraint_GetIDsOfNames(DFConstraint* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT DFConstraint_Invoke(DFConstraint* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** DFConstraint methods ***/
+static FORCEINLINE HRESULT DFConstraint_get_Name(DFConstraint* This,BSTR *pbs) {
+    return This->lpVtbl->get_Name(This,pbs);
+}
+static FORCEINLINE HRESULT DFConstraint_get_Value(DFConstraint* This,VARIANT *pv) {
+    return This->lpVtbl->get_Value(This,pv);
+}
 #endif
 #endif
-  HRESULT WINAPI ISearchCommandExt_ClearResults_Proxy(ISearchCommandExt *This);
-  void __RPC_STUB ISearchCommandExt_ClearResults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_NavigateToSearchResults_Proxy(ISearchCommandExt *This);
-  void __RPC_STUB ISearchCommandExt_NavigateToSearchResults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_get_ProgressText_Proxy(ISearchCommandExt *This,BSTR *pbs);
-  void __RPC_STUB ISearchCommandExt_get_ProgressText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_SaveSearch_Proxy(ISearchCommandExt *This);
-  void __RPC_STUB ISearchCommandExt_SaveSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_GetErrorInfo_Proxy(ISearchCommandExt *This,BSTR *pbs,int *phr);
-  void __RPC_STUB ISearchCommandExt_GetErrorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_SearchFor_Proxy(ISearchCommandExt *This,int iFor);
-  void __RPC_STUB ISearchCommandExt_SearchFor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_GetScopeInfo_Proxy(ISearchCommandExt *This,BSTR bsScope,int *pdwScopeInfo);
-  void __RPC_STUB ISearchCommandExt_GetScopeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_RestoreSavedSearch_Proxy(ISearchCommandExt *This,VARIANT *pvarFile);
-  void __RPC_STUB ISearchCommandExt_RestoreSavedSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_Execute_Proxy(ISearchCommandExt *This,VARIANT *RecordsAffected,VARIANT *Parameters,__LONG32 Options);
-  void __RPC_STUB ISearchCommandExt_Execute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_AddConstraint_Proxy(ISearchCommandExt *This,BSTR Name,VARIANT Value);
-  void __RPC_STUB ISearchCommandExt_AddConstraint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI ISearchCommandExt_GetNextConstraint_Proxy(ISearchCommandExt *This,VARIANT_BOOL fReset,DFConstraint **ppdfc);
-  void __RPC_STUB ISearchCommandExt_GetNextConstraint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE DFConstraint_get_Name_Proxy(
+    DFConstraint* This,
+    BSTR *pbs);
+void __RPC_STUB DFConstraint_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE DFConstraint_get_Value_Proxy(
+    DFConstraint* This,
+    VARIANT *pv);
+void __RPC_STUB DFConstraint_get_Value_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __DFConstraint_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * Folder interface
+ */
+#ifndef __Folder_INTERFACE_DEFINED__
+#define __Folder_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_Folder, 0xbbcbde60, 0xc3ff, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bbcbde60-c3ff-11ce-8350-444553540000")
+Folder : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Title(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ParentFolder(
+        Folder **ppsf) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Items(
+        FolderItems **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ParseName(
+        BSTR bName,
+        FolderItem **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NewFolder(
+        BSTR bName,
+        VARIANT vOptions) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE MoveHere(
+        VARIANT vItem,
+        VARIANT vOptions) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CopyHere(
+        VARIANT vItem,
+        VARIANT vOptions) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
+        VARIANT vItem,
+        int iColumn,
+        BSTR *pbs) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(Folder, 0xbbcbde60, 0xc3ff, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
+#endif
+#else
+typedef struct FolderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        Folder* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        Folder* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        Folder* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        Folder* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        Folder* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        Folder* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        Folder* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** Folder methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Title)(
+        Folder* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        Folder* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        Folder* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_ParentFolder)(
+        Folder* This,
+        Folder **ppsf);
+
+    HRESULT (STDMETHODCALLTYPE *Items)(
+        Folder* This,
+        FolderItems **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *ParseName)(
+        Folder* This,
+        BSTR bName,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NewFolder)(
+        Folder* This,
+        BSTR bName,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *MoveHere)(
+        Folder* This,
+        VARIANT vItem,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *CopyHere)(
+        Folder* This,
+        VARIANT vItem,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
+        Folder* This,
+        VARIANT vItem,
+        int iColumn,
+        BSTR *pbs);
+
+    END_INTERFACE
+} FolderVtbl;
+interface Folder {
+    CONST_VTBL FolderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define Folder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define Folder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define Folder_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define Folder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define Folder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define Folder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define Folder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** Folder methods ***/
+#define Folder_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
+#define Folder_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define Folder_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define Folder_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
+#define Folder_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
+#define Folder_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
+#define Folder_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
+#define Folder_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
+#define Folder_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
+#define Folder_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT Folder_QueryInterface(Folder* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG Folder_AddRef(Folder* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG Folder_Release(Folder* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT Folder_GetTypeInfoCount(Folder* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT Folder_GetTypeInfo(Folder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT Folder_GetIDsOfNames(Folder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT Folder_Invoke(Folder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** Folder methods ***/
+static FORCEINLINE HRESULT Folder_get_Title(Folder* This,BSTR *pbs) {
+    return This->lpVtbl->get_Title(This,pbs);
+}
+static FORCEINLINE HRESULT Folder_get_Application(Folder* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT Folder_get_Parent(Folder* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT Folder_get_ParentFolder(Folder* This,Folder **ppsf) {
+    return This->lpVtbl->get_ParentFolder(This,ppsf);
+}
+static FORCEINLINE HRESULT Folder_Items(Folder* This,FolderItems **ppid) {
+    return This->lpVtbl->Items(This,ppid);
+}
+static FORCEINLINE HRESULT Folder_ParseName(Folder* This,BSTR bName,FolderItem **ppid) {
+    return This->lpVtbl->ParseName(This,bName,ppid);
+}
+static FORCEINLINE HRESULT Folder_NewFolder(Folder* This,BSTR bName,VARIANT vOptions) {
+    return This->lpVtbl->NewFolder(This,bName,vOptions);
+}
+static FORCEINLINE HRESULT Folder_MoveHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
+    return This->lpVtbl->MoveHere(This,vItem,vOptions);
+}
+static FORCEINLINE HRESULT Folder_CopyHere(Folder* This,VARIANT vItem,VARIANT vOptions) {
+    return This->lpVtbl->CopyHere(This,vItem,vOptions);
+}
+static FORCEINLINE HRESULT Folder_GetDetailsOf(Folder* This,VARIANT vItem,int iColumn,BSTR *pbs) {
+    return This->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE Folder_get_Title_Proxy(
+    Folder* This,
+    BSTR *pbs);
+void __RPC_STUB Folder_get_Title_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_get_Application_Proxy(
+    Folder* This,
+    IDispatch **ppid);
+void __RPC_STUB Folder_get_Application_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_get_Parent_Proxy(
+    Folder* This,
+    IDispatch **ppid);
+void __RPC_STUB Folder_get_Parent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_get_ParentFolder_Proxy(
+    Folder* This,
+    Folder **ppsf);
+void __RPC_STUB Folder_get_ParentFolder_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_Items_Proxy(
+    Folder* This,
+    FolderItems **ppid);
+void __RPC_STUB Folder_Items_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_ParseName_Proxy(
+    Folder* This,
+    BSTR bName,
+    FolderItem **ppid);
+void __RPC_STUB Folder_ParseName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_NewFolder_Proxy(
+    Folder* This,
+    BSTR bName,
+    VARIANT vOptions);
+void __RPC_STUB Folder_NewFolder_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_MoveHere_Proxy(
+    Folder* This,
+    VARIANT vItem,
+    VARIANT vOptions);
+void __RPC_STUB Folder_MoveHere_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_CopyHere_Proxy(
+    Folder* This,
+    VARIANT vItem,
+    VARIANT vOptions);
+void __RPC_STUB Folder_CopyHere_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder_GetDetailsOf_Proxy(
+    Folder* This,
+    VARIANT vItem,
+    int iColumn,
+    BSTR *pbs);
+void __RPC_STUB Folder_GetDetailsOf_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __Folder_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * Folder2 interface
+ */
+#ifndef __Folder2_INTERFACE_DEFINED__
+#define __Folder2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_Folder2, 0xf0d2d8ef, 0x3890, 0x11d2, 0xbf,0x8b, 0x00,0xc0,0x4f,0xb9,0x36,0x61);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f0d2d8ef-3890-11d2-bf8b-00c04fb93661")
+Folder2 : public Folder
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Self(
+        FolderItem **ppfi) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_OfflineStatus(
+        LONG *pul) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Synchronize(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_HaveToShowWebViewBarricade(
+        VARIANT_BOOL *pbHaveToShowWebViewBarricade) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DismissedWebViewBarricade(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(Folder2, 0xf0d2d8ef, 0x3890, 0x11d2, 0xbf,0x8b, 0x00,0xc0,0x4f,0xb9,0x36,0x61)
+#endif
+#else
+typedef struct Folder2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        Folder2* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        Folder2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        Folder2* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        Folder2* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        Folder2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        Folder2* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        Folder2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** Folder methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Title)(
+        Folder2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        Folder2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        Folder2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_ParentFolder)(
+        Folder2* This,
+        Folder **ppsf);
+
+    HRESULT (STDMETHODCALLTYPE *Items)(
+        Folder2* This,
+        FolderItems **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *ParseName)(
+        Folder2* This,
+        BSTR bName,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NewFolder)(
+        Folder2* This,
+        BSTR bName,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *MoveHere)(
+        Folder2* This,
+        VARIANT vItem,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *CopyHere)(
+        Folder2* This,
+        VARIANT vItem,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
+        Folder2* This,
+        VARIANT vItem,
+        int iColumn,
+        BSTR *pbs);
+
+    /*** Folder2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Self)(
+        Folder2* This,
+        FolderItem **ppfi);
+
+    HRESULT (STDMETHODCALLTYPE *get_OfflineStatus)(
+        Folder2* This,
+        LONG *pul);
+
+    HRESULT (STDMETHODCALLTYPE *Synchronize)(
+        Folder2* This);
+
+    HRESULT (STDMETHODCALLTYPE *get_HaveToShowWebViewBarricade)(
+        Folder2* This,
+        VARIANT_BOOL *pbHaveToShowWebViewBarricade);
+
+    HRESULT (STDMETHODCALLTYPE *DismissedWebViewBarricade)(
+        Folder2* This);
+
+    END_INTERFACE
+} Folder2Vtbl;
+interface Folder2 {
+    CONST_VTBL Folder2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define Folder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define Folder2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define Folder2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define Folder2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define Folder2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define Folder2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define Folder2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** Folder methods ***/
+#define Folder2_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
+#define Folder2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define Folder2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define Folder2_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
+#define Folder2_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
+#define Folder2_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
+#define Folder2_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
+#define Folder2_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
+#define Folder2_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
+#define Folder2_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
+/*** Folder2 methods ***/
+#define Folder2_get_Self(This,ppfi) (This)->lpVtbl->get_Self(This,ppfi)
+#define Folder2_get_OfflineStatus(This,pul) (This)->lpVtbl->get_OfflineStatus(This,pul)
+#define Folder2_Synchronize(This) (This)->lpVtbl->Synchronize(This)
+#define Folder2_get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade) (This)->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
+#define Folder2_DismissedWebViewBarricade(This) (This)->lpVtbl->DismissedWebViewBarricade(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT Folder2_QueryInterface(Folder2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG Folder2_AddRef(Folder2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG Folder2_Release(Folder2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT Folder2_GetTypeInfoCount(Folder2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT Folder2_GetTypeInfo(Folder2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT Folder2_GetIDsOfNames(Folder2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT Folder2_Invoke(Folder2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** Folder methods ***/
+static FORCEINLINE HRESULT Folder2_get_Title(Folder2* This,BSTR *pbs) {
+    return This->lpVtbl->get_Title(This,pbs);
+}
+static FORCEINLINE HRESULT Folder2_get_Application(Folder2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT Folder2_get_Parent(Folder2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT Folder2_get_ParentFolder(Folder2* This,Folder **ppsf) {
+    return This->lpVtbl->get_ParentFolder(This,ppsf);
+}
+static FORCEINLINE HRESULT Folder2_Items(Folder2* This,FolderItems **ppid) {
+    return This->lpVtbl->Items(This,ppid);
+}
+static FORCEINLINE HRESULT Folder2_ParseName(Folder2* This,BSTR bName,FolderItem **ppid) {
+    return This->lpVtbl->ParseName(This,bName,ppid);
+}
+static FORCEINLINE HRESULT Folder2_NewFolder(Folder2* This,BSTR bName,VARIANT vOptions) {
+    return This->lpVtbl->NewFolder(This,bName,vOptions);
+}
+static FORCEINLINE HRESULT Folder2_MoveHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
+    return This->lpVtbl->MoveHere(This,vItem,vOptions);
+}
+static FORCEINLINE HRESULT Folder2_CopyHere(Folder2* This,VARIANT vItem,VARIANT vOptions) {
+    return This->lpVtbl->CopyHere(This,vItem,vOptions);
+}
+static FORCEINLINE HRESULT Folder2_GetDetailsOf(Folder2* This,VARIANT vItem,int iColumn,BSTR *pbs) {
+    return This->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs);
+}
+/*** Folder2 methods ***/
+static FORCEINLINE HRESULT Folder2_get_Self(Folder2* This,FolderItem **ppfi) {
+    return This->lpVtbl->get_Self(This,ppfi);
+}
+static FORCEINLINE HRESULT Folder2_get_OfflineStatus(Folder2* This,LONG *pul) {
+    return This->lpVtbl->get_OfflineStatus(This,pul);
+}
+static FORCEINLINE HRESULT Folder2_Synchronize(Folder2* This) {
+    return This->lpVtbl->Synchronize(This);
+}
+static FORCEINLINE HRESULT Folder2_get_HaveToShowWebViewBarricade(Folder2* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
+    return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
+}
+static FORCEINLINE HRESULT Folder2_DismissedWebViewBarricade(Folder2* This) {
+    return This->lpVtbl->DismissedWebViewBarricade(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE Folder2_get_Self_Proxy(
+    Folder2* This,
+    FolderItem **ppfi);
+void __RPC_STUB Folder2_get_Self_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder2_get_OfflineStatus_Proxy(
+    Folder2* This,
+    LONG *pul);
+void __RPC_STUB Folder2_get_OfflineStatus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder2_Synchronize_Proxy(
+    Folder2* This);
+void __RPC_STUB Folder2_Synchronize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder2_get_HaveToShowWebViewBarricade_Proxy(
+    Folder2* This,
+    VARIANT_BOOL *pbHaveToShowWebViewBarricade);
+void __RPC_STUB Folder2_get_HaveToShowWebViewBarricade_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder2_DismissedWebViewBarricade_Proxy(
+    Folder2* This);
+void __RPC_STUB Folder2_DismissedWebViewBarricade_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __Folder2_INTERFACE_DEFINED__ */
+
+typedef enum OfflineFolderStatus {
+    OFS_INACTIVE = -1,
+    OFS_ONLINE = 0,
+    OFS_OFFLINE = 1,
+    OFS_SERVERBACK = 2,
+    OFS_DIRTYCACHE = 3
+} OfflineFolderStatus;
+/*****************************************************************************
+ * Folder3 interface
+ */
+#ifndef __Folder3_INTERFACE_DEFINED__
+#define __Folder3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_Folder3, 0xa7ae5f64, 0xc4d7, 0x4d7f, 0x93,0x07, 0x4d,0x24,0xee,0x54,0xb8,0x41);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a7ae5f64-c4d7-4d7f-9307-4d24ee54b841")
+Folder3 : public Folder2
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ShowWebViewBarricade(
+        VARIANT_BOOL *pbShowWebViewBarricade) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ShowWebViewBarricade(
+        VARIANT_BOOL bShowWebViewBarricade) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(Folder3, 0xa7ae5f64, 0xc4d7, 0x4d7f, 0x93,0x07, 0x4d,0x24,0xee,0x54,0xb8,0x41)
+#endif
+#else
+typedef struct Folder3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        Folder3* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        Folder3* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        Folder3* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        Folder3* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        Folder3* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        Folder3* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        Folder3* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** Folder methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Title)(
+        Folder3* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        Folder3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        Folder3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_ParentFolder)(
+        Folder3* This,
+        Folder **ppsf);
+
+    HRESULT (STDMETHODCALLTYPE *Items)(
+        Folder3* This,
+        FolderItems **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *ParseName)(
+        Folder3* This,
+        BSTR bName,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NewFolder)(
+        Folder3* This,
+        BSTR bName,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *MoveHere)(
+        Folder3* This,
+        VARIANT vItem,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *CopyHere)(
+        Folder3* This,
+        VARIANT vItem,
+        VARIANT vOptions);
+
+    HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
+        Folder3* This,
+        VARIANT vItem,
+        int iColumn,
+        BSTR *pbs);
+
+    /*** Folder2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Self)(
+        Folder3* This,
+        FolderItem **ppfi);
+
+    HRESULT (STDMETHODCALLTYPE *get_OfflineStatus)(
+        Folder3* This,
+        LONG *pul);
+
+    HRESULT (STDMETHODCALLTYPE *Synchronize)(
+        Folder3* This);
+
+    HRESULT (STDMETHODCALLTYPE *get_HaveToShowWebViewBarricade)(
+        Folder3* This,
+        VARIANT_BOOL *pbHaveToShowWebViewBarricade);
+
+    HRESULT (STDMETHODCALLTYPE *DismissedWebViewBarricade)(
+        Folder3* This);
+
+    /*** Folder3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ShowWebViewBarricade)(
+        Folder3* This,
+        VARIANT_BOOL *pbShowWebViewBarricade);
+
+    HRESULT (STDMETHODCALLTYPE *put_ShowWebViewBarricade)(
+        Folder3* This,
+        VARIANT_BOOL bShowWebViewBarricade);
+
+    END_INTERFACE
+} Folder3Vtbl;
+interface Folder3 {
+    CONST_VTBL Folder3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define Folder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define Folder3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define Folder3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define Folder3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define Folder3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define Folder3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define Folder3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** Folder methods ***/
+#define Folder3_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
+#define Folder3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define Folder3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define Folder3_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
+#define Folder3_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
+#define Folder3_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
+#define Folder3_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
+#define Folder3_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
+#define Folder3_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
+#define Folder3_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
+/*** Folder2 methods ***/
+#define Folder3_get_Self(This,ppfi) (This)->lpVtbl->get_Self(This,ppfi)
+#define Folder3_get_OfflineStatus(This,pul) (This)->lpVtbl->get_OfflineStatus(This,pul)
+#define Folder3_Synchronize(This) (This)->lpVtbl->Synchronize(This)
+#define Folder3_get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade) (This)->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
+#define Folder3_DismissedWebViewBarricade(This) (This)->lpVtbl->DismissedWebViewBarricade(This)
+/*** Folder3 methods ***/
+#define Folder3_get_ShowWebViewBarricade(This,pbShowWebViewBarricade) (This)->lpVtbl->get_ShowWebViewBarricade(This,pbShowWebViewBarricade)
+#define Folder3_put_ShowWebViewBarricade(This,bShowWebViewBarricade) (This)->lpVtbl->put_ShowWebViewBarricade(This,bShowWebViewBarricade)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT Folder3_QueryInterface(Folder3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG Folder3_AddRef(Folder3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG Folder3_Release(Folder3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT Folder3_GetTypeInfoCount(Folder3* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT Folder3_GetTypeInfo(Folder3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT Folder3_GetIDsOfNames(Folder3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT Folder3_Invoke(Folder3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** Folder methods ***/
+static FORCEINLINE HRESULT Folder3_get_Title(Folder3* This,BSTR *pbs) {
+    return This->lpVtbl->get_Title(This,pbs);
+}
+static FORCEINLINE HRESULT Folder3_get_Application(Folder3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT Folder3_get_Parent(Folder3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT Folder3_get_ParentFolder(Folder3* This,Folder **ppsf) {
+    return This->lpVtbl->get_ParentFolder(This,ppsf);
+}
+static FORCEINLINE HRESULT Folder3_Items(Folder3* This,FolderItems **ppid) {
+    return This->lpVtbl->Items(This,ppid);
+}
+static FORCEINLINE HRESULT Folder3_ParseName(Folder3* This,BSTR bName,FolderItem **ppid) {
+    return This->lpVtbl->ParseName(This,bName,ppid);
+}
+static FORCEINLINE HRESULT Folder3_NewFolder(Folder3* This,BSTR bName,VARIANT vOptions) {
+    return This->lpVtbl->NewFolder(This,bName,vOptions);
+}
+static FORCEINLINE HRESULT Folder3_MoveHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
+    return This->lpVtbl->MoveHere(This,vItem,vOptions);
+}
+static FORCEINLINE HRESULT Folder3_CopyHere(Folder3* This,VARIANT vItem,VARIANT vOptions) {
+    return This->lpVtbl->CopyHere(This,vItem,vOptions);
+}
+static FORCEINLINE HRESULT Folder3_GetDetailsOf(Folder3* This,VARIANT vItem,int iColumn,BSTR *pbs) {
+    return This->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs);
+}
+/*** Folder2 methods ***/
+static FORCEINLINE HRESULT Folder3_get_Self(Folder3* This,FolderItem **ppfi) {
+    return This->lpVtbl->get_Self(This,ppfi);
+}
+static FORCEINLINE HRESULT Folder3_get_OfflineStatus(Folder3* This,LONG *pul) {
+    return This->lpVtbl->get_OfflineStatus(This,pul);
+}
+static FORCEINLINE HRESULT Folder3_Synchronize(Folder3* This) {
+    return This->lpVtbl->Synchronize(This);
+}
+static FORCEINLINE HRESULT Folder3_get_HaveToShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbHaveToShowWebViewBarricade) {
+    return This->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade);
+}
+static FORCEINLINE HRESULT Folder3_DismissedWebViewBarricade(Folder3* This) {
+    return This->lpVtbl->DismissedWebViewBarricade(This);
+}
+/*** Folder3 methods ***/
+static FORCEINLINE HRESULT Folder3_get_ShowWebViewBarricade(Folder3* This,VARIANT_BOOL *pbShowWebViewBarricade) {
+    return This->lpVtbl->get_ShowWebViewBarricade(This,pbShowWebViewBarricade);
+}
+static FORCEINLINE HRESULT Folder3_put_ShowWebViewBarricade(Folder3* This,VARIANT_BOOL bShowWebViewBarricade) {
+    return This->lpVtbl->put_ShowWebViewBarricade(This,bShowWebViewBarricade);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE Folder3_get_ShowWebViewBarricade_Proxy(
+    Folder3* This,
+    VARIANT_BOOL *pbShowWebViewBarricade);
+void __RPC_STUB Folder3_get_ShowWebViewBarricade_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE Folder3_put_ShowWebViewBarricade_Proxy(
+    Folder3* This,
+    VARIANT_BOOL bShowWebViewBarricade);
+void __RPC_STUB Folder3_put_ShowWebViewBarricade_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __Folder3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * FolderItem interface
+ */
 #ifndef __FolderItem_INTERFACE_DEFINED__
 #define __FolderItem_INTERFACE_DEFINED__
-  typedef FolderItem *LPFOLDERITEM;
 
-  EXTERN_C const IID IID_FolderItem;
+typedef FolderItem *LPFOLDERITEM;
+DEFINE_GUID(IID_FolderItem, 0xfac32c80, 0xcbe4, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct FolderItem : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Application(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Parent(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI put_Name(BSTR bs) = 0;
-    virtual HRESULT WINAPI get_Path(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI get_GetLink(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_GetFolder(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_IsLink(VARIANT_BOOL *pb) = 0;
-    virtual HRESULT WINAPI get_IsFolder(VARIANT_BOOL *pb) = 0;
-    virtual HRESULT WINAPI get_IsFileSystem(VARIANT_BOOL *pb) = 0;
-    virtual HRESULT WINAPI get_IsBrowsable(VARIANT_BOOL *pb) = 0;
-    virtual HRESULT WINAPI get_ModifyDate(DATE *pdt) = 0;
-    virtual HRESULT WINAPI put_ModifyDate(DATE dt) = 0;
-    virtual HRESULT WINAPI get_Size(LONG *pul) = 0;
-    virtual HRESULT WINAPI get_Type(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI Verbs(FolderItemVerbs **ppfic) = 0;
-    virtual HRESULT WINAPI InvokeVerb(VARIANT vVerb) = 0;
-  };
+MIDL_INTERFACE("fac32c80-cbe4-11ce-8350-444553540000")
+FolderItem : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Name(
+        BSTR bs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Path(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_GetLink(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_GetFolder(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsLink(
+        VARIANT_BOOL *pb) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsFolder(
+        VARIANT_BOOL *pb) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsFileSystem(
+        VARIANT_BOOL *pb) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsBrowsable(
+        VARIANT_BOOL *pb) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ModifyDate(
+        DATE *pdt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ModifyDate(
+        DATE dt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Size(
+        LONG *pul) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Type(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Verbs(
+        FolderItemVerbs **ppfic) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InvokeVerb(
+        VARIANT vVerb) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FolderItem, 0xfac32c80, 0xcbe4, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
+#endif
 #else
-  typedef struct FolderItemVtbl {
+typedef struct FolderItemVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(FolderItem *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(FolderItem *This);
-      ULONG (WINAPI *Release)(FolderItem *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(FolderItem *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(FolderItem *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(FolderItem *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(FolderItem *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(FolderItem *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(FolderItem *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Name)(FolderItem *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Name)(FolderItem *This,BSTR bs);
-      HRESULT (WINAPI *get_Path)(FolderItem *This,BSTR *pbs);
-      HRESULT (WINAPI *get_GetLink)(FolderItem *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_GetFolder)(FolderItem *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_IsLink)(FolderItem *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_IsFolder)(FolderItem *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_IsFileSystem)(FolderItem *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_IsBrowsable)(FolderItem *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_ModifyDate)(FolderItem *This,DATE *pdt);
-      HRESULT (WINAPI *put_ModifyDate)(FolderItem *This,DATE dt);
-      HRESULT (WINAPI *get_Size)(FolderItem *This,LONG *pul);
-      HRESULT (WINAPI *get_Type)(FolderItem *This,BSTR *pbs);
-      HRESULT (WINAPI *Verbs)(FolderItem *This,FolderItemVerbs **ppfic);
-      HRESULT (WINAPI *InvokeVerb)(FolderItem *This,VARIANT vVerb);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        FolderItem* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        FolderItem* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        FolderItem* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        FolderItem* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        FolderItem* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        FolderItem* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        FolderItem* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** FolderItem methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        FolderItem* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        FolderItem* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        FolderItem* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Name)(
+        FolderItem* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Path)(
+        FolderItem* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_GetLink)(
+        FolderItem* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_GetFolder)(
+        FolderItem* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsLink)(
+        FolderItem* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsFolder)(
+        FolderItem* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsFileSystem)(
+        FolderItem* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsBrowsable)(
+        FolderItem* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_ModifyDate)(
+        FolderItem* This,
+        DATE *pdt);
+
+    HRESULT (STDMETHODCALLTYPE *put_ModifyDate)(
+        FolderItem* This,
+        DATE dt);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        FolderItem* This,
+        LONG *pul);
+
+    HRESULT (STDMETHODCALLTYPE *get_Type)(
+        FolderItem* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *Verbs)(
+        FolderItem* This,
+        FolderItemVerbs **ppfic);
+
+    HRESULT (STDMETHODCALLTYPE *InvokeVerb)(
+        FolderItem* This,
+        VARIANT vVerb);
+
     END_INTERFACE
-  } FolderItemVtbl;
-  struct FolderItem {
-    CONST_VTBL struct FolderItemVtbl *lpVtbl;
-  };
+} FolderItemVtbl;
+interface FolderItem {
+    CONST_VTBL FolderItemVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define FolderItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define FolderItem_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define FolderItem_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define FolderItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define FolderItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define FolderItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define FolderItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** FolderItem methods ***/
 #define FolderItem_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define FolderItem_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define FolderItem_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
@@ -609,504 +1803,393 @@
 #define FolderItem_get_Type(This,pbs) (This)->lpVtbl->get_Type(This,pbs)
 #define FolderItem_Verbs(This,ppfic) (This)->lpVtbl->Verbs(This,ppfic)
 #define FolderItem_InvokeVerb(This,vVerb) (This)->lpVtbl->InvokeVerb(This,vVerb)
-#endif
-#endif
-  HRESULT WINAPI FolderItem_get_Application_Proxy(FolderItem *This,IDispatch **ppid);
-  void __RPC_STUB FolderItem_get_Application_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_Parent_Proxy(FolderItem *This,IDispatch **ppid);
-  void __RPC_STUB FolderItem_get_Parent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_Name_Proxy(FolderItem *This,BSTR *pbs);
-  void __RPC_STUB FolderItem_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_put_Name_Proxy(FolderItem *This,BSTR bs);
-  void __RPC_STUB FolderItem_put_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_Path_Proxy(FolderItem *This,BSTR *pbs);
-  void __RPC_STUB FolderItem_get_Path_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_GetLink_Proxy(FolderItem *This,IDispatch **ppid);
-  void __RPC_STUB FolderItem_get_GetLink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_GetFolder_Proxy(FolderItem *This,IDispatch **ppid);
-  void __RPC_STUB FolderItem_get_GetFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_IsLink_Proxy(FolderItem *This,VARIANT_BOOL *pb);
-  void __RPC_STUB FolderItem_get_IsLink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_IsFolder_Proxy(FolderItem *This,VARIANT_BOOL *pb);
-  void __RPC_STUB FolderItem_get_IsFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_IsFileSystem_Proxy(FolderItem *This,VARIANT_BOOL *pb);
-  void __RPC_STUB FolderItem_get_IsFileSystem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_IsBrowsable_Proxy(FolderItem *This,VARIANT_BOOL *pb);
-  void __RPC_STUB FolderItem_get_IsBrowsable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_ModifyDate_Proxy(FolderItem *This,DATE *pdt);
-  void __RPC_STUB FolderItem_get_ModifyDate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_put_ModifyDate_Proxy(FolderItem *This,DATE dt);
-  void __RPC_STUB FolderItem_put_ModifyDate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_Size_Proxy(FolderItem *This,LONG *pul);
-  void __RPC_STUB FolderItem_get_Size_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_get_Type_Proxy(FolderItem *This,BSTR *pbs);
-  void __RPC_STUB FolderItem_get_Type_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_Verbs_Proxy(FolderItem *This,FolderItemVerbs **ppfic);
-  void __RPC_STUB FolderItem_Verbs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem_InvokeVerb_Proxy(FolderItem *This,VARIANT vVerb);
-  void __RPC_STUB FolderItem_InvokeVerb_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __FolderItems_INTERFACE_DEFINED__
-#define __FolderItems_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_FolderItems;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct FolderItems : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Count(__LONG32 *plCount) = 0;
-    virtual HRESULT WINAPI get_Application(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Parent(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI Item(VARIANT index,FolderItem **ppid) = 0;
-    virtual HRESULT WINAPI _NewEnum(IUnknown **ppunk) = 0;
-  };
 #else
-  typedef struct FolderItemsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(FolderItems *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(FolderItems *This);
-      ULONG (WINAPI *Release)(FolderItems *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(FolderItems *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(FolderItems *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(FolderItems *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(FolderItems *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Count)(FolderItems *This,__LONG32 *plCount);
-      HRESULT (WINAPI *get_Application)(FolderItems *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(FolderItems *This,IDispatch **ppid);
-      HRESULT (WINAPI *Item)(FolderItems *This,VARIANT index,FolderItem **ppid);
-      HRESULT (WINAPI *_NewEnum)(FolderItems *This,IUnknown **ppunk);
-    END_INTERFACE
-  } FolderItemsVtbl;
-  struct FolderItems {
-    CONST_VTBL struct FolderItemsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define FolderItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define FolderItems_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define FolderItems_Release(This) (This)->lpVtbl->Release(This)
-#define FolderItems_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define FolderItems_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define FolderItems_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define FolderItems_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define FolderItems_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
-#define FolderItems_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
-#define FolderItems_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
-#define FolderItems_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
-#define FolderItems__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT FolderItem_QueryInterface(FolderItem* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG FolderItem_AddRef(FolderItem* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG FolderItem_Release(FolderItem* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT FolderItem_GetTypeInfoCount(FolderItem* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT FolderItem_GetTypeInfo(FolderItem* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT FolderItem_GetIDsOfNames(FolderItem* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT FolderItem_Invoke(FolderItem* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** FolderItem methods ***/
+static FORCEINLINE HRESULT FolderItem_get_Application(FolderItem* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem_get_Parent(FolderItem* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem_get_Name(FolderItem* This,BSTR *pbs) {
+    return This->lpVtbl->get_Name(This,pbs);
+}
+static FORCEINLINE HRESULT FolderItem_put_Name(FolderItem* This,BSTR bs) {
+    return This->lpVtbl->put_Name(This,bs);
+}
+static FORCEINLINE HRESULT FolderItem_get_Path(FolderItem* This,BSTR *pbs) {
+    return This->lpVtbl->get_Path(This,pbs);
+}
+static FORCEINLINE HRESULT FolderItem_get_GetLink(FolderItem* This,IDispatch **ppid) {
+    return This->lpVtbl->get_GetLink(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem_get_GetFolder(FolderItem* This,IDispatch **ppid) {
+    return This->lpVtbl->get_GetFolder(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem_get_IsLink(FolderItem* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsLink(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem_get_IsFolder(FolderItem* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsFolder(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem_get_IsFileSystem(FolderItem* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsFileSystem(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem_get_IsBrowsable(FolderItem* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsBrowsable(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem_get_ModifyDate(FolderItem* This,DATE *pdt) {
+    return This->lpVtbl->get_ModifyDate(This,pdt);
+}
+static FORCEINLINE HRESULT FolderItem_put_ModifyDate(FolderItem* This,DATE dt) {
+    return This->lpVtbl->put_ModifyDate(This,dt);
+}
+static FORCEINLINE HRESULT FolderItem_get_Size(FolderItem* This,LONG *pul) {
+    return This->lpVtbl->get_Size(This,pul);
+}
+static FORCEINLINE HRESULT FolderItem_get_Type(FolderItem* This,BSTR *pbs) {
+    return This->lpVtbl->get_Type(This,pbs);
+}
+static FORCEINLINE HRESULT FolderItem_Verbs(FolderItem* This,FolderItemVerbs **ppfic) {
+    return This->lpVtbl->Verbs(This,ppfic);
+}
+static FORCEINLINE HRESULT FolderItem_InvokeVerb(FolderItem* This,VARIANT vVerb) {
+    return This->lpVtbl->InvokeVerb(This,vVerb);
+}
 #endif
 #endif
-  HRESULT WINAPI FolderItems_get_Count_Proxy(FolderItems *This,__LONG32 *plCount);
-  void __RPC_STUB FolderItems_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItems_get_Application_Proxy(FolderItems *This,IDispatch **ppid);
-  void __RPC_STUB FolderItems_get_Application_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItems_get_Parent_Proxy(FolderItems *This,IDispatch **ppid);
-  void __RPC_STUB FolderItems_get_Parent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItems_Item_Proxy(FolderItems *This,VARIANT index,FolderItem **ppid);
-  void __RPC_STUB FolderItems_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItems__NewEnum_Proxy(FolderItems *This,IUnknown **ppunk);
-  void __RPC_STUB FolderItems__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-#ifndef __FolderItemVerb_INTERFACE_DEFINED__
-#define __FolderItemVerb_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_FolderItemVerb;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct FolderItemVerb : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Application(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Parent(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Name(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI DoIt(void) = 0;
-  };
-#else
-  typedef struct FolderItemVerbVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(FolderItemVerb *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(FolderItemVerb *This);
-      ULONG (WINAPI *Release)(FolderItemVerb *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(FolderItemVerb *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(FolderItemVerb *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(FolderItemVerb *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(FolderItemVerb *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(FolderItemVerb *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(FolderItemVerb *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Name)(FolderItemVerb *This,BSTR *pbs);
-      HRESULT (WINAPI *DoIt)(FolderItemVerb *This);
-    END_INTERFACE
-  } FolderItemVerbVtbl;
-  struct FolderItemVerb {
-    CONST_VTBL struct FolderItemVerbVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define FolderItemVerb_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define FolderItemVerb_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define FolderItemVerb_Release(This) (This)->lpVtbl->Release(This)
-#define FolderItemVerb_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define FolderItemVerb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define FolderItemVerb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define FolderItemVerb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define FolderItemVerb_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
-#define FolderItemVerb_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
-#define FolderItemVerb_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
-#define FolderItemVerb_DoIt(This) (This)->lpVtbl->DoIt(This)
-#endif
-#endif
-  HRESULT WINAPI FolderItemVerb_get_Application_Proxy(FolderItemVerb *This,IDispatch **ppid);
-  void __RPC_STUB FolderItemVerb_get_Application_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItemVerb_get_Parent_Proxy(FolderItemVerb *This,IDispatch **ppid);
-  void __RPC_STUB FolderItemVerb_get_Parent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItemVerb_get_Name_Proxy(FolderItemVerb *This,BSTR *pbs);
-  void __RPC_STUB FolderItemVerb_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItemVerb_DoIt_Proxy(FolderItemVerb *This);
-  void __RPC_STUB FolderItemVerb_DoIt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-#ifndef __FolderItemVerbs_INTERFACE_DEFINED__
-#define __FolderItemVerbs_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_FolderItemVerbs;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct FolderItemVerbs : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Count(__LONG32 *plCount) = 0;
-    virtual HRESULT WINAPI get_Application(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Parent(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI Item(VARIANT index,FolderItemVerb **ppid) = 0;
-    virtual HRESULT WINAPI _NewEnum(IUnknown **ppunk) = 0;
-  };
-#else
-  typedef struct FolderItemVerbsVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(FolderItemVerbs *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(FolderItemVerbs *This);
-      ULONG (WINAPI *Release)(FolderItemVerbs *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(FolderItemVerbs *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(FolderItemVerbs *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(FolderItemVerbs *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(FolderItemVerbs *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Count)(FolderItemVerbs *This,__LONG32 *plCount);
-      HRESULT (WINAPI *get_Application)(FolderItemVerbs *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(FolderItemVerbs *This,IDispatch **ppid);
-      HRESULT (WINAPI *Item)(FolderItemVerbs *This,VARIANT index,FolderItemVerb **ppid);
-      HRESULT (WINAPI *_NewEnum)(FolderItemVerbs *This,IUnknown **ppunk);
-    END_INTERFACE
-  } FolderItemVerbsVtbl;
-  struct FolderItemVerbs {
-    CONST_VTBL struct FolderItemVerbsVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define FolderItemVerbs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define FolderItemVerbs_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define FolderItemVerbs_Release(This) (This)->lpVtbl->Release(This)
-#define FolderItemVerbs_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define FolderItemVerbs_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define FolderItemVerbs_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define FolderItemVerbs_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define FolderItemVerbs_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
-#define FolderItemVerbs_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
-#define FolderItemVerbs_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
-#define FolderItemVerbs_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
-#define FolderItemVerbs__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
-#endif
-#endif
-  HRESULT WINAPI FolderItemVerbs_get_Count_Proxy(FolderItemVerbs *This,__LONG32 *plCount);
-  void __RPC_STUB FolderItemVerbs_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItemVerbs_get_Application_Proxy(FolderItemVerbs *This,IDispatch **ppid);
-  void __RPC_STUB FolderItemVerbs_get_Application_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItemVerbs_get_Parent_Proxy(FolderItemVerbs *This,IDispatch **ppid);
-  void __RPC_STUB FolderItemVerbs_get_Parent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItemVerbs_Item_Proxy(FolderItemVerbs *This,VARIANT index,FolderItemVerb **ppid);
-  void __RPC_STUB FolderItemVerbs_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItemVerbs__NewEnum_Proxy(FolderItemVerbs *This,IUnknown **ppunk);
-  void __RPC_STUB FolderItemVerbs__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
+HRESULT STDMETHODCALLTYPE FolderItem_get_Application_Proxy(
+    FolderItem* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItem_get_Application_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_Parent_Proxy(
+    FolderItem* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItem_get_Parent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_Name_Proxy(
+    FolderItem* This,
+    BSTR *pbs);
+void __RPC_STUB FolderItem_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_put_Name_Proxy(
+    FolderItem* This,
+    BSTR bs);
+void __RPC_STUB FolderItem_put_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_Path_Proxy(
+    FolderItem* This,
+    BSTR *pbs);
+void __RPC_STUB FolderItem_get_Path_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_GetLink_Proxy(
+    FolderItem* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItem_get_GetLink_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_GetFolder_Proxy(
+    FolderItem* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItem_get_GetFolder_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_IsLink_Proxy(
+    FolderItem* This,
+    VARIANT_BOOL *pb);
+void __RPC_STUB FolderItem_get_IsLink_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_IsFolder_Proxy(
+    FolderItem* This,
+    VARIANT_BOOL *pb);
+void __RPC_STUB FolderItem_get_IsFolder_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_IsFileSystem_Proxy(
+    FolderItem* This,
+    VARIANT_BOOL *pb);
+void __RPC_STUB FolderItem_get_IsFileSystem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_IsBrowsable_Proxy(
+    FolderItem* This,
+    VARIANT_BOOL *pb);
+void __RPC_STUB FolderItem_get_IsBrowsable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_ModifyDate_Proxy(
+    FolderItem* This,
+    DATE *pdt);
+void __RPC_STUB FolderItem_get_ModifyDate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_put_ModifyDate_Proxy(
+    FolderItem* This,
+    DATE dt);
+void __RPC_STUB FolderItem_put_ModifyDate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_Size_Proxy(
+    FolderItem* This,
+    LONG *pul);
+void __RPC_STUB FolderItem_get_Size_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_get_Type_Proxy(
+    FolderItem* This,
+    BSTR *pbs);
+void __RPC_STUB FolderItem_get_Type_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_Verbs_Proxy(
+    FolderItem* This,
+    FolderItemVerbs **ppfic);
+void __RPC_STUB FolderItem_Verbs_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem_InvokeVerb_Proxy(
+    FolderItem* This,
+    VARIANT vVerb);
+void __RPC_STUB FolderItem_InvokeVerb_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
 
-#ifndef __Folder_INTERFACE_DEFINED__
-#define __Folder_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_Folder;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct Folder : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Title(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI get_Application(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Parent(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_ParentFolder(Folder **ppsf) = 0;
-    virtual HRESULT WINAPI Items(FolderItems **ppid) = 0;
-    virtual HRESULT WINAPI ParseName(BSTR bName,FolderItem **ppid) = 0;
-    virtual HRESULT WINAPI NewFolder(BSTR bName,VARIANT vOptions) = 0;
-    virtual HRESULT WINAPI MoveHere(VARIANT vItem,VARIANT vOptions) = 0;
-    virtual HRESULT WINAPI CopyHere(VARIANT vItem,VARIANT vOptions) = 0;
-    virtual HRESULT WINAPI GetDetailsOf(VARIANT vItem,int iColumn,BSTR *pbs) = 0;
-  };
-#else
-  typedef struct FolderVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(Folder *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(Folder *This);
-      ULONG (WINAPI *Release)(Folder *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(Folder *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(Folder *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(Folder *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(Folder *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Title)(Folder *This,BSTR *pbs);
-      HRESULT (WINAPI *get_Application)(Folder *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(Folder *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_ParentFolder)(Folder *This,Folder **ppsf);
-      HRESULT (WINAPI *Items)(Folder *This,FolderItems **ppid);
-      HRESULT (WINAPI *ParseName)(Folder *This,BSTR bName,FolderItem **ppid);
-      HRESULT (WINAPI *NewFolder)(Folder *This,BSTR bName,VARIANT vOptions);
-      HRESULT (WINAPI *MoveHere)(Folder *This,VARIANT vItem,VARIANT vOptions);
-      HRESULT (WINAPI *CopyHere)(Folder *This,VARIANT vItem,VARIANT vOptions);
-      HRESULT (WINAPI *GetDetailsOf)(Folder *This,VARIANT vItem,int iColumn,BSTR *pbs);
-    END_INTERFACE
-  } FolderVtbl;
-  struct Folder {
-    CONST_VTBL struct FolderVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define Folder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define Folder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define Folder_Release(This) (This)->lpVtbl->Release(This)
-#define Folder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define Folder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define Folder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define Folder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define Folder_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
-#define Folder_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
-#define Folder_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
-#define Folder_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
-#define Folder_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
-#define Folder_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
-#define Folder_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
-#define Folder_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
-#define Folder_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
-#define Folder_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
-#endif
-#endif
-  HRESULT WINAPI Folder_get_Title_Proxy(Folder *This,BSTR *pbs);
-  void __RPC_STUB Folder_get_Title_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_get_Application_Proxy(Folder *This,IDispatch **ppid);
-  void __RPC_STUB Folder_get_Application_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_get_Parent_Proxy(Folder *This,IDispatch **ppid);
-  void __RPC_STUB Folder_get_Parent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_get_ParentFolder_Proxy(Folder *This,Folder **ppsf);
-  void __RPC_STUB Folder_get_ParentFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_Items_Proxy(Folder *This,FolderItems **ppid);
-  void __RPC_STUB Folder_Items_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_ParseName_Proxy(Folder *This,BSTR bName,FolderItem **ppid);
-  void __RPC_STUB Folder_ParseName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_NewFolder_Proxy(Folder *This,BSTR bName,VARIANT vOptions);
-  void __RPC_STUB Folder_NewFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_MoveHere_Proxy(Folder *This,VARIANT vItem,VARIANT vOptions);
-  void __RPC_STUB Folder_MoveHere_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_CopyHere_Proxy(Folder *This,VARIANT vItem,VARIANT vOptions);
-  void __RPC_STUB Folder_CopyHere_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder_GetDetailsOf_Proxy(Folder *This,VARIANT vItem,int iColumn,BSTR *pbs);
-  void __RPC_STUB Folder_GetDetailsOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
+#endif  /* __FolderItem_INTERFACE_DEFINED__ */
 
-#ifndef __Folder2_INTERFACE_DEFINED__
-#define __Folder2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_Folder2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct Folder2 : public Folder {
-  public:
-    virtual HRESULT WINAPI get_Self(FolderItem **ppfi) = 0;
-    virtual HRESULT WINAPI get_OfflineStatus(LONG *pul) = 0;
-    virtual HRESULT WINAPI Synchronize(void) = 0;
-    virtual HRESULT WINAPI get_HaveToShowWebViewBarricade(VARIANT_BOOL *pbHaveToShowWebViewBarricade) = 0;
-    virtual HRESULT WINAPI DismissedWebViewBarricade(void) = 0;
-  };
-#else
-  typedef struct Folder2Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(Folder2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(Folder2 *This);
-      ULONG (WINAPI *Release)(Folder2 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(Folder2 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(Folder2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(Folder2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(Folder2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Title)(Folder2 *This,BSTR *pbs);
-      HRESULT (WINAPI *get_Application)(Folder2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(Folder2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_ParentFolder)(Folder2 *This,Folder **ppsf);
-      HRESULT (WINAPI *Items)(Folder2 *This,FolderItems **ppid);
-      HRESULT (WINAPI *ParseName)(Folder2 *This,BSTR bName,FolderItem **ppid);
-      HRESULT (WINAPI *NewFolder)(Folder2 *This,BSTR bName,VARIANT vOptions);
-      HRESULT (WINAPI *MoveHere)(Folder2 *This,VARIANT vItem,VARIANT vOptions);
-      HRESULT (WINAPI *CopyHere)(Folder2 *This,VARIANT vItem,VARIANT vOptions);
-      HRESULT (WINAPI *GetDetailsOf)(Folder2 *This,VARIANT vItem,int iColumn,BSTR *pbs);
-      HRESULT (WINAPI *get_Self)(Folder2 *This,FolderItem **ppfi);
-      HRESULT (WINAPI *get_OfflineStatus)(Folder2 *This,LONG *pul);
-      HRESULT (WINAPI *Synchronize)(Folder2 *This);
-      HRESULT (WINAPI *get_HaveToShowWebViewBarricade)(Folder2 *This,VARIANT_BOOL *pbHaveToShowWebViewBarricade);
-      HRESULT (WINAPI *DismissedWebViewBarricade)(Folder2 *This);
-    END_INTERFACE
-  } Folder2Vtbl;
-  struct Folder2 {
-    CONST_VTBL struct Folder2Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define Folder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define Folder2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define Folder2_Release(This) (This)->lpVtbl->Release(This)
-#define Folder2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define Folder2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define Folder2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define Folder2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define Folder2_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
-#define Folder2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
-#define Folder2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
-#define Folder2_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
-#define Folder2_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
-#define Folder2_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
-#define Folder2_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
-#define Folder2_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
-#define Folder2_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
-#define Folder2_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
-#define Folder2_get_Self(This,ppfi) (This)->lpVtbl->get_Self(This,ppfi)
-#define Folder2_get_OfflineStatus(This,pul) (This)->lpVtbl->get_OfflineStatus(This,pul)
-#define Folder2_Synchronize(This) (This)->lpVtbl->Synchronize(This)
-#define Folder2_get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade) (This)->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
-#define Folder2_DismissedWebViewBarricade(This) (This)->lpVtbl->DismissedWebViewBarricade(This)
-#endif
-#endif
-  HRESULT WINAPI Folder2_get_Self_Proxy(Folder2 *This,FolderItem **ppfi);
-  void __RPC_STUB Folder2_get_Self_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder2_get_OfflineStatus_Proxy(Folder2 *This,LONG *pul);
-  void __RPC_STUB Folder2_get_OfflineStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder2_Synchronize_Proxy(Folder2 *This);
-  void __RPC_STUB Folder2_Synchronize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder2_get_HaveToShowWebViewBarricade_Proxy(Folder2 *This,VARIANT_BOOL *pbHaveToShowWebViewBarricade);
-  void __RPC_STUB Folder2_get_HaveToShowWebViewBarricade_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder2_DismissedWebViewBarricade_Proxy(Folder2 *This);
-  void __RPC_STUB Folder2_DismissedWebViewBarricade_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __Folder3_INTERFACE_DEFINED__
-#define __Folder3_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_Folder3;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct Folder3 : public Folder2 {
-  public:
-    virtual HRESULT WINAPI get_ShowWebViewBarricade(VARIANT_BOOL *pbShowWebViewBarricade) = 0;
-    virtual HRESULT WINAPI put_ShowWebViewBarricade(VARIANT_BOOL bShowWebViewBarricade) = 0;
-  };
-#else
-  typedef struct Folder3Vtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(Folder3 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(Folder3 *This);
-      ULONG (WINAPI *Release)(Folder3 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(Folder3 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(Folder3 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(Folder3 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(Folder3 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Title)(Folder3 *This,BSTR *pbs);
-      HRESULT (WINAPI *get_Application)(Folder3 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(Folder3 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_ParentFolder)(Folder3 *This,Folder **ppsf);
-      HRESULT (WINAPI *Items)(Folder3 *This,FolderItems **ppid);
-      HRESULT (WINAPI *ParseName)(Folder3 *This,BSTR bName,FolderItem **ppid);
-      HRESULT (WINAPI *NewFolder)(Folder3 *This,BSTR bName,VARIANT vOptions);
-      HRESULT (WINAPI *MoveHere)(Folder3 *This,VARIANT vItem,VARIANT vOptions);
-      HRESULT (WINAPI *CopyHere)(Folder3 *This,VARIANT vItem,VARIANT vOptions);
-      HRESULT (WINAPI *GetDetailsOf)(Folder3 *This,VARIANT vItem,int iColumn,BSTR *pbs);
-      HRESULT (WINAPI *get_Self)(Folder3 *This,FolderItem **ppfi);
-      HRESULT (WINAPI *get_OfflineStatus)(Folder3 *This,LONG *pul);
-      HRESULT (WINAPI *Synchronize)(Folder3 *This);
-      HRESULT (WINAPI *get_HaveToShowWebViewBarricade)(Folder3 *This,VARIANT_BOOL *pbHaveToShowWebViewBarricade);
-      HRESULT (WINAPI *DismissedWebViewBarricade)(Folder3 *This);
-      HRESULT (WINAPI *get_ShowWebViewBarricade)(Folder3 *This,VARIANT_BOOL *pbShowWebViewBarricade);
-      HRESULT (WINAPI *put_ShowWebViewBarricade)(Folder3 *This,VARIANT_BOOL bShowWebViewBarricade);
-    END_INTERFACE
-  } Folder3Vtbl;
-  struct Folder3 {
-    CONST_VTBL struct Folder3Vtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define Folder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define Folder3_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define Folder3_Release(This) (This)->lpVtbl->Release(This)
-#define Folder3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define Folder3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define Folder3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define Folder3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define Folder3_get_Title(This,pbs) (This)->lpVtbl->get_Title(This,pbs)
-#define Folder3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
-#define Folder3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
-#define Folder3_get_ParentFolder(This,ppsf) (This)->lpVtbl->get_ParentFolder(This,ppsf)
-#define Folder3_Items(This,ppid) (This)->lpVtbl->Items(This,ppid)
-#define Folder3_ParseName(This,bName,ppid) (This)->lpVtbl->ParseName(This,bName,ppid)
-#define Folder3_NewFolder(This,bName,vOptions) (This)->lpVtbl->NewFolder(This,bName,vOptions)
-#define Folder3_MoveHere(This,vItem,vOptions) (This)->lpVtbl->MoveHere(This,vItem,vOptions)
-#define Folder3_CopyHere(This,vItem,vOptions) (This)->lpVtbl->CopyHere(This,vItem,vOptions)
-#define Folder3_GetDetailsOf(This,vItem,iColumn,pbs) (This)->lpVtbl->GetDetailsOf(This,vItem,iColumn,pbs)
-#define Folder3_get_Self(This,ppfi) (This)->lpVtbl->get_Self(This,ppfi)
-#define Folder3_get_OfflineStatus(This,pul) (This)->lpVtbl->get_OfflineStatus(This,pul)
-#define Folder3_Synchronize(This) (This)->lpVtbl->Synchronize(This)
-#define Folder3_get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade) (This)->lpVtbl->get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
-#define Folder3_DismissedWebViewBarricade(This) (This)->lpVtbl->DismissedWebViewBarricade(This)
-#define Folder3_get_ShowWebViewBarricade(This,pbShowWebViewBarricade) (This)->lpVtbl->get_ShowWebViewBarricade(This,pbShowWebViewBarricade)
-#define Folder3_put_ShowWebViewBarricade(This,bShowWebViewBarricade) (This)->lpVtbl->put_ShowWebViewBarricade(This,bShowWebViewBarricade)
-#endif
-#endif
-  HRESULT WINAPI Folder3_get_ShowWebViewBarricade_Proxy(Folder3 *This,VARIANT_BOOL *pbShowWebViewBarricade);
-  void __RPC_STUB Folder3_get_ShowWebViewBarricade_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI Folder3_put_ShowWebViewBarricade_Proxy(Folder3 *This,VARIANT_BOOL bShowWebViewBarricade);
-  void __RPC_STUB Folder3_put_ShowWebViewBarricade_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
+/*****************************************************************************
+ * FolderItem2 interface
+ */
 #ifndef __FolderItem2_INTERFACE_DEFINED__
 #define __FolderItem2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_FolderItem2;
+
+DEFINE_GUID(IID_FolderItem2, 0xedc817aa, 0x92b8, 0x11d1, 0xb0,0x75, 0x00,0xc0,0x4f,0xc3,0x3a,0xa5);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct FolderItem2 : public FolderItem {
-  public:
-    virtual HRESULT WINAPI InvokeVerbEx(VARIANT vVerb,VARIANT vArgs) = 0;
-    virtual HRESULT WINAPI ExtendedProperty(BSTR bstrPropName,VARIANT *pvRet) = 0;
-  };
+MIDL_INTERFACE("edc817aa-92b8-11d1-b075-00c04fc33aa5")
+FolderItem2 : public FolderItem
+{
+    virtual HRESULT STDMETHODCALLTYPE InvokeVerbEx(
+        VARIANT vVerb,
+        VARIANT vArgs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExtendedProperty(
+        BSTR bstrPropName,
+        VARIANT *pvRet) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FolderItem2, 0xedc817aa, 0x92b8, 0x11d1, 0xb0,0x75, 0x00,0xc0,0x4f,0xc3,0x3a,0xa5)
+#endif
 #else
-  typedef struct FolderItem2Vtbl {
+typedef struct FolderItem2Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(FolderItem2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(FolderItem2 *This);
-      ULONG (WINAPI *Release)(FolderItem2 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(FolderItem2 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(FolderItem2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(FolderItem2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(FolderItem2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(FolderItem2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(FolderItem2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Name)(FolderItem2 *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Name)(FolderItem2 *This,BSTR bs);
-      HRESULT (WINAPI *get_Path)(FolderItem2 *This,BSTR *pbs);
-      HRESULT (WINAPI *get_GetLink)(FolderItem2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_GetFolder)(FolderItem2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_IsLink)(FolderItem2 *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_IsFolder)(FolderItem2 *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_IsFileSystem)(FolderItem2 *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_IsBrowsable)(FolderItem2 *This,VARIANT_BOOL *pb);
-      HRESULT (WINAPI *get_ModifyDate)(FolderItem2 *This,DATE *pdt);
-      HRESULT (WINAPI *put_ModifyDate)(FolderItem2 *This,DATE dt);
-      HRESULT (WINAPI *get_Size)(FolderItem2 *This,LONG *pul);
-      HRESULT (WINAPI *get_Type)(FolderItem2 *This,BSTR *pbs);
-      HRESULT (WINAPI *Verbs)(FolderItem2 *This,FolderItemVerbs **ppfic);
-      HRESULT (WINAPI *InvokeVerb)(FolderItem2 *This,VARIANT vVerb);
-      HRESULT (WINAPI *InvokeVerbEx)(FolderItem2 *This,VARIANT vVerb,VARIANT vArgs);
-      HRESULT (WINAPI *ExtendedProperty)(FolderItem2 *This,BSTR bstrPropName,VARIANT *pvRet);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        FolderItem2* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        FolderItem2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        FolderItem2* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        FolderItem2* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        FolderItem2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        FolderItem2* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        FolderItem2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** FolderItem methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        FolderItem2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        FolderItem2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        FolderItem2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Name)(
+        FolderItem2* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Path)(
+        FolderItem2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_GetLink)(
+        FolderItem2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_GetFolder)(
+        FolderItem2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsLink)(
+        FolderItem2* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsFolder)(
+        FolderItem2* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsFileSystem)(
+        FolderItem2* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsBrowsable)(
+        FolderItem2* This,
+        VARIANT_BOOL *pb);
+
+    HRESULT (STDMETHODCALLTYPE *get_ModifyDate)(
+        FolderItem2* This,
+        DATE *pdt);
+
+    HRESULT (STDMETHODCALLTYPE *put_ModifyDate)(
+        FolderItem2* This,
+        DATE dt);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        FolderItem2* This,
+        LONG *pul);
+
+    HRESULT (STDMETHODCALLTYPE *get_Type)(
+        FolderItem2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *Verbs)(
+        FolderItem2* This,
+        FolderItemVerbs **ppfic);
+
+    HRESULT (STDMETHODCALLTYPE *InvokeVerb)(
+        FolderItem2* This,
+        VARIANT vVerb);
+
+    /*** FolderItem2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *InvokeVerbEx)(
+        FolderItem2* This,
+        VARIANT vVerb,
+        VARIANT vArgs);
+
+    HRESULT (STDMETHODCALLTYPE *ExtendedProperty)(
+        FolderItem2* This,
+        BSTR bstrPropName,
+        VARIANT *pvRet);
+
     END_INTERFACE
-  } FolderItem2Vtbl;
-  struct FolderItem2 {
-    CONST_VTBL struct FolderItem2Vtbl *lpVtbl;
-  };
+} FolderItem2Vtbl;
+interface FolderItem2 {
+    CONST_VTBL FolderItem2Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define FolderItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define FolderItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define FolderItem2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define FolderItem2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define FolderItem2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define FolderItem2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define FolderItem2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** FolderItem methods ***/
 #define FolderItem2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define FolderItem2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define FolderItem2_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
@@ -1124,188 +2207,1325 @@
 #define FolderItem2_get_Type(This,pbs) (This)->lpVtbl->get_Type(This,pbs)
 #define FolderItem2_Verbs(This,ppfic) (This)->lpVtbl->Verbs(This,ppfic)
 #define FolderItem2_InvokeVerb(This,vVerb) (This)->lpVtbl->InvokeVerb(This,vVerb)
+/*** FolderItem2 methods ***/
 #define FolderItem2_InvokeVerbEx(This,vVerb,vArgs) (This)->lpVtbl->InvokeVerbEx(This,vVerb,vArgs)
 #define FolderItem2_ExtendedProperty(This,bstrPropName,pvRet) (This)->lpVtbl->ExtendedProperty(This,bstrPropName,pvRet)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT FolderItem2_QueryInterface(FolderItem2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG FolderItem2_AddRef(FolderItem2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG FolderItem2_Release(FolderItem2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT FolderItem2_GetTypeInfoCount(FolderItem2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT FolderItem2_GetTypeInfo(FolderItem2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT FolderItem2_GetIDsOfNames(FolderItem2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT FolderItem2_Invoke(FolderItem2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** FolderItem methods ***/
+static FORCEINLINE HRESULT FolderItem2_get_Application(FolderItem2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem2_get_Parent(FolderItem2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem2_get_Name(FolderItem2* This,BSTR *pbs) {
+    return This->lpVtbl->get_Name(This,pbs);
+}
+static FORCEINLINE HRESULT FolderItem2_put_Name(FolderItem2* This,BSTR bs) {
+    return This->lpVtbl->put_Name(This,bs);
+}
+static FORCEINLINE HRESULT FolderItem2_get_Path(FolderItem2* This,BSTR *pbs) {
+    return This->lpVtbl->get_Path(This,pbs);
+}
+static FORCEINLINE HRESULT FolderItem2_get_GetLink(FolderItem2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_GetLink(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem2_get_GetFolder(FolderItem2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_GetFolder(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItem2_get_IsLink(FolderItem2* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsLink(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem2_get_IsFolder(FolderItem2* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsFolder(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem2_get_IsFileSystem(FolderItem2* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsFileSystem(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem2_get_IsBrowsable(FolderItem2* This,VARIANT_BOOL *pb) {
+    return This->lpVtbl->get_IsBrowsable(This,pb);
+}
+static FORCEINLINE HRESULT FolderItem2_get_ModifyDate(FolderItem2* This,DATE *pdt) {
+    return This->lpVtbl->get_ModifyDate(This,pdt);
+}
+static FORCEINLINE HRESULT FolderItem2_put_ModifyDate(FolderItem2* This,DATE dt) {
+    return This->lpVtbl->put_ModifyDate(This,dt);
+}
+static FORCEINLINE HRESULT FolderItem2_get_Size(FolderItem2* This,LONG *pul) {
+    return This->lpVtbl->get_Size(This,pul);
+}
+static FORCEINLINE HRESULT FolderItem2_get_Type(FolderItem2* This,BSTR *pbs) {
+    return This->lpVtbl->get_Type(This,pbs);
+}
+static FORCEINLINE HRESULT FolderItem2_Verbs(FolderItem2* This,FolderItemVerbs **ppfic) {
+    return This->lpVtbl->Verbs(This,ppfic);
+}
+static FORCEINLINE HRESULT FolderItem2_InvokeVerb(FolderItem2* This,VARIANT vVerb) {
+    return This->lpVtbl->InvokeVerb(This,vVerb);
+}
+/*** FolderItem2 methods ***/
+static FORCEINLINE HRESULT FolderItem2_InvokeVerbEx(FolderItem2* This,VARIANT vVerb,VARIANT vArgs) {
+    return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
+}
+static FORCEINLINE HRESULT FolderItem2_ExtendedProperty(FolderItem2* This,BSTR bstrPropName,VARIANT *pvRet) {
+    return This->lpVtbl->ExtendedProperty(This,bstrPropName,pvRet);
+}
 #endif
 #endif
-  HRESULT WINAPI FolderItem2_InvokeVerbEx_Proxy(FolderItem2 *This,VARIANT vVerb,VARIANT vArgs);
-  void __RPC_STUB FolderItem2_InvokeVerbEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItem2_ExtendedProperty_Proxy(FolderItem2 *This,BSTR bstrPropName,VARIANT *pvRet);
-  void __RPC_STUB FolderItem2_ExtendedProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  EXTERN_C const CLSID CLSID_ShellFolderItem;
+#endif
+
+HRESULT STDMETHODCALLTYPE FolderItem2_InvokeVerbEx_Proxy(
+    FolderItem2* This,
+    VARIANT vVerb,
+    VARIANT vArgs);
+void __RPC_STUB FolderItem2_InvokeVerbEx_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItem2_ExtendedProperty_Proxy(
+    FolderItem2* This,
+    BSTR bstrPropName,
+    VARIANT *pvRet);
+void __RPC_STUB FolderItem2_ExtendedProperty_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __FolderItem2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ShellFolderItem coclass
+ */
+
+DEFINE_GUID(CLSID_ShellFolderItem, 0x2fe352ea, 0xfd1f, 0x11d2, 0xb1,0xf4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
+
 #ifdef __cplusplus
-  class ShellFolderItem;
+class DECLSPEC_UUID("2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e") ShellFolderItem;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ShellFolderItem, 0x2fe352ea, 0xfd1f, 0x11d2, 0xb1,0xf4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
+#endif
 #endif
 
+/*****************************************************************************
+ * FolderItems interface
+ */
+#ifndef __FolderItems_INTERFACE_DEFINED__
+#define __FolderItems_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_FolderItems, 0x744129e0, 0xcbe5, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("744129e0-cbe5-11ce-8350-444553540000")
+FolderItems : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        VARIANT index,
+        FolderItem **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE _NewEnum(
+        IUnknown **ppunk) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FolderItems, 0x744129e0, 0xcbe5, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
+#endif
+#else
+typedef struct FolderItemsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        FolderItems* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        FolderItems* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        FolderItems* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        FolderItems* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        FolderItems* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        FolderItems* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        FolderItems* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** FolderItems methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        FolderItems* This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        FolderItems* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        FolderItems* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        FolderItems* This,
+        VARIANT index,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
+        FolderItems* This,
+        IUnknown **ppunk);
+
+    END_INTERFACE
+} FolderItemsVtbl;
+interface FolderItems {
+    CONST_VTBL FolderItemsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define FolderItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define FolderItems_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define FolderItems_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define FolderItems_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define FolderItems_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define FolderItems_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define FolderItems_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** FolderItems methods ***/
+#define FolderItems_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
+#define FolderItems_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define FolderItems_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define FolderItems_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
+#define FolderItems__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT FolderItems_QueryInterface(FolderItems* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG FolderItems_AddRef(FolderItems* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG FolderItems_Release(FolderItems* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT FolderItems_GetTypeInfoCount(FolderItems* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT FolderItems_GetTypeInfo(FolderItems* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT FolderItems_GetIDsOfNames(FolderItems* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT FolderItems_Invoke(FolderItems* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** FolderItems methods ***/
+static FORCEINLINE HRESULT FolderItems_get_Count(FolderItems* This,LONG *plCount) {
+    return This->lpVtbl->get_Count(This,plCount);
+}
+static FORCEINLINE HRESULT FolderItems_get_Application(FolderItems* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItems_get_Parent(FolderItems* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItems_Item(FolderItems* This,VARIANT index,FolderItem **ppid) {
+    return This->lpVtbl->Item(This,index,ppid);
+}
+static FORCEINLINE HRESULT FolderItems__NewEnum(FolderItems* This,IUnknown **ppunk) {
+    return This->lpVtbl->_NewEnum(This,ppunk);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE FolderItems_get_Count_Proxy(
+    FolderItems* This,
+    LONG *plCount);
+void __RPC_STUB FolderItems_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItems_get_Application_Proxy(
+    FolderItems* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItems_get_Application_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItems_get_Parent_Proxy(
+    FolderItems* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItems_get_Parent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItems_Item_Proxy(
+    FolderItems* This,
+    VARIANT index,
+    FolderItem **ppid);
+void __RPC_STUB FolderItems_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItems__NewEnum_Proxy(
+    FolderItems* This,
+    IUnknown **ppunk);
+void __RPC_STUB FolderItems__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __FolderItems_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * FolderItems2 interface
+ */
 #ifndef __FolderItems2_INTERFACE_DEFINED__
 #define __FolderItems2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_FolderItems2;
+
+DEFINE_GUID(IID_FolderItems2, 0xc94f0ad0, 0xf363, 0x11d2, 0xa3,0x27, 0x00,0xc0,0x4f,0x8e,0xec,0x7f);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct FolderItems2 : public FolderItems {
-  public:
-    virtual HRESULT WINAPI InvokeVerbEx(VARIANT vVerb,VARIANT vArgs) = 0;
-  };
+MIDL_INTERFACE("c94f0ad0-f363-11d2-a327-00c04f8eec7f")
+FolderItems2 : public FolderItems
+{
+    virtual HRESULT STDMETHODCALLTYPE InvokeVerbEx(
+        VARIANT vVerb,
+        VARIANT vArgs) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FolderItems2, 0xc94f0ad0, 0xf363, 0x11d2, 0xa3,0x27, 0x00,0xc0,0x4f,0x8e,0xec,0x7f)
+#endif
 #else
-  typedef struct FolderItems2Vtbl {
+typedef struct FolderItems2Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(FolderItems2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(FolderItems2 *This);
-      ULONG (WINAPI *Release)(FolderItems2 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(FolderItems2 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(FolderItems2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(FolderItems2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(FolderItems2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Count)(FolderItems2 *This,__LONG32 *plCount);
-      HRESULT (WINAPI *get_Application)(FolderItems2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(FolderItems2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *Item)(FolderItems2 *This,VARIANT index,FolderItem **ppid);
-      HRESULT (WINAPI *_NewEnum)(FolderItems2 *This,IUnknown **ppunk);
-      HRESULT (WINAPI *InvokeVerbEx)(FolderItems2 *This,VARIANT vVerb,VARIANT vArgs);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        FolderItems2* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        FolderItems2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        FolderItems2* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        FolderItems2* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        FolderItems2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        FolderItems2* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        FolderItems2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** FolderItems methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        FolderItems2* This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        FolderItems2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        FolderItems2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        FolderItems2* This,
+        VARIANT index,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
+        FolderItems2* This,
+        IUnknown **ppunk);
+
+    /*** FolderItems2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *InvokeVerbEx)(
+        FolderItems2* This,
+        VARIANT vVerb,
+        VARIANT vArgs);
+
     END_INTERFACE
-  } FolderItems2Vtbl;
-  struct FolderItems2 {
-    CONST_VTBL struct FolderItems2Vtbl *lpVtbl;
-  };
+} FolderItems2Vtbl;
+interface FolderItems2 {
+    CONST_VTBL FolderItems2Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define FolderItems2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define FolderItems2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define FolderItems2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define FolderItems2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define FolderItems2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define FolderItems2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define FolderItems2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** FolderItems methods ***/
 #define FolderItems2_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
 #define FolderItems2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define FolderItems2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define FolderItems2_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
 #define FolderItems2__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
+/*** FolderItems2 methods ***/
 #define FolderItems2_InvokeVerbEx(This,vVerb,vArgs) (This)->lpVtbl->InvokeVerbEx(This,vVerb,vArgs)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT FolderItems2_QueryInterface(FolderItems2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG FolderItems2_AddRef(FolderItems2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG FolderItems2_Release(FolderItems2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT FolderItems2_GetTypeInfoCount(FolderItems2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT FolderItems2_GetTypeInfo(FolderItems2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT FolderItems2_GetIDsOfNames(FolderItems2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT FolderItems2_Invoke(FolderItems2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** FolderItems methods ***/
+static FORCEINLINE HRESULT FolderItems2_get_Count(FolderItems2* This,LONG *plCount) {
+    return This->lpVtbl->get_Count(This,plCount);
+}
+static FORCEINLINE HRESULT FolderItems2_get_Application(FolderItems2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItems2_get_Parent(FolderItems2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItems2_Item(FolderItems2* This,VARIANT index,FolderItem **ppid) {
+    return This->lpVtbl->Item(This,index,ppid);
+}
+static FORCEINLINE HRESULT FolderItems2__NewEnum(FolderItems2* This,IUnknown **ppunk) {
+    return This->lpVtbl->_NewEnum(This,ppunk);
+}
+/*** FolderItems2 methods ***/
+static FORCEINLINE HRESULT FolderItems2_InvokeVerbEx(FolderItems2* This,VARIANT vVerb,VARIANT vArgs) {
+    return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
+}
 #endif
 #endif
-  HRESULT WINAPI FolderItems2_InvokeVerbEx_Proxy(FolderItems2 *This,VARIANT vVerb,VARIANT vArgs);
-  void __RPC_STUB FolderItems2_InvokeVerbEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE FolderItems2_InvokeVerbEx_Proxy(
+    FolderItems2* This,
+    VARIANT vVerb,
+    VARIANT vArgs);
+void __RPC_STUB FolderItems2_InvokeVerbEx_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __FolderItems2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * FolderItems3 interface
+ */
 #ifndef __FolderItems3_INTERFACE_DEFINED__
 #define __FolderItems3_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_FolderItems3;
+
+DEFINE_GUID(IID_FolderItems3, 0xeaa7c309, 0xbbec, 0x49d5, 0x82,0x1d, 0x64,0xd9,0x66,0xcb,0x66,0x7f);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct FolderItems3 : public FolderItems2 {
-  public:
-    virtual HRESULT WINAPI Filter(__LONG32 grfFlags,BSTR bstrFileSpec) = 0;
-    virtual HRESULT WINAPI get_Verbs(FolderItemVerbs **ppfic) = 0;
-  };
+MIDL_INTERFACE("eaa7c309-bbec-49d5-821d-64d966cb667f")
+FolderItems3 : public FolderItems2
+{
+    virtual HRESULT STDMETHODCALLTYPE Filter(
+        LONG grfFlags,
+        BSTR bstrFileSpec) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Verbs(
+        FolderItemVerbs **ppfic) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FolderItems3, 0xeaa7c309, 0xbbec, 0x49d5, 0x82,0x1d, 0x64,0xd9,0x66,0xcb,0x66,0x7f)
+#endif
 #else
-  typedef struct FolderItems3Vtbl {
+typedef struct FolderItems3Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(FolderItems3 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(FolderItems3 *This);
-      ULONG (WINAPI *Release)(FolderItems3 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(FolderItems3 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(FolderItems3 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(FolderItems3 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(FolderItems3 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Count)(FolderItems3 *This,__LONG32 *plCount);
-      HRESULT (WINAPI *get_Application)(FolderItems3 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(FolderItems3 *This,IDispatch **ppid);
-      HRESULT (WINAPI *Item)(FolderItems3 *This,VARIANT index,FolderItem **ppid);
-      HRESULT (WINAPI *_NewEnum)(FolderItems3 *This,IUnknown **ppunk);
-      HRESULT (WINAPI *InvokeVerbEx)(FolderItems3 *This,VARIANT vVerb,VARIANT vArgs);
-      HRESULT (WINAPI *Filter)(FolderItems3 *This,__LONG32 grfFlags,BSTR bstrFileSpec);
-      HRESULT (WINAPI *get_Verbs)(FolderItems3 *This,FolderItemVerbs **ppfic);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        FolderItems3* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        FolderItems3* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        FolderItems3* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        FolderItems3* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        FolderItems3* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        FolderItems3* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        FolderItems3* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** FolderItems methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        FolderItems3* This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        FolderItems3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        FolderItems3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        FolderItems3* This,
+        VARIANT index,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
+        FolderItems3* This,
+        IUnknown **ppunk);
+
+    /*** FolderItems2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *InvokeVerbEx)(
+        FolderItems3* This,
+        VARIANT vVerb,
+        VARIANT vArgs);
+
+    /*** FolderItems3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *Filter)(
+        FolderItems3* This,
+        LONG grfFlags,
+        BSTR bstrFileSpec);
+
+    HRESULT (STDMETHODCALLTYPE *get_Verbs)(
+        FolderItems3* This,
+        FolderItemVerbs **ppfic);
+
     END_INTERFACE
-  } FolderItems3Vtbl;
-  struct FolderItems3 {
-    CONST_VTBL struct FolderItems3Vtbl *lpVtbl;
-  };
+} FolderItems3Vtbl;
+interface FolderItems3 {
+    CONST_VTBL FolderItems3Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define FolderItems3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define FolderItems3_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define FolderItems3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define FolderItems3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define FolderItems3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define FolderItems3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define FolderItems3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** FolderItems methods ***/
 #define FolderItems3_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
 #define FolderItems3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define FolderItems3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define FolderItems3_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
 #define FolderItems3__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
+/*** FolderItems2 methods ***/
 #define FolderItems3_InvokeVerbEx(This,vVerb,vArgs) (This)->lpVtbl->InvokeVerbEx(This,vVerb,vArgs)
+/*** FolderItems3 methods ***/
 #define FolderItems3_Filter(This,grfFlags,bstrFileSpec) (This)->lpVtbl->Filter(This,grfFlags,bstrFileSpec)
 #define FolderItems3_get_Verbs(This,ppfic) (This)->lpVtbl->get_Verbs(This,ppfic)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT FolderItems3_QueryInterface(FolderItems3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG FolderItems3_AddRef(FolderItems3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG FolderItems3_Release(FolderItems3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT FolderItems3_GetTypeInfoCount(FolderItems3* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT FolderItems3_GetTypeInfo(FolderItems3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT FolderItems3_GetIDsOfNames(FolderItems3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT FolderItems3_Invoke(FolderItems3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** FolderItems methods ***/
+static FORCEINLINE HRESULT FolderItems3_get_Count(FolderItems3* This,LONG *plCount) {
+    return This->lpVtbl->get_Count(This,plCount);
+}
+static FORCEINLINE HRESULT FolderItems3_get_Application(FolderItems3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItems3_get_Parent(FolderItems3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItems3_Item(FolderItems3* This,VARIANT index,FolderItem **ppid) {
+    return This->lpVtbl->Item(This,index,ppid);
+}
+static FORCEINLINE HRESULT FolderItems3__NewEnum(FolderItems3* This,IUnknown **ppunk) {
+    return This->lpVtbl->_NewEnum(This,ppunk);
+}
+/*** FolderItems2 methods ***/
+static FORCEINLINE HRESULT FolderItems3_InvokeVerbEx(FolderItems3* This,VARIANT vVerb,VARIANT vArgs) {
+    return This->lpVtbl->InvokeVerbEx(This,vVerb,vArgs);
+}
+/*** FolderItems3 methods ***/
+static FORCEINLINE HRESULT FolderItems3_Filter(FolderItems3* This,LONG grfFlags,BSTR bstrFileSpec) {
+    return This->lpVtbl->Filter(This,grfFlags,bstrFileSpec);
+}
+static FORCEINLINE HRESULT FolderItems3_get_Verbs(FolderItems3* This,FolderItemVerbs **ppfic) {
+    return This->lpVtbl->get_Verbs(This,ppfic);
+}
 #endif
 #endif
-  HRESULT WINAPI FolderItems3_Filter_Proxy(FolderItems3 *This,__LONG32 grfFlags,BSTR bstrFileSpec);
-  void __RPC_STUB FolderItems3_Filter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI FolderItems3_get_Verbs_Proxy(FolderItems3 *This,FolderItemVerbs **ppfic);
-  void __RPC_STUB FolderItems3_get_Verbs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE FolderItems3_Filter_Proxy(
+    FolderItems3* This,
+    LONG grfFlags,
+    BSTR bstrFileSpec);
+void __RPC_STUB FolderItems3_Filter_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItems3_get_Verbs_Proxy(
+    FolderItems3* This,
+    FolderItemVerbs **ppfic);
+void __RPC_STUB FolderItems3_get_Verbs_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __FolderItems3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * FolderItemVerb interface
+ */
+#ifndef __FolderItemVerb_INTERFACE_DEFINED__
+#define __FolderItemVerb_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_FolderItemVerb, 0x08ec3e00, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("08ec3e00-50b0-11cf-960c-0080c7f4ee85")
+FolderItemVerb : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DoIt(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FolderItemVerb, 0x08ec3e00, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85)
+#endif
+#else
+typedef struct FolderItemVerbVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        FolderItemVerb* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        FolderItemVerb* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        FolderItemVerb* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        FolderItemVerb* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        FolderItemVerb* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        FolderItemVerb* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        FolderItemVerb* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** FolderItemVerb methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        FolderItemVerb* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        FolderItemVerb* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        FolderItemVerb* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *DoIt)(
+        FolderItemVerb* This);
+
+    END_INTERFACE
+} FolderItemVerbVtbl;
+interface FolderItemVerb {
+    CONST_VTBL FolderItemVerbVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define FolderItemVerb_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define FolderItemVerb_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define FolderItemVerb_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define FolderItemVerb_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define FolderItemVerb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define FolderItemVerb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define FolderItemVerb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** FolderItemVerb methods ***/
+#define FolderItemVerb_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define FolderItemVerb_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define FolderItemVerb_get_Name(This,pbs) (This)->lpVtbl->get_Name(This,pbs)
+#define FolderItemVerb_DoIt(This) (This)->lpVtbl->DoIt(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT FolderItemVerb_QueryInterface(FolderItemVerb* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG FolderItemVerb_AddRef(FolderItemVerb* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG FolderItemVerb_Release(FolderItemVerb* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT FolderItemVerb_GetTypeInfoCount(FolderItemVerb* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT FolderItemVerb_GetTypeInfo(FolderItemVerb* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT FolderItemVerb_GetIDsOfNames(FolderItemVerb* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT FolderItemVerb_Invoke(FolderItemVerb* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** FolderItemVerb methods ***/
+static FORCEINLINE HRESULT FolderItemVerb_get_Application(FolderItemVerb* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItemVerb_get_Parent(FolderItemVerb* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItemVerb_get_Name(FolderItemVerb* This,BSTR *pbs) {
+    return This->lpVtbl->get_Name(This,pbs);
+}
+static FORCEINLINE HRESULT FolderItemVerb_DoIt(FolderItemVerb* This) {
+    return This->lpVtbl->DoIt(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Application_Proxy(
+    FolderItemVerb* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItemVerb_get_Application_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Parent_Proxy(
+    FolderItemVerb* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItemVerb_get_Parent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItemVerb_get_Name_Proxy(
+    FolderItemVerb* This,
+    BSTR *pbs);
+void __RPC_STUB FolderItemVerb_get_Name_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItemVerb_DoIt_Proxy(
+    FolderItemVerb* This);
+void __RPC_STUB FolderItemVerb_DoIt_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __FolderItemVerb_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * FolderItemVerbs interface
+ */
+#ifndef __FolderItemVerbs_INTERFACE_DEFINED__
+#define __FolderItemVerbs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_FolderItemVerbs, 0x1f8352c0, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1f8352c0-50b0-11cf-960c-0080c7f4ee85")
+FolderItemVerbs : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        VARIANT index,
+        FolderItemVerb **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE _NewEnum(
+        IUnknown **ppunk) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FolderItemVerbs, 0x1f8352c0, 0x50b0, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85)
+#endif
+#else
+typedef struct FolderItemVerbsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        FolderItemVerbs* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        FolderItemVerbs* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        FolderItemVerbs* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        FolderItemVerbs* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        FolderItemVerbs* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        FolderItemVerbs* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        FolderItemVerbs* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** FolderItemVerbs methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        FolderItemVerbs* This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        FolderItemVerbs* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        FolderItemVerbs* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        FolderItemVerbs* This,
+        VARIANT index,
+        FolderItemVerb **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
+        FolderItemVerbs* This,
+        IUnknown **ppunk);
+
+    END_INTERFACE
+} FolderItemVerbsVtbl;
+interface FolderItemVerbs {
+    CONST_VTBL FolderItemVerbsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define FolderItemVerbs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define FolderItemVerbs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define FolderItemVerbs_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define FolderItemVerbs_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define FolderItemVerbs_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define FolderItemVerbs_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define FolderItemVerbs_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** FolderItemVerbs methods ***/
+#define FolderItemVerbs_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
+#define FolderItemVerbs_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define FolderItemVerbs_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define FolderItemVerbs_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
+#define FolderItemVerbs__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT FolderItemVerbs_QueryInterface(FolderItemVerbs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG FolderItemVerbs_AddRef(FolderItemVerbs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG FolderItemVerbs_Release(FolderItemVerbs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT FolderItemVerbs_GetTypeInfoCount(FolderItemVerbs* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT FolderItemVerbs_GetTypeInfo(FolderItemVerbs* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT FolderItemVerbs_GetIDsOfNames(FolderItemVerbs* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT FolderItemVerbs_Invoke(FolderItemVerbs* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** FolderItemVerbs methods ***/
+static FORCEINLINE HRESULT FolderItemVerbs_get_Count(FolderItemVerbs* This,LONG *plCount) {
+    return This->lpVtbl->get_Count(This,plCount);
+}
+static FORCEINLINE HRESULT FolderItemVerbs_get_Application(FolderItemVerbs* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItemVerbs_get_Parent(FolderItemVerbs* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT FolderItemVerbs_Item(FolderItemVerbs* This,VARIANT index,FolderItemVerb **ppid) {
+    return This->lpVtbl->Item(This,index,ppid);
+}
+static FORCEINLINE HRESULT FolderItemVerbs__NewEnum(FolderItemVerbs* This,IUnknown **ppunk) {
+    return This->lpVtbl->_NewEnum(This,ppunk);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Count_Proxy(
+    FolderItemVerbs* This,
+    LONG *plCount);
+void __RPC_STUB FolderItemVerbs_get_Count_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Application_Proxy(
+    FolderItemVerbs* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItemVerbs_get_Application_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItemVerbs_get_Parent_Proxy(
+    FolderItemVerbs* This,
+    IDispatch **ppid);
+void __RPC_STUB FolderItemVerbs_get_Parent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItemVerbs_Item_Proxy(
+    FolderItemVerbs* This,
+    VARIANT index,
+    FolderItemVerb **ppid);
+void __RPC_STUB FolderItemVerbs_Item_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE FolderItemVerbs__NewEnum_Proxy(
+    FolderItemVerbs* This,
+    IUnknown **ppunk);
+void __RPC_STUB FolderItemVerbs__NewEnum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __FolderItemVerbs_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellLinkDual interface
+ */
 #ifndef __IShellLinkDual_INTERFACE_DEFINED__
 #define __IShellLinkDual_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellLinkDual;
+
+DEFINE_GUID(IID_IShellLinkDual, 0x88a05c00, 0xf000, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellLinkDual : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Path(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI put_Path(BSTR bs) = 0;
-    virtual HRESULT WINAPI get_Description(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI put_Description(BSTR bs) = 0;
-    virtual HRESULT WINAPI get_WorkingDirectory(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI put_WorkingDirectory(BSTR bs) = 0;
-    virtual HRESULT WINAPI get_Arguments(BSTR *pbs) = 0;
-    virtual HRESULT WINAPI put_Arguments(BSTR bs) = 0;
-    virtual HRESULT WINAPI get_Hotkey(int *piHK) = 0;
-    virtual HRESULT WINAPI put_Hotkey(int iHK) = 0;
-    virtual HRESULT WINAPI get_ShowCommand(int *piShowCommand) = 0;
-    virtual HRESULT WINAPI put_ShowCommand(int iShowCommand) = 0;
-    virtual HRESULT WINAPI Resolve(int fFlags) = 0;
-    virtual HRESULT WINAPI GetIconLocation(BSTR *pbs,int *piIcon) = 0;
-    virtual HRESULT WINAPI SetIconLocation(BSTR bs,int iIcon) = 0;
-    virtual HRESULT WINAPI Save(VARIANT vWhere) = 0;
-  };
+MIDL_INTERFACE("88a05c00-f000-11ce-8350-444553540000")
+IShellLinkDual : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Path(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Path(
+        BSTR bs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Description(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Description(
+        BSTR bs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_WorkingDirectory(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_WorkingDirectory(
+        BSTR bs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Arguments(
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Arguments(
+        BSTR bs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Hotkey(
+        int *piHK) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Hotkey(
+        int iHK) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ShowCommand(
+        int *piShowCommand) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ShowCommand(
+        int iShowCommand) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Resolve(
+        int fFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
+        BSTR *pbs,
+        int *piIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
+        BSTR bs,
+        int iIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Save(
+        VARIANT vWhere) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellLinkDual, 0x88a05c00, 0xf000, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
+#endif
 #else
-  typedef struct IShellLinkDualVtbl {
+typedef struct IShellLinkDualVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellLinkDual *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellLinkDual *This);
-      ULONG (WINAPI *Release)(IShellLinkDual *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellLinkDual *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellLinkDual *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellLinkDual *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellLinkDual *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Path)(IShellLinkDual *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Path)(IShellLinkDual *This,BSTR bs);
-      HRESULT (WINAPI *get_Description)(IShellLinkDual *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Description)(IShellLinkDual *This,BSTR bs);
-      HRESULT (WINAPI *get_WorkingDirectory)(IShellLinkDual *This,BSTR *pbs);
-      HRESULT (WINAPI *put_WorkingDirectory)(IShellLinkDual *This,BSTR bs);
-      HRESULT (WINAPI *get_Arguments)(IShellLinkDual *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Arguments)(IShellLinkDual *This,BSTR bs);
-      HRESULT (WINAPI *get_Hotkey)(IShellLinkDual *This,int *piHK);
-      HRESULT (WINAPI *put_Hotkey)(IShellLinkDual *This,int iHK);
-      HRESULT (WINAPI *get_ShowCommand)(IShellLinkDual *This,int *piShowCommand);
-      HRESULT (WINAPI *put_ShowCommand)(IShellLinkDual *This,int iShowCommand);
-      HRESULT (WINAPI *Resolve)(IShellLinkDual *This,int fFlags);
-      HRESULT (WINAPI *GetIconLocation)(IShellLinkDual *This,BSTR *pbs,int *piIcon);
-      HRESULT (WINAPI *SetIconLocation)(IShellLinkDual *This,BSTR bs,int iIcon);
-      HRESULT (WINAPI *Save)(IShellLinkDual *This,VARIANT vWhere);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellLinkDual* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellLinkDual* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellLinkDual* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellLinkDual* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellLinkDual* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellLinkDual* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellLinkDual* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellLinkDual methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Path)(
+        IShellLinkDual* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Path)(
+        IShellLinkDual* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        IShellLinkDual* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Description)(
+        IShellLinkDual* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_WorkingDirectory)(
+        IShellLinkDual* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_WorkingDirectory)(
+        IShellLinkDual* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Arguments)(
+        IShellLinkDual* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Arguments)(
+        IShellLinkDual* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Hotkey)(
+        IShellLinkDual* This,
+        int *piHK);
+
+    HRESULT (STDMETHODCALLTYPE *put_Hotkey)(
+        IShellLinkDual* This,
+        int iHK);
+
+    HRESULT (STDMETHODCALLTYPE *get_ShowCommand)(
+        IShellLinkDual* This,
+        int *piShowCommand);
+
+    HRESULT (STDMETHODCALLTYPE *put_ShowCommand)(
+        IShellLinkDual* This,
+        int iShowCommand);
+
+    HRESULT (STDMETHODCALLTYPE *Resolve)(
+        IShellLinkDual* This,
+        int fFlags);
+
+    HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
+        IShellLinkDual* This,
+        BSTR *pbs,
+        int *piIcon);
+
+    HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
+        IShellLinkDual* This,
+        BSTR bs,
+        int iIcon);
+
+    HRESULT (STDMETHODCALLTYPE *Save)(
+        IShellLinkDual* This,
+        VARIANT vWhere);
+
     END_INTERFACE
-  } IShellLinkDualVtbl;
-  struct IShellLinkDual {
-    CONST_VTBL struct IShellLinkDualVtbl *lpVtbl;
-  };
+} IShellLinkDualVtbl;
+interface IShellLinkDual {
+    CONST_VTBL IShellLinkDualVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellLinkDual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellLinkDual_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellLinkDual_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellLinkDual_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellLinkDual_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellLinkDual_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellLinkDual_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellLinkDual methods ***/
 #define IShellLinkDual_get_Path(This,pbs) (This)->lpVtbl->get_Path(This,pbs)
 #define IShellLinkDual_put_Path(This,bs) (This)->lpVtbl->put_Path(This,bs)
 #define IShellLinkDual_get_Description(This,pbs) (This)->lpVtbl->get_Description(This,pbs)
@@ -1322,90 +3542,371 @@
 #define IShellLinkDual_GetIconLocation(This,pbs,piIcon) (This)->lpVtbl->GetIconLocation(This,pbs,piIcon)
 #define IShellLinkDual_SetIconLocation(This,bs,iIcon) (This)->lpVtbl->SetIconLocation(This,bs,iIcon)
 #define IShellLinkDual_Save(This,vWhere) (This)->lpVtbl->Save(This,vWhere)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellLinkDual_QueryInterface(IShellLinkDual* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellLinkDual_AddRef(IShellLinkDual* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellLinkDual_Release(IShellLinkDual* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellLinkDual_GetTypeInfoCount(IShellLinkDual* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellLinkDual_GetTypeInfo(IShellLinkDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellLinkDual_GetIDsOfNames(IShellLinkDual* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellLinkDual_Invoke(IShellLinkDual* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellLinkDual methods ***/
+static FORCEINLINE HRESULT IShellLinkDual_get_Path(IShellLinkDual* This,BSTR *pbs) {
+    return This->lpVtbl->get_Path(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_put_Path(IShellLinkDual* This,BSTR bs) {
+    return This->lpVtbl->put_Path(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_get_Description(IShellLinkDual* This,BSTR *pbs) {
+    return This->lpVtbl->get_Description(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_put_Description(IShellLinkDual* This,BSTR bs) {
+    return This->lpVtbl->put_Description(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_get_WorkingDirectory(IShellLinkDual* This,BSTR *pbs) {
+    return This->lpVtbl->get_WorkingDirectory(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_put_WorkingDirectory(IShellLinkDual* This,BSTR bs) {
+    return This->lpVtbl->put_WorkingDirectory(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_get_Arguments(IShellLinkDual* This,BSTR *pbs) {
+    return This->lpVtbl->get_Arguments(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_put_Arguments(IShellLinkDual* This,BSTR bs) {
+    return This->lpVtbl->put_Arguments(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual_get_Hotkey(IShellLinkDual* This,int *piHK) {
+    return This->lpVtbl->get_Hotkey(This,piHK);
+}
+static FORCEINLINE HRESULT IShellLinkDual_put_Hotkey(IShellLinkDual* This,int iHK) {
+    return This->lpVtbl->put_Hotkey(This,iHK);
+}
+static FORCEINLINE HRESULT IShellLinkDual_get_ShowCommand(IShellLinkDual* This,int *piShowCommand) {
+    return This->lpVtbl->get_ShowCommand(This,piShowCommand);
+}
+static FORCEINLINE HRESULT IShellLinkDual_put_ShowCommand(IShellLinkDual* This,int iShowCommand) {
+    return This->lpVtbl->put_ShowCommand(This,iShowCommand);
+}
+static FORCEINLINE HRESULT IShellLinkDual_Resolve(IShellLinkDual* This,int fFlags) {
+    return This->lpVtbl->Resolve(This,fFlags);
+}
+static FORCEINLINE HRESULT IShellLinkDual_GetIconLocation(IShellLinkDual* This,BSTR *pbs,int *piIcon) {
+    return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
+}
+static FORCEINLINE HRESULT IShellLinkDual_SetIconLocation(IShellLinkDual* This,BSTR bs,int iIcon) {
+    return This->lpVtbl->SetIconLocation(This,bs,iIcon);
+}
+static FORCEINLINE HRESULT IShellLinkDual_Save(IShellLinkDual* This,VARIANT vWhere) {
+    return This->lpVtbl->Save(This,vWhere);
+}
 #endif
 #endif
-  HRESULT WINAPI IShellLinkDual_get_Path_Proxy(IShellLinkDual *This,BSTR *pbs);
-  void __RPC_STUB IShellLinkDual_get_Path_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_put_Path_Proxy(IShellLinkDual *This,BSTR bs);
-  void __RPC_STUB IShellLinkDual_put_Path_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_get_Description_Proxy(IShellLinkDual *This,BSTR *pbs);
-  void __RPC_STUB IShellLinkDual_get_Description_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_put_Description_Proxy(IShellLinkDual *This,BSTR bs);
-  void __RPC_STUB IShellLinkDual_put_Description_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_get_WorkingDirectory_Proxy(IShellLinkDual *This,BSTR *pbs);
-  void __RPC_STUB IShellLinkDual_get_WorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_put_WorkingDirectory_Proxy(IShellLinkDual *This,BSTR bs);
-  void __RPC_STUB IShellLinkDual_put_WorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_get_Arguments_Proxy(IShellLinkDual *This,BSTR *pbs);
-  void __RPC_STUB IShellLinkDual_get_Arguments_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_put_Arguments_Proxy(IShellLinkDual *This,BSTR bs);
-  void __RPC_STUB IShellLinkDual_put_Arguments_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_get_Hotkey_Proxy(IShellLinkDual *This,int *piHK);
-  void __RPC_STUB IShellLinkDual_get_Hotkey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_put_Hotkey_Proxy(IShellLinkDual *This,int iHK);
-  void __RPC_STUB IShellLinkDual_put_Hotkey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_get_ShowCommand_Proxy(IShellLinkDual *This,int *piShowCommand);
-  void __RPC_STUB IShellLinkDual_get_ShowCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_put_ShowCommand_Proxy(IShellLinkDual *This,int iShowCommand);
-  void __RPC_STUB IShellLinkDual_put_ShowCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_Resolve_Proxy(IShellLinkDual *This,int fFlags);
-  void __RPC_STUB IShellLinkDual_Resolve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_GetIconLocation_Proxy(IShellLinkDual *This,BSTR *pbs,int *piIcon);
-  void __RPC_STUB IShellLinkDual_GetIconLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_SetIconLocation_Proxy(IShellLinkDual *This,BSTR bs,int iIcon);
-  void __RPC_STUB IShellLinkDual_SetIconLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellLinkDual_Save_Proxy(IShellLinkDual *This,VARIANT vWhere);
-  void __RPC_STUB IShellLinkDual_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Path_Proxy(
+    IShellLinkDual* This,
+    BSTR *pbs);
+void __RPC_STUB IShellLinkDual_get_Path_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Path_Proxy(
+    IShellLinkDual* This,
+    BSTR bs);
+void __RPC_STUB IShellLinkDual_put_Path_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Description_Proxy(
+    IShellLinkDual* This,
+    BSTR *pbs);
+void __RPC_STUB IShellLinkDual_get_Description_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Description_Proxy(
+    IShellLinkDual* This,
+    BSTR bs);
+void __RPC_STUB IShellLinkDual_put_Description_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_get_WorkingDirectory_Proxy(
+    IShellLinkDual* This,
+    BSTR *pbs);
+void __RPC_STUB IShellLinkDual_get_WorkingDirectory_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_put_WorkingDirectory_Proxy(
+    IShellLinkDual* This,
+    BSTR bs);
+void __RPC_STUB IShellLinkDual_put_WorkingDirectory_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Arguments_Proxy(
+    IShellLinkDual* This,
+    BSTR *pbs);
+void __RPC_STUB IShellLinkDual_get_Arguments_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Arguments_Proxy(
+    IShellLinkDual* This,
+    BSTR bs);
+void __RPC_STUB IShellLinkDual_put_Arguments_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Hotkey_Proxy(
+    IShellLinkDual* This,
+    int *piHK);
+void __RPC_STUB IShellLinkDual_get_Hotkey_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Hotkey_Proxy(
+    IShellLinkDual* This,
+    int iHK);
+void __RPC_STUB IShellLinkDual_put_Hotkey_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_get_ShowCommand_Proxy(
+    IShellLinkDual* This,
+    int *piShowCommand);
+void __RPC_STUB IShellLinkDual_get_ShowCommand_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_put_ShowCommand_Proxy(
+    IShellLinkDual* This,
+    int iShowCommand);
+void __RPC_STUB IShellLinkDual_put_ShowCommand_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_Resolve_Proxy(
+    IShellLinkDual* This,
+    int fFlags);
+void __RPC_STUB IShellLinkDual_Resolve_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_GetIconLocation_Proxy(
+    IShellLinkDual* This,
+    BSTR *pbs,
+    int *piIcon);
+void __RPC_STUB IShellLinkDual_GetIconLocation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_SetIconLocation_Proxy(
+    IShellLinkDual* This,
+    BSTR bs,
+    int iIcon);
+void __RPC_STUB IShellLinkDual_SetIconLocation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellLinkDual_Save_Proxy(
+    IShellLinkDual* This,
+    VARIANT vWhere);
+void __RPC_STUB IShellLinkDual_Save_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellLinkDual_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellLinkDual2 interface
+ */
 #ifndef __IShellLinkDual2_INTERFACE_DEFINED__
 #define __IShellLinkDual2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellLinkDual2;
+
+DEFINE_GUID(IID_IShellLinkDual2, 0x317ee249, 0xf12e, 0x11d2, 0xb1,0xe4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellLinkDual2 : public IShellLinkDual {
-  public:
-    virtual HRESULT WINAPI get_Target(FolderItem **ppfi) = 0;
-  };
+MIDL_INTERFACE("317ee249-f12e-11d2-b1e4-00c04f8eeb3e")
+IShellLinkDual2 : public IShellLinkDual
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Target(
+        FolderItem **ppfi) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellLinkDual2, 0x317ee249, 0xf12e, 0x11d2, 0xb1,0xe4, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
+#endif
 #else
-  typedef struct IShellLinkDual2Vtbl {
+typedef struct IShellLinkDual2Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellLinkDual2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellLinkDual2 *This);
-      ULONG (WINAPI *Release)(IShellLinkDual2 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellLinkDual2 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellLinkDual2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellLinkDual2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellLinkDual2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Path)(IShellLinkDual2 *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Path)(IShellLinkDual2 *This,BSTR bs);
-      HRESULT (WINAPI *get_Description)(IShellLinkDual2 *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Description)(IShellLinkDual2 *This,BSTR bs);
-      HRESULT (WINAPI *get_WorkingDirectory)(IShellLinkDual2 *This,BSTR *pbs);
-      HRESULT (WINAPI *put_WorkingDirectory)(IShellLinkDual2 *This,BSTR bs);
-      HRESULT (WINAPI *get_Arguments)(IShellLinkDual2 *This,BSTR *pbs);
-      HRESULT (WINAPI *put_Arguments)(IShellLinkDual2 *This,BSTR bs);
-      HRESULT (WINAPI *get_Hotkey)(IShellLinkDual2 *This,int *piHK);
-      HRESULT (WINAPI *put_Hotkey)(IShellLinkDual2 *This,int iHK);
-      HRESULT (WINAPI *get_ShowCommand)(IShellLinkDual2 *This,int *piShowCommand);
-      HRESULT (WINAPI *put_ShowCommand)(IShellLinkDual2 *This,int iShowCommand);
-      HRESULT (WINAPI *Resolve)(IShellLinkDual2 *This,int fFlags);
-      HRESULT (WINAPI *GetIconLocation)(IShellLinkDual2 *This,BSTR *pbs,int *piIcon);
-      HRESULT (WINAPI *SetIconLocation)(IShellLinkDual2 *This,BSTR bs,int iIcon);
-      HRESULT (WINAPI *Save)(IShellLinkDual2 *This,VARIANT vWhere);
-      HRESULT (WINAPI *get_Target)(IShellLinkDual2 *This,FolderItem **ppfi);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellLinkDual2* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellLinkDual2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellLinkDual2* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellLinkDual2* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellLinkDual2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellLinkDual2* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellLinkDual2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellLinkDual methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Path)(
+        IShellLinkDual2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Path)(
+        IShellLinkDual2* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        IShellLinkDual2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Description)(
+        IShellLinkDual2* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_WorkingDirectory)(
+        IShellLinkDual2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_WorkingDirectory)(
+        IShellLinkDual2* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Arguments)(
+        IShellLinkDual2* This,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *put_Arguments)(
+        IShellLinkDual2* This,
+        BSTR bs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Hotkey)(
+        IShellLinkDual2* This,
+        int *piHK);
+
+    HRESULT (STDMETHODCALLTYPE *put_Hotkey)(
+        IShellLinkDual2* This,
+        int iHK);
+
+    HRESULT (STDMETHODCALLTYPE *get_ShowCommand)(
+        IShellLinkDual2* This,
+        int *piShowCommand);
+
+    HRESULT (STDMETHODCALLTYPE *put_ShowCommand)(
+        IShellLinkDual2* This,
+        int iShowCommand);
+
+    HRESULT (STDMETHODCALLTYPE *Resolve)(
+        IShellLinkDual2* This,
+        int fFlags);
+
+    HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
+        IShellLinkDual2* This,
+        BSTR *pbs,
+        int *piIcon);
+
+    HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
+        IShellLinkDual2* This,
+        BSTR bs,
+        int iIcon);
+
+    HRESULT (STDMETHODCALLTYPE *Save)(
+        IShellLinkDual2* This,
+        VARIANT vWhere);
+
+    /*** IShellLinkDual2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Target)(
+        IShellLinkDual2* This,
+        FolderItem **ppfi);
+
     END_INTERFACE
-  } IShellLinkDual2Vtbl;
-  struct IShellLinkDual2 {
-    CONST_VTBL struct IShellLinkDual2Vtbl *lpVtbl;
-  };
+} IShellLinkDual2Vtbl;
+interface IShellLinkDual2 {
+    CONST_VTBL IShellLinkDual2Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellLinkDual2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellLinkDual2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellLinkDual2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellLinkDual2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellLinkDual2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellLinkDual2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellLinkDual2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellLinkDual methods ***/
 #define IShellLinkDual2_get_Path(This,pbs) (This)->lpVtbl->get_Path(This,pbs)
 #define IShellLinkDual2_put_Path(This,bs) (This)->lpVtbl->put_Path(This,bs)
 #define IShellLinkDual2_get_Description(This,pbs) (This)->lpVtbl->get_Description(This,pbs)
@@ -1422,66 +3923,265 @@
 #define IShellLinkDual2_GetIconLocation(This,pbs,piIcon) (This)->lpVtbl->GetIconLocation(This,pbs,piIcon)
 #define IShellLinkDual2_SetIconLocation(This,bs,iIcon) (This)->lpVtbl->SetIconLocation(This,bs,iIcon)
 #define IShellLinkDual2_Save(This,vWhere) (This)->lpVtbl->Save(This,vWhere)
+/*** IShellLinkDual2 methods ***/
 #define IShellLinkDual2_get_Target(This,ppfi) (This)->lpVtbl->get_Target(This,ppfi)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellLinkDual2_QueryInterface(IShellLinkDual2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellLinkDual2_AddRef(IShellLinkDual2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellLinkDual2_Release(IShellLinkDual2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellLinkDual2_GetTypeInfoCount(IShellLinkDual2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_GetTypeInfo(IShellLinkDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_GetIDsOfNames(IShellLinkDual2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_Invoke(IShellLinkDual2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellLinkDual methods ***/
+static FORCEINLINE HRESULT IShellLinkDual2_get_Path(IShellLinkDual2* This,BSTR *pbs) {
+    return This->lpVtbl->get_Path(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_put_Path(IShellLinkDual2* This,BSTR bs) {
+    return This->lpVtbl->put_Path(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_get_Description(IShellLinkDual2* This,BSTR *pbs) {
+    return This->lpVtbl->get_Description(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_put_Description(IShellLinkDual2* This,BSTR bs) {
+    return This->lpVtbl->put_Description(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_get_WorkingDirectory(IShellLinkDual2* This,BSTR *pbs) {
+    return This->lpVtbl->get_WorkingDirectory(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_put_WorkingDirectory(IShellLinkDual2* This,BSTR bs) {
+    return This->lpVtbl->put_WorkingDirectory(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_get_Arguments(IShellLinkDual2* This,BSTR *pbs) {
+    return This->lpVtbl->get_Arguments(This,pbs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_put_Arguments(IShellLinkDual2* This,BSTR bs) {
+    return This->lpVtbl->put_Arguments(This,bs);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_get_Hotkey(IShellLinkDual2* This,int *piHK) {
+    return This->lpVtbl->get_Hotkey(This,piHK);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_put_Hotkey(IShellLinkDual2* This,int iHK) {
+    return This->lpVtbl->put_Hotkey(This,iHK);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_get_ShowCommand(IShellLinkDual2* This,int *piShowCommand) {
+    return This->lpVtbl->get_ShowCommand(This,piShowCommand);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_put_ShowCommand(IShellLinkDual2* This,int iShowCommand) {
+    return This->lpVtbl->put_ShowCommand(This,iShowCommand);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_Resolve(IShellLinkDual2* This,int fFlags) {
+    return This->lpVtbl->Resolve(This,fFlags);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_GetIconLocation(IShellLinkDual2* This,BSTR *pbs,int *piIcon) {
+    return This->lpVtbl->GetIconLocation(This,pbs,piIcon);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_SetIconLocation(IShellLinkDual2* This,BSTR bs,int iIcon) {
+    return This->lpVtbl->SetIconLocation(This,bs,iIcon);
+}
+static FORCEINLINE HRESULT IShellLinkDual2_Save(IShellLinkDual2* This,VARIANT vWhere) {
+    return This->lpVtbl->Save(This,vWhere);
+}
+/*** IShellLinkDual2 methods ***/
+static FORCEINLINE HRESULT IShellLinkDual2_get_Target(IShellLinkDual2* This,FolderItem **ppfi) {
+    return This->lpVtbl->get_Target(This,ppfi);
+}
 #endif
 #endif
-  HRESULT WINAPI IShellLinkDual2_get_Target_Proxy(IShellLinkDual2 *This,FolderItem **ppfi);
-  void __RPC_STUB IShellLinkDual2_get_Target_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  EXTERN_C const CLSID CLSID_ShellLinkObject;
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellLinkDual2_get_Target_Proxy(
+    IShellLinkDual2* This,
+    FolderItem **ppfi);
+void __RPC_STUB IShellLinkDual2_get_Target_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellLinkDual2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ShellLinkObject coclass
+ */
+
+DEFINE_GUID(CLSID_ShellLinkObject, 0x11219420, 0x1768, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
+
 #ifdef __cplusplus
-  class ShellLinkObject;
+class DECLSPEC_UUID("11219420-1768-11d1-95be-00609797ea4f") ShellLinkObject;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ShellLinkObject, 0x11219420, 0x1768, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f)
+#endif
 #endif
 
+/*****************************************************************************
+ * IShellFolderViewDual interface
+ */
 #ifndef __IShellFolderViewDual_INTERFACE_DEFINED__
 #define __IShellFolderViewDual_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellFolderViewDual;
+
+DEFINE_GUID(IID_IShellFolderViewDual, 0xe7a1af80, 0x4d96, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellFolderViewDual : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Application(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Parent(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Folder(Folder **ppid) = 0;
-    virtual HRESULT WINAPI SelectedItems(FolderItems **ppid) = 0;
-    virtual HRESULT WINAPI get_FocusedItem(FolderItem **ppid) = 0;
-    virtual HRESULT WINAPI SelectItem(VARIANT *pvfi,int dwFlags) = 0;
-    virtual HRESULT WINAPI PopupItemMenu(FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs) = 0;
-    virtual HRESULT WINAPI get_Script(IDispatch **ppDisp) = 0;
-    virtual HRESULT WINAPI get_ViewOptions(__LONG32 *plViewOptions) = 0;
-  };
+MIDL_INTERFACE("e7a1af80-4d96-11cf-960c-0080c7f4ee85")
+IShellFolderViewDual : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Folder(
+        Folder **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectedItems(
+        FolderItems **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_FocusedItem(
+        FolderItem **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectItem(
+        VARIANT *pvfi,
+        int dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PopupItemMenu(
+        FolderItem *pfi,
+        VARIANT vx,
+        VARIANT vy,
+        BSTR *pbs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Script(
+        IDispatch **ppDisp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ViewOptions(
+        LONG *plViewOptions) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellFolderViewDual, 0xe7a1af80, 0x4d96, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85)
+#endif
 #else
-  typedef struct IShellFolderViewDualVtbl {
+typedef struct IShellFolderViewDualVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellFolderViewDual *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellFolderViewDual *This);
-      ULONG (WINAPI *Release)(IShellFolderViewDual *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellFolderViewDual *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellFolderViewDual *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellFolderViewDual *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellFolderViewDual *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(IShellFolderViewDual *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(IShellFolderViewDual *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Folder)(IShellFolderViewDual *This,Folder **ppid);
-      HRESULT (WINAPI *SelectedItems)(IShellFolderViewDual *This,FolderItems **ppid);
-      HRESULT (WINAPI *get_FocusedItem)(IShellFolderViewDual *This,FolderItem **ppid);
-      HRESULT (WINAPI *SelectItem)(IShellFolderViewDual *This,VARIANT *pvfi,int dwFlags);
-      HRESULT (WINAPI *PopupItemMenu)(IShellFolderViewDual *This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs);
-      HRESULT (WINAPI *get_Script)(IShellFolderViewDual *This,IDispatch **ppDisp);
-      HRESULT (WINAPI *get_ViewOptions)(IShellFolderViewDual *This,__LONG32 *plViewOptions);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellFolderViewDual* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellFolderViewDual* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellFolderViewDual* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellFolderViewDual* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellFolderViewDual* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellFolderViewDual* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellFolderViewDual* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellFolderViewDual methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellFolderViewDual* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellFolderViewDual* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Folder)(
+        IShellFolderViewDual* This,
+        Folder **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *SelectedItems)(
+        IShellFolderViewDual* This,
+        FolderItems **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_FocusedItem)(
+        IShellFolderViewDual* This,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *SelectItem)(
+        IShellFolderViewDual* This,
+        VARIANT *pvfi,
+        int dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *PopupItemMenu)(
+        IShellFolderViewDual* This,
+        FolderItem *pfi,
+        VARIANT vx,
+        VARIANT vy,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Script)(
+        IShellFolderViewDual* This,
+        IDispatch **ppDisp);
+
+    HRESULT (STDMETHODCALLTYPE *get_ViewOptions)(
+        IShellFolderViewDual* This,
+        LONG *plViewOptions);
+
     END_INTERFACE
-  } IShellFolderViewDualVtbl;
-  struct IShellFolderViewDual {
-    CONST_VTBL struct IShellFolderViewDualVtbl *lpVtbl;
-  };
+} IShellFolderViewDualVtbl;
+interface IShellFolderViewDual {
+    CONST_VTBL IShellFolderViewDualVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellFolderViewDual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellFolderViewDual_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellFolderViewDual_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellFolderViewDual_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellFolderViewDual_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellFolderViewDual_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellFolderViewDual_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellFolderViewDual methods ***/
 #define IShellFolderViewDual_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define IShellFolderViewDual_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define IShellFolderViewDual_get_Folder(This,ppid) (This)->lpVtbl->get_Folder(This,ppid)
@@ -1491,73 +4191,284 @@
 #define IShellFolderViewDual_PopupItemMenu(This,pfi,vx,vy,pbs) (This)->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs)
 #define IShellFolderViewDual_get_Script(This,ppDisp) (This)->lpVtbl->get_Script(This,ppDisp)
 #define IShellFolderViewDual_get_ViewOptions(This,plViewOptions) (This)->lpVtbl->get_ViewOptions(This,plViewOptions)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual_QueryInterface(IShellFolderViewDual* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellFolderViewDual_AddRef(IShellFolderViewDual* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellFolderViewDual_Release(IShellFolderViewDual* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual_GetTypeInfoCount(IShellFolderViewDual* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_GetTypeInfo(IShellFolderViewDual* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_GetIDsOfNames(IShellFolderViewDual* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_Invoke(IShellFolderViewDual* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellFolderViewDual methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual_get_Application(IShellFolderViewDual* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_get_Parent(IShellFolderViewDual* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_get_Folder(IShellFolderViewDual* This,Folder **ppid) {
+    return This->lpVtbl->get_Folder(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_SelectedItems(IShellFolderViewDual* This,FolderItems **ppid) {
+    return This->lpVtbl->SelectedItems(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_get_FocusedItem(IShellFolderViewDual* This,FolderItem **ppid) {
+    return This->lpVtbl->get_FocusedItem(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_SelectItem(IShellFolderViewDual* This,VARIANT *pvfi,int dwFlags) {
+    return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_PopupItemMenu(IShellFolderViewDual* This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs) {
+    return This->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_get_Script(IShellFolderViewDual* This,IDispatch **ppDisp) {
+    return This->lpVtbl->get_Script(This,ppDisp);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual_get_ViewOptions(IShellFolderViewDual* This,LONG *plViewOptions) {
+    return This->lpVtbl->get_ViewOptions(This,plViewOptions);
+}
 #endif
 #endif
-  HRESULT WINAPI IShellFolderViewDual_get_Application_Proxy(IShellFolderViewDual *This,IDispatch **ppid);
-  void __RPC_STUB IShellFolderViewDual_get_Application_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_get_Parent_Proxy(IShellFolderViewDual *This,IDispatch **ppid);
-  void __RPC_STUB IShellFolderViewDual_get_Parent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_get_Folder_Proxy(IShellFolderViewDual *This,Folder **ppid);
-  void __RPC_STUB IShellFolderViewDual_get_Folder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_SelectedItems_Proxy(IShellFolderViewDual *This,FolderItems **ppid);
-  void __RPC_STUB IShellFolderViewDual_SelectedItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_get_FocusedItem_Proxy(IShellFolderViewDual *This,FolderItem **ppid);
-  void __RPC_STUB IShellFolderViewDual_get_FocusedItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_SelectItem_Proxy(IShellFolderViewDual *This,VARIANT *pvfi,int dwFlags);
-  void __RPC_STUB IShellFolderViewDual_SelectItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_PopupItemMenu_Proxy(IShellFolderViewDual *This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs);
-  void __RPC_STUB IShellFolderViewDual_PopupItemMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_get_Script_Proxy(IShellFolderViewDual *This,IDispatch **ppDisp);
-  void __RPC_STUB IShellFolderViewDual_get_Script_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual_get_ViewOptions_Proxy(IShellFolderViewDual *This,__LONG32 *plViewOptions);
-  void __RPC_STUB IShellFolderViewDual_get_ViewOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Application_Proxy(
+    IShellFolderViewDual* This,
+    IDispatch **ppid);
+void __RPC_STUB IShellFolderViewDual_get_Application_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Parent_Proxy(
+    IShellFolderViewDual* This,
+    IDispatch **ppid);
+void __RPC_STUB IShellFolderViewDual_get_Parent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Folder_Proxy(
+    IShellFolderViewDual* This,
+    Folder **ppid);
+void __RPC_STUB IShellFolderViewDual_get_Folder_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectedItems_Proxy(
+    IShellFolderViewDual* This,
+    FolderItems **ppid);
+void __RPC_STUB IShellFolderViewDual_SelectedItems_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_FocusedItem_Proxy(
+    IShellFolderViewDual* This,
+    FolderItem **ppid);
+void __RPC_STUB IShellFolderViewDual_get_FocusedItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectItem_Proxy(
+    IShellFolderViewDual* This,
+    VARIANT *pvfi,
+    int dwFlags);
+void __RPC_STUB IShellFolderViewDual_SelectItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_PopupItemMenu_Proxy(
+    IShellFolderViewDual* This,
+    FolderItem *pfi,
+    VARIANT vx,
+    VARIANT vy,
+    BSTR *pbs);
+void __RPC_STUB IShellFolderViewDual_PopupItemMenu_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Script_Proxy(
+    IShellFolderViewDual* This,
+    IDispatch **ppDisp);
+void __RPC_STUB IShellFolderViewDual_get_Script_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_ViewOptions_Proxy(
+    IShellFolderViewDual* This,
+    LONG *plViewOptions);
+void __RPC_STUB IShellFolderViewDual_get_ViewOptions_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellFolderViewDual_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellFolderViewDual2 interface
+ */
 #ifndef __IShellFolderViewDual2_INTERFACE_DEFINED__
 #define __IShellFolderViewDual2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellFolderViewDual2;
+
+DEFINE_GUID(IID_IShellFolderViewDual2, 0x31c147b6, 0x0ade, 0x4a3c, 0xb5,0x14, 0xdd,0xf9,0x32,0xef,0x6d,0x17);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellFolderViewDual2 : public IShellFolderViewDual {
-  public:
-    virtual HRESULT WINAPI get_CurrentViewMode(UINT *pViewMode) = 0;
-    virtual HRESULT WINAPI put_CurrentViewMode(UINT ViewMode) = 0;
-    virtual HRESULT WINAPI SelectItemRelative(int iRelative) = 0;
-  };
+MIDL_INTERFACE("31c147b6-0ade-4a3c-b514-ddf932ef6d17")
+IShellFolderViewDual2 : public IShellFolderViewDual
+{
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentViewMode(
+        UINT *pViewMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_CurrentViewMode(
+        UINT ViewMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectItemRelative(
+        int iRelative) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellFolderViewDual2, 0x31c147b6, 0x0ade, 0x4a3c, 0xb5,0x14, 0xdd,0xf9,0x32,0xef,0x6d,0x17)
+#endif
 #else
-  typedef struct IShellFolderViewDual2Vtbl {
+typedef struct IShellFolderViewDual2Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellFolderViewDual2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellFolderViewDual2 *This);
-      ULONG (WINAPI *Release)(IShellFolderViewDual2 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellFolderViewDual2 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellFolderViewDual2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellFolderViewDual2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellFolderViewDual2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(IShellFolderViewDual2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(IShellFolderViewDual2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Folder)(IShellFolderViewDual2 *This,Folder **ppid);
-      HRESULT (WINAPI *SelectedItems)(IShellFolderViewDual2 *This,FolderItems **ppid);
-      HRESULT (WINAPI *get_FocusedItem)(IShellFolderViewDual2 *This,FolderItem **ppid);
-      HRESULT (WINAPI *SelectItem)(IShellFolderViewDual2 *This,VARIANT *pvfi,int dwFlags);
-      HRESULT (WINAPI *PopupItemMenu)(IShellFolderViewDual2 *This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs);
-      HRESULT (WINAPI *get_Script)(IShellFolderViewDual2 *This,IDispatch **ppDisp);
-      HRESULT (WINAPI *get_ViewOptions)(IShellFolderViewDual2 *This,__LONG32 *plViewOptions);
-      HRESULT (WINAPI *get_CurrentViewMode)(IShellFolderViewDual2 *This,UINT *pViewMode);
-      HRESULT (WINAPI *put_CurrentViewMode)(IShellFolderViewDual2 *This,UINT ViewMode);
-      HRESULT (WINAPI *SelectItemRelative)(IShellFolderViewDual2 *This,int iRelative);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellFolderViewDual2* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellFolderViewDual2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellFolderViewDual2* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellFolderViewDual2* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellFolderViewDual2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellFolderViewDual2* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellFolderViewDual2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellFolderViewDual methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellFolderViewDual2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellFolderViewDual2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Folder)(
+        IShellFolderViewDual2* This,
+        Folder **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *SelectedItems)(
+        IShellFolderViewDual2* This,
+        FolderItems **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_FocusedItem)(
+        IShellFolderViewDual2* This,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *SelectItem)(
+        IShellFolderViewDual2* This,
+        VARIANT *pvfi,
+        int dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *PopupItemMenu)(
+        IShellFolderViewDual2* This,
+        FolderItem *pfi,
+        VARIANT vx,
+        VARIANT vy,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Script)(
+        IShellFolderViewDual2* This,
+        IDispatch **ppDisp);
+
+    HRESULT (STDMETHODCALLTYPE *get_ViewOptions)(
+        IShellFolderViewDual2* This,
+        LONG *plViewOptions);
+
+    /*** IShellFolderViewDual2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_CurrentViewMode)(
+        IShellFolderViewDual2* This,
+        UINT *pViewMode);
+
+    HRESULT (STDMETHODCALLTYPE *put_CurrentViewMode)(
+        IShellFolderViewDual2* This,
+        UINT ViewMode);
+
+    HRESULT (STDMETHODCALLTYPE *SelectItemRelative)(
+        IShellFolderViewDual2* This,
+        int iRelative);
+
     END_INTERFACE
-  } IShellFolderViewDual2Vtbl;
-  struct IShellFolderViewDual2 {
-    CONST_VTBL struct IShellFolderViewDual2Vtbl *lpVtbl;
-  };
+} IShellFolderViewDual2Vtbl;
+interface IShellFolderViewDual2 {
+    CONST_VTBL IShellFolderViewDual2Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellFolderViewDual2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellFolderViewDual2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellFolderViewDual2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellFolderViewDual2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellFolderViewDual2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellFolderViewDual2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellFolderViewDual2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellFolderViewDual methods ***/
 #define IShellFolderViewDual2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define IShellFolderViewDual2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define IShellFolderViewDual2_get_Folder(This,ppid) (This)->lpVtbl->get_Folder(This,ppid)
@@ -1567,100 +4478,752 @@
 #define IShellFolderViewDual2_PopupItemMenu(This,pfi,vx,vy,pbs) (This)->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs)
 #define IShellFolderViewDual2_get_Script(This,ppDisp) (This)->lpVtbl->get_Script(This,ppDisp)
 #define IShellFolderViewDual2_get_ViewOptions(This,plViewOptions) (This)->lpVtbl->get_ViewOptions(This,plViewOptions)
+/*** IShellFolderViewDual2 methods ***/
 #define IShellFolderViewDual2_get_CurrentViewMode(This,pViewMode) (This)->lpVtbl->get_CurrentViewMode(This,pViewMode)
 #define IShellFolderViewDual2_put_CurrentViewMode(This,ViewMode) (This)->lpVtbl->put_CurrentViewMode(This,ViewMode)
 #define IShellFolderViewDual2_SelectItemRelative(This,iRelative) (This)->lpVtbl->SelectItemRelative(This,iRelative)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual2_QueryInterface(IShellFolderViewDual2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellFolderViewDual2_AddRef(IShellFolderViewDual2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellFolderViewDual2_Release(IShellFolderViewDual2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual2_GetTypeInfoCount(IShellFolderViewDual2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_GetTypeInfo(IShellFolderViewDual2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_GetIDsOfNames(IShellFolderViewDual2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_Invoke(IShellFolderViewDual2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellFolderViewDual methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual2_get_Application(IShellFolderViewDual2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_get_Parent(IShellFolderViewDual2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_get_Folder(IShellFolderViewDual2* This,Folder **ppid) {
+    return This->lpVtbl->get_Folder(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_SelectedItems(IShellFolderViewDual2* This,FolderItems **ppid) {
+    return This->lpVtbl->SelectedItems(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_get_FocusedItem(IShellFolderViewDual2* This,FolderItem **ppid) {
+    return This->lpVtbl->get_FocusedItem(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_SelectItem(IShellFolderViewDual2* This,VARIANT *pvfi,int dwFlags) {
+    return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_PopupItemMenu(IShellFolderViewDual2* This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs) {
+    return This->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_get_Script(IShellFolderViewDual2* This,IDispatch **ppDisp) {
+    return This->lpVtbl->get_Script(This,ppDisp);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_get_ViewOptions(IShellFolderViewDual2* This,LONG *plViewOptions) {
+    return This->lpVtbl->get_ViewOptions(This,plViewOptions);
+}
+/*** IShellFolderViewDual2 methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual2_get_CurrentViewMode(IShellFolderViewDual2* This,UINT *pViewMode) {
+    return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_put_CurrentViewMode(IShellFolderViewDual2* This,UINT ViewMode) {
+    return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual2_SelectItemRelative(IShellFolderViewDual2* This,int iRelative) {
+    return This->lpVtbl->SelectItemRelative(This,iRelative);
+}
 #endif
 #endif
-  HRESULT WINAPI IShellFolderViewDual2_get_CurrentViewMode_Proxy(IShellFolderViewDual2 *This,UINT *pViewMode);
-  void __RPC_STUB IShellFolderViewDual2_get_CurrentViewMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual2_put_CurrentViewMode_Proxy(IShellFolderViewDual2 *This,UINT ViewMode);
-  void __RPC_STUB IShellFolderViewDual2_put_CurrentViewMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellFolderViewDual2_SelectItemRelative_Proxy(IShellFolderViewDual2 *This,int iRelative);
-  void __RPC_STUB IShellFolderViewDual2_SelectItemRelative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  EXTERN_C const CLSID CLSID_ShellFolderView;
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_get_CurrentViewMode_Proxy(
+    IShellFolderViewDual2* This,
+    UINT *pViewMode);
+void __RPC_STUB IShellFolderViewDual2_get_CurrentViewMode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_put_CurrentViewMode_Proxy(
+    IShellFolderViewDual2* This,
+    UINT ViewMode);
+void __RPC_STUB IShellFolderViewDual2_put_CurrentViewMode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_SelectItemRelative_Proxy(
+    IShellFolderViewDual2* This,
+    int iRelative);
+void __RPC_STUB IShellFolderViewDual2_SelectItemRelative_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellFolderViewDual2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellFolderViewDual3 interface
+ */
+#ifndef __IShellFolderViewDual3_INTERFACE_DEFINED__
+#define __IShellFolderViewDual3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IShellFolderViewDual3, 0x29ec8e6c, 0x46d3, 0x411f, 0xba,0xaa, 0x61,0x1a,0x6c,0x9c,0xac,0x66);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("29ec8e6c-46d3-411f-baaa-611a6c9cac66")
+IShellFolderViewDual3 : public IShellFolderViewDual2
+{
+    virtual HRESULT STDMETHODCALLTYPE get_GroupBy(
+        BSTR *pbstrGroupBy) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_GroupBy(
+        BSTR bstrGroupBy) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_FolderFlags(
+        DWORD *pdwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_FolderFlags(
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SortColumns(
+        BSTR *pbstrSortColumns) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_SortColumns(
+        BSTR bstrSortColumns) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IconSize(
+        int iIconSize) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IconSize(
+        int *piIconSize) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FilterView(
+        BSTR bstrFilterText) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellFolderViewDual3, 0x29ec8e6c, 0x46d3, 0x411f, 0xba,0xaa, 0x61,0x1a,0x6c,0x9c,0xac,0x66)
+#endif
+#else
+typedef struct IShellFolderViewDual3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellFolderViewDual3* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellFolderViewDual3* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellFolderViewDual3* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellFolderViewDual3* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellFolderViewDual3* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellFolderViewDual3* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellFolderViewDual3* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellFolderViewDual methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellFolderViewDual3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellFolderViewDual3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Folder)(
+        IShellFolderViewDual3* This,
+        Folder **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *SelectedItems)(
+        IShellFolderViewDual3* This,
+        FolderItems **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_FocusedItem)(
+        IShellFolderViewDual3* This,
+        FolderItem **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *SelectItem)(
+        IShellFolderViewDual3* This,
+        VARIANT *pvfi,
+        int dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *PopupItemMenu)(
+        IShellFolderViewDual3* This,
+        FolderItem *pfi,
+        VARIANT vx,
+        VARIANT vy,
+        BSTR *pbs);
+
+    HRESULT (STDMETHODCALLTYPE *get_Script)(
+        IShellFolderViewDual3* This,
+        IDispatch **ppDisp);
+
+    HRESULT (STDMETHODCALLTYPE *get_ViewOptions)(
+        IShellFolderViewDual3* This,
+        LONG *plViewOptions);
+
+    /*** IShellFolderViewDual2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_CurrentViewMode)(
+        IShellFolderViewDual3* This,
+        UINT *pViewMode);
+
+    HRESULT (STDMETHODCALLTYPE *put_CurrentViewMode)(
+        IShellFolderViewDual3* This,
+        UINT ViewMode);
+
+    HRESULT (STDMETHODCALLTYPE *SelectItemRelative)(
+        IShellFolderViewDual3* This,
+        int iRelative);
+
+    /*** IShellFolderViewDual3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_GroupBy)(
+        IShellFolderViewDual3* This,
+        BSTR *pbstrGroupBy);
+
+    HRESULT (STDMETHODCALLTYPE *put_GroupBy)(
+        IShellFolderViewDual3* This,
+        BSTR bstrGroupBy);
+
+    HRESULT (STDMETHODCALLTYPE *get_FolderFlags)(
+        IShellFolderViewDual3* This,
+        DWORD *pdwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *put_FolderFlags)(
+        IShellFolderViewDual3* This,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *get_SortColumns)(
+        IShellFolderViewDual3* This,
+        BSTR *pbstrSortColumns);
+
+    HRESULT (STDMETHODCALLTYPE *put_SortColumns)(
+        IShellFolderViewDual3* This,
+        BSTR bstrSortColumns);
+
+    HRESULT (STDMETHODCALLTYPE *put_IconSize)(
+        IShellFolderViewDual3* This,
+        int iIconSize);
+
+    HRESULT (STDMETHODCALLTYPE *get_IconSize)(
+        IShellFolderViewDual3* This,
+        int *piIconSize);
+
+    HRESULT (STDMETHODCALLTYPE *FilterView)(
+        IShellFolderViewDual3* This,
+        BSTR bstrFilterText);
+
+    END_INTERFACE
+} IShellFolderViewDual3Vtbl;
+interface IShellFolderViewDual3 {
+    CONST_VTBL IShellFolderViewDual3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IShellFolderViewDual3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IShellFolderViewDual3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IShellFolderViewDual3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IShellFolderViewDual3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IShellFolderViewDual3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IShellFolderViewDual3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IShellFolderViewDual3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellFolderViewDual methods ***/
+#define IShellFolderViewDual3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define IShellFolderViewDual3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define IShellFolderViewDual3_get_Folder(This,ppid) (This)->lpVtbl->get_Folder(This,ppid)
+#define IShellFolderViewDual3_SelectedItems(This,ppid) (This)->lpVtbl->SelectedItems(This,ppid)
+#define IShellFolderViewDual3_get_FocusedItem(This,ppid) (This)->lpVtbl->get_FocusedItem(This,ppid)
+#define IShellFolderViewDual3_SelectItem(This,pvfi,dwFlags) (This)->lpVtbl->SelectItem(This,pvfi,dwFlags)
+#define IShellFolderViewDual3_PopupItemMenu(This,pfi,vx,vy,pbs) (This)->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs)
+#define IShellFolderViewDual3_get_Script(This,ppDisp) (This)->lpVtbl->get_Script(This,ppDisp)
+#define IShellFolderViewDual3_get_ViewOptions(This,plViewOptions) (This)->lpVtbl->get_ViewOptions(This,plViewOptions)
+/*** IShellFolderViewDual2 methods ***/
+#define IShellFolderViewDual3_get_CurrentViewMode(This,pViewMode) (This)->lpVtbl->get_CurrentViewMode(This,pViewMode)
+#define IShellFolderViewDual3_put_CurrentViewMode(This,ViewMode) (This)->lpVtbl->put_CurrentViewMode(This,ViewMode)
+#define IShellFolderViewDual3_SelectItemRelative(This,iRelative) (This)->lpVtbl->SelectItemRelative(This,iRelative)
+/*** IShellFolderViewDual3 methods ***/
+#define IShellFolderViewDual3_get_GroupBy(This,pbstrGroupBy) (This)->lpVtbl->get_GroupBy(This,pbstrGroupBy)
+#define IShellFolderViewDual3_put_GroupBy(This,bstrGroupBy) (This)->lpVtbl->put_GroupBy(This,bstrGroupBy)
+#define IShellFolderViewDual3_get_FolderFlags(This,pdwFlags) (This)->lpVtbl->get_FolderFlags(This,pdwFlags)
+#define IShellFolderViewDual3_put_FolderFlags(This,dwFlags) (This)->lpVtbl->put_FolderFlags(This,dwFlags)
+#define IShellFolderViewDual3_get_SortColumns(This,pbstrSortColumns) (This)->lpVtbl->get_SortColumns(This,pbstrSortColumns)
+#define IShellFolderViewDual3_put_SortColumns(This,bstrSortColumns) (This)->lpVtbl->put_SortColumns(This,bstrSortColumns)
+#define IShellFolderViewDual3_put_IconSize(This,iIconSize) (This)->lpVtbl->put_IconSize(This,iIconSize)
+#define IShellFolderViewDual3_get_IconSize(This,piIconSize) (This)->lpVtbl->get_IconSize(This,piIconSize)
+#define IShellFolderViewDual3_FilterView(This,bstrFilterText) (This)->lpVtbl->FilterView(This,bstrFilterText)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual3_QueryInterface(IShellFolderViewDual3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellFolderViewDual3_AddRef(IShellFolderViewDual3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellFolderViewDual3_Release(IShellFolderViewDual3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual3_GetTypeInfoCount(IShellFolderViewDual3* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_GetTypeInfo(IShellFolderViewDual3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_GetIDsOfNames(IShellFolderViewDual3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_Invoke(IShellFolderViewDual3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellFolderViewDual methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_Application(IShellFolderViewDual3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_Parent(IShellFolderViewDual3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_Folder(IShellFolderViewDual3* This,Folder **ppid) {
+    return This->lpVtbl->get_Folder(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_SelectedItems(IShellFolderViewDual3* This,FolderItems **ppid) {
+    return This->lpVtbl->SelectedItems(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_FocusedItem(IShellFolderViewDual3* This,FolderItem **ppid) {
+    return This->lpVtbl->get_FocusedItem(This,ppid);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_SelectItem(IShellFolderViewDual3* This,VARIANT *pvfi,int dwFlags) {
+    return This->lpVtbl->SelectItem(This,pvfi,dwFlags);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_PopupItemMenu(IShellFolderViewDual3* This,FolderItem *pfi,VARIANT vx,VARIANT vy,BSTR *pbs) {
+    return This->lpVtbl->PopupItemMenu(This,pfi,vx,vy,pbs);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_Script(IShellFolderViewDual3* This,IDispatch **ppDisp) {
+    return This->lpVtbl->get_Script(This,ppDisp);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_ViewOptions(IShellFolderViewDual3* This,LONG *plViewOptions) {
+    return This->lpVtbl->get_ViewOptions(This,plViewOptions);
+}
+/*** IShellFolderViewDual2 methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_CurrentViewMode(IShellFolderViewDual3* This,UINT *pViewMode) {
+    return This->lpVtbl->get_CurrentViewMode(This,pViewMode);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_put_CurrentViewMode(IShellFolderViewDual3* This,UINT ViewMode) {
+    return This->lpVtbl->put_CurrentViewMode(This,ViewMode);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_SelectItemRelative(IShellFolderViewDual3* This,int iRelative) {
+    return This->lpVtbl->SelectItemRelative(This,iRelative);
+}
+/*** IShellFolderViewDual3 methods ***/
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_GroupBy(IShellFolderViewDual3* This,BSTR *pbstrGroupBy) {
+    return This->lpVtbl->get_GroupBy(This,pbstrGroupBy);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_put_GroupBy(IShellFolderViewDual3* This,BSTR bstrGroupBy) {
+    return This->lpVtbl->put_GroupBy(This,bstrGroupBy);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_FolderFlags(IShellFolderViewDual3* This,DWORD *pdwFlags) {
+    return This->lpVtbl->get_FolderFlags(This,pdwFlags);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_put_FolderFlags(IShellFolderViewDual3* This,DWORD dwFlags) {
+    return This->lpVtbl->put_FolderFlags(This,dwFlags);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_SortColumns(IShellFolderViewDual3* This,BSTR *pbstrSortColumns) {
+    return This->lpVtbl->get_SortColumns(This,pbstrSortColumns);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_put_SortColumns(IShellFolderViewDual3* This,BSTR bstrSortColumns) {
+    return This->lpVtbl->put_SortColumns(This,bstrSortColumns);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_put_IconSize(IShellFolderViewDual3* This,int iIconSize) {
+    return This->lpVtbl->put_IconSize(This,iIconSize);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_get_IconSize(IShellFolderViewDual3* This,int *piIconSize) {
+    return This->lpVtbl->get_IconSize(This,piIconSize);
+}
+static FORCEINLINE HRESULT IShellFolderViewDual3_FilterView(IShellFolderViewDual3* This,BSTR bstrFilterText) {
+    return This->lpVtbl->FilterView(This,bstrFilterText);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_GroupBy_Proxy(
+    IShellFolderViewDual3* This,
+    BSTR *pbstrGroupBy);
+void __RPC_STUB IShellFolderViewDual3_get_GroupBy_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_GroupBy_Proxy(
+    IShellFolderViewDual3* This,
+    BSTR bstrGroupBy);
+void __RPC_STUB IShellFolderViewDual3_put_GroupBy_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_FolderFlags_Proxy(
+    IShellFolderViewDual3* This,
+    DWORD *pdwFlags);
+void __RPC_STUB IShellFolderViewDual3_get_FolderFlags_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_FolderFlags_Proxy(
+    IShellFolderViewDual3* This,
+    DWORD dwFlags);
+void __RPC_STUB IShellFolderViewDual3_put_FolderFlags_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_SortColumns_Proxy(
+    IShellFolderViewDual3* This,
+    BSTR *pbstrSortColumns);
+void __RPC_STUB IShellFolderViewDual3_get_SortColumns_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_SortColumns_Proxy(
+    IShellFolderViewDual3* This,
+    BSTR bstrSortColumns);
+void __RPC_STUB IShellFolderViewDual3_put_SortColumns_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_put_IconSize_Proxy(
+    IShellFolderViewDual3* This,
+    int iIconSize);
+void __RPC_STUB IShellFolderViewDual3_put_IconSize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_get_IconSize_Proxy(
+    IShellFolderViewDual3* This,
+    int *piIconSize);
+void __RPC_STUB IShellFolderViewDual3_get_IconSize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellFolderViewDual3_FilterView_Proxy(
+    IShellFolderViewDual3* This,
+    BSTR bstrFilterText);
+void __RPC_STUB IShellFolderViewDual3_FilterView_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellFolderViewDual3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ShellFolderView coclass
+ */
+
+DEFINE_GUID(CLSID_ShellFolderView, 0x62112aa1, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d);
+
 #ifdef __cplusplus
-  class ShellFolderView;
+class DECLSPEC_UUID("62112aa1-ebe4-11cf-a5fb-0020afe7292d") ShellFolderView;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ShellFolderView, 0x62112aa1, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d)
+#endif
 #endif
 
+typedef enum ShellFolderViewOptions {
+    SFVVO_SHOWALLOBJECTS = 0x1,
+    SFVVO_SHOWEXTENSIONS = 0x2,
+    SFVVO_SHOWCOMPCOLOR = 0x8,
+    SFVVO_SHOWSYSFILES = 0x20,
+    SFVVO_WIN95CLASSIC = 0x40,
+    SFVVO_DOUBLECLICKINWEBVIEW = 0x80,
+    SFVVO_DESKTOPHTML = 0x200
+} ShellFolderViewOptions;
+/*****************************************************************************
+ * IShellDispatch interface
+ */
 #ifndef __IShellDispatch_INTERFACE_DEFINED__
 #define __IShellDispatch_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellDispatch;
+
+DEFINE_GUID(IID_IShellDispatch, 0xd8f015c0, 0xc278, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellDispatch : public IDispatch {
-  public:
-    virtual HRESULT WINAPI get_Application(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI get_Parent(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI NameSpace(VARIANT vDir,Folder **ppsdf) = 0;
-    virtual HRESULT WINAPI BrowseForFolder(__LONG32 Hwnd,BSTR Title,__LONG32 Options,VARIANT RootFolder,Folder **ppsdf) = 0;
-    virtual HRESULT WINAPI Windows(IDispatch **ppid) = 0;
-    virtual HRESULT WINAPI Open(VARIANT vDir) = 0;
-    virtual HRESULT WINAPI Explore(VARIANT vDir) = 0;
-    virtual HRESULT WINAPI MinimizeAll(void) = 0;
-    virtual HRESULT WINAPI UndoMinimizeALL(void) = 0;
-    virtual HRESULT WINAPI FileRun(void) = 0;
-    virtual HRESULT WINAPI CascadeWindows(void) = 0;
-    virtual HRESULT WINAPI TileVertically(void) = 0;
-    virtual HRESULT WINAPI TileHorizontally(void) = 0;
-    virtual HRESULT WINAPI ShutdownWindows(void) = 0;
-    virtual HRESULT WINAPI Suspend(void) = 0;
-    virtual HRESULT WINAPI EjectPC(void) = 0;
-    virtual HRESULT WINAPI SetTime(void) = 0;
-    virtual HRESULT WINAPI TrayProperties(void) = 0;
-    virtual HRESULT WINAPI Help(void) = 0;
-    virtual HRESULT WINAPI FindFiles(void) = 0;
-    virtual HRESULT WINAPI FindComputer(void) = 0;
-    virtual HRESULT WINAPI RefreshMenu(void) = 0;
-    virtual HRESULT WINAPI ControlPanelItem(BSTR szDir) = 0;
-  };
+MIDL_INTERFACE("d8f015c0-c278-11ce-a49e-444553540000")
+IShellDispatch : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NameSpace(
+        VARIANT vDir,
+        Folder **ppsdf) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BrowseForFolder(
+        LONG Hwnd,
+        BSTR Title,
+        LONG Options,
+        VARIANT RootFolder,
+        Folder **ppsdf) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Windows(
+        IDispatch **ppid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Open(
+        VARIANT vDir) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Explore(
+        VARIANT vDir) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE MinimizeAll(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UndoMinimizeALL(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FileRun(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CascadeWindows(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE TileVertically(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE TileHorizontally(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ShutdownWindows(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Suspend(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EjectPC(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetTime(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE TrayProperties(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Help(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FindFiles(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FindComputer(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RefreshMenu(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ControlPanelItem(
+        BSTR bstrDir) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellDispatch, 0xd8f015c0, 0xc278, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00)
+#endif
 #else
-  typedef struct IShellDispatchVtbl {
+typedef struct IShellDispatchVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellDispatch *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellDispatch *This);
-      ULONG (WINAPI *Release)(IShellDispatch *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellDispatch *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellDispatch *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellDispatch *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellDispatch *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(IShellDispatch *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(IShellDispatch *This,IDispatch **ppid);
-      HRESULT (WINAPI *NameSpace)(IShellDispatch *This,VARIANT vDir,Folder **ppsdf);
-      HRESULT (WINAPI *BrowseForFolder)(IShellDispatch *This,__LONG32 Hwnd,BSTR Title,__LONG32 Options,VARIANT RootFolder,Folder **ppsdf);
-      HRESULT (WINAPI *Windows)(IShellDispatch *This,IDispatch **ppid);
-      HRESULT (WINAPI *Open)(IShellDispatch *This,VARIANT vDir);
-      HRESULT (WINAPI *Explore)(IShellDispatch *This,VARIANT vDir);
-      HRESULT (WINAPI *MinimizeAll)(IShellDispatch *This);
-      HRESULT (WINAPI *UndoMinimizeALL)(IShellDispatch *This);
-      HRESULT (WINAPI *FileRun)(IShellDispatch *This);
-      HRESULT (WINAPI *CascadeWindows)(IShellDispatch *This);
-      HRESULT (WINAPI *TileVertically)(IShellDispatch *This);
-      HRESULT (WINAPI *TileHorizontally)(IShellDispatch *This);
-      HRESULT (WINAPI *ShutdownWindows)(IShellDispatch *This);
-      HRESULT (WINAPI *Suspend)(IShellDispatch *This);
-      HRESULT (WINAPI *EjectPC)(IShellDispatch *This);
-      HRESULT (WINAPI *SetTime)(IShellDispatch *This);
-      HRESULT (WINAPI *TrayProperties)(IShellDispatch *This);
-      HRESULT (WINAPI *Help)(IShellDispatch *This);
-      HRESULT (WINAPI *FindFiles)(IShellDispatch *This);
-      HRESULT (WINAPI *FindComputer)(IShellDispatch *This);
-      HRESULT (WINAPI *RefreshMenu)(IShellDispatch *This);
-      HRESULT (WINAPI *ControlPanelItem)(IShellDispatch *This,BSTR szDir);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellDispatch* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellDispatch* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellDispatch* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellDispatch* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellDispatch* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellDispatch* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellDispatch* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellDispatch* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellDispatch* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NameSpace)(
+        IShellDispatch* This,
+        VARIANT vDir,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
+        IShellDispatch* This,
+        LONG Hwnd,
+        BSTR Title,
+        LONG Options,
+        VARIANT RootFolder,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *Windows)(
+        IShellDispatch* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IShellDispatch* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *Explore)(
+        IShellDispatch* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *FileRun)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileVertically)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *EjectPC)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTime)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *Help)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindFiles)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindComputer)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
+        IShellDispatch* This);
+
+    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
+        IShellDispatch* This,
+        BSTR bstrDir);
+
     END_INTERFACE
-  } IShellDispatchVtbl;
-  struct IShellDispatch {
-    CONST_VTBL struct IShellDispatchVtbl *lpVtbl;
-  };
+} IShellDispatchVtbl;
+interface IShellDispatch {
+    CONST_VTBL IShellDispatchVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellDispatch_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellDispatch methods ***/
 #define IShellDispatch_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define IShellDispatch_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define IShellDispatch_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
@@ -1683,128 +5246,543 @@
 #define IShellDispatch_FindFiles(This) (This)->lpVtbl->FindFiles(This)
 #define IShellDispatch_FindComputer(This) (This)->lpVtbl->FindComputer(This)
 #define IShellDispatch_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
-#define IShellDispatch_ControlPanelItem(This,szDir) (This)->lpVtbl->ControlPanelItem(This,szDir)
+#define IShellDispatch_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellDispatch_QueryInterface(IShellDispatch* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellDispatch_AddRef(IShellDispatch* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellDispatch_Release(IShellDispatch* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch_GetTypeInfoCount(IShellDispatch* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellDispatch_GetTypeInfo(IShellDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellDispatch_GetIDsOfNames(IShellDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellDispatch_Invoke(IShellDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch_get_Application(IShellDispatch* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch_get_Parent(IShellDispatch* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch_NameSpace(IShellDispatch* This,VARIANT vDir,Folder **ppsdf) {
+    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch_BrowseForFolder(IShellDispatch* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
+    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch_Windows(IShellDispatch* This,IDispatch **ppid) {
+    return This->lpVtbl->Windows(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch_Open(IShellDispatch* This,VARIANT vDir) {
+    return This->lpVtbl->Open(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch_Explore(IShellDispatch* This,VARIANT vDir) {
+    return This->lpVtbl->Explore(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch_MinimizeAll(IShellDispatch* This) {
+    return This->lpVtbl->MinimizeAll(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_UndoMinimizeALL(IShellDispatch* This) {
+    return This->lpVtbl->UndoMinimizeALL(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_FileRun(IShellDispatch* This) {
+    return This->lpVtbl->FileRun(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_CascadeWindows(IShellDispatch* This) {
+    return This->lpVtbl->CascadeWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_TileVertically(IShellDispatch* This) {
+    return This->lpVtbl->TileVertically(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_TileHorizontally(IShellDispatch* This) {
+    return This->lpVtbl->TileHorizontally(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_ShutdownWindows(IShellDispatch* This) {
+    return This->lpVtbl->ShutdownWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_Suspend(IShellDispatch* This) {
+    return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_EjectPC(IShellDispatch* This) {
+    return This->lpVtbl->EjectPC(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_SetTime(IShellDispatch* This) {
+    return This->lpVtbl->SetTime(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_TrayProperties(IShellDispatch* This) {
+    return This->lpVtbl->TrayProperties(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_Help(IShellDispatch* This) {
+    return This->lpVtbl->Help(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_FindFiles(IShellDispatch* This) {
+    return This->lpVtbl->FindFiles(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_FindComputer(IShellDispatch* This) {
+    return This->lpVtbl->FindComputer(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_RefreshMenu(IShellDispatch* This) {
+    return This->lpVtbl->RefreshMenu(This);
+}
+static FORCEINLINE HRESULT IShellDispatch_ControlPanelItem(IShellDispatch* This,BSTR bstrDir) {
+    return This->lpVtbl->ControlPanelItem(This,bstrDir);
+}
 #endif
 #endif
-  HRESULT WINAPI IShellDispatch_get_Application_Proxy(IShellDispatch *This,IDispatch **ppid);
-  void __RPC_STUB IShellDispatch_get_Application_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_get_Parent_Proxy(IShellDispatch *This,IDispatch **ppid);
-  void __RPC_STUB IShellDispatch_get_Parent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_NameSpace_Proxy(IShellDispatch *This,VARIANT vDir,Folder **ppsdf);
-  void __RPC_STUB IShellDispatch_NameSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_BrowseForFolder_Proxy(IShellDispatch *This,__LONG32 Hwnd,BSTR Title,__LONG32 Options,VARIANT RootFolder,Folder **ppsdf);
-  void __RPC_STUB IShellDispatch_BrowseForFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_Windows_Proxy(IShellDispatch *This,IDispatch **ppid);
-  void __RPC_STUB IShellDispatch_Windows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_Open_Proxy(IShellDispatch *This,VARIANT vDir);
-  void __RPC_STUB IShellDispatch_Open_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_Explore_Proxy(IShellDispatch *This,VARIANT vDir);
-  void __RPC_STUB IShellDispatch_Explore_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_MinimizeAll_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_MinimizeAll_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_UndoMinimizeALL_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_UndoMinimizeALL_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_FileRun_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_FileRun_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_CascadeWindows_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_CascadeWindows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_TileVertically_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_TileVertically_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_TileHorizontally_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_TileHorizontally_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_ShutdownWindows_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_ShutdownWindows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_Suspend_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_Suspend_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_EjectPC_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_EjectPC_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_SetTime_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_SetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_TrayProperties_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_TrayProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_Help_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_Help_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_FindFiles_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_FindFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_FindComputer_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_FindComputer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_RefreshMenu_Proxy(IShellDispatch *This);
-  void __RPC_STUB IShellDispatch_RefreshMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch_ControlPanelItem_Proxy(IShellDispatch *This,BSTR szDir);
-  void __RPC_STUB IShellDispatch_ControlPanelItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellDispatch_get_Application_Proxy(
+    IShellDispatch* This,
+    IDispatch **ppid);
+void __RPC_STUB IShellDispatch_get_Application_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_get_Parent_Proxy(
+    IShellDispatch* This,
+    IDispatch **ppid);
+void __RPC_STUB IShellDispatch_get_Parent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_NameSpace_Proxy(
+    IShellDispatch* This,
+    VARIANT vDir,
+    Folder **ppsdf);
+void __RPC_STUB IShellDispatch_NameSpace_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_BrowseForFolder_Proxy(
+    IShellDispatch* This,
+    LONG Hwnd,
+    BSTR Title,
+    LONG Options,
+    VARIANT RootFolder,
+    Folder **ppsdf);
+void __RPC_STUB IShellDispatch_BrowseForFolder_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_Windows_Proxy(
+    IShellDispatch* This,
+    IDispatch **ppid);
+void __RPC_STUB IShellDispatch_Windows_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_Open_Proxy(
+    IShellDispatch* This,
+    VARIANT vDir);
+void __RPC_STUB IShellDispatch_Open_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_Explore_Proxy(
+    IShellDispatch* This,
+    VARIANT vDir);
+void __RPC_STUB IShellDispatch_Explore_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_MinimizeAll_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_MinimizeAll_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_UndoMinimizeALL_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_UndoMinimizeALL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_FileRun_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_FileRun_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_CascadeWindows_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_CascadeWindows_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_TileVertically_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_TileVertically_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_TileHorizontally_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_TileHorizontally_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_ShutdownWindows_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_ShutdownWindows_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_Suspend_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_Suspend_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_EjectPC_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_EjectPC_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_SetTime_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_SetTime_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_TrayProperties_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_TrayProperties_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_Help_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_Help_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_FindFiles_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_FindFiles_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_FindComputer_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_FindComputer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_RefreshMenu_Proxy(
+    IShellDispatch* This);
+void __RPC_STUB IShellDispatch_RefreshMenu_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch_ControlPanelItem_Proxy(
+    IShellDispatch* This,
+    BSTR bstrDir);
+void __RPC_STUB IShellDispatch_ControlPanelItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellDispatch_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellDispatch2 interface
+ */
 #ifndef __IShellDispatch2_INTERFACE_DEFINED__
 #define __IShellDispatch2_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellDispatch2;
+
+DEFINE_GUID(IID_IShellDispatch2, 0xa4c6892c, 0x3ba9, 0x11d2, 0x9d,0xea, 0x00,0xc0,0x4f,0xb1,0x61,0x62);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellDispatch2 : public IShellDispatch {
-  public:
-    virtual HRESULT WINAPI IsRestricted(BSTR Group,BSTR Restriction,__LONG32 *plRestrictValue) = 0;
-    virtual HRESULT WINAPI ShellExecute(BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) = 0;
-    virtual HRESULT WINAPI FindPrinter(BSTR name,BSTR location,BSTR model) = 0;
-    virtual HRESULT WINAPI GetSystemInformation(BSTR name,VARIANT *pv) = 0;
-    virtual HRESULT WINAPI ServiceStart(BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) = 0;
-    virtual HRESULT WINAPI ServiceStop(BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) = 0;
-    virtual HRESULT WINAPI IsServiceRunning(BSTR ServiceName,VARIANT *pRunning) = 0;
-    virtual HRESULT WINAPI CanStartStopService(BSTR ServiceName,VARIANT *pCanStartStop) = 0;
-    virtual HRESULT WINAPI ShowBrowserBar(BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) = 0;
-  };
+MIDL_INTERFACE("a4c6892c-3ba9-11d2-9dea-00c04fb16162")
+IShellDispatch2 : public IShellDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE IsRestricted(
+        BSTR Group,
+        BSTR Restriction,
+        LONG *plRestrictValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ShellExecute(
+        BSTR File,
+        VARIANT vArgs,
+        VARIANT vDir,
+        VARIANT vOperation,
+        VARIANT vShow) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FindPrinter(
+        BSTR name,
+        BSTR location,
+        BSTR model) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSystemInformation(
+        BSTR name,
+        VARIANT *pv) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ServiceStart(
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ServiceStop(
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsServiceRunning(
+        BSTR ServiceName,
+        VARIANT *pRunning) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CanStartStopService(
+        BSTR ServiceName,
+        VARIANT *pCanStartStop) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(
+        BSTR bstrClsid,
+        VARIANT bShow,
+        VARIANT *pSuccess) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellDispatch2, 0xa4c6892c, 0x3ba9, 0x11d2, 0x9d,0xea, 0x00,0xc0,0x4f,0xb1,0x61,0x62)
+#endif
 #else
-  typedef struct IShellDispatch2Vtbl {
+typedef struct IShellDispatch2Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellDispatch2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellDispatch2 *This);
-      ULONG (WINAPI *Release)(IShellDispatch2 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellDispatch2 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellDispatch2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellDispatch2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellDispatch2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(IShellDispatch2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(IShellDispatch2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *NameSpace)(IShellDispatch2 *This,VARIANT vDir,Folder **ppsdf);
-      HRESULT (WINAPI *BrowseForFolder)(IShellDispatch2 *This,__LONG32 Hwnd,BSTR Title,__LONG32 Options,VARIANT RootFolder,Folder **ppsdf);
-      HRESULT (WINAPI *Windows)(IShellDispatch2 *This,IDispatch **ppid);
-      HRESULT (WINAPI *Open)(IShellDispatch2 *This,VARIANT vDir);
-      HRESULT (WINAPI *Explore)(IShellDispatch2 *This,VARIANT vDir);
-      HRESULT (WINAPI *MinimizeAll)(IShellDispatch2 *This);
-      HRESULT (WINAPI *UndoMinimizeALL)(IShellDispatch2 *This);
-      HRESULT (WINAPI *FileRun)(IShellDispatch2 *This);
-      HRESULT (WINAPI *CascadeWindows)(IShellDispatch2 *This);
-      HRESULT (WINAPI *TileVertically)(IShellDispatch2 *This);
-      HRESULT (WINAPI *TileHorizontally)(IShellDispatch2 *This);
-      HRESULT (WINAPI *ShutdownWindows)(IShellDispatch2 *This);
-      HRESULT (WINAPI *Suspend)(IShellDispatch2 *This);
-      HRESULT (WINAPI *EjectPC)(IShellDispatch2 *This);
-      HRESULT (WINAPI *SetTime)(IShellDispatch2 *This);
-      HRESULT (WINAPI *TrayProperties)(IShellDispatch2 *This);
-      HRESULT (WINAPI *Help)(IShellDispatch2 *This);
-      HRESULT (WINAPI *FindFiles)(IShellDispatch2 *This);
-      HRESULT (WINAPI *FindComputer)(IShellDispatch2 *This);
-      HRESULT (WINAPI *RefreshMenu)(IShellDispatch2 *This);
-      HRESULT (WINAPI *ControlPanelItem)(IShellDispatch2 *This,BSTR szDir);
-      HRESULT (WINAPI *IsRestricted)(IShellDispatch2 *This,BSTR Group,BSTR Restriction,__LONG32 *plRestrictValue);
-      HRESULT (WINAPI *ShellExecute)(IShellDispatch2 *This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow);
-      HRESULT (WINAPI *FindPrinter)(IShellDispatch2 *This,BSTR name,BSTR location,BSTR model);
-      HRESULT (WINAPI *GetSystemInformation)(IShellDispatch2 *This,BSTR name,VARIANT *pv);
-      HRESULT (WINAPI *ServiceStart)(IShellDispatch2 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-      HRESULT (WINAPI *ServiceStop)(IShellDispatch2 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-      HRESULT (WINAPI *IsServiceRunning)(IShellDispatch2 *This,BSTR ServiceName,VARIANT *pRunning);
-      HRESULT (WINAPI *CanStartStopService)(IShellDispatch2 *This,BSTR ServiceName,VARIANT *pCanStartStop);
-      HRESULT (WINAPI *ShowBrowserBar)(IShellDispatch2 *This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellDispatch2* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellDispatch2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellDispatch2* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellDispatch2* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellDispatch2* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellDispatch2* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellDispatch2* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellDispatch2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellDispatch2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NameSpace)(
+        IShellDispatch2* This,
+        VARIANT vDir,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
+        IShellDispatch2* This,
+        LONG Hwnd,
+        BSTR Title,
+        LONG Options,
+        VARIANT RootFolder,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *Windows)(
+        IShellDispatch2* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IShellDispatch2* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *Explore)(
+        IShellDispatch2* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *FileRun)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileVertically)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *EjectPC)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTime)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *Help)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindFiles)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindComputer)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
+        IShellDispatch2* This);
+
+    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
+        IShellDispatch2* This,
+        BSTR bstrDir);
+
+    /*** IShellDispatch2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
+        IShellDispatch2* This,
+        BSTR Group,
+        BSTR Restriction,
+        LONG *plRestrictValue);
+
+    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
+        IShellDispatch2* This,
+        BSTR File,
+        VARIANT vArgs,
+        VARIANT vDir,
+        VARIANT vOperation,
+        VARIANT vShow);
+
+    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
+        IShellDispatch2* This,
+        BSTR name,
+        BSTR location,
+        BSTR model);
+
+    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
+        IShellDispatch2* This,
+        BSTR name,
+        VARIANT *pv);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
+        IShellDispatch2* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
+        IShellDispatch2* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
+        IShellDispatch2* This,
+        BSTR ServiceName,
+        VARIANT *pRunning);
+
+    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
+        IShellDispatch2* This,
+        BSTR ServiceName,
+        VARIANT *pCanStartStop);
+
+    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
+        IShellDispatch2* This,
+        BSTR bstrClsid,
+        VARIANT bShow,
+        VARIANT *pSuccess);
+
     END_INTERFACE
-  } IShellDispatch2Vtbl;
-  struct IShellDispatch2 {
-    CONST_VTBL struct IShellDispatch2Vtbl *lpVtbl;
-  };
+} IShellDispatch2Vtbl;
+interface IShellDispatch2 {
+    CONST_VTBL IShellDispatch2Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellDispatch2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellDispatch2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellDispatch2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellDispatch2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellDispatch2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellDispatch2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellDispatch2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellDispatch methods ***/
 #define IShellDispatch2_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define IShellDispatch2_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define IShellDispatch2_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
@@ -1827,7 +5805,8 @@
 #define IShellDispatch2_FindFiles(This) (This)->lpVtbl->FindFiles(This)
 #define IShellDispatch2_FindComputer(This) (This)->lpVtbl->FindComputer(This)
 #define IShellDispatch2_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
-#define IShellDispatch2_ControlPanelItem(This,szDir) (This)->lpVtbl->ControlPanelItem(This,szDir)
+#define IShellDispatch2_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
+/*** IShellDispatch2 methods ***/
 #define IShellDispatch2_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
 #define IShellDispatch2_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
 #define IShellDispatch2_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
@@ -1837,92 +5816,451 @@
 #define IShellDispatch2_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
 #define IShellDispatch2_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
 #define IShellDispatch2_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellDispatch2_QueryInterface(IShellDispatch2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellDispatch2_AddRef(IShellDispatch2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellDispatch2_Release(IShellDispatch2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch2_GetTypeInfoCount(IShellDispatch2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellDispatch2_GetTypeInfo(IShellDispatch2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellDispatch2_GetIDsOfNames(IShellDispatch2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellDispatch2_Invoke(IShellDispatch2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch2_get_Application(IShellDispatch2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch2_get_Parent(IShellDispatch2* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch2_NameSpace(IShellDispatch2* This,VARIANT vDir,Folder **ppsdf) {
+    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch2_BrowseForFolder(IShellDispatch2* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
+    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch2_Windows(IShellDispatch2* This,IDispatch **ppid) {
+    return This->lpVtbl->Windows(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch2_Open(IShellDispatch2* This,VARIANT vDir) {
+    return This->lpVtbl->Open(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch2_Explore(IShellDispatch2* This,VARIANT vDir) {
+    return This->lpVtbl->Explore(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch2_MinimizeAll(IShellDispatch2* This) {
+    return This->lpVtbl->MinimizeAll(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_UndoMinimizeALL(IShellDispatch2* This) {
+    return This->lpVtbl->UndoMinimizeALL(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_FileRun(IShellDispatch2* This) {
+    return This->lpVtbl->FileRun(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_CascadeWindows(IShellDispatch2* This) {
+    return This->lpVtbl->CascadeWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_TileVertically(IShellDispatch2* This) {
+    return This->lpVtbl->TileVertically(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_TileHorizontally(IShellDispatch2* This) {
+    return This->lpVtbl->TileHorizontally(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_ShutdownWindows(IShellDispatch2* This) {
+    return This->lpVtbl->ShutdownWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_Suspend(IShellDispatch2* This) {
+    return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_EjectPC(IShellDispatch2* This) {
+    return This->lpVtbl->EjectPC(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_SetTime(IShellDispatch2* This) {
+    return This->lpVtbl->SetTime(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_TrayProperties(IShellDispatch2* This) {
+    return This->lpVtbl->TrayProperties(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_Help(IShellDispatch2* This) {
+    return This->lpVtbl->Help(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_FindFiles(IShellDispatch2* This) {
+    return This->lpVtbl->FindFiles(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_FindComputer(IShellDispatch2* This) {
+    return This->lpVtbl->FindComputer(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_RefreshMenu(IShellDispatch2* This) {
+    return This->lpVtbl->RefreshMenu(This);
+}
+static FORCEINLINE HRESULT IShellDispatch2_ControlPanelItem(IShellDispatch2* This,BSTR bstrDir) {
+    return This->lpVtbl->ControlPanelItem(This,bstrDir);
+}
+/*** IShellDispatch2 methods ***/
+static FORCEINLINE HRESULT IShellDispatch2_IsRestricted(IShellDispatch2* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
+    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
+}
+static FORCEINLINE HRESULT IShellDispatch2_ShellExecute(IShellDispatch2* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
+    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
+}
+static FORCEINLINE HRESULT IShellDispatch2_FindPrinter(IShellDispatch2* This,BSTR name,BSTR location,BSTR model) {
+    return This->lpVtbl->FindPrinter(This,name,location,model);
+}
+static FORCEINLINE HRESULT IShellDispatch2_GetSystemInformation(IShellDispatch2* This,BSTR name,VARIANT *pv) {
+    return This->lpVtbl->GetSystemInformation(This,name,pv);
+}
+static FORCEINLINE HRESULT IShellDispatch2_ServiceStart(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch2_ServiceStop(IShellDispatch2* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch2_IsServiceRunning(IShellDispatch2* This,BSTR ServiceName,VARIANT *pRunning) {
+    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
+}
+static FORCEINLINE HRESULT IShellDispatch2_CanStartStopService(IShellDispatch2* This,BSTR ServiceName,VARIANT *pCanStartStop) {
+    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
+}
+static FORCEINLINE HRESULT IShellDispatch2_ShowBrowserBar(IShellDispatch2* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
+    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
+}
 #endif
 #endif
-  HRESULT WINAPI IShellDispatch2_IsRestricted_Proxy(IShellDispatch2 *This,BSTR Group,BSTR Restriction,__LONG32 *plRestrictValue);
-  void __RPC_STUB IShellDispatch2_IsRestricted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_ShellExecute_Proxy(IShellDispatch2 *This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow);
-  void __RPC_STUB IShellDispatch2_ShellExecute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_FindPrinter_Proxy(IShellDispatch2 *This,BSTR name,BSTR location,BSTR model);
-  void __RPC_STUB IShellDispatch2_FindPrinter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_GetSystemInformation_Proxy(IShellDispatch2 *This,BSTR name,VARIANT *pv);
-  void __RPC_STUB IShellDispatch2_GetSystemInformation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_ServiceStart_Proxy(IShellDispatch2 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-  void __RPC_STUB IShellDispatch2_ServiceStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_ServiceStop_Proxy(IShellDispatch2 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-  void __RPC_STUB IShellDispatch2_ServiceStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_IsServiceRunning_Proxy(IShellDispatch2 *This,BSTR ServiceName,VARIANT *pRunning);
-  void __RPC_STUB IShellDispatch2_IsServiceRunning_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_CanStartStopService_Proxy(IShellDispatch2 *This,BSTR ServiceName,VARIANT *pCanStartStop);
-  void __RPC_STUB IShellDispatch2_CanStartStopService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch2_ShowBrowserBar_Proxy(IShellDispatch2 *This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess);
-  void __RPC_STUB IShellDispatch2_ShowBrowserBar_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellDispatch2_IsRestricted_Proxy(
+    IShellDispatch2* This,
+    BSTR Group,
+    BSTR Restriction,
+    LONG *plRestrictValue);
+void __RPC_STUB IShellDispatch2_IsRestricted_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_ShellExecute_Proxy(
+    IShellDispatch2* This,
+    BSTR File,
+    VARIANT vArgs,
+    VARIANT vDir,
+    VARIANT vOperation,
+    VARIANT vShow);
+void __RPC_STUB IShellDispatch2_ShellExecute_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_FindPrinter_Proxy(
+    IShellDispatch2* This,
+    BSTR name,
+    BSTR location,
+    BSTR model);
+void __RPC_STUB IShellDispatch2_FindPrinter_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_GetSystemInformation_Proxy(
+    IShellDispatch2* This,
+    BSTR name,
+    VARIANT *pv);
+void __RPC_STUB IShellDispatch2_GetSystemInformation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_ServiceStart_Proxy(
+    IShellDispatch2* This,
+    BSTR ServiceName,
+    VARIANT Persistent,
+    VARIANT *pSuccess);
+void __RPC_STUB IShellDispatch2_ServiceStart_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_ServiceStop_Proxy(
+    IShellDispatch2* This,
+    BSTR ServiceName,
+    VARIANT Persistent,
+    VARIANT *pSuccess);
+void __RPC_STUB IShellDispatch2_ServiceStop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_IsServiceRunning_Proxy(
+    IShellDispatch2* This,
+    BSTR ServiceName,
+    VARIANT *pRunning);
+void __RPC_STUB IShellDispatch2_IsServiceRunning_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_CanStartStopService_Proxy(
+    IShellDispatch2* This,
+    BSTR ServiceName,
+    VARIANT *pCanStartStop);
+void __RPC_STUB IShellDispatch2_CanStartStopService_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch2_ShowBrowserBar_Proxy(
+    IShellDispatch2* This,
+    BSTR bstrClsid,
+    VARIANT bShow,
+    VARIANT *pSuccess);
+void __RPC_STUB IShellDispatch2_ShowBrowserBar_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellDispatch2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellDispatch3 interface
+ */
 #ifndef __IShellDispatch3_INTERFACE_DEFINED__
 #define __IShellDispatch3_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellDispatch3;
+
+DEFINE_GUID(IID_IShellDispatch3, 0x177160ca, 0xbb5a, 0x411c, 0x84,0x1d, 0xbd,0x38,0xfa,0xcd,0xea,0xa0);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellDispatch3 : public IShellDispatch2 {
-  public:
-    virtual HRESULT WINAPI AddToRecent(VARIANT varFile,BSTR bstrCategory) = 0;
-  };
+MIDL_INTERFACE("177160ca-bb5a-411c-841d-bd38facdeaa0")
+IShellDispatch3 : public IShellDispatch2
+{
+    virtual HRESULT STDMETHODCALLTYPE AddToRecent(
+        VARIANT varFile,
+        BSTR bstrCategory) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellDispatch3, 0x177160ca, 0xbb5a, 0x411c, 0x84,0x1d, 0xbd,0x38,0xfa,0xcd,0xea,0xa0)
+#endif
 #else
-  typedef struct IShellDispatch3Vtbl {
+typedef struct IShellDispatch3Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellDispatch3 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellDispatch3 *This);
-      ULONG (WINAPI *Release)(IShellDispatch3 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellDispatch3 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellDispatch3 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellDispatch3 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellDispatch3 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(IShellDispatch3 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(IShellDispatch3 *This,IDispatch **ppid);
-      HRESULT (WINAPI *NameSpace)(IShellDispatch3 *This,VARIANT vDir,Folder **ppsdf);
-      HRESULT (WINAPI *BrowseForFolder)(IShellDispatch3 *This,__LONG32 Hwnd,BSTR Title,__LONG32 Options,VARIANT RootFolder,Folder **ppsdf);
-      HRESULT (WINAPI *Windows)(IShellDispatch3 *This,IDispatch **ppid);
-      HRESULT (WINAPI *Open)(IShellDispatch3 *This,VARIANT vDir);
-      HRESULT (WINAPI *Explore)(IShellDispatch3 *This,VARIANT vDir);
-      HRESULT (WINAPI *MinimizeAll)(IShellDispatch3 *This);
-      HRESULT (WINAPI *UndoMinimizeALL)(IShellDispatch3 *This);
-      HRESULT (WINAPI *FileRun)(IShellDispatch3 *This);
-      HRESULT (WINAPI *CascadeWindows)(IShellDispatch3 *This);
-      HRESULT (WINAPI *TileVertically)(IShellDispatch3 *This);
-      HRESULT (WINAPI *TileHorizontally)(IShellDispatch3 *This);
-      HRESULT (WINAPI *ShutdownWindows)(IShellDispatch3 *This);
-      HRESULT (WINAPI *Suspend)(IShellDispatch3 *This);
-      HRESULT (WINAPI *EjectPC)(IShellDispatch3 *This);
-      HRESULT (WINAPI *SetTime)(IShellDispatch3 *This);
-      HRESULT (WINAPI *TrayProperties)(IShellDispatch3 *This);
-      HRESULT (WINAPI *Help)(IShellDispatch3 *This);
-      HRESULT (WINAPI *FindFiles)(IShellDispatch3 *This);
-      HRESULT (WINAPI *FindComputer)(IShellDispatch3 *This);
-      HRESULT (WINAPI *RefreshMenu)(IShellDispatch3 *This);
-      HRESULT (WINAPI *ControlPanelItem)(IShellDispatch3 *This,BSTR szDir);
-      HRESULT (WINAPI *IsRestricted)(IShellDispatch3 *This,BSTR Group,BSTR Restriction,__LONG32 *plRestrictValue);
-      HRESULT (WINAPI *ShellExecute)(IShellDispatch3 *This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow);
-      HRESULT (WINAPI *FindPrinter)(IShellDispatch3 *This,BSTR name,BSTR location,BSTR model);
-      HRESULT (WINAPI *GetSystemInformation)(IShellDispatch3 *This,BSTR name,VARIANT *pv);
-      HRESULT (WINAPI *ServiceStart)(IShellDispatch3 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-      HRESULT (WINAPI *ServiceStop)(IShellDispatch3 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-      HRESULT (WINAPI *IsServiceRunning)(IShellDispatch3 *This,BSTR ServiceName,VARIANT *pRunning);
-      HRESULT (WINAPI *CanStartStopService)(IShellDispatch3 *This,BSTR ServiceName,VARIANT *pCanStartStop);
-      HRESULT (WINAPI *ShowBrowserBar)(IShellDispatch3 *This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess);
-      HRESULT (WINAPI *AddToRecent)(IShellDispatch3 *This,VARIANT varFile,BSTR bstrCategory);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellDispatch3* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellDispatch3* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellDispatch3* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellDispatch3* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellDispatch3* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellDispatch3* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellDispatch3* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellDispatch3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellDispatch3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NameSpace)(
+        IShellDispatch3* This,
+        VARIANT vDir,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
+        IShellDispatch3* This,
+        LONG Hwnd,
+        BSTR Title,
+        LONG Options,
+        VARIANT RootFolder,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *Windows)(
+        IShellDispatch3* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IShellDispatch3* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *Explore)(
+        IShellDispatch3* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *FileRun)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileVertically)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *EjectPC)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTime)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *Help)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindFiles)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindComputer)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
+        IShellDispatch3* This);
+
+    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
+        IShellDispatch3* This,
+        BSTR bstrDir);
+
+    /*** IShellDispatch2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
+        IShellDispatch3* This,
+        BSTR Group,
+        BSTR Restriction,
+        LONG *plRestrictValue);
+
+    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
+        IShellDispatch3* This,
+        BSTR File,
+        VARIANT vArgs,
+        VARIANT vDir,
+        VARIANT vOperation,
+        VARIANT vShow);
+
+    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
+        IShellDispatch3* This,
+        BSTR name,
+        BSTR location,
+        BSTR model);
+
+    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
+        IShellDispatch3* This,
+        BSTR name,
+        VARIANT *pv);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
+        IShellDispatch3* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
+        IShellDispatch3* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
+        IShellDispatch3* This,
+        BSTR ServiceName,
+        VARIANT *pRunning);
+
+    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
+        IShellDispatch3* This,
+        BSTR ServiceName,
+        VARIANT *pCanStartStop);
+
+    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
+        IShellDispatch3* This,
+        BSTR bstrClsid,
+        VARIANT bShow,
+        VARIANT *pSuccess);
+
+    /*** IShellDispatch3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
+        IShellDispatch3* This,
+        VARIANT varFile,
+        BSTR bstrCategory);
+
     END_INTERFACE
-  } IShellDispatch3Vtbl;
-  struct IShellDispatch3 {
-    CONST_VTBL struct IShellDispatch3Vtbl *lpVtbl;
-  };
+} IShellDispatch3Vtbl;
+interface IShellDispatch3 {
+    CONST_VTBL IShellDispatch3Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellDispatch3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellDispatch3_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellDispatch3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellDispatch3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellDispatch3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellDispatch3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellDispatch3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellDispatch methods ***/
 #define IShellDispatch3_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define IShellDispatch3_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define IShellDispatch3_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
@@ -1945,7 +6283,8 @@
 #define IShellDispatch3_FindFiles(This) (This)->lpVtbl->FindFiles(This)
 #define IShellDispatch3_FindComputer(This) (This)->lpVtbl->FindComputer(This)
 #define IShellDispatch3_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
-#define IShellDispatch3_ControlPanelItem(This,szDir) (This)->lpVtbl->ControlPanelItem(This,szDir)
+#define IShellDispatch3_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
+/*** IShellDispatch2 methods ***/
 #define IShellDispatch3_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
 #define IShellDispatch3_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
 #define IShellDispatch3_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
@@ -1955,84 +6294,404 @@
 #define IShellDispatch3_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
 #define IShellDispatch3_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
 #define IShellDispatch3_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
+/*** IShellDispatch3 methods ***/
 #define IShellDispatch3_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellDispatch3_QueryInterface(IShellDispatch3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellDispatch3_AddRef(IShellDispatch3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellDispatch3_Release(IShellDispatch3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch3_GetTypeInfoCount(IShellDispatch3* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellDispatch3_GetTypeInfo(IShellDispatch3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellDispatch3_GetIDsOfNames(IShellDispatch3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellDispatch3_Invoke(IShellDispatch3* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch3_get_Application(IShellDispatch3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch3_get_Parent(IShellDispatch3* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch3_NameSpace(IShellDispatch3* This,VARIANT vDir,Folder **ppsdf) {
+    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch3_BrowseForFolder(IShellDispatch3* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
+    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch3_Windows(IShellDispatch3* This,IDispatch **ppid) {
+    return This->lpVtbl->Windows(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch3_Open(IShellDispatch3* This,VARIANT vDir) {
+    return This->lpVtbl->Open(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch3_Explore(IShellDispatch3* This,VARIANT vDir) {
+    return This->lpVtbl->Explore(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch3_MinimizeAll(IShellDispatch3* This) {
+    return This->lpVtbl->MinimizeAll(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_UndoMinimizeALL(IShellDispatch3* This) {
+    return This->lpVtbl->UndoMinimizeALL(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_FileRun(IShellDispatch3* This) {
+    return This->lpVtbl->FileRun(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_CascadeWindows(IShellDispatch3* This) {
+    return This->lpVtbl->CascadeWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_TileVertically(IShellDispatch3* This) {
+    return This->lpVtbl->TileVertically(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_TileHorizontally(IShellDispatch3* This) {
+    return This->lpVtbl->TileHorizontally(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_ShutdownWindows(IShellDispatch3* This) {
+    return This->lpVtbl->ShutdownWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_Suspend(IShellDispatch3* This) {
+    return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_EjectPC(IShellDispatch3* This) {
+    return This->lpVtbl->EjectPC(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_SetTime(IShellDispatch3* This) {
+    return This->lpVtbl->SetTime(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_TrayProperties(IShellDispatch3* This) {
+    return This->lpVtbl->TrayProperties(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_Help(IShellDispatch3* This) {
+    return This->lpVtbl->Help(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_FindFiles(IShellDispatch3* This) {
+    return This->lpVtbl->FindFiles(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_FindComputer(IShellDispatch3* This) {
+    return This->lpVtbl->FindComputer(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_RefreshMenu(IShellDispatch3* This) {
+    return This->lpVtbl->RefreshMenu(This);
+}
+static FORCEINLINE HRESULT IShellDispatch3_ControlPanelItem(IShellDispatch3* This,BSTR bstrDir) {
+    return This->lpVtbl->ControlPanelItem(This,bstrDir);
+}
+/*** IShellDispatch2 methods ***/
+static FORCEINLINE HRESULT IShellDispatch3_IsRestricted(IShellDispatch3* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
+    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
+}
+static FORCEINLINE HRESULT IShellDispatch3_ShellExecute(IShellDispatch3* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
+    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
+}
+static FORCEINLINE HRESULT IShellDispatch3_FindPrinter(IShellDispatch3* This,BSTR name,BSTR location,BSTR model) {
+    return This->lpVtbl->FindPrinter(This,name,location,model);
+}
+static FORCEINLINE HRESULT IShellDispatch3_GetSystemInformation(IShellDispatch3* This,BSTR name,VARIANT *pv) {
+    return This->lpVtbl->GetSystemInformation(This,name,pv);
+}
+static FORCEINLINE HRESULT IShellDispatch3_ServiceStart(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch3_ServiceStop(IShellDispatch3* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch3_IsServiceRunning(IShellDispatch3* This,BSTR ServiceName,VARIANT *pRunning) {
+    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
+}
+static FORCEINLINE HRESULT IShellDispatch3_CanStartStopService(IShellDispatch3* This,BSTR ServiceName,VARIANT *pCanStartStop) {
+    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
+}
+static FORCEINLINE HRESULT IShellDispatch3_ShowBrowserBar(IShellDispatch3* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
+    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
+}
+/*** IShellDispatch3 methods ***/
+static FORCEINLINE HRESULT IShellDispatch3_AddToRecent(IShellDispatch3* This,VARIANT varFile,BSTR bstrCategory) {
+    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
+}
 #endif
 #endif
-  HRESULT WINAPI IShellDispatch3_AddToRecent_Proxy(IShellDispatch3 *This,VARIANT varFile,BSTR bstrCategory);
-  void __RPC_STUB IShellDispatch3_AddToRecent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellDispatch3_AddToRecent_Proxy(
+    IShellDispatch3* This,
+    VARIANT varFile,
+    BSTR bstrCategory);
+void __RPC_STUB IShellDispatch3_AddToRecent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellDispatch3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellDispatch4 interface
+ */
 #ifndef __IShellDispatch4_INTERFACE_DEFINED__
 #define __IShellDispatch4_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IShellDispatch4;
+
+DEFINE_GUID(IID_IShellDispatch4, 0xefd84b2d, 0x4bcf, 0x4298, 0xbe,0x25, 0xeb,0x54,0x2a,0x59,0xfb,0xda);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IShellDispatch4 : public IShellDispatch3 {
-  public:
-    virtual HRESULT WINAPI WindowsSecurity(void) = 0;
-    virtual HRESULT WINAPI ToggleDesktop(void) = 0;
-    virtual HRESULT WINAPI ExplorerPolicy(BSTR bstrPolicyName,VARIANT *pValue) = 0;
-    virtual HRESULT WINAPI GetSetting(__LONG32 lSetting,VARIANT_BOOL *pResult) = 0;
-  };
+MIDL_INTERFACE("efd84b2d-4bcf-4298-be25-eb542a59fbda")
+IShellDispatch4 : public IShellDispatch3
+{
+    virtual HRESULT STDMETHODCALLTYPE WindowsSecurity(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ToggleDesktop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ExplorerPolicy(
+        BSTR bstrPolicyName,
+        VARIANT *pValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSetting(
+        LONG lSetting,
+        VARIANT_BOOL *pResult) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellDispatch4, 0xefd84b2d, 0x4bcf, 0x4298, 0xbe,0x25, 0xeb,0x54,0x2a,0x59,0xfb,0xda)
+#endif
 #else
-  typedef struct IShellDispatch4Vtbl {
+typedef struct IShellDispatch4Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IShellDispatch4 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IShellDispatch4 *This);
-      ULONG (WINAPI *Release)(IShellDispatch4 *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IShellDispatch4 *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IShellDispatch4 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IShellDispatch4 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IShellDispatch4 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *get_Application)(IShellDispatch4 *This,IDispatch **ppid);
-      HRESULT (WINAPI *get_Parent)(IShellDispatch4 *This,IDispatch **ppid);
-      HRESULT (WINAPI *NameSpace)(IShellDispatch4 *This,VARIANT vDir,Folder **ppsdf);
-      HRESULT (WINAPI *BrowseForFolder)(IShellDispatch4 *This,__LONG32 Hwnd,BSTR Title,__LONG32 Options,VARIANT RootFolder,Folder **ppsdf);
-      HRESULT (WINAPI *Windows)(IShellDispatch4 *This,IDispatch **ppid);
-      HRESULT (WINAPI *Open)(IShellDispatch4 *This,VARIANT vDir);
-      HRESULT (WINAPI *Explore)(IShellDispatch4 *This,VARIANT vDir);
-      HRESULT (WINAPI *MinimizeAll)(IShellDispatch4 *This);
-      HRESULT (WINAPI *UndoMinimizeALL)(IShellDispatch4 *This);
-      HRESULT (WINAPI *FileRun)(IShellDispatch4 *This);
-      HRESULT (WINAPI *CascadeWindows)(IShellDispatch4 *This);
-      HRESULT (WINAPI *TileVertically)(IShellDispatch4 *This);
-      HRESULT (WINAPI *TileHorizontally)(IShellDispatch4 *This);
-      HRESULT (WINAPI *ShutdownWindows)(IShellDispatch4 *This);
-      HRESULT (WINAPI *Suspend)(IShellDispatch4 *This);
-      HRESULT (WINAPI *EjectPC)(IShellDispatch4 *This);
-      HRESULT (WINAPI *SetTime)(IShellDispatch4 *This);
-      HRESULT (WINAPI *TrayProperties)(IShellDispatch4 *This);
-      HRESULT (WINAPI *Help)(IShellDispatch4 *This);
-      HRESULT (WINAPI *FindFiles)(IShellDispatch4 *This);
-      HRESULT (WINAPI *FindComputer)(IShellDispatch4 *This);
-      HRESULT (WINAPI *RefreshMenu)(IShellDispatch4 *This);
-      HRESULT (WINAPI *ControlPanelItem)(IShellDispatch4 *This,BSTR szDir);
-      HRESULT (WINAPI *IsRestricted)(IShellDispatch4 *This,BSTR Group,BSTR Restriction,__LONG32 *plRestrictValue);
-      HRESULT (WINAPI *ShellExecute)(IShellDispatch4 *This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow);
-      HRESULT (WINAPI *FindPrinter)(IShellDispatch4 *This,BSTR name,BSTR location,BSTR model);
-      HRESULT (WINAPI *GetSystemInformation)(IShellDispatch4 *This,BSTR name,VARIANT *pv);
-      HRESULT (WINAPI *ServiceStart)(IShellDispatch4 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-      HRESULT (WINAPI *ServiceStop)(IShellDispatch4 *This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess);
-      HRESULT (WINAPI *IsServiceRunning)(IShellDispatch4 *This,BSTR ServiceName,VARIANT *pRunning);
-      HRESULT (WINAPI *CanStartStopService)(IShellDispatch4 *This,BSTR ServiceName,VARIANT *pCanStartStop);
-      HRESULT (WINAPI *ShowBrowserBar)(IShellDispatch4 *This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess);
-      HRESULT (WINAPI *AddToRecent)(IShellDispatch4 *This,VARIANT varFile,BSTR bstrCategory);
-      HRESULT (WINAPI *WindowsSecurity)(IShellDispatch4 *This);
-      HRESULT (WINAPI *ToggleDesktop)(IShellDispatch4 *This);
-      HRESULT (WINAPI *ExplorerPolicy)(IShellDispatch4 *This,BSTR bstrPolicyName,VARIANT *pValue);
-      HRESULT (WINAPI *GetSetting)(IShellDispatch4 *This,__LONG32 lSetting,VARIANT_BOOL *pResult);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellDispatch4* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellDispatch4* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellDispatch4* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellDispatch4* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellDispatch4* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellDispatch4* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellDispatch4* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellDispatch4* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellDispatch4* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NameSpace)(
+        IShellDispatch4* This,
+        VARIANT vDir,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
+        IShellDispatch4* This,
+        LONG Hwnd,
+        BSTR Title,
+        LONG Options,
+        VARIANT RootFolder,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *Windows)(
+        IShellDispatch4* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IShellDispatch4* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *Explore)(
+        IShellDispatch4* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *FileRun)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileVertically)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *EjectPC)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTime)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *Help)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindFiles)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindComputer)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
+        IShellDispatch4* This,
+        BSTR bstrDir);
+
+    /*** IShellDispatch2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
+        IShellDispatch4* This,
+        BSTR Group,
+        BSTR Restriction,
+        LONG *plRestrictValue);
+
+    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
+        IShellDispatch4* This,
+        BSTR File,
+        VARIANT vArgs,
+        VARIANT vDir,
+        VARIANT vOperation,
+        VARIANT vShow);
+
+    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
+        IShellDispatch4* This,
+        BSTR name,
+        BSTR location,
+        BSTR model);
+
+    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
+        IShellDispatch4* This,
+        BSTR name,
+        VARIANT *pv);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
+        IShellDispatch4* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
+        IShellDispatch4* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
+        IShellDispatch4* This,
+        BSTR ServiceName,
+        VARIANT *pRunning);
+
+    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
+        IShellDispatch4* This,
+        BSTR ServiceName,
+        VARIANT *pCanStartStop);
+
+    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
+        IShellDispatch4* This,
+        BSTR bstrClsid,
+        VARIANT bShow,
+        VARIANT *pSuccess);
+
+    /*** IShellDispatch3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
+        IShellDispatch4* This,
+        VARIANT varFile,
+        BSTR bstrCategory);
+
+    /*** IShellDispatch4 methods ***/
+    HRESULT (STDMETHODCALLTYPE *WindowsSecurity)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *ToggleDesktop)(
+        IShellDispatch4* This);
+
+    HRESULT (STDMETHODCALLTYPE *ExplorerPolicy)(
+        IShellDispatch4* This,
+        BSTR bstrPolicyName,
+        VARIANT *pValue);
+
+    HRESULT (STDMETHODCALLTYPE *GetSetting)(
+        IShellDispatch4* This,
+        LONG lSetting,
+        VARIANT_BOOL *pResult);
+
     END_INTERFACE
-  } IShellDispatch4Vtbl;
-  struct IShellDispatch4 {
-    CONST_VTBL struct IShellDispatch4Vtbl *lpVtbl;
-  };
+} IShellDispatch4Vtbl;
+interface IShellDispatch4 {
+    CONST_VTBL IShellDispatch4Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IShellDispatch4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IShellDispatch4_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IShellDispatch4_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IShellDispatch4_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IShellDispatch4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IShellDispatch4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IShellDispatch4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellDispatch methods ***/
 #define IShellDispatch4_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
 #define IShellDispatch4_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
 #define IShellDispatch4_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
@@ -2055,7 +6714,8 @@
 #define IShellDispatch4_FindFiles(This) (This)->lpVtbl->FindFiles(This)
 #define IShellDispatch4_FindComputer(This) (This)->lpVtbl->FindComputer(This)
 #define IShellDispatch4_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
-#define IShellDispatch4_ControlPanelItem(This,szDir) (This)->lpVtbl->ControlPanelItem(This,szDir)
+#define IShellDispatch4_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
+/*** IShellDispatch2 methods ***/
 #define IShellDispatch4_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
 #define IShellDispatch4_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
 #define IShellDispatch4_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
@@ -2065,186 +6725,1540 @@
 #define IShellDispatch4_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
 #define IShellDispatch4_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
 #define IShellDispatch4_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
+/*** IShellDispatch3 methods ***/
 #define IShellDispatch4_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
+/*** IShellDispatch4 methods ***/
 #define IShellDispatch4_WindowsSecurity(This) (This)->lpVtbl->WindowsSecurity(This)
 #define IShellDispatch4_ToggleDesktop(This) (This)->lpVtbl->ToggleDesktop(This)
 #define IShellDispatch4_ExplorerPolicy(This,bstrPolicyName,pValue) (This)->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue)
 #define IShellDispatch4_GetSetting(This,lSetting,pResult) (This)->lpVtbl->GetSetting(This,lSetting,pResult)
-#endif
-#endif
-  HRESULT WINAPI IShellDispatch4_WindowsSecurity_Proxy(IShellDispatch4 *This);
-  void __RPC_STUB IShellDispatch4_WindowsSecurity_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch4_ToggleDesktop_Proxy(IShellDispatch4 *This);
-  void __RPC_STUB IShellDispatch4_ToggleDesktop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch4_ExplorerPolicy_Proxy(IShellDispatch4 *This,BSTR bstrPolicyName,VARIANT *pValue);
-  void __RPC_STUB IShellDispatch4_ExplorerPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IShellDispatch4_GetSetting_Proxy(IShellDispatch4 *This,__LONG32 lSetting,VARIANT_BOOL *pResult);
-  void __RPC_STUB IShellDispatch4_GetSetting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  EXTERN_C const CLSID CLSID_Shell;
-#ifdef __cplusplus
-  class Shell;
-#endif
-  EXTERN_C const CLSID CLSID_ShellDispatchInproc;
-#ifdef __cplusplus
-  class ShellDispatchInproc;
-#endif
-  EXTERN_C const CLSID CLSID_WebViewFolderContents;
-#ifdef __cplusplus
-  class WebViewFolderContents;
-#endif
-
-#ifndef __DSearchCommandEvents_DISPINTERFACE_DEFINED__
-#define __DSearchCommandEvents_DISPINTERFACE_DEFINED__
-  EXTERN_C const IID DIID_DSearchCommandEvents;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct DSearchCommandEvents : public IDispatch {
-  };
 #else
-  typedef struct DSearchCommandEventsVtbl {
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellDispatch4_QueryInterface(IShellDispatch4* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellDispatch4_AddRef(IShellDispatch4* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellDispatch4_Release(IShellDispatch4* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch4_GetTypeInfoCount(IShellDispatch4* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellDispatch4_GetTypeInfo(IShellDispatch4* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellDispatch4_GetIDsOfNames(IShellDispatch4* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellDispatch4_Invoke(IShellDispatch4* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch4_get_Application(IShellDispatch4* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch4_get_Parent(IShellDispatch4* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch4_NameSpace(IShellDispatch4* This,VARIANT vDir,Folder **ppsdf) {
+    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch4_BrowseForFolder(IShellDispatch4* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
+    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch4_Windows(IShellDispatch4* This,IDispatch **ppid) {
+    return This->lpVtbl->Windows(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch4_Open(IShellDispatch4* This,VARIANT vDir) {
+    return This->lpVtbl->Open(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch4_Explore(IShellDispatch4* This,VARIANT vDir) {
+    return This->lpVtbl->Explore(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch4_MinimizeAll(IShellDispatch4* This) {
+    return This->lpVtbl->MinimizeAll(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_UndoMinimizeALL(IShellDispatch4* This) {
+    return This->lpVtbl->UndoMinimizeALL(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_FileRun(IShellDispatch4* This) {
+    return This->lpVtbl->FileRun(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_CascadeWindows(IShellDispatch4* This) {
+    return This->lpVtbl->CascadeWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_TileVertically(IShellDispatch4* This) {
+    return This->lpVtbl->TileVertically(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_TileHorizontally(IShellDispatch4* This) {
+    return This->lpVtbl->TileHorizontally(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ShutdownWindows(IShellDispatch4* This) {
+    return This->lpVtbl->ShutdownWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_Suspend(IShellDispatch4* This) {
+    return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_EjectPC(IShellDispatch4* This) {
+    return This->lpVtbl->EjectPC(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_SetTime(IShellDispatch4* This) {
+    return This->lpVtbl->SetTime(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_TrayProperties(IShellDispatch4* This) {
+    return This->lpVtbl->TrayProperties(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_Help(IShellDispatch4* This) {
+    return This->lpVtbl->Help(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_FindFiles(IShellDispatch4* This) {
+    return This->lpVtbl->FindFiles(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_FindComputer(IShellDispatch4* This) {
+    return This->lpVtbl->FindComputer(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_RefreshMenu(IShellDispatch4* This) {
+    return This->lpVtbl->RefreshMenu(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ControlPanelItem(IShellDispatch4* This,BSTR bstrDir) {
+    return This->lpVtbl->ControlPanelItem(This,bstrDir);
+}
+/*** IShellDispatch2 methods ***/
+static FORCEINLINE HRESULT IShellDispatch4_IsRestricted(IShellDispatch4* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
+    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ShellExecute(IShellDispatch4* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
+    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
+}
+static FORCEINLINE HRESULT IShellDispatch4_FindPrinter(IShellDispatch4* This,BSTR name,BSTR location,BSTR model) {
+    return This->lpVtbl->FindPrinter(This,name,location,model);
+}
+static FORCEINLINE HRESULT IShellDispatch4_GetSystemInformation(IShellDispatch4* This,BSTR name,VARIANT *pv) {
+    return This->lpVtbl->GetSystemInformation(This,name,pv);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ServiceStart(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ServiceStop(IShellDispatch4* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch4_IsServiceRunning(IShellDispatch4* This,BSTR ServiceName,VARIANT *pRunning) {
+    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
+}
+static FORCEINLINE HRESULT IShellDispatch4_CanStartStopService(IShellDispatch4* This,BSTR ServiceName,VARIANT *pCanStartStop) {
+    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ShowBrowserBar(IShellDispatch4* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
+    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
+}
+/*** IShellDispatch3 methods ***/
+static FORCEINLINE HRESULT IShellDispatch4_AddToRecent(IShellDispatch4* This,VARIANT varFile,BSTR bstrCategory) {
+    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
+}
+/*** IShellDispatch4 methods ***/
+static FORCEINLINE HRESULT IShellDispatch4_WindowsSecurity(IShellDispatch4* This) {
+    return This->lpVtbl->WindowsSecurity(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ToggleDesktop(IShellDispatch4* This) {
+    return This->lpVtbl->ToggleDesktop(This);
+}
+static FORCEINLINE HRESULT IShellDispatch4_ExplorerPolicy(IShellDispatch4* This,BSTR bstrPolicyName,VARIANT *pValue) {
+    return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
+}
+static FORCEINLINE HRESULT IShellDispatch4_GetSetting(IShellDispatch4* This,LONG lSetting,VARIANT_BOOL *pResult) {
+    return This->lpVtbl->GetSetting(This,lSetting,pResult);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellDispatch4_WindowsSecurity_Proxy(
+    IShellDispatch4* This);
+void __RPC_STUB IShellDispatch4_WindowsSecurity_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch4_ToggleDesktop_Proxy(
+    IShellDispatch4* This);
+void __RPC_STUB IShellDispatch4_ToggleDesktop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch4_ExplorerPolicy_Proxy(
+    IShellDispatch4* This,
+    BSTR bstrPolicyName,
+    VARIANT *pValue);
+void __RPC_STUB IShellDispatch4_ExplorerPolicy_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IShellDispatch4_GetSetting_Proxy(
+    IShellDispatch4* This,
+    LONG lSetting,
+    VARIANT_BOOL *pResult);
+void __RPC_STUB IShellDispatch4_GetSetting_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellDispatch4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IShellDispatch5 interface
+ */
+#ifndef __IShellDispatch5_INTERFACE_DEFINED__
+#define __IShellDispatch5_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IShellDispatch5, 0x866738b9, 0x6cf2, 0x4de8, 0x87,0x67, 0xf7,0x94,0xeb,0xe7,0x4f,0x4e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("866738b9-6cf2-4de8-8767-f794ebe74f4e")
+IShellDispatch5 : public IShellDispatch4
+{
+    virtual HRESULT STDMETHODCALLTYPE WindowSwitcher(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellDispatch5, 0x866738b9, 0x6cf2, 0x4de8, 0x87,0x67, 0xf7,0x94,0xeb,0xe7,0x4f,0x4e)
+#endif
+#else
+typedef struct IShellDispatch5Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(DSearchCommandEvents *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(DSearchCommandEvents *This);
-      ULONG (WINAPI *Release)(DSearchCommandEvents *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(DSearchCommandEvents *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(DSearchCommandEvents *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(DSearchCommandEvents *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(DSearchCommandEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellDispatch5* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellDispatch5* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellDispatch5* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellDispatch5* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellDispatch5* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellDispatch5* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellDispatch5* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellDispatch5* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellDispatch5* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NameSpace)(
+        IShellDispatch5* This,
+        VARIANT vDir,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
+        IShellDispatch5* This,
+        LONG Hwnd,
+        BSTR Title,
+        LONG Options,
+        VARIANT RootFolder,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *Windows)(
+        IShellDispatch5* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IShellDispatch5* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *Explore)(
+        IShellDispatch5* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *FileRun)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileVertically)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *EjectPC)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTime)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *Help)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindFiles)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindComputer)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
+        IShellDispatch5* This,
+        BSTR bstrDir);
+
+    /*** IShellDispatch2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
+        IShellDispatch5* This,
+        BSTR Group,
+        BSTR Restriction,
+        LONG *plRestrictValue);
+
+    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
+        IShellDispatch5* This,
+        BSTR File,
+        VARIANT vArgs,
+        VARIANT vDir,
+        VARIANT vOperation,
+        VARIANT vShow);
+
+    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
+        IShellDispatch5* This,
+        BSTR name,
+        BSTR location,
+        BSTR model);
+
+    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
+        IShellDispatch5* This,
+        BSTR name,
+        VARIANT *pv);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
+        IShellDispatch5* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
+        IShellDispatch5* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
+        IShellDispatch5* This,
+        BSTR ServiceName,
+        VARIANT *pRunning);
+
+    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
+        IShellDispatch5* This,
+        BSTR ServiceName,
+        VARIANT *pCanStartStop);
+
+    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
+        IShellDispatch5* This,
+        BSTR bstrClsid,
+        VARIANT bShow,
+        VARIANT *pSuccess);
+
+    /*** IShellDispatch3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
+        IShellDispatch5* This,
+        VARIANT varFile,
+        BSTR bstrCategory);
+
+    /*** IShellDispatch4 methods ***/
+    HRESULT (STDMETHODCALLTYPE *WindowsSecurity)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *ToggleDesktop)(
+        IShellDispatch5* This);
+
+    HRESULT (STDMETHODCALLTYPE *ExplorerPolicy)(
+        IShellDispatch5* This,
+        BSTR bstrPolicyName,
+        VARIANT *pValue);
+
+    HRESULT (STDMETHODCALLTYPE *GetSetting)(
+        IShellDispatch5* This,
+        LONG lSetting,
+        VARIANT_BOOL *pResult);
+
+    /*** IShellDispatch5 methods ***/
+    HRESULT (STDMETHODCALLTYPE *WindowSwitcher)(
+        IShellDispatch5* This);
+
     END_INTERFACE
-  } DSearchCommandEventsVtbl;
-  struct DSearchCommandEvents {
-    CONST_VTBL struct DSearchCommandEventsVtbl *lpVtbl;
-  };
+} IShellDispatch5Vtbl;
+interface IShellDispatch5 {
+    CONST_VTBL IShellDispatch5Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
-#define DSearchCommandEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define DSearchCommandEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define DSearchCommandEvents_Release(This) (This)->lpVtbl->Release(This)
-#define DSearchCommandEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define DSearchCommandEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define DSearchCommandEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define DSearchCommandEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#endif
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IShellDispatch5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IShellDispatch5_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IShellDispatch5_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IShellDispatch5_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IShellDispatch5_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IShellDispatch5_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IShellDispatch5_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellDispatch methods ***/
+#define IShellDispatch5_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define IShellDispatch5_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define IShellDispatch5_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
+#define IShellDispatch5_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
+#define IShellDispatch5_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
+#define IShellDispatch5_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
+#define IShellDispatch5_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
+#define IShellDispatch5_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
+#define IShellDispatch5_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
+#define IShellDispatch5_FileRun(This) (This)->lpVtbl->FileRun(This)
+#define IShellDispatch5_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
+#define IShellDispatch5_TileVertically(This) (This)->lpVtbl->TileVertically(This)
+#define IShellDispatch5_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
+#define IShellDispatch5_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
+#define IShellDispatch5_Suspend(This) (This)->lpVtbl->Suspend(This)
+#define IShellDispatch5_EjectPC(This) (This)->lpVtbl->EjectPC(This)
+#define IShellDispatch5_SetTime(This) (This)->lpVtbl->SetTime(This)
+#define IShellDispatch5_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
+#define IShellDispatch5_Help(This) (This)->lpVtbl->Help(This)
+#define IShellDispatch5_FindFiles(This) (This)->lpVtbl->FindFiles(This)
+#define IShellDispatch5_FindComputer(This) (This)->lpVtbl->FindComputer(This)
+#define IShellDispatch5_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
+#define IShellDispatch5_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
+/*** IShellDispatch2 methods ***/
+#define IShellDispatch5_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
+#define IShellDispatch5_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
+#define IShellDispatch5_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
+#define IShellDispatch5_GetSystemInformation(This,name,pv) (This)->lpVtbl->GetSystemInformation(This,name,pv)
+#define IShellDispatch5_ServiceStart(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess)
+#define IShellDispatch5_ServiceStop(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess)
+#define IShellDispatch5_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
+#define IShellDispatch5_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
+#define IShellDispatch5_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
+/*** IShellDispatch3 methods ***/
+#define IShellDispatch5_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
+/*** IShellDispatch4 methods ***/
+#define IShellDispatch5_WindowsSecurity(This) (This)->lpVtbl->WindowsSecurity(This)
+#define IShellDispatch5_ToggleDesktop(This) (This)->lpVtbl->ToggleDesktop(This)
+#define IShellDispatch5_ExplorerPolicy(This,bstrPolicyName,pValue) (This)->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue)
+#define IShellDispatch5_GetSetting(This,lSetting,pResult) (This)->lpVtbl->GetSetting(This,lSetting,pResult)
+/*** IShellDispatch5 methods ***/
+#define IShellDispatch5_WindowSwitcher(This) (This)->lpVtbl->WindowSwitcher(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellDispatch5_QueryInterface(IShellDispatch5* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellDispatch5_AddRef(IShellDispatch5* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellDispatch5_Release(IShellDispatch5* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch5_GetTypeInfoCount(IShellDispatch5* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellDispatch5_GetTypeInfo(IShellDispatch5* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellDispatch5_GetIDsOfNames(IShellDispatch5* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellDispatch5_Invoke(IShellDispatch5* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch5_get_Application(IShellDispatch5* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch5_get_Parent(IShellDispatch5* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch5_NameSpace(IShellDispatch5* This,VARIANT vDir,Folder **ppsdf) {
+    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch5_BrowseForFolder(IShellDispatch5* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
+    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch5_Windows(IShellDispatch5* This,IDispatch **ppid) {
+    return This->lpVtbl->Windows(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch5_Open(IShellDispatch5* This,VARIANT vDir) {
+    return This->lpVtbl->Open(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch5_Explore(IShellDispatch5* This,VARIANT vDir) {
+    return This->lpVtbl->Explore(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch5_MinimizeAll(IShellDispatch5* This) {
+    return This->lpVtbl->MinimizeAll(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_UndoMinimizeALL(IShellDispatch5* This) {
+    return This->lpVtbl->UndoMinimizeALL(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_FileRun(IShellDispatch5* This) {
+    return This->lpVtbl->FileRun(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_CascadeWindows(IShellDispatch5* This) {
+    return This->lpVtbl->CascadeWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_TileVertically(IShellDispatch5* This) {
+    return This->lpVtbl->TileVertically(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_TileHorizontally(IShellDispatch5* This) {
+    return This->lpVtbl->TileHorizontally(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ShutdownWindows(IShellDispatch5* This) {
+    return This->lpVtbl->ShutdownWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_Suspend(IShellDispatch5* This) {
+    return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_EjectPC(IShellDispatch5* This) {
+    return This->lpVtbl->EjectPC(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_SetTime(IShellDispatch5* This) {
+    return This->lpVtbl->SetTime(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_TrayProperties(IShellDispatch5* This) {
+    return This->lpVtbl->TrayProperties(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_Help(IShellDispatch5* This) {
+    return This->lpVtbl->Help(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_FindFiles(IShellDispatch5* This) {
+    return This->lpVtbl->FindFiles(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_FindComputer(IShellDispatch5* This) {
+    return This->lpVtbl->FindComputer(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_RefreshMenu(IShellDispatch5* This) {
+    return This->lpVtbl->RefreshMenu(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ControlPanelItem(IShellDispatch5* This,BSTR bstrDir) {
+    return This->lpVtbl->ControlPanelItem(This,bstrDir);
+}
+/*** IShellDispatch2 methods ***/
+static FORCEINLINE HRESULT IShellDispatch5_IsRestricted(IShellDispatch5* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
+    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ShellExecute(IShellDispatch5* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
+    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
+}
+static FORCEINLINE HRESULT IShellDispatch5_FindPrinter(IShellDispatch5* This,BSTR name,BSTR location,BSTR model) {
+    return This->lpVtbl->FindPrinter(This,name,location,model);
+}
+static FORCEINLINE HRESULT IShellDispatch5_GetSystemInformation(IShellDispatch5* This,BSTR name,VARIANT *pv) {
+    return This->lpVtbl->GetSystemInformation(This,name,pv);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ServiceStart(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ServiceStop(IShellDispatch5* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch5_IsServiceRunning(IShellDispatch5* This,BSTR ServiceName,VARIANT *pRunning) {
+    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
+}
+static FORCEINLINE HRESULT IShellDispatch5_CanStartStopService(IShellDispatch5* This,BSTR ServiceName,VARIANT *pCanStartStop) {
+    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ShowBrowserBar(IShellDispatch5* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
+    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
+}
+/*** IShellDispatch3 methods ***/
+static FORCEINLINE HRESULT IShellDispatch5_AddToRecent(IShellDispatch5* This,VARIANT varFile,BSTR bstrCategory) {
+    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
+}
+/*** IShellDispatch4 methods ***/
+static FORCEINLINE HRESULT IShellDispatch5_WindowsSecurity(IShellDispatch5* This) {
+    return This->lpVtbl->WindowsSecurity(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ToggleDesktop(IShellDispatch5* This) {
+    return This->lpVtbl->ToggleDesktop(This);
+}
+static FORCEINLINE HRESULT IShellDispatch5_ExplorerPolicy(IShellDispatch5* This,BSTR bstrPolicyName,VARIANT *pValue) {
+    return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
+}
+static FORCEINLINE HRESULT IShellDispatch5_GetSetting(IShellDispatch5* This,LONG lSetting,VARIANT_BOOL *pResult) {
+    return This->lpVtbl->GetSetting(This,lSetting,pResult);
+}
+/*** IShellDispatch5 methods ***/
+static FORCEINLINE HRESULT IShellDispatch5_WindowSwitcher(IShellDispatch5* This) {
+    return This->lpVtbl->WindowSwitcher(This);
+}
 #endif
 #endif
 
-  EXTERN_C const CLSID CLSID_SearchCommand;
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellDispatch5_WindowSwitcher_Proxy(
+    IShellDispatch5* This);
+void __RPC_STUB IShellDispatch5_WindowSwitcher_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellDispatch5_INTERFACE_DEFINED__ */
+
+#if NTDDI_VERSION >= NTDDI_WIN8
+/*****************************************************************************
+ * IShellDispatch6 interface
+ */
+#ifndef __IShellDispatch6_INTERFACE_DEFINED__
+#define __IShellDispatch6_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IShellDispatch6, 0x286e6f1b, 0x7113, 0x4355, 0x95,0x62, 0x96,0xb7,0xe9,0xd6,0x4c,0x54);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("286e6f1b-7113-4355-9562-96b7e9d64c54")
+IShellDispatch6 : public IShellDispatch5
+{
+    virtual HRESULT STDMETHODCALLTYPE SearchCommand(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IShellDispatch6, 0x286e6f1b, 0x7113, 0x4355, 0x95,0x62, 0x96,0xb7,0xe9,0xd6,0x4c,0x54)
+#endif
+#else
+typedef struct IShellDispatch6Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IShellDispatch6* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IShellDispatch6* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IShellDispatch6* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IShellDispatch6* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IShellDispatch6* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IShellDispatch6* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IShellDispatch6* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IShellDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IShellDispatch6* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        IShellDispatch6* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *NameSpace)(
+        IShellDispatch6* This,
+        VARIANT vDir,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *BrowseForFolder)(
+        IShellDispatch6* This,
+        LONG Hwnd,
+        BSTR Title,
+        LONG Options,
+        VARIANT RootFolder,
+        Folder **ppsdf);
+
+    HRESULT (STDMETHODCALLTYPE *Windows)(
+        IShellDispatch6* This,
+        IDispatch **ppid);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IShellDispatch6* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *Explore)(
+        IShellDispatch6* This,
+        VARIANT vDir);
+
+    HRESULT (STDMETHODCALLTYPE *MinimizeAll)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *UndoMinimizeALL)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *FileRun)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *CascadeWindows)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileVertically)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *TileHorizontally)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownWindows)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *EjectPC)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTime)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *TrayProperties)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *Help)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindFiles)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *FindComputer)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *RefreshMenu)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *ControlPanelItem)(
+        IShellDispatch6* This,
+        BSTR bstrDir);
+
+    /*** IShellDispatch2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
+        IShellDispatch6* This,
+        BSTR Group,
+        BSTR Restriction,
+        LONG *plRestrictValue);
+
+    HRESULT (STDMETHODCALLTYPE *ShellExecute)(
+        IShellDispatch6* This,
+        BSTR File,
+        VARIANT vArgs,
+        VARIANT vDir,
+        VARIANT vOperation,
+        VARIANT vShow);
+
+    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
+        IShellDispatch6* This,
+        BSTR name,
+        BSTR location,
+        BSTR model);
+
+    HRESULT (STDMETHODCALLTYPE *GetSystemInformation)(
+        IShellDispatch6* This,
+        BSTR name,
+        VARIANT *pv);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStart)(
+        IShellDispatch6* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *ServiceStop)(
+        IShellDispatch6* This,
+        BSTR ServiceName,
+        VARIANT Persistent,
+        VARIANT *pSuccess);
+
+    HRESULT (STDMETHODCALLTYPE *IsServiceRunning)(
+        IShellDispatch6* This,
+        BSTR ServiceName,
+        VARIANT *pRunning);
+
+    HRESULT (STDMETHODCALLTYPE *CanStartStopService)(
+        IShellDispatch6* This,
+        BSTR ServiceName,
+        VARIANT *pCanStartStop);
+
+    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
+        IShellDispatch6* This,
+        BSTR bstrClsid,
+        VARIANT bShow,
+        VARIANT *pSuccess);
+
+    /*** IShellDispatch3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddToRecent)(
+        IShellDispatch6* This,
+        VARIANT varFile,
+        BSTR bstrCategory);
+
+    /*** IShellDispatch4 methods ***/
+    HRESULT (STDMETHODCALLTYPE *WindowsSecurity)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *ToggleDesktop)(
+        IShellDispatch6* This);
+
+    HRESULT (STDMETHODCALLTYPE *ExplorerPolicy)(
+        IShellDispatch6* This,
+        BSTR bstrPolicyName,
+        VARIANT *pValue);
+
+    HRESULT (STDMETHODCALLTYPE *GetSetting)(
+        IShellDispatch6* This,
+        LONG lSetting,
+        VARIANT_BOOL *pResult);
+
+    /*** IShellDispatch5 methods ***/
+    HRESULT (STDMETHODCALLTYPE *WindowSwitcher)(
+        IShellDispatch6* This);
+
+    /*** IShellDispatch6 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SearchCommand)(
+        IShellDispatch6* This);
+
+    END_INTERFACE
+} IShellDispatch6Vtbl;
+interface IShellDispatch6 {
+    CONST_VTBL IShellDispatch6Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IShellDispatch6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IShellDispatch6_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IShellDispatch6_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IShellDispatch6_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IShellDispatch6_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IShellDispatch6_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IShellDispatch6_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IShellDispatch methods ***/
+#define IShellDispatch6_get_Application(This,ppid) (This)->lpVtbl->get_Application(This,ppid)
+#define IShellDispatch6_get_Parent(This,ppid) (This)->lpVtbl->get_Parent(This,ppid)
+#define IShellDispatch6_NameSpace(This,vDir,ppsdf) (This)->lpVtbl->NameSpace(This,vDir,ppsdf)
+#define IShellDispatch6_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
+#define IShellDispatch6_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
+#define IShellDispatch6_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
+#define IShellDispatch6_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
+#define IShellDispatch6_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
+#define IShellDispatch6_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
+#define IShellDispatch6_FileRun(This) (This)->lpVtbl->FileRun(This)
+#define IShellDispatch6_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
+#define IShellDispatch6_TileVertically(This) (This)->lpVtbl->TileVertically(This)
+#define IShellDispatch6_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
+#define IShellDispatch6_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
+#define IShellDispatch6_Suspend(This) (This)->lpVtbl->Suspend(This)
+#define IShellDispatch6_EjectPC(This) (This)->lpVtbl->EjectPC(This)
+#define IShellDispatch6_SetTime(This) (This)->lpVtbl->SetTime(This)
+#define IShellDispatch6_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
+#define IShellDispatch6_Help(This) (This)->lpVtbl->Help(This)
+#define IShellDispatch6_FindFiles(This) (This)->lpVtbl->FindFiles(This)
+#define IShellDispatch6_FindComputer(This) (This)->lpVtbl->FindComputer(This)
+#define IShellDispatch6_RefreshMenu(This) (This)->lpVtbl->RefreshMenu(This)
+#define IShellDispatch6_ControlPanelItem(This,bstrDir) (This)->lpVtbl->ControlPanelItem(This,bstrDir)
+/*** IShellDispatch2 methods ***/
+#define IShellDispatch6_IsRestricted(This,Group,Restriction,plRestrictValue) (This)->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue)
+#define IShellDispatch6_ShellExecute(This,File,vArgs,vDir,vOperation,vShow) (This)->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow)
+#define IShellDispatch6_FindPrinter(This,name,location,model) (This)->lpVtbl->FindPrinter(This,name,location,model)
+#define IShellDispatch6_GetSystemInformation(This,name,pv) (This)->lpVtbl->GetSystemInformation(This,name,pv)
+#define IShellDispatch6_ServiceStart(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess)
+#define IShellDispatch6_ServiceStop(This,ServiceName,Persistent,pSuccess) (This)->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess)
+#define IShellDispatch6_IsServiceRunning(This,ServiceName,pRunning) (This)->lpVtbl->IsServiceRunning(This,ServiceName,pRunning)
+#define IShellDispatch6_CanStartStopService(This,ServiceName,pCanStartStop) (This)->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop)
+#define IShellDispatch6_ShowBrowserBar(This,bstrClsid,bShow,pSuccess) (This)->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess)
+/*** IShellDispatch3 methods ***/
+#define IShellDispatch6_AddToRecent(This,varFile,bstrCategory) (This)->lpVtbl->AddToRecent(This,varFile,bstrCategory)
+/*** IShellDispatch4 methods ***/
+#define IShellDispatch6_WindowsSecurity(This) (This)->lpVtbl->WindowsSecurity(This)
+#define IShellDispatch6_ToggleDesktop(This) (This)->lpVtbl->ToggleDesktop(This)
+#define IShellDispatch6_ExplorerPolicy(This,bstrPolicyName,pValue) (This)->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue)
+#define IShellDispatch6_GetSetting(This,lSetting,pResult) (This)->lpVtbl->GetSetting(This,lSetting,pResult)
+/*** IShellDispatch5 methods ***/
+#define IShellDispatch6_WindowSwitcher(This) (This)->lpVtbl->WindowSwitcher(This)
+/*** IShellDispatch6 methods ***/
+#define IShellDispatch6_SearchCommand(This) (This)->lpVtbl->SearchCommand(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_QueryInterface(IShellDispatch6* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IShellDispatch6_AddRef(IShellDispatch6* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IShellDispatch6_Release(IShellDispatch6* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_GetTypeInfoCount(IShellDispatch6* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IShellDispatch6_GetTypeInfo(IShellDispatch6* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IShellDispatch6_GetIDsOfNames(IShellDispatch6* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IShellDispatch6_Invoke(IShellDispatch6* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IShellDispatch methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_get_Application(IShellDispatch6* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Application(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch6_get_Parent(IShellDispatch6* This,IDispatch **ppid) {
+    return This->lpVtbl->get_Parent(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch6_NameSpace(IShellDispatch6* This,VARIANT vDir,Folder **ppsdf) {
+    return This->lpVtbl->NameSpace(This,vDir,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch6_BrowseForFolder(IShellDispatch6* This,LONG Hwnd,BSTR Title,LONG Options,VARIANT RootFolder,Folder **ppsdf) {
+    return This->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf);
+}
+static FORCEINLINE HRESULT IShellDispatch6_Windows(IShellDispatch6* This,IDispatch **ppid) {
+    return This->lpVtbl->Windows(This,ppid);
+}
+static FORCEINLINE HRESULT IShellDispatch6_Open(IShellDispatch6* This,VARIANT vDir) {
+    return This->lpVtbl->Open(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch6_Explore(IShellDispatch6* This,VARIANT vDir) {
+    return This->lpVtbl->Explore(This,vDir);
+}
+static FORCEINLINE HRESULT IShellDispatch6_MinimizeAll(IShellDispatch6* This) {
+    return This->lpVtbl->MinimizeAll(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_UndoMinimizeALL(IShellDispatch6* This) {
+    return This->lpVtbl->UndoMinimizeALL(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_FileRun(IShellDispatch6* This) {
+    return This->lpVtbl->FileRun(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_CascadeWindows(IShellDispatch6* This) {
+    return This->lpVtbl->CascadeWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_TileVertically(IShellDispatch6* This) {
+    return This->lpVtbl->TileVertically(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_TileHorizontally(IShellDispatch6* This) {
+    return This->lpVtbl->TileHorizontally(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ShutdownWindows(IShellDispatch6* This) {
+    return This->lpVtbl->ShutdownWindows(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_Suspend(IShellDispatch6* This) {
+    return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_EjectPC(IShellDispatch6* This) {
+    return This->lpVtbl->EjectPC(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_SetTime(IShellDispatch6* This) {
+    return This->lpVtbl->SetTime(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_TrayProperties(IShellDispatch6* This) {
+    return This->lpVtbl->TrayProperties(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_Help(IShellDispatch6* This) {
+    return This->lpVtbl->Help(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_FindFiles(IShellDispatch6* This) {
+    return This->lpVtbl->FindFiles(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_FindComputer(IShellDispatch6* This) {
+    return This->lpVtbl->FindComputer(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_RefreshMenu(IShellDispatch6* This) {
+    return This->lpVtbl->RefreshMenu(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ControlPanelItem(IShellDispatch6* This,BSTR bstrDir) {
+    return This->lpVtbl->ControlPanelItem(This,bstrDir);
+}
+/*** IShellDispatch2 methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_IsRestricted(IShellDispatch6* This,BSTR Group,BSTR Restriction,LONG *plRestrictValue) {
+    return This->lpVtbl->IsRestricted(This,Group,Restriction,plRestrictValue);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ShellExecute(IShellDispatch6* This,BSTR File,VARIANT vArgs,VARIANT vDir,VARIANT vOperation,VARIANT vShow) {
+    return This->lpVtbl->ShellExecute(This,File,vArgs,vDir,vOperation,vShow);
+}
+static FORCEINLINE HRESULT IShellDispatch6_FindPrinter(IShellDispatch6* This,BSTR name,BSTR location,BSTR model) {
+    return This->lpVtbl->FindPrinter(This,name,location,model);
+}
+static FORCEINLINE HRESULT IShellDispatch6_GetSystemInformation(IShellDispatch6* This,BSTR name,VARIANT *pv) {
+    return This->lpVtbl->GetSystemInformation(This,name,pv);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ServiceStart(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStart(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ServiceStop(IShellDispatch6* This,BSTR ServiceName,VARIANT Persistent,VARIANT *pSuccess) {
+    return This->lpVtbl->ServiceStop(This,ServiceName,Persistent,pSuccess);
+}
+static FORCEINLINE HRESULT IShellDispatch6_IsServiceRunning(IShellDispatch6* This,BSTR ServiceName,VARIANT *pRunning) {
+    return This->lpVtbl->IsServiceRunning(This,ServiceName,pRunning);
+}
+static FORCEINLINE HRESULT IShellDispatch6_CanStartStopService(IShellDispatch6* This,BSTR ServiceName,VARIANT *pCanStartStop) {
+    return This->lpVtbl->CanStartStopService(This,ServiceName,pCanStartStop);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ShowBrowserBar(IShellDispatch6* This,BSTR bstrClsid,VARIANT bShow,VARIANT *pSuccess) {
+    return This->lpVtbl->ShowBrowserBar(This,bstrClsid,bShow,pSuccess);
+}
+/*** IShellDispatch3 methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_AddToRecent(IShellDispatch6* This,VARIANT varFile,BSTR bstrCategory) {
+    return This->lpVtbl->AddToRecent(This,varFile,bstrCategory);
+}
+/*** IShellDispatch4 methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_WindowsSecurity(IShellDispatch6* This) {
+    return This->lpVtbl->WindowsSecurity(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ToggleDesktop(IShellDispatch6* This) {
+    return This->lpVtbl->ToggleDesktop(This);
+}
+static FORCEINLINE HRESULT IShellDispatch6_ExplorerPolicy(IShellDispatch6* This,BSTR bstrPolicyName,VARIANT *pValue) {
+    return This->lpVtbl->ExplorerPolicy(This,bstrPolicyName,pValue);
+}
+static FORCEINLINE HRESULT IShellDispatch6_GetSetting(IShellDispatch6* This,LONG lSetting,VARIANT_BOOL *pResult) {
+    return This->lpVtbl->GetSetting(This,lSetting,pResult);
+}
+/*** IShellDispatch5 methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_WindowSwitcher(IShellDispatch6* This) {
+    return This->lpVtbl->WindowSwitcher(This);
+}
+/*** IShellDispatch6 methods ***/
+static FORCEINLINE HRESULT IShellDispatch6_SearchCommand(IShellDispatch6* This) {
+    return This->lpVtbl->SearchCommand(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IShellDispatch6_SearchCommand_Proxy(
+    IShellDispatch6* This);
+void __RPC_STUB IShellDispatch6_SearchCommand_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IShellDispatch6_INTERFACE_DEFINED__ */
+
+#endif
+/*****************************************************************************
+ * Shell coclass
+ */
+
+DEFINE_GUID(CLSID_Shell, 0x13709620, 0xc279, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);
+
 #ifdef __cplusplus
-  class SearchCommand;
+class DECLSPEC_UUID("13709620-c279-11ce-a49e-444553540000") Shell;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(Shell, 0x13709620, 0xc279, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00)
+#endif
 #endif
 
+/*****************************************************************************
+ * ShellDispatchInproc coclass
+ */
+
+DEFINE_GUID(CLSID_ShellDispatchInproc, 0x0a89a860, 0xd7b1, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("0a89a860-d7b1-11ce-8350-444553540000") ShellDispatchInproc;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ShellDispatchInproc, 0x0a89a860, 0xd7b1, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00)
+#endif
+#endif
+
+typedef enum ShellSpecialFolderConstants {
+    ssfDESKTOP = 0x0,
+    ssfPROGRAMS = 0x2,
+    ssfCONTROLS = 0x3,
+    ssfPRINTERS = 0x4,
+    ssfPERSONAL = 0x5,
+    ssfFAVORITES = 0x6,
+    ssfSTARTUP = 0x7,
+    ssfRECENT = 0x8,
+    ssfSENDTO = 0x9,
+    ssfBITBUCKET = 0xa,
+    ssfSTARTMENU = 0xb,
+    ssfDESKTOPDIRECTORY = 0x10,
+    ssfDRIVES = 0x11,
+    ssfNETWORK = 0x12,
+    ssfNETHOOD = 0x13,
+    ssfFONTS = 0x14,
+    ssfTEMPLATES = 0x15,
+    ssfCOMMONSTARTMENU = 0x16,
+    ssfCOMMONPROGRAMS = 0x17,
+    ssfCOMMONSTARTUP = 0x18,
+    ssfCOMMONDESKTOPDIR = 0x19,
+    ssfAPPDATA = 0x1a,
+    ssfPRINTHOOD = 0x1b,
+    ssfLOCALAPPDATA = 0x1c,
+    ssfALTSTARTUP = 0x1d,
+    ssfCOMMONALTSTARTUP = 0x1e,
+    ssfCOMMONFAVORITES = 0x1f,
+    ssfINTERNETCACHE = 0x20,
+    ssfCOOKIES = 0x21,
+    ssfHISTORY = 0x22,
+    ssfCOMMONAPPDATA = 0x23,
+    ssfWINDOWS = 0x24,
+    ssfSYSTEM = 0x25,
+    ssfPROGRAMFILES = 0x26,
+    ssfMYPICTURES = 0x27,
+    ssfPROFILE = 0x28,
+    ssfSYSTEMx86 = 0x29,
+    ssfPROGRAMFILESx86 = 0x30
+} ShellSpecialFolderConstants;
+/*****************************************************************************
+ * IFileSearchBand interface
+ */
 #ifndef __IFileSearchBand_INTERFACE_DEFINED__
 #define __IFileSearchBand_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IFileSearchBand;
+
+DEFINE_GUID(IID_IFileSearchBand, 0x2d91eea1, 0x9932, 0x11d2, 0xbe,0x86, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IFileSearchBand : public IDispatch {
-  public:
-    virtual HRESULT WINAPI SetFocus(void) = 0;
-    virtual HRESULT WINAPI SetSearchParameters(BSTR *pbstrSearchID,VARIANT_BOOL bNavToResults,VARIANT *pvarScope,VARIANT *pvarQueryFile) = 0;
-    virtual HRESULT WINAPI get_SearchID(BSTR *pbstrSearchID) = 0;
-    virtual HRESULT WINAPI get_Scope(VARIANT *pvarScope) = 0;
-    virtual HRESULT WINAPI get_QueryFile(VARIANT *pvarFile) = 0;
-  };
+MIDL_INTERFACE("2d91eea1-9932-11d2-be86-00a0c9a83da1")
+IFileSearchBand : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE SetFocus(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSearchParameters(
+        BSTR *pbstrSearchID,
+        VARIANT_BOOL bNavToResults,
+        VARIANT *pvarScope,
+        VARIANT *pvarQueryFile) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SearchID(
+        BSTR *pbstrSearchID) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Scope(
+        VARIANT *pvarScope) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_QueryFile(
+        VARIANT *pvarFile) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IFileSearchBand, 0x2d91eea1, 0x9932, 0x11d2, 0xbe,0x86, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1)
+#endif
 #else
-  typedef struct IFileSearchBandVtbl {
+typedef struct IFileSearchBandVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IFileSearchBand *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IFileSearchBand *This);
-      ULONG (WINAPI *Release)(IFileSearchBand *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IFileSearchBand *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IFileSearchBand *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IFileSearchBand *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IFileSearchBand *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *SetFocus)(IFileSearchBand *This);
-      HRESULT (WINAPI *SetSearchParameters)(IFileSearchBand *This,BSTR *pbstrSearchID,VARIANT_BOOL bNavToResults,VARIANT *pvarScope,VARIANT *pvarQueryFile);
-      HRESULT (WINAPI *get_SearchID)(IFileSearchBand *This,BSTR *pbstrSearchID);
-      HRESULT (WINAPI *get_Scope)(IFileSearchBand *This,VARIANT *pvarScope);
-      HRESULT (WINAPI *get_QueryFile)(IFileSearchBand *This,VARIANT *pvarFile);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IFileSearchBand* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IFileSearchBand* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IFileSearchBand* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IFileSearchBand* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IFileSearchBand* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IFileSearchBand* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IFileSearchBand* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IFileSearchBand methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetFocus)(
+        IFileSearchBand* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetSearchParameters)(
+        IFileSearchBand* This,
+        BSTR *pbstrSearchID,
+        VARIANT_BOOL bNavToResults,
+        VARIANT *pvarScope,
+        VARIANT *pvarQueryFile);
+
+    HRESULT (STDMETHODCALLTYPE *get_SearchID)(
+        IFileSearchBand* This,
+        BSTR *pbstrSearchID);
+
+    HRESULT (STDMETHODCALLTYPE *get_Scope)(
+        IFileSearchBand* This,
+        VARIANT *pvarScope);
+
+    HRESULT (STDMETHODCALLTYPE *get_QueryFile)(
+        IFileSearchBand* This,
+        VARIANT *pvarFile);
+
     END_INTERFACE
-  } IFileSearchBandVtbl;
-  struct IFileSearchBand {
-    CONST_VTBL struct IFileSearchBandVtbl *lpVtbl;
-  };
+} IFileSearchBandVtbl;
+interface IFileSearchBand {
+    CONST_VTBL IFileSearchBandVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IFileSearchBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IFileSearchBand_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IFileSearchBand_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IFileSearchBand_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IFileSearchBand_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IFileSearchBand_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IFileSearchBand_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IFileSearchBand methods ***/
 #define IFileSearchBand_SetFocus(This) (This)->lpVtbl->SetFocus(This)
 #define IFileSearchBand_SetSearchParameters(This,pbstrSearchID,bNavToResults,pvarScope,pvarQueryFile) (This)->lpVtbl->SetSearchParameters(This,pbstrSearchID,bNavToResults,pvarScope,pvarQueryFile)
 #define IFileSearchBand_get_SearchID(This,pbstrSearchID) (This)->lpVtbl->get_SearchID(This,pbstrSearchID)
 #define IFileSearchBand_get_Scope(This,pvarScope) (This)->lpVtbl->get_Scope(This,pvarScope)
 #define IFileSearchBand_get_QueryFile(This,pvarFile) (This)->lpVtbl->get_QueryFile(This,pvarFile)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IFileSearchBand_QueryInterface(IFileSearchBand* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IFileSearchBand_AddRef(IFileSearchBand* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IFileSearchBand_Release(IFileSearchBand* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IFileSearchBand_GetTypeInfoCount(IFileSearchBand* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IFileSearchBand_GetTypeInfo(IFileSearchBand* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IFileSearchBand_GetIDsOfNames(IFileSearchBand* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IFileSearchBand_Invoke(IFileSearchBand* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IFileSearchBand methods ***/
+static FORCEINLINE HRESULT IFileSearchBand_SetFocus(IFileSearchBand* This) {
+    return This->lpVtbl->SetFocus(This);
+}
+static FORCEINLINE HRESULT IFileSearchBand_SetSearchParameters(IFileSearchBand* This,BSTR *pbstrSearchID,VARIANT_BOOL bNavToResults,VARIANT *pvarScope,VARIANT *pvarQueryFile) {
+    return This->lpVtbl->SetSearchParameters(This,pbstrSearchID,bNavToResults,pvarScope,pvarQueryFile);
+}
+static FORCEINLINE HRESULT IFileSearchBand_get_SearchID(IFileSearchBand* This,BSTR *pbstrSearchID) {
+    return This->lpVtbl->get_SearchID(This,pbstrSearchID);
+}
+static FORCEINLINE HRESULT IFileSearchBand_get_Scope(IFileSearchBand* This,VARIANT *pvarScope) {
+    return This->lpVtbl->get_Scope(This,pvarScope);
+}
+static FORCEINLINE HRESULT IFileSearchBand_get_QueryFile(IFileSearchBand* This,VARIANT *pvarFile) {
+    return This->lpVtbl->get_QueryFile(This,pvarFile);
+}
 #endif
 #endif
-  HRESULT WINAPI IFileSearchBand_SetFocus_Proxy(IFileSearchBand *This);
-  void __RPC_STUB IFileSearchBand_SetFocus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFileSearchBand_SetSearchParameters_Proxy(IFileSearchBand *This,BSTR *pbstrSearchID,VARIANT_BOOL bNavToResults,VARIANT *pvarScope,VARIANT *pvarQueryFile);
-  void __RPC_STUB IFileSearchBand_SetSearchParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFileSearchBand_get_SearchID_Proxy(IFileSearchBand *This,BSTR *pbstrSearchID);
-  void __RPC_STUB IFileSearchBand_get_SearchID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFileSearchBand_get_Scope_Proxy(IFileSearchBand *This,VARIANT *pvarScope);
-  void __RPC_STUB IFileSearchBand_get_Scope_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IFileSearchBand_get_QueryFile_Proxy(IFileSearchBand *This,VARIANT *pvarFile);
-  void __RPC_STUB IFileSearchBand_get_QueryFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  EXTERN_C const CLSID CLSID_FileSearchBand;
+#endif
+
+HRESULT STDMETHODCALLTYPE IFileSearchBand_SetFocus_Proxy(
+    IFileSearchBand* This);
+void __RPC_STUB IFileSearchBand_SetFocus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFileSearchBand_SetSearchParameters_Proxy(
+    IFileSearchBand* This,
+    BSTR *pbstrSearchID,
+    VARIANT_BOOL bNavToResults,
+    VARIANT *pvarScope,
+    VARIANT *pvarQueryFile);
+void __RPC_STUB IFileSearchBand_SetSearchParameters_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFileSearchBand_get_SearchID_Proxy(
+    IFileSearchBand* This,
+    BSTR *pbstrSearchID);
+void __RPC_STUB IFileSearchBand_get_SearchID_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFileSearchBand_get_Scope_Proxy(
+    IFileSearchBand* This,
+    VARIANT *pvarScope);
+void __RPC_STUB IFileSearchBand_get_Scope_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IFileSearchBand_get_QueryFile_Proxy(
+    IFileSearchBand* This,
+    VARIANT *pvarFile);
+void __RPC_STUB IFileSearchBand_get_QueryFile_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IFileSearchBand_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * FileSearchBand coclass
+ */
+
+DEFINE_GUID(CLSID_FileSearchBand, 0xc4ee31f3, 0x4768, 0x11d2, 0xbe,0x5c, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1);
+
 #ifdef __cplusplus
-  class FileSearchBand;
+class DECLSPEC_UUID("c4ee31f3-4768-11d2-be5c-00a0c9a83da1") FileSearchBand;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(FileSearchBand, 0xc4ee31f3, 0x4768, 0x11d2, 0xbe,0x5c, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1)
+#endif
 #endif
 
+/*****************************************************************************
+ * IWebWizardHost interface
+ */
 #ifndef __IWebWizardHost_INTERFACE_DEFINED__
 #define __IWebWizardHost_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWebWizardHost;
+
+DEFINE_GUID(IID_IWebWizardHost, 0x18bcc359, 0x4990, 0x4bfb, 0xb9,0x51, 0x3c,0x83,0x70,0x2b,0xe5,0xf9);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWebWizardHost : public IDispatch {
-  public:
-    virtual HRESULT WINAPI FinalBack(void) = 0;
-    virtual HRESULT WINAPI FinalNext(void) = 0;
-    virtual HRESULT WINAPI Cancel(void) = 0;
-    virtual HRESULT WINAPI put_Caption(BSTR bstrCaption) = 0;
-    virtual HRESULT WINAPI get_Caption(BSTR *pbstrCaption) = 0;
-    virtual HRESULT WINAPI put_Property(BSTR bstrPropertyName,VARIANT *pvProperty) = 0;
-    virtual HRESULT WINAPI get_Property(BSTR bstrPropertyName,VARIANT *pvProperty) = 0;
-    virtual HRESULT WINAPI SetWizardButtons(VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage) = 0;
-    virtual HRESULT WINAPI SetHeaderText(BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle) = 0;
-  };
+MIDL_INTERFACE("18bcc359-4990-4bfb-b951-3c83702be5f9")
+IWebWizardHost : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE FinalBack(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FinalNext(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Caption(
+        BSTR bstrCaption) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Caption(
+        BSTR *pbstrCaption) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Property(
+        BSTR bstrPropertyName,
+        VARIANT *pvProperty) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Property(
+        BSTR bstrPropertyName,
+        VARIANT *pvProperty) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetWizardButtons(
+        VARIANT_BOOL vfEnableBack,
+        VARIANT_BOOL vfEnableNext,
+        VARIANT_BOOL vfLastPage) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetHeaderText(
+        BSTR bstrHeaderTitle,
+        BSTR bstrHeaderSubtitle) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWebWizardHost, 0x18bcc359, 0x4990, 0x4bfb, 0xb9,0x51, 0x3c,0x83,0x70,0x2b,0xe5,0xf9)
+#endif
 #else
-  typedef struct IWebWizardHostVtbl {
+typedef struct IWebWizardHostVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWebWizardHost *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWebWizardHost *This);
-      ULONG (WINAPI *Release)(IWebWizardHost *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IWebWizardHost *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IWebWizardHost *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IWebWizardHost *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IWebWizardHost *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *FinalBack)(IWebWizardHost *This);
-      HRESULT (WINAPI *FinalNext)(IWebWizardHost *This);
-      HRESULT (WINAPI *Cancel)(IWebWizardHost *This);
-      HRESULT (WINAPI *put_Caption)(IWebWizardHost *This,BSTR bstrCaption);
-      HRESULT (WINAPI *get_Caption)(IWebWizardHost *This,BSTR *pbstrCaption);
-      HRESULT (WINAPI *put_Property)(IWebWizardHost *This,BSTR bstrPropertyName,VARIANT *pvProperty);
-      HRESULT (WINAPI *get_Property)(IWebWizardHost *This,BSTR bstrPropertyName,VARIANT *pvProperty);
-      HRESULT (WINAPI *SetWizardButtons)(IWebWizardHost *This,VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage);
-      HRESULT (WINAPI *SetHeaderText)(IWebWizardHost *This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWebWizardHost* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWebWizardHost* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWebWizardHost* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWebWizardHost* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWebWizardHost* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWebWizardHost* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWebWizardHost* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWebWizardHost methods ***/
+    HRESULT (STDMETHODCALLTYPE *FinalBack)(
+        IWebWizardHost* This);
+
+    HRESULT (STDMETHODCALLTYPE *FinalNext)(
+        IWebWizardHost* This);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IWebWizardHost* This);
+
+    HRESULT (STDMETHODCALLTYPE *put_Caption)(
+        IWebWizardHost* This,
+        BSTR bstrCaption);
+
+    HRESULT (STDMETHODCALLTYPE *get_Caption)(
+        IWebWizardHost* This,
+        BSTR *pbstrCaption);
+
+    HRESULT (STDMETHODCALLTYPE *put_Property)(
+        IWebWizardHost* This,
+        BSTR bstrPropertyName,
+        VARIANT *pvProperty);
+
+    HRESULT (STDMETHODCALLTYPE *get_Property)(
+        IWebWizardHost* This,
+        BSTR bstrPropertyName,
+        VARIANT *pvProperty);
+
+    HRESULT (STDMETHODCALLTYPE *SetWizardButtons)(
+        IWebWizardHost* This,
+        VARIANT_BOOL vfEnableBack,
+        VARIANT_BOOL vfEnableNext,
+        VARIANT_BOOL vfLastPage);
+
+    HRESULT (STDMETHODCALLTYPE *SetHeaderText)(
+        IWebWizardHost* This,
+        BSTR bstrHeaderTitle,
+        BSTR bstrHeaderSubtitle);
+
     END_INTERFACE
-  } IWebWizardHostVtbl;
-  struct IWebWizardHost {
-    CONST_VTBL struct IWebWizardHostVtbl *lpVtbl;
-  };
+} IWebWizardHostVtbl;
+interface IWebWizardHost {
+    CONST_VTBL IWebWizardHostVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IWebWizardHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IWebWizardHost_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IWebWizardHost_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define IWebWizardHost_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define IWebWizardHost_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define IWebWizardHost_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define IWebWizardHost_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWebWizardHost methods ***/
 #define IWebWizardHost_FinalBack(This) (This)->lpVtbl->FinalBack(This)
 #define IWebWizardHost_FinalNext(This) (This)->lpVtbl->FinalNext(This)
 #define IWebWizardHost_Cancel(This) (This)->lpVtbl->Cancel(This)
@@ -2254,69 +8268,268 @@
 #define IWebWizardHost_get_Property(This,bstrPropertyName,pvProperty) (This)->lpVtbl->get_Property(This,bstrPropertyName,pvProperty)
 #define IWebWizardHost_SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage) (This)->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage)
 #define IWebWizardHost_SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle) (This)->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWebWizardHost_QueryInterface(IWebWizardHost* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWebWizardHost_AddRef(IWebWizardHost* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWebWizardHost_Release(IWebWizardHost* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWebWizardHost_GetTypeInfoCount(IWebWizardHost* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWebWizardHost_GetTypeInfo(IWebWizardHost* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWebWizardHost_GetIDsOfNames(IWebWizardHost* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWebWizardHost_Invoke(IWebWizardHost* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IWebWizardHost methods ***/
+static FORCEINLINE HRESULT IWebWizardHost_FinalBack(IWebWizardHost* This) {
+    return This->lpVtbl->FinalBack(This);
+}
+static FORCEINLINE HRESULT IWebWizardHost_FinalNext(IWebWizardHost* This) {
+    return This->lpVtbl->FinalNext(This);
+}
+static FORCEINLINE HRESULT IWebWizardHost_Cancel(IWebWizardHost* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IWebWizardHost_put_Caption(IWebWizardHost* This,BSTR bstrCaption) {
+    return This->lpVtbl->put_Caption(This,bstrCaption);
+}
+static FORCEINLINE HRESULT IWebWizardHost_get_Caption(IWebWizardHost* This,BSTR *pbstrCaption) {
+    return This->lpVtbl->get_Caption(This,pbstrCaption);
+}
+static FORCEINLINE HRESULT IWebWizardHost_put_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
+    return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
+}
+static FORCEINLINE HRESULT IWebWizardHost_get_Property(IWebWizardHost* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
+    return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
+}
+static FORCEINLINE HRESULT IWebWizardHost_SetWizardButtons(IWebWizardHost* This,VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage) {
+    return This->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage);
+}
+static FORCEINLINE HRESULT IWebWizardHost_SetHeaderText(IWebWizardHost* This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle) {
+    return This->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle);
+}
 #endif
 #endif
-  HRESULT WINAPI IWebWizardHost_FinalBack_Proxy(IWebWizardHost *This);
-  void __RPC_STUB IWebWizardHost_FinalBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_FinalNext_Proxy(IWebWizardHost *This);
-  void __RPC_STUB IWebWizardHost_FinalNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_Cancel_Proxy(IWebWizardHost *This);
-  void __RPC_STUB IWebWizardHost_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_put_Caption_Proxy(IWebWizardHost *This,BSTR bstrCaption);
-  void __RPC_STUB IWebWizardHost_put_Caption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_get_Caption_Proxy(IWebWizardHost *This,BSTR *pbstrCaption);
-  void __RPC_STUB IWebWizardHost_get_Caption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_put_Property_Proxy(IWebWizardHost *This,BSTR bstrPropertyName,VARIANT *pvProperty);
-  void __RPC_STUB IWebWizardHost_put_Property_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_get_Property_Proxy(IWebWizardHost *This,BSTR bstrPropertyName,VARIANT *pvProperty);
-  void __RPC_STUB IWebWizardHost_get_Property_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_SetWizardButtons_Proxy(IWebWizardHost *This,VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage);
-  void __RPC_STUB IWebWizardHost_SetWizardButtons_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWebWizardHost_SetHeaderText_Proxy(IWebWizardHost *This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle);
-  void __RPC_STUB IWebWizardHost_SetHeaderText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IWebWizardHost_FinalBack_Proxy(
+    IWebWizardHost* This);
+void __RPC_STUB IWebWizardHost_FinalBack_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_FinalNext_Proxy(
+    IWebWizardHost* This);
+void __RPC_STUB IWebWizardHost_FinalNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_Cancel_Proxy(
+    IWebWizardHost* This);
+void __RPC_STUB IWebWizardHost_Cancel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_put_Caption_Proxy(
+    IWebWizardHost* This,
+    BSTR bstrCaption);
+void __RPC_STUB IWebWizardHost_put_Caption_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_get_Caption_Proxy(
+    IWebWizardHost* This,
+    BSTR *pbstrCaption);
+void __RPC_STUB IWebWizardHost_get_Caption_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_put_Property_Proxy(
+    IWebWizardHost* This,
+    BSTR bstrPropertyName,
+    VARIANT *pvProperty);
+void __RPC_STUB IWebWizardHost_put_Property_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_get_Property_Proxy(
+    IWebWizardHost* This,
+    BSTR bstrPropertyName,
+    VARIANT *pvProperty);
+void __RPC_STUB IWebWizardHost_get_Property_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_SetWizardButtons_Proxy(
+    IWebWizardHost* This,
+    VARIANT_BOOL vfEnableBack,
+    VARIANT_BOOL vfEnableNext,
+    VARIANT_BOOL vfLastPage);
+void __RPC_STUB IWebWizardHost_SetWizardButtons_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebWizardHost_SetHeaderText_Proxy(
+    IWebWizardHost* This,
+    BSTR bstrHeaderTitle,
+    BSTR bstrHeaderSubtitle);
+void __RPC_STUB IWebWizardHost_SetHeaderText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWebWizardHost_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * INewWDEvents interface
+ */
 #ifndef __INewWDEvents_INTERFACE_DEFINED__
 #define __INewWDEvents_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_INewWDEvents;
+
+DEFINE_GUID(IID_INewWDEvents, 0x0751c551, 0x7568, 0x41c9, 0x8e,0x5b, 0xe2,0x2e,0x38,0x91,0x92,0x36);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct INewWDEvents : public IWebWizardHost {
-  public:
-    virtual HRESULT WINAPI PassportAuthenticate(BSTR bstrSignInUrl,VARIANT_BOOL *pvfAuthenitcated) = 0;
-  };
+MIDL_INTERFACE("0751c551-7568-41c9-8e5b-e22e38919236")
+INewWDEvents : public IWebWizardHost
+{
+    virtual HRESULT STDMETHODCALLTYPE PassportAuthenticate(
+        BSTR bstrSignInUrl,
+        VARIANT_BOOL *pvfAuthenitcated) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INewWDEvents, 0x0751c551, 0x7568, 0x41c9, 0x8e,0x5b, 0xe2,0x2e,0x38,0x91,0x92,0x36)
+#endif
 #else
-  typedef struct INewWDEventsVtbl {
+typedef struct INewWDEventsVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(INewWDEvents *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(INewWDEvents *This);
-      ULONG (WINAPI *Release)(INewWDEvents *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(INewWDEvents *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(INewWDEvents *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(INewWDEvents *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(INewWDEvents *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *FinalBack)(INewWDEvents *This);
-      HRESULT (WINAPI *FinalNext)(INewWDEvents *This);
-      HRESULT (WINAPI *Cancel)(INewWDEvents *This);
-      HRESULT (WINAPI *put_Caption)(INewWDEvents *This,BSTR bstrCaption);
-      HRESULT (WINAPI *get_Caption)(INewWDEvents *This,BSTR *pbstrCaption);
-      HRESULT (WINAPI *put_Property)(INewWDEvents *This,BSTR bstrPropertyName,VARIANT *pvProperty);
-      HRESULT (WINAPI *get_Property)(INewWDEvents *This,BSTR bstrPropertyName,VARIANT *pvProperty);
-      HRESULT (WINAPI *SetWizardButtons)(INewWDEvents *This,VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage);
-      HRESULT (WINAPI *SetHeaderText)(INewWDEvents *This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle);
-      HRESULT (WINAPI *PassportAuthenticate)(INewWDEvents *This,BSTR bstrSignInUrl,VARIANT_BOOL *pvfAuthenitcated);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INewWDEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INewWDEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INewWDEvents* This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        INewWDEvents* This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        INewWDEvents* This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        INewWDEvents* This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        INewWDEvents* This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWebWizardHost methods ***/
+    HRESULT (STDMETHODCALLTYPE *FinalBack)(
+        INewWDEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *FinalNext)(
+        INewWDEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        INewWDEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *put_Caption)(
+        INewWDEvents* This,
+        BSTR bstrCaption);
+
+    HRESULT (STDMETHODCALLTYPE *get_Caption)(
+        INewWDEvents* This,
+        BSTR *pbstrCaption);
+
+    HRESULT (STDMETHODCALLTYPE *put_Property)(
+        INewWDEvents* This,
+        BSTR bstrPropertyName,
+        VARIANT *pvProperty);
+
+    HRESULT (STDMETHODCALLTYPE *get_Property)(
+        INewWDEvents* This,
+        BSTR bstrPropertyName,
+        VARIANT *pvProperty);
+
+    HRESULT (STDMETHODCALLTYPE *SetWizardButtons)(
+        INewWDEvents* This,
+        VARIANT_BOOL vfEnableBack,
+        VARIANT_BOOL vfEnableNext,
+        VARIANT_BOOL vfLastPage);
+
+    HRESULT (STDMETHODCALLTYPE *SetHeaderText)(
+        INewWDEvents* This,
+        BSTR bstrHeaderTitle,
+        BSTR bstrHeaderSubtitle);
+
+    /*** INewWDEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *PassportAuthenticate)(
+        INewWDEvents* This,
+        BSTR bstrSignInUrl,
+        VARIANT_BOOL *pvfAuthenitcated);
+
     END_INTERFACE
-  } INewWDEventsVtbl;
-  struct INewWDEvents {
-    CONST_VTBL struct INewWDEventsVtbl *lpVtbl;
-  };
+} INewWDEventsVtbl;
+interface INewWDEvents {
+    CONST_VTBL INewWDEventsVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define INewWDEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define INewWDEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define INewWDEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
 #define INewWDEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 #define INewWDEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 #define INewWDEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 #define INewWDEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWebWizardHost methods ***/
 #define INewWDEvents_FinalBack(This) (This)->lpVtbl->FinalBack(This)
 #define INewWDEvents_FinalNext(This) (This)->lpVtbl->FinalNext(This)
 #define INewWDEvents_Cancel(This) (This)->lpVtbl->Cancel(This)
@@ -2326,259 +8539,686 @@
 #define INewWDEvents_get_Property(This,bstrPropertyName,pvProperty) (This)->lpVtbl->get_Property(This,bstrPropertyName,pvProperty)
 #define INewWDEvents_SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage) (This)->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage)
 #define INewWDEvents_SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle) (This)->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle)
+/*** INewWDEvents methods ***/
 #define INewWDEvents_PassportAuthenticate(This,bstrSignInUrl,pvfAuthenitcated) (This)->lpVtbl->PassportAuthenticate(This,bstrSignInUrl,pvfAuthenitcated)
-#endif
-#endif
-  HRESULT WINAPI INewWDEvents_PassportAuthenticate_Proxy(INewWDEvents *This,BSTR bstrSignInUrl,VARIANT_BOOL *pvfAuthenitcated);
-  void __RPC_STUB INewWDEvents_PassportAuthenticate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IPassportClientServices_INTERFACE_DEFINED__
-#define __IPassportClientServices_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IPassportClientServices;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IPassportClientServices : public IDispatch {
-  public:
-    virtual HRESULT WINAPI MemberExists(BSTR bstrUser,BSTR bstrPassword,VARIANT_BOOL *pvfExists) = 0;
-  };
 #else
-  typedef struct IPassportClientServicesVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IPassportClientServices *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IPassportClientServices *This);
-      ULONG (WINAPI *Release)(IPassportClientServices *This);
-      HRESULT (WINAPI *GetTypeInfoCount)(IPassportClientServices *This,UINT *pctinfo);
-      HRESULT (WINAPI *GetTypeInfo)(IPassportClientServices *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
-      HRESULT (WINAPI *GetIDsOfNames)(IPassportClientServices *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
-      HRESULT (WINAPI *Invoke)(IPassportClientServices *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
-      HRESULT (WINAPI *MemberExists)(IPassportClientServices *This,BSTR bstrUser,BSTR bstrPassword,VARIANT_BOOL *pvfExists);
-    END_INTERFACE
-  } IPassportClientServicesVtbl;
-  struct IPassportClientServices {
-    CONST_VTBL struct IPassportClientServicesVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IPassportClientServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IPassportClientServices_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IPassportClientServices_Release(This) (This)->lpVtbl->Release(This)
-#define IPassportClientServices_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IPassportClientServices_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IPassportClientServices_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IPassportClientServices_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IPassportClientServices_MemberExists(This,bstrUser,bstrPassword,pvfExists) (This)->lpVtbl->MemberExists(This,bstrUser,bstrPassword,pvfExists)
-#endif
-#endif
-  HRESULT WINAPI IPassportClientServices_MemberExists_Proxy(IPassportClientServices *This,BSTR bstrUser,BSTR bstrPassword,VARIANT_BOOL *pvfExists);
-  void __RPC_STUB IPassportClientServices_MemberExists_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  EXTERN_C const CLSID CLSID_PassportClientServices;
-#ifdef __cplusplus
-  class PassportClientServices;
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INewWDEvents_QueryInterface(INewWDEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INewWDEvents_AddRef(INewWDEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INewWDEvents_Release(INewWDEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT INewWDEvents_GetTypeInfoCount(INewWDEvents* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT INewWDEvents_GetTypeInfo(INewWDEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT INewWDEvents_GetIDsOfNames(INewWDEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT INewWDEvents_Invoke(INewWDEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
+    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
+}
+/*** IWebWizardHost methods ***/
+static FORCEINLINE HRESULT INewWDEvents_FinalBack(INewWDEvents* This) {
+    return This->lpVtbl->FinalBack(This);
+}
+static FORCEINLINE HRESULT INewWDEvents_FinalNext(INewWDEvents* This) {
+    return This->lpVtbl->FinalNext(This);
+}
+static FORCEINLINE HRESULT INewWDEvents_Cancel(INewWDEvents* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT INewWDEvents_put_Caption(INewWDEvents* This,BSTR bstrCaption) {
+    return This->lpVtbl->put_Caption(This,bstrCaption);
+}
+static FORCEINLINE HRESULT INewWDEvents_get_Caption(INewWDEvents* This,BSTR *pbstrCaption) {
+    return This->lpVtbl->get_Caption(This,pbstrCaption);
+}
+static FORCEINLINE HRESULT INewWDEvents_put_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
+    return This->lpVtbl->put_Property(This,bstrPropertyName,pvProperty);
+}
+static FORCEINLINE HRESULT INewWDEvents_get_Property(INewWDEvents* This,BSTR bstrPropertyName,VARIANT *pvProperty) {
+    return This->lpVtbl->get_Property(This,bstrPropertyName,pvProperty);
+}
+static FORCEINLINE HRESULT INewWDEvents_SetWizardButtons(INewWDEvents* This,VARIANT_BOOL vfEnableBack,VARIANT_BOOL vfEnableNext,VARIANT_BOOL vfLastPage) {
+    return This->lpVtbl->SetWizardButtons(This,vfEnableBack,vfEnableNext,vfLastPage);
+}
+static FORCEINLINE HRESULT INewWDEvents_SetHeaderText(INewWDEvents* This,BSTR bstrHeaderTitle,BSTR bstrHeaderSubtitle) {
+    return This->lpVtbl->SetHeaderText(This,bstrHeaderTitle,bstrHeaderSubtitle);
+}
+/*** INewWDEvents methods ***/
+static FORCEINLINE HRESULT INewWDEvents_PassportAuthenticate(INewWDEvents* This,BSTR bstrSignInUrl,VARIANT_BOOL *pvfAuthenitcated) {
+    return This->lpVtbl->PassportAuthenticate(This,bstrSignInUrl,pvfAuthenitcated);
+}
 #endif
 #endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0287_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0287_v0_0_s_ifspec;
+#endif
+
+HRESULT STDMETHODCALLTYPE INewWDEvents_PassportAuthenticate_Proxy(
+    INewWDEvents* This,
+    BSTR bstrSignInUrl,
+    VARIANT_BOOL *pvfAuthenitcated);
+void __RPC_STUB INewWDEvents_PassportAuthenticate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __INewWDEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAutoComplete interface
+ */
 #ifndef __IAutoComplete_INTERFACE_DEFINED__
 #define __IAutoComplete_INTERFACE_DEFINED__
-  typedef IAutoComplete *LPAUTOCOMPLETE;
 
-  EXTERN_C const IID IID_IAutoComplete;
+typedef IAutoComplete *LPAUTOCOMPLETE;
+DEFINE_GUID(IID_IAutoComplete, 0x00bb2762, 0x6a77, 0x11d0, 0xa5,0x35, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAutoComplete : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Init(HWND hwndEdit,IUnknown *punkACL,LPCOLESTR pwszRegKeyPath,LPCOLESTR pwszQuickComplete) = 0;
-    virtual HRESULT WINAPI Enable(WINBOOL fEnable) = 0;
-  };
+MIDL_INTERFACE("00bb2762-6a77-11d0-a535-00c04fd7d062")
+IAutoComplete : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Init(
+        HWND hwndEdit,
+        IUnknown *punkACL,
+        LPCWSTR pwszRegKeyPath,
+        LPCWSTR pwszQuickComplete) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Enable(
+        WINBOOL fEnable) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAutoComplete, 0x00bb2762, 0x6a77, 0x11d0, 0xa5,0x35, 0x00,0xc0,0x4f,0xd7,0xd0,0x62)
+#endif
 #else
-  typedef struct IAutoCompleteVtbl {
+typedef struct IAutoCompleteVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAutoComplete *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAutoComplete *This);
-      ULONG (WINAPI *Release)(IAutoComplete *This);
-      HRESULT (WINAPI *Init)(IAutoComplete *This,HWND hwndEdit,IUnknown *punkACL,LPCOLESTR pwszRegKeyPath,LPCOLESTR pwszQuickComplete);
-      HRESULT (WINAPI *Enable)(IAutoComplete *This,WINBOOL fEnable);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAutoComplete* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAutoComplete* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAutoComplete* This);
+
+    /*** IAutoComplete methods ***/
+    HRESULT (STDMETHODCALLTYPE *Init)(
+        IAutoComplete* This,
+        HWND hwndEdit,
+        IUnknown *punkACL,
+        LPCWSTR pwszRegKeyPath,
+        LPCWSTR pwszQuickComplete);
+
+    HRESULT (STDMETHODCALLTYPE *Enable)(
+        IAutoComplete* This,
+        WINBOOL fEnable);
+
     END_INTERFACE
-  } IAutoCompleteVtbl;
-  struct IAutoComplete {
-    CONST_VTBL struct IAutoCompleteVtbl *lpVtbl;
-  };
+} IAutoCompleteVtbl;
+interface IAutoComplete {
+    CONST_VTBL IAutoCompleteVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IAutoComplete_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IAutoComplete_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IAutoComplete_Release(This) (This)->lpVtbl->Release(This)
+/*** IAutoComplete methods ***/
 #define IAutoComplete_Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete) (This)->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete)
 #define IAutoComplete_Enable(This,fEnable) (This)->lpVtbl->Enable(This,fEnable)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAutoComplete_QueryInterface(IAutoComplete* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAutoComplete_AddRef(IAutoComplete* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAutoComplete_Release(IAutoComplete* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAutoComplete methods ***/
+static FORCEINLINE HRESULT IAutoComplete_Init(IAutoComplete* This,HWND hwndEdit,IUnknown *punkACL,LPCWSTR pwszRegKeyPath,LPCWSTR pwszQuickComplete) {
+    return This->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete);
+}
+static FORCEINLINE HRESULT IAutoComplete_Enable(IAutoComplete* This,WINBOOL fEnable) {
+    return This->lpVtbl->Enable(This,fEnable);
+}
 #endif
 #endif
-  HRESULT WINAPI IAutoComplete_Init_Proxy(IAutoComplete *This,HWND hwndEdit,IUnknown *punkACL,LPCOLESTR pwszRegKeyPath,LPCOLESTR pwszQuickComplete);
-  void __RPC_STUB IAutoComplete_Init_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAutoComplete_Enable_Proxy(IAutoComplete *This,WINBOOL fEnable);
-  void __RPC_STUB IAutoComplete_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
+#endif
+
+HRESULT STDMETHODCALLTYPE IAutoComplete_Init_Proxy(
+    IAutoComplete* This,
+    HWND hwndEdit,
+    IUnknown *punkACL,
+    LPCWSTR pwszRegKeyPath,
+    LPCWSTR pwszQuickComplete);
+void __RPC_STUB IAutoComplete_Init_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IAutoComplete_Enable_Proxy(
+    IAutoComplete* This,
+    WINBOOL fEnable);
+void __RPC_STUB IAutoComplete_Enable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IAutoComplete_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAutoComplete2 interface
+ */
 #ifndef __IAutoComplete2_INTERFACE_DEFINED__
 #define __IAutoComplete2_INTERFACE_DEFINED__
-  typedef IAutoComplete2 *LPAUTOCOMPLETE2;
 
-  typedef enum _tagAUTOCOMPLETEOPTIONS {
-    ACO_NONE = 0,ACO_AUTOSUGGEST = 0x1,ACO_AUTOAPPEND = 0x2,ACO_SEARCH = 0x4,ACO_FILTERPREFIXES = 0x8,ACO_USETAB = 0x10,ACO_UPDOWNKEYDROPSLIST = 0x20,
-    ACO_RTLREADING = 0x40
-  } AUTOCOMPLETEOPTIONS;
-
-  EXTERN_C const IID IID_IAutoComplete2;
+typedef IAutoComplete2 *LPAUTOCOMPLETE2;
+typedef enum _tagAUTOCOMPLETEOPTIONS {
+    ACO_NONE = 0x0,
+    ACO_AUTOSUGGEST = 0x1,
+    ACO_AUTOAPPEND = 0x2,
+    ACO_SEARCH = 0x4,
+    ACO_FILTERPREFIXES = 0x8,
+    ACO_USETAB = 0x10,
+    ACO_UPDOWNKEYDROPSLIST = 0x20,
+    ACO_RTLREADING = 0x40,
+    ACO_WORD_FILTER = 0x80,
+    ACO_NOPREFIXFILTERING = 0x100
+} AUTOCOMPLETEOPTIONS;
+DEFINE_GUID(IID_IAutoComplete2, 0xeac04bc0, 0x3791, 0x11d2, 0xbb,0x95, 0x00,0x60,0x97,0x7b,0x46,0x4c);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAutoComplete2 : public IAutoComplete {
-  public:
-    virtual HRESULT WINAPI SetOptions(DWORD dwFlag) = 0;
-    virtual HRESULT WINAPI GetOptions(DWORD *pdwFlag) = 0;
-  };
+MIDL_INTERFACE("eac04bc0-3791-11d2-bb95-0060977b464c")
+IAutoComplete2 : public IAutoComplete
+{
+    virtual HRESULT STDMETHODCALLTYPE SetOptions(
+        DWORD dwFlag) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetOptions(
+        DWORD *pdwFlag) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAutoComplete2, 0xeac04bc0, 0x3791, 0x11d2, 0xbb,0x95, 0x00,0x60,0x97,0x7b,0x46,0x4c)
+#endif
 #else
-  typedef struct IAutoComplete2Vtbl {
+typedef struct IAutoComplete2Vtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAutoComplete2 *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAutoComplete2 *This);
-      ULONG (WINAPI *Release)(IAutoComplete2 *This);
-      HRESULT (WINAPI *Init)(IAutoComplete2 *This,HWND hwndEdit,IUnknown *punkACL,LPCOLESTR pwszRegKeyPath,LPCOLESTR pwszQuickComplete);
-      HRESULT (WINAPI *Enable)(IAutoComplete2 *This,WINBOOL fEnable);
-      HRESULT (WINAPI *SetOptions)(IAutoComplete2 *This,DWORD dwFlag);
-      HRESULT (WINAPI *GetOptions)(IAutoComplete2 *This,DWORD *pdwFlag);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAutoComplete2* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAutoComplete2* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAutoComplete2* This);
+
+    /*** IAutoComplete methods ***/
+    HRESULT (STDMETHODCALLTYPE *Init)(
+        IAutoComplete2* This,
+        HWND hwndEdit,
+        IUnknown *punkACL,
+        LPCWSTR pwszRegKeyPath,
+        LPCWSTR pwszQuickComplete);
+
+    HRESULT (STDMETHODCALLTYPE *Enable)(
+        IAutoComplete2* This,
+        WINBOOL fEnable);
+
+    /*** IAutoComplete2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetOptions)(
+        IAutoComplete2* This,
+        DWORD dwFlag);
+
+    HRESULT (STDMETHODCALLTYPE *GetOptions)(
+        IAutoComplete2* This,
+        DWORD *pdwFlag);
+
     END_INTERFACE
-  } IAutoComplete2Vtbl;
-  struct IAutoComplete2 {
-    CONST_VTBL struct IAutoComplete2Vtbl *lpVtbl;
-  };
+} IAutoComplete2Vtbl;
+interface IAutoComplete2 {
+    CONST_VTBL IAutoComplete2Vtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IAutoComplete2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IAutoComplete2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IAutoComplete2_Release(This) (This)->lpVtbl->Release(This)
+/*** IAutoComplete methods ***/
 #define IAutoComplete2_Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete) (This)->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete)
 #define IAutoComplete2_Enable(This,fEnable) (This)->lpVtbl->Enable(This,fEnable)
+/*** IAutoComplete2 methods ***/
 #define IAutoComplete2_SetOptions(This,dwFlag) (This)->lpVtbl->SetOptions(This,dwFlag)
 #define IAutoComplete2_GetOptions(This,pdwFlag) (This)->lpVtbl->GetOptions(This,pdwFlag)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAutoComplete2_QueryInterface(IAutoComplete2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAutoComplete2_AddRef(IAutoComplete2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAutoComplete2_Release(IAutoComplete2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAutoComplete methods ***/
+static FORCEINLINE HRESULT IAutoComplete2_Init(IAutoComplete2* This,HWND hwndEdit,IUnknown *punkACL,LPCWSTR pwszRegKeyPath,LPCWSTR pwszQuickComplete) {
+    return This->lpVtbl->Init(This,hwndEdit,punkACL,pwszRegKeyPath,pwszQuickComplete);
+}
+static FORCEINLINE HRESULT IAutoComplete2_Enable(IAutoComplete2* This,WINBOOL fEnable) {
+    return This->lpVtbl->Enable(This,fEnable);
+}
+/*** IAutoComplete2 methods ***/
+static FORCEINLINE HRESULT IAutoComplete2_SetOptions(IAutoComplete2* This,DWORD dwFlag) {
+    return This->lpVtbl->SetOptions(This,dwFlag);
+}
+static FORCEINLINE HRESULT IAutoComplete2_GetOptions(IAutoComplete2* This,DWORD *pdwFlag) {
+    return This->lpVtbl->GetOptions(This,pdwFlag);
+}
 #endif
 #endif
-  HRESULT WINAPI IAutoComplete2_SetOptions_Proxy(IAutoComplete2 *This,DWORD dwFlag);
-  void __RPC_STUB IAutoComplete2_SetOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAutoComplete2_GetOptions_Proxy(IAutoComplete2 *This,DWORD *pdwFlag);
-  void __RPC_STUB IAutoComplete2_GetOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0289_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0289_v0_0_s_ifspec;
+#endif
+
+HRESULT STDMETHODCALLTYPE IAutoComplete2_SetOptions_Proxy(
+    IAutoComplete2* This,
+    DWORD dwFlag);
+void __RPC_STUB IAutoComplete2_SetOptions_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IAutoComplete2_GetOptions_Proxy(
+    IAutoComplete2* This,
+    DWORD *pdwFlag);
+void __RPC_STUB IAutoComplete2_GetOptions_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IAutoComplete2_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * IEnumACString interface
+ */
 #ifndef __IEnumACString_INTERFACE_DEFINED__
 #define __IEnumACString_INTERFACE_DEFINED__
-  typedef IEnumACString *PENUMACSTRING;
-  typedef IEnumACString *LPENUMACSTRING;
 
-  typedef enum _tagACENUMOPTION {
-    ACEO_NONE = 0,ACEO_MOSTRECENTFIRST = 0x1,ACEO_FIRSTUNUSED = 0x10000
-  } ACENUMOPTION;
-
-  EXTERN_C const IID IID_IEnumACString;
+typedef IEnumACString *PENUMACSTRING;
+typedef IEnumACString *LPENUMACSTRING;
+typedef enum _tagACENUMOPTION {
+    ACEO_NONE = 0x0,
+    ACEO_MOSTRECENTFIRST = 0x1,
+    ACEO_FIRSTUNUSED = 0x10000
+} ACENUMOPTION;
+DEFINE_GUID(IID_IEnumACString, 0x8e74c210, 0xcf9d, 0x4eaf, 0xa4,0x03, 0x73,0x56,0x42,0x8f,0x0a,0x5a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumACString : public IEnumString {
-  public:
-    virtual HRESULT WINAPI NextItem(LPOLESTR pszUrl,ULONG cchMax,ULONG *pulSortIndex) = 0;
-    virtual HRESULT WINAPI SetEnumOptions(DWORD dwOptions) = 0;
-    virtual HRESULT WINAPI GetEnumOptions(DWORD *pdwOptions) = 0;
-  };
+MIDL_INTERFACE("8e74c210-cf9d-4eaf-a403-7356428f0a5a")
+IEnumACString : public IEnumString
+{
+    virtual HRESULT STDMETHODCALLTYPE NextItem(
+        LPWSTR pszUrl,
+        ULONG cchMax,
+        ULONG *pulSortIndex) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetEnumOptions(
+        DWORD dwOptions) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetEnumOptions(
+        DWORD *pdwOptions) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumACString, 0x8e74c210, 0xcf9d, 0x4eaf, 0xa4,0x03, 0x73,0x56,0x42,0x8f,0x0a,0x5a)
+#endif
 #else
-  typedef struct IEnumACStringVtbl {
+typedef struct IEnumACStringVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumACString *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumACString *This);
-      ULONG (WINAPI *Release)(IEnumACString *This);
-      HRESULT (WINAPI *Next)(IEnumACString *This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched);
-      HRESULT (WINAPI *Skip)(IEnumACString *This,ULONG celt);
-      HRESULT (WINAPI *Reset)(IEnumACString *This);
-      HRESULT (WINAPI *Clone)(IEnumACString *This,IEnumString **ppenum);
-      HRESULT (WINAPI *NextItem)(IEnumACString *This,LPOLESTR pszUrl,ULONG cchMax,ULONG *pulSortIndex);
-      HRESULT (WINAPI *SetEnumOptions)(IEnumACString *This,DWORD dwOptions);
-      HRESULT (WINAPI *GetEnumOptions)(IEnumACString *This,DWORD *pdwOptions);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumACString* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumACString* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumACString* This);
+
+    /*** IEnumString methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumACString* This,
+        ULONG celt,
+        LPOLESTR *rgelt,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumACString* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumACString* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumACString* This,
+        IEnumString **ppenum);
+
+    /*** IEnumACString methods ***/
+    HRESULT (STDMETHODCALLTYPE *NextItem)(
+        IEnumACString* This,
+        LPWSTR pszUrl,
+        ULONG cchMax,
+        ULONG *pulSortIndex);
+
+    HRESULT (STDMETHODCALLTYPE *SetEnumOptions)(
+        IEnumACString* This,
+        DWORD dwOptions);
+
+    HRESULT (STDMETHODCALLTYPE *GetEnumOptions)(
+        IEnumACString* This,
+        DWORD *pdwOptions);
+
     END_INTERFACE
-  } IEnumACStringVtbl;
-  struct IEnumACString {
-    CONST_VTBL struct IEnumACStringVtbl *lpVtbl;
-  };
+} IEnumACStringVtbl;
+interface IEnumACString {
+    CONST_VTBL IEnumACStringVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
 #define IEnumACString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define IEnumACString_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IEnumACString_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumString methods ***/
 #define IEnumACString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
 #define IEnumACString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 #define IEnumACString_Reset(This) (This)->lpVtbl->Reset(This)
 #define IEnumACString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
+/*** IEnumACString methods ***/
 #define IEnumACString_NextItem(This,pszUrl,cchMax,pulSortIndex) (This)->lpVtbl->NextItem(This,pszUrl,cchMax,pulSortIndex)
 #define IEnumACString_SetEnumOptions(This,dwOptions) (This)->lpVtbl->SetEnumOptions(This,dwOptions)
 #define IEnumACString_GetEnumOptions(This,pdwOptions) (This)->lpVtbl->GetEnumOptions(This,pdwOptions)
-#endif
-#endif
-  HRESULT WINAPI IEnumACString_NextItem_Proxy(IEnumACString *This,LPOLESTR pszUrl,ULONG cchMax,ULONG *pulSortIndex);
-  void __RPC_STUB IEnumACString_NextItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumACString_SetEnumOptions_Proxy(IEnumACString *This,DWORD dwOptions);
-  void __RPC_STUB IEnumACString_SetEnumOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumACString_GetEnumOptions_Proxy(IEnumACString *This,DWORD *pdwOptions);
-  void __RPC_STUB IEnumACString_GetEnumOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0290_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_shldisp_0290_v0_0_s_ifspec;
-#ifndef __IAsyncOperation_INTERFACE_DEFINED__
-#define __IAsyncOperation_INTERFACE_DEFINED__
-  typedef IAsyncOperation *LPASYNCOPERATION;
-
-  EXTERN_C const IID IID_IAsyncOperation;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAsyncOperation : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SetAsyncMode(WINBOOL fDoOpAsync) = 0;
-    virtual HRESULT WINAPI GetAsyncMode(WINBOOL *pfIsOpAsync) = 0;
-    virtual HRESULT WINAPI StartOperation(IBindCtx *pbcReserved) = 0;
-    virtual HRESULT WINAPI InOperation(WINBOOL *pfInAsyncOp) = 0;
-    virtual HRESULT WINAPI EndOperation(HRESULT hResult,IBindCtx *pbcReserved,DWORD dwEffects) = 0;
-  };
 #else
-  typedef struct IAsyncOperationVtbl {
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumACString_QueryInterface(IEnumACString* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumACString_AddRef(IEnumACString* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumACString_Release(IEnumACString* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumString methods ***/
+static FORCEINLINE HRESULT IEnumACString_Next(IEnumACString* This,ULONG celt,LPOLESTR *rgelt,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumACString_Skip(IEnumACString* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumACString_Reset(IEnumACString* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumACString_Clone(IEnumACString* This,IEnumString **ppenum) {
+    return This->lpVtbl->Clone(This,ppenum);
+}
+/*** IEnumACString methods ***/
+static FORCEINLINE HRESULT IEnumACString_NextItem(IEnumACString* This,LPWSTR pszUrl,ULONG cchMax,ULONG *pulSortIndex) {
+    return This->lpVtbl->NextItem(This,pszUrl,cchMax,pulSortIndex);
+}
+static FORCEINLINE HRESULT IEnumACString_SetEnumOptions(IEnumACString* This,DWORD dwOptions) {
+    return This->lpVtbl->SetEnumOptions(This,dwOptions);
+}
+static FORCEINLINE HRESULT IEnumACString_GetEnumOptions(IEnumACString* This,DWORD *pdwOptions) {
+    return This->lpVtbl->GetEnumOptions(This,pdwOptions);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IEnumACString_NextItem_Proxy(
+    IEnumACString* This,
+    LPWSTR pszUrl,
+    ULONG cchMax,
+    ULONG *pulSortIndex);
+void __RPC_STUB IEnumACString_NextItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumACString_SetEnumOptions_Proxy(
+    IEnumACString* This,
+    DWORD dwOptions);
+void __RPC_STUB IEnumACString_SetEnumOptions_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumACString_GetEnumOptions_Proxy(
+    IEnumACString* This,
+    DWORD *pdwOptions);
+void __RPC_STUB IEnumACString_GetEnumOptions_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IEnumACString_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDataObjectAsyncCapability interface
+ */
+#ifndef __IDataObjectAsyncCapability_INTERFACE_DEFINED__
+#define __IDataObjectAsyncCapability_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDataObjectAsyncCapability, 0x3d8b0590, 0xf691, 0x11d2, 0x8e,0xa9, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3d8b0590-f691-11d2-8ea9-006097df5bd4")
+IDataObjectAsyncCapability : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetAsyncMode(
+        WINBOOL fDoOpAsync) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAsyncMode(
+        WINBOOL *pfIsOpAsync) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StartOperation(
+        IBindCtx *pbcReserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InOperation(
+        WINBOOL *pfInAsyncOp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndOperation(
+        HRESULT hResult,
+        IBindCtx *pbcReserved,
+        DWORD dwEffects) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDataObjectAsyncCapability, 0x3d8b0590, 0xf691, 0x11d2, 0x8e,0xa9, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
+#endif
+#else
+typedef struct IDataObjectAsyncCapabilityVtbl {
     BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAsyncOperation *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAsyncOperation *This);
-      ULONG (WINAPI *Release)(IAsyncOperation *This);
-      HRESULT (WINAPI *SetAsyncMode)(IAsyncOperation *This,WINBOOL fDoOpAsync);
-      HRESULT (WINAPI *GetAsyncMode)(IAsyncOperation *This,WINBOOL *pfIsOpAsync);
-      HRESULT (WINAPI *StartOperation)(IAsyncOperation *This,IBindCtx *pbcReserved);
-      HRESULT (WINAPI *InOperation)(IAsyncOperation *This,WINBOOL *pfInAsyncOp);
-      HRESULT (WINAPI *EndOperation)(IAsyncOperation *This,HRESULT hResult,IBindCtx *pbcReserved,DWORD dwEffects);
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDataObjectAsyncCapability* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDataObjectAsyncCapability* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDataObjectAsyncCapability* This);
+
+    /*** IDataObjectAsyncCapability methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetAsyncMode)(
+        IDataObjectAsyncCapability* This,
+        WINBOOL fDoOpAsync);
+
+    HRESULT (STDMETHODCALLTYPE *GetAsyncMode)(
+        IDataObjectAsyncCapability* This,
+        WINBOOL *pfIsOpAsync);
+
+    HRESULT (STDMETHODCALLTYPE *StartOperation)(
+        IDataObjectAsyncCapability* This,
+        IBindCtx *pbcReserved);
+
+    HRESULT (STDMETHODCALLTYPE *InOperation)(
+        IDataObjectAsyncCapability* This,
+        WINBOOL *pfInAsyncOp);
+
+    HRESULT (STDMETHODCALLTYPE *EndOperation)(
+        IDataObjectAsyncCapability* This,
+        HRESULT hResult,
+        IBindCtx *pbcReserved,
+        DWORD dwEffects);
+
     END_INTERFACE
-  } IAsyncOperationVtbl;
-  struct IAsyncOperation {
-    CONST_VTBL struct IAsyncOperationVtbl *lpVtbl;
-  };
+} IDataObjectAsyncCapabilityVtbl;
+interface IDataObjectAsyncCapability {
+    CONST_VTBL IDataObjectAsyncCapabilityVtbl* lpVtbl;
+};
+
 #ifdef COBJMACROS
-#define IAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
-#define IAsyncOperation_SetAsyncMode(This,fDoOpAsync) (This)->lpVtbl->SetAsyncMode(This,fDoOpAsync)
-#define IAsyncOperation_GetAsyncMode(This,pfIsOpAsync) (This)->lpVtbl->GetAsyncMode(This,pfIsOpAsync)
-#define IAsyncOperation_StartOperation(This,pbcReserved) (This)->lpVtbl->StartOperation(This,pbcReserved)
-#define IAsyncOperation_InOperation(This,pfInAsyncOp) (This)->lpVtbl->InOperation(This,pfInAsyncOp)
-#define IAsyncOperation_EndOperation(This,hResult,pbcReserved,dwEffects) (This)->lpVtbl->EndOperation(This,hResult,pbcReserved,dwEffects)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDataObjectAsyncCapability_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDataObjectAsyncCapability_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDataObjectAsyncCapability_Release(This) (This)->lpVtbl->Release(This)
+/*** IDataObjectAsyncCapability methods ***/
+#define IDataObjectAsyncCapability_SetAsyncMode(This,fDoOpAsync) (This)->lpVtbl->SetAsyncMode(This,fDoOpAsync)
+#define IDataObjectAsyncCapability_GetAsyncMode(This,pfIsOpAsync) (This)->lpVtbl->GetAsyncMode(This,pfIsOpAsync)
+#define IDataObjectAsyncCapability_StartOperation(This,pbcReserved) (This)->lpVtbl->StartOperation(This,pbcReserved)
+#define IDataObjectAsyncCapability_InOperation(This,pfInAsyncOp) (This)->lpVtbl->InOperation(This,pfInAsyncOp)
+#define IDataObjectAsyncCapability_EndOperation(This,hResult,pbcReserved,dwEffects) (This)->lpVtbl->EndOperation(This,hResult,pbcReserved,dwEffects)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDataObjectAsyncCapability_QueryInterface(IDataObjectAsyncCapability* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDataObjectAsyncCapability_AddRef(IDataObjectAsyncCapability* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDataObjectAsyncCapability_Release(IDataObjectAsyncCapability* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDataObjectAsyncCapability methods ***/
+static FORCEINLINE HRESULT IDataObjectAsyncCapability_SetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL fDoOpAsync) {
+    return This->lpVtbl->SetAsyncMode(This,fDoOpAsync);
+}
+static FORCEINLINE HRESULT IDataObjectAsyncCapability_GetAsyncMode(IDataObjectAsyncCapability* This,WINBOOL *pfIsOpAsync) {
+    return This->lpVtbl->GetAsyncMode(This,pfIsOpAsync);
+}
+static FORCEINLINE HRESULT IDataObjectAsyncCapability_StartOperation(IDataObjectAsyncCapability* This,IBindCtx *pbcReserved) {
+    return This->lpVtbl->StartOperation(This,pbcReserved);
+}
+static FORCEINLINE HRESULT IDataObjectAsyncCapability_InOperation(IDataObjectAsyncCapability* This,WINBOOL *pfInAsyncOp) {
+    return This->lpVtbl->InOperation(This,pfInAsyncOp);
+}
+static FORCEINLINE HRESULT IDataObjectAsyncCapability_EndOperation(IDataObjectAsyncCapability* This,HRESULT hResult,IBindCtx *pbcReserved,DWORD dwEffects) {
+    return This->lpVtbl->EndOperation(This,hResult,pbcReserved,dwEffects);
+}
 #endif
 #endif
-  HRESULT WINAPI IAsyncOperation_SetAsyncMode_Proxy(IAsyncOperation *This,WINBOOL fDoOpAsync);
-  void __RPC_STUB IAsyncOperation_SetAsyncMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncOperation_GetAsyncMode_Proxy(IAsyncOperation *This,WINBOOL *pfIsOpAsync);
-  void __RPC_STUB IAsyncOperation_GetAsyncMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncOperation_StartOperation_Proxy(IAsyncOperation *This,IBindCtx *pbcReserved);
-  void __RPC_STUB IAsyncOperation_StartOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncOperation_InOperation_Proxy(IAsyncOperation *This,WINBOOL *pfInAsyncOp);
-  void __RPC_STUB IAsyncOperation_InOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAsyncOperation_EndOperation_Proxy(IAsyncOperation *This,HRESULT hResult,IBindCtx *pbcReserved,DWORD dwEffects);
-  void __RPC_STUB IAsyncOperation_EndOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
 #endif
 
+HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_SetAsyncMode_Proxy(
+    IDataObjectAsyncCapability* This,
+    WINBOOL fDoOpAsync);
+void __RPC_STUB IDataObjectAsyncCapability_SetAsyncMode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_GetAsyncMode_Proxy(
+    IDataObjectAsyncCapability* This,
+    WINBOOL *pfIsOpAsync);
+void __RPC_STUB IDataObjectAsyncCapability_GetAsyncMode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_StartOperation_Proxy(
+    IDataObjectAsyncCapability* This,
+    IBindCtx *pbcReserved);
+void __RPC_STUB IDataObjectAsyncCapability_StartOperation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_InOperation_Proxy(
+    IDataObjectAsyncCapability* This,
+    WINBOOL *pfInAsyncOp);
+void __RPC_STUB IDataObjectAsyncCapability_InOperation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDataObjectAsyncCapability_EndOperation_Proxy(
+    IDataObjectAsyncCapability* This,
+    HRESULT hResult,
+    IBindCtx *pbcReserved,
+    DWORD dwEffects);
+void __RPC_STUB IDataObjectAsyncCapability_EndOperation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDataObjectAsyncCapability_INTERFACE_DEFINED__ */
+
+#endif
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
+void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
+
+/* End additional prototypes */
+
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* __shldisp_h__ */