/*** Autogenerated by WIDL 1.3.35 from ../../wine-1.3.35/include/shldisp.idl - Do not edit ***/

#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include <rpc.h>
#include <rpcndr.h>

#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__)
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __WIDL_SHLDISP_H
#define __WIDL_SHLDISP_H

/* Forward declarations */

#ifndef __IEnumACString_FWD_DEFINED__
#define __IEnumACString_FWD_DEFINED__
typedef interface IEnumACString IEnumACString;
#endif

#ifndef __IAutoComplete_FWD_DEFINED__
#define __IAutoComplete_FWD_DEFINED__
typedef interface IAutoComplete IAutoComplete;
#endif

#ifndef __IAutoComplete2_FWD_DEFINED__
#define __IAutoComplete2_FWD_DEFINED__
typedef interface IAutoComplete2 IAutoComplete2;
#endif

#ifndef __IFolderViewOC_FWD_DEFINED__
#define __IFolderViewOC_FWD_DEFINED__
typedef interface IFolderViewOC IFolderViewOC;
#endif

#ifndef __DShellFolderViewEvents_FWD_DEFINED__
#define __DShellFolderViewEvents_FWD_DEFINED__
typedef interface DShellFolderViewEvents DShellFolderViewEvents;
#endif

#ifndef __ShellFolderViewOC_FWD_DEFINED__
#define __ShellFolderViewOC_FWD_DEFINED__
typedef struct ShellFolderViewOC ShellFolderViewOC;
#endif /* defined __ShellFolderViewOC_FWD_DEFINED__ */

#ifndef __Folder_FWD_DEFINED__
#define __Folder_FWD_DEFINED__
typedef interface Folder Folder;
#endif

#ifndef __Folder2_FWD_DEFINED__
#define __Folder2_FWD_DEFINED__
typedef interface Folder2 Folder2;
#endif

#ifndef __Folder3_FWD_DEFINED__
#define __Folder3_FWD_DEFINED__
typedef interface Folder3 Folder3;
#endif

#ifndef __FolderItem_FWD_DEFINED__
#define __FolderItem_FWD_DEFINED__
typedef interface FolderItem FolderItem;
#endif

#ifndef __FolderItems_FWD_DEFINED__
#define __FolderItems_FWD_DEFINED__
typedef interface FolderItems FolderItems;
#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 __IShellDispatch_FWD_DEFINED__
#define __IShellDispatch_FWD_DEFINED__
typedef interface IShellDispatch IShellDispatch;
#endif

#ifndef __Shell_FWD_DEFINED__
#define __Shell_FWD_DEFINED__
typedef struct Shell Shell;
#endif /* defined __Shell_FWD_DEFINED__ */

#ifndef __ShellDispatchInproc_FWD_DEFINED__
#define __ShellDispatchInproc_FWD_DEFINED__
typedef struct ShellDispatchInproc ShellDispatchInproc;
#endif /* defined __ShellDispatchInproc_FWD_DEFINED__ */

#ifndef __IAsyncOperation_FWD_DEFINED__
#define __IAsyncOperation_FWD_DEFINED__
typedef interface IAsyncOperation IAsyncOperation;
#endif

/* Headers for imported files */

#include <ocidl.h>

#ifdef __cplusplus
extern "C" {
#endif

/*****************************************************************************
 * IEnumACString interface
 */
#ifndef __IEnumACString_INTERFACE_DEFINED__
#define __IEnumACString_INTERFACE_DEFINED__

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)
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 {
    BEGIN_INTERFACE

    /*** 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;
interface IEnumACString {
    CONST_VTBL IEnumACStringVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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 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__ */

/*****************************************************************************
 * IAutoComplete interface
 */
#ifndef __IAutoComplete_INTERFACE_DEFINED__
#define __IAutoComplete_INTERFACE_DEFINED__

typedef IAutoComplete *LPAUTOCOMPLETE;
DEFINE_GUID(IID_IAutoComplete, 0x00bb2762, 0x6a77, 0x11d0, 0xa5,0x35, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("00bb2762-6a77-11d0-a535-00c04fd7d062")
IAutoComplete : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE Init(
        HWND hwndEdit,
        IUnknown *punkACL,
        LPCOLESTR pwszRegKeyPath,
        LPCOLESTR pwszQuickComplete) = 0;

    virtual HRESULT STDMETHODCALLTYPE Enable(
        BOOL 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 {
    BEGIN_INTERFACE

    /*** 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,
        LPCOLESTR pwszRegKeyPath,
        LPCOLESTR pwszQuickComplete);

    HRESULT (STDMETHODCALLTYPE *Enable)(
        IAutoComplete* This,
        BOOL fEnable);

    END_INTERFACE
} IAutoCompleteVtbl;
interface IAutoComplete {
    CONST_VTBL IAutoCompleteVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IAutoComplete_Enable_Proxy(
    IAutoComplete* This,
    BOOL 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 = 0x0,
    ACO_AUTOSUGGEST = 0x1,
    ACO_AUTOAPPEND = 0x2,
    ACO_SEARCH = 0x4,
    ACO_FILTERPREFIXES = 0x8,
    ACO_USETAB = 0x10,
    ACO_UPDOWNKEYDROPSLIST = 0x20,
    ACO_RTLREADING = 0x40
} AUTOCOMPLETEOPTIONS;
DEFINE_GUID(IID_IAutoComplete2, 0xeac04bc0, 0x3791, 0x11d2, 0xbb,0x95, 0x00,0x60,0x97,0x7b,0x46,0x4c);
#if defined(__cplusplus) && !defined(CINTERFACE)
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 {
    BEGIN_INTERFACE

    /*** 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,
        LPCOLESTR pwszRegKeyPath,
        LPCOLESTR pwszQuickComplete);

    HRESULT (STDMETHODCALLTYPE *Enable)(
        IAutoComplete2* This,
        BOOL fEnable);

    /*** IAutoComplete2 methods ***/
    HRESULT (STDMETHODCALLTYPE *SetOptions)(
        IAutoComplete2* This,
        DWORD dwFlag);

    HRESULT (STDMETHODCALLTYPE *GetOptions)(
        IAutoComplete2* This,
        DWORD *pdwFlag);

    END_INTERFACE
} IAutoComplete2Vtbl;
interface IAutoComplete2 {
    CONST_VTBL IAutoComplete2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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)
#endif

#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__ */


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__

DEFINE_GUID(IID_IFolderViewOC, 0x9ba05970, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
#if defined(__cplusplus) && !defined(CINTERFACE)
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 {
    BEGIN_INTERFACE

    /*** 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;
interface IFolderViewOC {
    CONST_VTBL IFolderViewOCVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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)
#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__

DEFINE_GUID(DIID_DShellFolderViewEvents, 0x62112aa2, 0xebe4, 0x11cf, 0xa5,0xfb, 0x00,0x20,0xaf,0xe7,0x29,0x2d);
#if defined(__cplusplus) && !defined(CINTERFACE)
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 {
    BEGIN_INTERFACE

    /*** 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;
interface DShellFolderViewEvents {
    CONST_VTBL DShellFolderViewEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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

#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 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

#ifndef __FolderItem_FWD_DEFINED__
#define __FolderItem_FWD_DEFINED__
typedef interface FolderItem FolderItem;
#endif

#ifndef __FolderItems_FWD_DEFINED__
#define __FolderItems_FWD_DEFINED__
typedef interface FolderItems FolderItems;
#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

/*****************************************************************************
 * 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
/*** 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)
#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
/*** 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)
#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__ */

/*****************************************************************************
 * 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
/*** 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)
#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;
DEFINE_GUID(IID_FolderItem, 0xfac32c80, 0xcbe4, 0x11ce, 0x83,0x50, 0x44,0x45,0x53,0x54,0x00,0x00);
#if defined(__cplusplus) && !defined(CINTERFACE)
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 {
    BEGIN_INTERFACE

    /*** 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;
interface FolderItem {
    CONST_VTBL FolderItemVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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)
#define FolderItem_put_Name(This,bs) (This)->lpVtbl->put_Name(This,bs)
#define FolderItem_get_Path(This,pbs) (This)->lpVtbl->get_Path(This,pbs)
#define FolderItem_get_GetLink(This,ppid) (This)->lpVtbl->get_GetLink(This,ppid)
#define FolderItem_get_GetFolder(This,ppid) (This)->lpVtbl->get_GetFolder(This,ppid)
#define FolderItem_get_IsLink(This,pb) (This)->lpVtbl->get_IsLink(This,pb)
#define FolderItem_get_IsFolder(This,pb) (This)->lpVtbl->get_IsFolder(This,pb)
#define FolderItem_get_IsFileSystem(This,pb) (This)->lpVtbl->get_IsFileSystem(This,pb)
#define FolderItem_get_IsBrowsable(This,pb) (This)->lpVtbl->get_IsBrowsable(This,pb)
#define FolderItem_get_ModifyDate(This,pdt) (This)->lpVtbl->get_ModifyDate(This,pdt)
#define FolderItem_put_ModifyDate(This,dt) (This)->lpVtbl->put_ModifyDate(This,dt)
#define FolderItem_get_Size(This,pul) (This)->lpVtbl->get_Size(This,pul)
#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 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);

#endif  /* __FolderItem_INTERFACE_DEFINED__ */

/*****************************************************************************
 * 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
/*** 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)
#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__ */

/*****************************************************************************
 * 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
/*** 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)
#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
/*** 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)
#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__ */

/*****************************************************************************
 * IShellDispatch interface
 */
#ifndef __IShellDispatch_INTERFACE_DEFINED__
#define __IShellDispatch_INTERFACE_DEFINED__

DEFINE_GUID(IID_IShellDispatch, 0xd8f015c0, 0xc278, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);
#if defined(__cplusplus) && !defined(CINTERFACE)
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 szDir) = 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 {
    BEGIN_INTERFACE

    /*** 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 szDir);

    END_INTERFACE
} IShellDispatchVtbl;
interface IShellDispatch {
    CONST_VTBL IShellDispatchVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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)
#define IShellDispatch_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf) (This)->lpVtbl->BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
#define IShellDispatch_Windows(This,ppid) (This)->lpVtbl->Windows(This,ppid)
#define IShellDispatch_Open(This,vDir) (This)->lpVtbl->Open(This,vDir)
#define IShellDispatch_Explore(This,vDir) (This)->lpVtbl->Explore(This,vDir)
#define IShellDispatch_MinimizeAll(This) (This)->lpVtbl->MinimizeAll(This)
#define IShellDispatch_UndoMinimizeALL(This) (This)->lpVtbl->UndoMinimizeALL(This)
#define IShellDispatch_FileRun(This) (This)->lpVtbl->FileRun(This)
#define IShellDispatch_CascadeWindows(This) (This)->lpVtbl->CascadeWindows(This)
#define IShellDispatch_TileVertically(This) (This)->lpVtbl->TileVertically(This)
#define IShellDispatch_TileHorizontally(This) (This)->lpVtbl->TileHorizontally(This)
#define IShellDispatch_ShutdownWindows(This) (This)->lpVtbl->ShutdownWindows(This)
#define IShellDispatch_Suspend(This) (This)->lpVtbl->Suspend(This)
#define IShellDispatch_EjectPC(This) (This)->lpVtbl->EjectPC(This)
#define IShellDispatch_SetTime(This) (This)->lpVtbl->SetTime(This)
#define IShellDispatch_TrayProperties(This) (This)->lpVtbl->TrayProperties(This)
#define IShellDispatch_Help(This) (This)->lpVtbl->Help(This)
#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)
#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 szDir);
void __RPC_STUB IShellDispatch_ControlPanelItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IShellDispatch_INTERFACE_DEFINED__ */

/*****************************************************************************
 * Shell coclass
 */

DEFINE_GUID(CLSID_Shell, 0x13709620, 0xc279, 0x11ce, 0xa4,0x9e, 0x44,0x45,0x53,0x54,0x00,0x00);

#ifdef __cplusplus
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;
/*****************************************************************************
 * IAsyncOperation interface
 */
#ifndef __IAsyncOperation_INTERFACE_DEFINED__
#define __IAsyncOperation_INTERFACE_DEFINED__

typedef IAsyncOperation *LPASYNCOPERATION;
DEFINE_GUID(IID_IAsyncOperation, 0x3d8b0590, 0xf691, 0x11d2, 0x8e,0xa9, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("3d8b0590-f691-11d2-8ea9-006097df5bd4")
IAsyncOperation : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE SetAsyncMode(
        BOOL fDoOpAsync) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetAsyncMode(
        BOOL *pfIsOpAsync) = 0;

    virtual HRESULT STDMETHODCALLTYPE StartOperation(
        IBindCtx *pbcReserved) = 0;

    virtual HRESULT STDMETHODCALLTYPE InOperation(
        BOOL *pfInAsyncOp) = 0;

    virtual HRESULT STDMETHODCALLTYPE EndOperation(
        HRESULT hResult,
        IBindCtx *pbcReserved,
        DWORD dwEffects) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IAsyncOperation, 0x3d8b0590, 0xf691, 0x11d2, 0x8e,0xa9, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
#endif
#else
typedef struct IAsyncOperationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IAsyncOperation* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IAsyncOperation* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IAsyncOperation* This);

    /*** IAsyncOperation methods ***/
    HRESULT (STDMETHODCALLTYPE *SetAsyncMode)(
        IAsyncOperation* This,
        BOOL fDoOpAsync);

    HRESULT (STDMETHODCALLTYPE *GetAsyncMode)(
        IAsyncOperation* This,
        BOOL *pfIsOpAsync);

    HRESULT (STDMETHODCALLTYPE *StartOperation)(
        IAsyncOperation* This,
        IBindCtx *pbcReserved);

    HRESULT (STDMETHODCALLTYPE *InOperation)(
        IAsyncOperation* This,
        BOOL *pfInAsyncOp);

    HRESULT (STDMETHODCALLTYPE *EndOperation)(
        IAsyncOperation* This,
        HRESULT hResult,
        IBindCtx *pbcReserved,
        DWORD dwEffects);

    END_INTERFACE
} IAsyncOperationVtbl;
interface IAsyncOperation {
    CONST_VTBL IAsyncOperationVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#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)
/*** IAsyncOperation methods ***/
#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)
#endif

#endif

HRESULT STDMETHODCALLTYPE IAsyncOperation_SetAsyncMode_Proxy(
    IAsyncOperation* This,
    BOOL fDoOpAsync);
void __RPC_STUB IAsyncOperation_SetAsyncMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IAsyncOperation_GetAsyncMode_Proxy(
    IAsyncOperation* This,
    BOOL *pfIsOpAsync);
void __RPC_STUB IAsyncOperation_GetAsyncMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IAsyncOperation_StartOperation_Proxy(
    IAsyncOperation* This,
    IBindCtx *pbcReserved);
void __RPC_STUB IAsyncOperation_StartOperation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IAsyncOperation_InOperation_Proxy(
    IAsyncOperation* This,
    BOOL *pfInAsyncOp);
void __RPC_STUB IAsyncOperation_InOperation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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  /* __IAsyncOperation_INTERFACE_DEFINED__ */

/* 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 /* __WIDL_SHLDISP_H */
