/*** Autogenerated by WIDL 1.6 from include/windows.storage.idl - Do not edit ***/

#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

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

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __windows_storage_h__
#define __windows_storage_h__

/* Forward declarations */

#ifndef __IStorageItem_FWD_DEFINED__
#define __IStorageItem_FWD_DEFINED__
typedef interface IStorageItem IStorageItem;
#endif

#ifndef __IKnownFoldersStatics_FWD_DEFINED__
#define __IKnownFoldersStatics_FWD_DEFINED__
typedef interface IKnownFoldersStatics IKnownFoldersStatics;
#endif

#ifndef __IStorageFolder_FWD_DEFINED__
#define __IStorageFolder_FWD_DEFINED__
typedef interface IStorageFolder IStorageFolder;
#endif

#ifndef __IApplicationDataContainer_FWD_DEFINED__
#define __IApplicationDataContainer_FWD_DEFINED__
typedef interface IApplicationDataContainer IApplicationDataContainer;
#endif

#ifndef __IApplicationData_FWD_DEFINED__
#define __IApplicationData_FWD_DEFINED__
typedef interface IApplicationData IApplicationData;
#endif

#ifndef __IApplicationData2_FWD_DEFINED__
#define __IApplicationData2_FWD_DEFINED__
typedef interface IApplicationData2 IApplicationData2;
#endif

#ifndef __IApplicationDataStatics_FWD_DEFINED__
#define __IApplicationDataStatics_FWD_DEFINED__
typedef interface IApplicationDataStatics IApplicationDataStatics;
#endif

#ifndef __ApplicationDataSetVersionHandler_FWD_DEFINED__
#define __ApplicationDataSetVersionHandler_FWD_DEFINED__
typedef interface ApplicationDataSetVersionHandler ApplicationDataSetVersionHandler;
#endif

#ifndef __ISetVersionRequest_FWD_DEFINED__
#define __ISetVersionRequest_FWD_DEFINED__
typedef interface ISetVersionRequest ISetVersionRequest;
#endif

#ifndef __ISetVersionDeferral_FWD_DEFINED__
#define __ISetVersionDeferral_FWD_DEFINED__
typedef interface ISetVersionDeferral ISetVersionDeferral;
#endif

/* Headers for imported files */

#include <inspectable.h>
#include <hstring.h>
#include <windows.foundation.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __IAsyncAction_FWD_DEFINED__
#define __IAsyncAction_FWD_DEFINED__
typedef interface IAsyncAction IAsyncAction;
#endif

#ifndef __TypedEventHandler_FWD_DEFINED__
#define __TypedEventHandler_FWD_DEFINED__
typedef interface TypedEventHandler TypedEventHandler;
#endif

#ifndef __IPropertySet_FWD_DEFINED__
#define __IPropertySet_FWD_DEFINED__
typedef interface IPropertySet IPropertySet;
#endif

#ifndef __IMapView_FWD_DEFINED__
#define __IMapView_FWD_DEFINED__
typedef interface IMapView IMapView;
#endif

#ifndef __IStorageItem_FWD_DEFINED__
#define __IStorageItem_FWD_DEFINED__
typedef interface IStorageItem IStorageItem;
#endif

#ifndef __IStorageFolder_FWD_DEFINED__
#define __IStorageFolder_FWD_DEFINED__
typedef interface IStorageFolder IStorageFolder;
#endif

#ifndef __IApplicationData_FWD_DEFINED__
#define __IApplicationData_FWD_DEFINED__
typedef interface IApplicationData IApplicationData;
#endif

#ifndef __IApplicationData2_FWD_DEFINED__
#define __IApplicationData2_FWD_DEFINED__
typedef interface IApplicationData2 IApplicationData2;
#endif

#ifndef __IApplicationDataStatics_FWD_DEFINED__
#define __IApplicationDataStatics_FWD_DEFINED__
typedef interface IApplicationDataStatics IApplicationDataStatics;
#endif

#ifndef __IApplicationDataSetVersionHandler_FWD_DEFINED__
#define __IApplicationDataSetVersionHandler_FWD_DEFINED__
typedef interface IApplicationDataSetVersionHandler IApplicationDataSetVersionHandler;
#endif

#ifndef __ApplicationDataContainer_FWD_DEFINED__
#define __ApplicationDataContainer_FWD_DEFINED__
typedef interface ApplicationDataContainer ApplicationDataContainer;
#endif

#ifndef __ApplicationDataSetVersionHandler_FWD_DEFINED__
#define __ApplicationDataSetVersionHandler_FWD_DEFINED__
typedef interface ApplicationDataSetVersionHandler ApplicationDataSetVersionHandler;
#endif

#ifndef __ISetVersionRequest_FWD_DEFINED__
#define __ISetVersionRequest_FWD_DEFINED__
typedef interface ISetVersionRequest ISetVersionRequest;
#endif

#ifndef __ISetVersionDeferral_FWD_DEFINED__
#define __ISetVersionDeferral_FWD_DEFINED__
typedef interface ISetVersionDeferral ISetVersionDeferral;
#endif

enum StorageDeleteOption;

enum NameCollisionOption;

enum StorageItemTypes;

enum ApplicationDataLocality;

enum ApplicationDataCreateDisposition;

enum FileAttributes;

enum CreationCollisionOption;

typedef enum NameCollisionoption {
    NameCollisionoption_GenerateUniqueName = 0,
    NameCollisionoption_ReplaceExisting = 1,
    NameCollisionoption_FailIfExists = 2
} NameCollisionOption;
typedef enum StorageDeleteOption {
    StorageDeleteOption_Default = 0,
    StorageDeleteOption_PermanentDelete = 1
} StorageDeleteOption;
typedef enum StorageItemTypes {
    StorageItemTypes_None = 0,
    StorageItemTypes_File = 1,
    StorageItemTypes_Folder = 2
} StorageItemTypes;
typedef enum ApplicationDataCreateDisposition {
    ApplicationDataCreateDisposition_Always = 0,
    ApplicationDataCreateDisposition_Existing = 1
} ApplicationDataCreateDisposition;
typedef enum ApplicationDataLocality {
    ApplicationDataLocality_Local = 0,
    ApplicationDataLocality_Roaming = 1,
    ApplicationDataLocality_Temporary = 2
} ApplicationDataLocality;
typedef enum FileAttributes {
    FileAttributes_Normal = 0,
    FileAttributes_ReadOnly = 1,
    FileAttributes_Directory = 2,
    FileAttributes_Archive = 3,
    FileAttributes_Temporary = 4
} FileAttributes;
typedef enum CreationCollisionOption {
    CreationCollisionOption_GenerateUniqueName = 0,
    CreationCollisionOption_ReplaceExisting = 1,
    CreationCollisionOption_FailIfExists = 2,
    CreationCollisionOption_OpenIfExists = 3
} CreationCollisionOption;
/*****************************************************************************
 * IStorageItem interface
 */
#ifndef __IStorageItem_INTERFACE_DEFINED__
#define __IStorageItem_INTERFACE_DEFINED__

DEFINE_GUID(IID_IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4207a996-ca2f-42f7-bde8-8b10457a7f30")
IStorageItem : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE RenameAsyncOverloadDefaultOptions(
        HSTRING desiredName,
        IInspectable **action) = 0;

    virtual HRESULT STDMETHODCALLTYPE RenameAsync(
        HSTRING desiredName,
        NameCollisionOption option,
        IInspectable **action) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteAsyncOverloadDefaultOptions(
        IInspectable **action) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteAsync(
        StorageDeleteOption option,
        IInspectable **action) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetBasicPropertiesAsync(
        IInspectable **action) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Name(
        HSTRING *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Path(
        HSTRING *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Attributes(
        FileAttributes *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_DateCreated(
        DateTime *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsOfType(
        StorageItemTypes itemType,
        boolean *value) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30)
#endif
#else
typedef struct IStorageItemVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        IStorageItem* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        IStorageItem* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        IStorageItem* This,
        TrustLevel *trustLevel);

    /*** IStorageItem methods ***/
    HRESULT (STDMETHODCALLTYPE *RenameAsyncOverloadDefaultOptions)(
        IStorageItem* This,
        HSTRING desiredName,
        IInspectable **action);

    HRESULT (STDMETHODCALLTYPE *RenameAsync)(
        IStorageItem* This,
        HSTRING desiredName,
        NameCollisionOption option,
        IInspectable **action);

    HRESULT (STDMETHODCALLTYPE *DeleteAsyncOverloadDefaultOptions)(
        IStorageItem* This,
        IInspectable **action);

    HRESULT (STDMETHODCALLTYPE *DeleteAsync)(
        IStorageItem* This,
        StorageDeleteOption option,
        IInspectable **action);

    HRESULT (STDMETHODCALLTYPE *GetBasicPropertiesAsync)(
        IStorageItem* This,
        IInspectable **action);

    HRESULT (STDMETHODCALLTYPE *get_Name)(
        IStorageItem* This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *get_Path)(
        IStorageItem* This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *get_Attributes)(
        IStorageItem* This,
        FileAttributes *value);

    HRESULT (STDMETHODCALLTYPE *get_DateCreated)(
        IStorageItem* This,
        DateTime *value);

    HRESULT (STDMETHODCALLTYPE *IsOfType)(
        IStorageItem* This,
        StorageItemTypes itemType,
        boolean *value);

    END_INTERFACE
} IStorageItemVtbl;
interface IStorageItem {
    CONST_VTBL IStorageItemVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IStorageItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IStorageItem_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IStorageItem_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define IStorageItem_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define IStorageItem_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define IStorageItem_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IStorageItem methods ***/
#define IStorageItem_RenameAsyncOverloadDefaultOptions(This,desiredName,action) (This)->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action)
#define IStorageItem_RenameAsync(This,desiredName,option,action) (This)->lpVtbl->RenameAsync(This,desiredName,option,action)
#define IStorageItem_DeleteAsyncOverloadDefaultOptions(This,action) (This)->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action)
#define IStorageItem_DeleteAsync(This,option,action) (This)->lpVtbl->DeleteAsync(This,option,action)
#define IStorageItem_GetBasicPropertiesAsync(This,action) (This)->lpVtbl->GetBasicPropertiesAsync(This,action)
#define IStorageItem_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
#define IStorageItem_get_Path(This,value) (This)->lpVtbl->get_Path(This,value)
#define IStorageItem_get_Attributes(This,value) (This)->lpVtbl->get_Attributes(This,value)
#define IStorageItem_get_DateCreated(This,value) (This)->lpVtbl->get_DateCreated(This,value)
#define IStorageItem_IsOfType(This,itemType,value) (This)->lpVtbl->IsOfType(This,itemType,value)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IStorageItem_QueryInterface(IStorageItem* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IStorageItem_AddRef(IStorageItem* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IStorageItem_Release(IStorageItem* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT IStorageItem_GetIids(IStorageItem* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT IStorageItem_GetRuntimeClassName(IStorageItem* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT IStorageItem_GetTrustLevel(IStorageItem* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IStorageItem methods ***/
static FORCEINLINE HRESULT IStorageItem_RenameAsyncOverloadDefaultOptions(IStorageItem* This,HSTRING desiredName,IInspectable **action) {
    return This->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action);
}
static FORCEINLINE HRESULT IStorageItem_RenameAsync(IStorageItem* This,HSTRING desiredName,NameCollisionOption option,IInspectable **action) {
    return This->lpVtbl->RenameAsync(This,desiredName,option,action);
}
static FORCEINLINE HRESULT IStorageItem_DeleteAsyncOverloadDefaultOptions(IStorageItem* This,IInspectable **action) {
    return This->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action);
}
static FORCEINLINE HRESULT IStorageItem_DeleteAsync(IStorageItem* This,StorageDeleteOption option,IInspectable **action) {
    return This->lpVtbl->DeleteAsync(This,option,action);
}
static FORCEINLINE HRESULT IStorageItem_GetBasicPropertiesAsync(IStorageItem* This,IInspectable **action) {
    return This->lpVtbl->GetBasicPropertiesAsync(This,action);
}
static FORCEINLINE HRESULT IStorageItem_get_Name(IStorageItem* This,HSTRING *value) {
    return This->lpVtbl->get_Name(This,value);
}
static FORCEINLINE HRESULT IStorageItem_get_Path(IStorageItem* This,HSTRING *value) {
    return This->lpVtbl->get_Path(This,value);
}
static FORCEINLINE HRESULT IStorageItem_get_Attributes(IStorageItem* This,FileAttributes *value) {
    return This->lpVtbl->get_Attributes(This,value);
}
static FORCEINLINE HRESULT IStorageItem_get_DateCreated(IStorageItem* This,DateTime *value) {
    return This->lpVtbl->get_DateCreated(This,value);
}
static FORCEINLINE HRESULT IStorageItem_IsOfType(IStorageItem* This,StorageItemTypes itemType,boolean *value) {
    return This->lpVtbl->IsOfType(This,itemType,value);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsyncOverloadDefaultOptions_Proxy(
    IStorageItem* This,
    HSTRING desiredName,
    IInspectable **action);
void __RPC_STUB IStorageItem_RenameAsyncOverloadDefaultOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsync_Proxy(
    IStorageItem* This,
    HSTRING desiredName,
    NameCollisionOption option,
    IInspectable **action);
void __RPC_STUB IStorageItem_RenameAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsyncOverloadDefaultOptions_Proxy(
    IStorageItem* This,
    IInspectable **action);
void __RPC_STUB IStorageItem_DeleteAsyncOverloadDefaultOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsync_Proxy(
    IStorageItem* This,
    StorageDeleteOption option,
    IInspectable **action);
void __RPC_STUB IStorageItem_DeleteAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_GetBasicPropertiesAsync_Proxy(
    IStorageItem* This,
    IInspectable **action);
void __RPC_STUB IStorageItem_GetBasicPropertiesAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_get_Name_Proxy(
    IStorageItem* This,
    HSTRING *value);
void __RPC_STUB IStorageItem_get_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_get_Path_Proxy(
    IStorageItem* This,
    HSTRING *value);
void __RPC_STUB IStorageItem_get_Path_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_get_Attributes_Proxy(
    IStorageItem* This,
    FileAttributes *value);
void __RPC_STUB IStorageItem_get_Attributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_get_DateCreated_Proxy(
    IStorageItem* This,
    DateTime *value);
void __RPC_STUB IStorageItem_get_DateCreated_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageItem_IsOfType_Proxy(
    IStorageItem* This,
    StorageItemTypes itemType,
    boolean *value);
void __RPC_STUB IStorageItem_IsOfType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IStorageItem_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IKnownFoldersStatics interface
 */
#ifndef __IKnownFoldersStatics_INTERFACE_DEFINED__
#define __IKnownFoldersStatics_INTERFACE_DEFINED__

DEFINE_GUID(IID_IKnownFoldersStatics, 0x5a2a7520, 0x4802, 0x452d, 0x9a,0xd9, 0x43,0x51,0xad,0xa7,0xec,0x35);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("5a2a7520-4802-452d-9ad9-4351ada7ec35")
IKnownFoldersStatics : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE get_MusicLibrary(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_PicturesLibrary(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_VideosLibrary(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_DocumentsLibrary(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_HomeGroup(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RemovableDevices(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_MediaServerDevices(
        IStorageFolder **value) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IKnownFoldersStatics, 0x5a2a7520, 0x4802, 0x452d, 0x9a,0xd9, 0x43,0x51,0xad,0xa7,0xec,0x35)
#endif
#else
typedef struct IKnownFoldersStaticsVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        IKnownFoldersStatics* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        IKnownFoldersStatics* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        IKnownFoldersStatics* This,
        TrustLevel *trustLevel);

    /*** IKnownFoldersStatics methods ***/
    HRESULT (STDMETHODCALLTYPE *get_MusicLibrary)(
        IKnownFoldersStatics* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_PicturesLibrary)(
        IKnownFoldersStatics* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_VideosLibrary)(
        IKnownFoldersStatics* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_DocumentsLibrary)(
        IKnownFoldersStatics* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_HomeGroup)(
        IKnownFoldersStatics* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_RemovableDevices)(
        IKnownFoldersStatics* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_MediaServerDevices)(
        IKnownFoldersStatics* This,
        IStorageFolder **value);

    END_INTERFACE
} IKnownFoldersStaticsVtbl;
interface IKnownFoldersStatics {
    CONST_VTBL IKnownFoldersStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IKnownFoldersStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IKnownFoldersStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IKnownFoldersStatics_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define IKnownFoldersStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define IKnownFoldersStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define IKnownFoldersStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IKnownFoldersStatics methods ***/
#define IKnownFoldersStatics_get_MusicLibrary(This,value) (This)->lpVtbl->get_MusicLibrary(This,value)
#define IKnownFoldersStatics_get_PicturesLibrary(This,value) (This)->lpVtbl->get_PicturesLibrary(This,value)
#define IKnownFoldersStatics_get_VideosLibrary(This,value) (This)->lpVtbl->get_VideosLibrary(This,value)
#define IKnownFoldersStatics_get_DocumentsLibrary(This,value) (This)->lpVtbl->get_DocumentsLibrary(This,value)
#define IKnownFoldersStatics_get_HomeGroup(This,value) (This)->lpVtbl->get_HomeGroup(This,value)
#define IKnownFoldersStatics_get_RemovableDevices(This,value) (This)->lpVtbl->get_RemovableDevices(This,value)
#define IKnownFoldersStatics_get_MediaServerDevices(This,value) (This)->lpVtbl->get_MediaServerDevices(This,value)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IKnownFoldersStatics_QueryInterface(IKnownFoldersStatics* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IKnownFoldersStatics_AddRef(IKnownFoldersStatics* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IKnownFoldersStatics_Release(IKnownFoldersStatics* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT IKnownFoldersStatics_GetIids(IKnownFoldersStatics* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_GetRuntimeClassName(IKnownFoldersStatics* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_GetTrustLevel(IKnownFoldersStatics* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IKnownFoldersStatics methods ***/
static FORCEINLINE HRESULT IKnownFoldersStatics_get_MusicLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
    return This->lpVtbl->get_MusicLibrary(This,value);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_get_PicturesLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
    return This->lpVtbl->get_PicturesLibrary(This,value);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_get_VideosLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
    return This->lpVtbl->get_VideosLibrary(This,value);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_get_DocumentsLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
    return This->lpVtbl->get_DocumentsLibrary(This,value);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_get_HomeGroup(IKnownFoldersStatics* This,IStorageFolder **value) {
    return This->lpVtbl->get_HomeGroup(This,value);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_get_RemovableDevices(IKnownFoldersStatics* This,IStorageFolder **value) {
    return This->lpVtbl->get_RemovableDevices(This,value);
}
static FORCEINLINE HRESULT IKnownFoldersStatics_get_MediaServerDevices(IKnownFoldersStatics* This,IStorageFolder **value) {
    return This->lpVtbl->get_MediaServerDevices(This,value);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_MusicLibrary_Proxy(
    IKnownFoldersStatics* This,
    IStorageFolder **value);
void __RPC_STUB IKnownFoldersStatics_get_MusicLibrary_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_PicturesLibrary_Proxy(
    IKnownFoldersStatics* This,
    IStorageFolder **value);
void __RPC_STUB IKnownFoldersStatics_get_PicturesLibrary_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_VideosLibrary_Proxy(
    IKnownFoldersStatics* This,
    IStorageFolder **value);
void __RPC_STUB IKnownFoldersStatics_get_VideosLibrary_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_DocumentsLibrary_Proxy(
    IKnownFoldersStatics* This,
    IStorageFolder **value);
void __RPC_STUB IKnownFoldersStatics_get_DocumentsLibrary_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_HomeGroup_Proxy(
    IKnownFoldersStatics* This,
    IStorageFolder **value);
void __RPC_STUB IKnownFoldersStatics_get_HomeGroup_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_RemovableDevices_Proxy(
    IKnownFoldersStatics* This,
    IStorageFolder **value);
void __RPC_STUB IKnownFoldersStatics_get_RemovableDevices_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_MediaServerDevices_Proxy(
    IKnownFoldersStatics* This,
    IStorageFolder **value);
void __RPC_STUB IKnownFoldersStatics_get_MediaServerDevices_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IKnownFoldersStatics_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IStorageFolder interface
 */
#ifndef __IStorageFolder_INTERFACE_DEFINED__
#define __IStorageFolder_INTERFACE_DEFINED__

DEFINE_GUID(IID_IStorageFolder, 0x72d1cb78, 0xb3ef, 0x4f75, 0xa8,0x0b, 0x6f,0xd9,0xda,0xe2,0x94,0x4b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("72d1cb78-b3ef-4f75-a80b-6fd9dae2944b")
IStorageFolder : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE CreateFileAsyncOverloadDefaultOptions(
        HSTRING desiredName,
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateFileAsync(
        HSTRING desiredName,
        CreationCollisionOption options,
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateFolderAsyncOverloadDefaultOptions(
        HSTRING desiredName,
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateFolderAsync(
        HSTRING desiredName,
        CreationCollisionOption options,
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFileAsync(
        HSTRING name,
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFolderAsync(
        HSTRING name,
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetItemAsync(
        HSTRING name,
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFilesAsyncOverloadDefaultOptionsStartAndCount(
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetFoldersAsyncOverloadDefaultOptionsStartAndCount(
        IInspectable **operation) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetItemsAsyncOverloadDefaultStartAndCount(
        IInspectable **operation) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IStorageFolder, 0x72d1cb78, 0xb3ef, 0x4f75, 0xa8,0x0b, 0x6f,0xd9,0xda,0xe2,0x94,0x4b)
#endif
#else
typedef struct IStorageFolderVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        IStorageFolder* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        IStorageFolder* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        IStorageFolder* This,
        TrustLevel *trustLevel);

    /*** IStorageFolder methods ***/
    HRESULT (STDMETHODCALLTYPE *CreateFileAsyncOverloadDefaultOptions)(
        IStorageFolder* This,
        HSTRING desiredName,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *CreateFileAsync)(
        IStorageFolder* This,
        HSTRING desiredName,
        CreationCollisionOption options,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *CreateFolderAsyncOverloadDefaultOptions)(
        IStorageFolder* This,
        HSTRING desiredName,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *CreateFolderAsync)(
        IStorageFolder* This,
        HSTRING desiredName,
        CreationCollisionOption options,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *GetFileAsync)(
        IStorageFolder* This,
        HSTRING name,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *GetFolderAsync)(
        IStorageFolder* This,
        HSTRING name,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *GetItemAsync)(
        IStorageFolder* This,
        HSTRING name,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *GetFilesAsyncOverloadDefaultOptionsStartAndCount)(
        IStorageFolder* This,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *GetFoldersAsyncOverloadDefaultOptionsStartAndCount)(
        IStorageFolder* This,
        IInspectable **operation);

    HRESULT (STDMETHODCALLTYPE *GetItemsAsyncOverloadDefaultStartAndCount)(
        IStorageFolder* This,
        IInspectable **operation);

    END_INTERFACE
} IStorageFolderVtbl;
interface IStorageFolder {
    CONST_VTBL IStorageFolderVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IStorageFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IStorageFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IStorageFolder_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define IStorageFolder_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define IStorageFolder_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define IStorageFolder_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IStorageFolder methods ***/
#define IStorageFolder_CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation) (This)->lpVtbl->CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation)
#define IStorageFolder_CreateFileAsync(This,desiredName,options,operation) (This)->lpVtbl->CreateFileAsync(This,desiredName,options,operation)
#define IStorageFolder_CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation) (This)->lpVtbl->CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation)
#define IStorageFolder_CreateFolderAsync(This,desiredName,options,operation) (This)->lpVtbl->CreateFolderAsync(This,desiredName,options,operation)
#define IStorageFolder_GetFileAsync(This,name,operation) (This)->lpVtbl->GetFileAsync(This,name,operation)
#define IStorageFolder_GetFolderAsync(This,name,operation) (This)->lpVtbl->GetFolderAsync(This,name,operation)
#define IStorageFolder_GetItemAsync(This,name,operation) (This)->lpVtbl->GetItemAsync(This,name,operation)
#define IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation) (This)->lpVtbl->GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation)
#define IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation) (This)->lpVtbl->GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation)
#define IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount(This,operation) (This)->lpVtbl->GetItemsAsyncOverloadDefaultStartAndCount(This,operation)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IStorageFolder_QueryInterface(IStorageFolder* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IStorageFolder_AddRef(IStorageFolder* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IStorageFolder_Release(IStorageFolder* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT IStorageFolder_GetIids(IStorageFolder* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT IStorageFolder_GetRuntimeClassName(IStorageFolder* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT IStorageFolder_GetTrustLevel(IStorageFolder* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IStorageFolder methods ***/
static FORCEINLINE HRESULT IStorageFolder_CreateFileAsyncOverloadDefaultOptions(IStorageFolder* This,HSTRING desiredName,IInspectable **operation) {
    return This->lpVtbl->CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation);
}
static FORCEINLINE HRESULT IStorageFolder_CreateFileAsync(IStorageFolder* This,HSTRING desiredName,CreationCollisionOption options,IInspectable **operation) {
    return This->lpVtbl->CreateFileAsync(This,desiredName,options,operation);
}
static FORCEINLINE HRESULT IStorageFolder_CreateFolderAsyncOverloadDefaultOptions(IStorageFolder* This,HSTRING desiredName,IInspectable **operation) {
    return This->lpVtbl->CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation);
}
static FORCEINLINE HRESULT IStorageFolder_CreateFolderAsync(IStorageFolder* This,HSTRING desiredName,CreationCollisionOption options,IInspectable **operation) {
    return This->lpVtbl->CreateFolderAsync(This,desiredName,options,operation);
}
static FORCEINLINE HRESULT IStorageFolder_GetFileAsync(IStorageFolder* This,HSTRING name,IInspectable **operation) {
    return This->lpVtbl->GetFileAsync(This,name,operation);
}
static FORCEINLINE HRESULT IStorageFolder_GetFolderAsync(IStorageFolder* This,HSTRING name,IInspectable **operation) {
    return This->lpVtbl->GetFolderAsync(This,name,operation);
}
static FORCEINLINE HRESULT IStorageFolder_GetItemAsync(IStorageFolder* This,HSTRING name,IInspectable **operation) {
    return This->lpVtbl->GetItemAsync(This,name,operation);
}
static FORCEINLINE HRESULT IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount(IStorageFolder* This,IInspectable **operation) {
    return This->lpVtbl->GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation);
}
static FORCEINLINE HRESULT IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount(IStorageFolder* This,IInspectable **operation) {
    return This->lpVtbl->GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation);
}
static FORCEINLINE HRESULT IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount(IStorageFolder* This,IInspectable **operation) {
    return This->lpVtbl->GetItemsAsyncOverloadDefaultStartAndCount(This,operation);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFileAsyncOverloadDefaultOptions_Proxy(
    IStorageFolder* This,
    HSTRING desiredName,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_CreateFileAsyncOverloadDefaultOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFileAsync_Proxy(
    IStorageFolder* This,
    HSTRING desiredName,
    CreationCollisionOption options,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_CreateFileAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFolderAsyncOverloadDefaultOptions_Proxy(
    IStorageFolder* This,
    HSTRING desiredName,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_CreateFolderAsyncOverloadDefaultOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFolderAsync_Proxy(
    IStorageFolder* This,
    HSTRING desiredName,
    CreationCollisionOption options,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_CreateFolderAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_GetFileAsync_Proxy(
    IStorageFolder* This,
    HSTRING name,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_GetFileAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_GetFolderAsync_Proxy(
    IStorageFolder* This,
    HSTRING name,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_GetFolderAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_GetItemAsync_Proxy(
    IStorageFolder* This,
    HSTRING name,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_GetItemAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount_Proxy(
    IStorageFolder* This,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount_Proxy(
    IStorageFolder* This,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount_Proxy(
    IStorageFolder* This,
    IInspectable **operation);
void __RPC_STUB IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IStorageFolder_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IApplicationDataContainer interface
 */
#ifndef __IApplicationDataContainer_INTERFACE_DEFINED__
#define __IApplicationDataContainer_INTERFACE_DEFINED__

DEFINE_GUID(IID_IApplicationDataContainer, 0xc5aefd1e, 0xf467, 0x40ba, 0x85,0x66, 0xab,0x64,0x0a,0x44,0x1e,0x1d);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c5aefd1e-f467-40ba-8566-ab640a441e1d")
IApplicationDataContainer : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE get_Name(
        HSTRING *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Locality(
        ApplicationDataLocality *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Values(
        IInspectable **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Containers(
        IInspectable **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateContainer(
        HSTRING name,
        ApplicationDataCreateDisposition disposition,
        IApplicationDataContainer **container) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteContainer(
        HSTRING name) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IApplicationDataContainer, 0xc5aefd1e, 0xf467, 0x40ba, 0x85,0x66, 0xab,0x64,0x0a,0x44,0x1e,0x1d)
#endif
#else
typedef struct IApplicationDataContainerVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        IApplicationDataContainer* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        IApplicationDataContainer* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        IApplicationDataContainer* This,
        TrustLevel *trustLevel);

    /*** IApplicationDataContainer methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Name)(
        IApplicationDataContainer* This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *get_Locality)(
        IApplicationDataContainer* This,
        ApplicationDataLocality *value);

    HRESULT (STDMETHODCALLTYPE *get_Values)(
        IApplicationDataContainer* This,
        IInspectable **value);

    HRESULT (STDMETHODCALLTYPE *get_Containers)(
        IApplicationDataContainer* This,
        IInspectable **value);

    HRESULT (STDMETHODCALLTYPE *CreateContainer)(
        IApplicationDataContainer* This,
        HSTRING name,
        ApplicationDataCreateDisposition disposition,
        IApplicationDataContainer **container);

    HRESULT (STDMETHODCALLTYPE *DeleteContainer)(
        IApplicationDataContainer* This,
        HSTRING name);

    END_INTERFACE
} IApplicationDataContainerVtbl;
interface IApplicationDataContainer {
    CONST_VTBL IApplicationDataContainerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IApplicationDataContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IApplicationDataContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IApplicationDataContainer_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define IApplicationDataContainer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define IApplicationDataContainer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define IApplicationDataContainer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IApplicationDataContainer methods ***/
#define IApplicationDataContainer_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
#define IApplicationDataContainer_get_Locality(This,value) (This)->lpVtbl->get_Locality(This,value)
#define IApplicationDataContainer_get_Values(This,value) (This)->lpVtbl->get_Values(This,value)
#define IApplicationDataContainer_get_Containers(This,value) (This)->lpVtbl->get_Containers(This,value)
#define IApplicationDataContainer_CreateContainer(This,name,disposition,container) (This)->lpVtbl->CreateContainer(This,name,disposition,container)
#define IApplicationDataContainer_DeleteContainer(This,name) (This)->lpVtbl->DeleteContainer(This,name)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IApplicationDataContainer_QueryInterface(IApplicationDataContainer* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IApplicationDataContainer_AddRef(IApplicationDataContainer* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IApplicationDataContainer_Release(IApplicationDataContainer* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT IApplicationDataContainer_GetIids(IApplicationDataContainer* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT IApplicationDataContainer_GetRuntimeClassName(IApplicationDataContainer* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT IApplicationDataContainer_GetTrustLevel(IApplicationDataContainer* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IApplicationDataContainer methods ***/
static FORCEINLINE HRESULT IApplicationDataContainer_get_Name(IApplicationDataContainer* This,HSTRING *value) {
    return This->lpVtbl->get_Name(This,value);
}
static FORCEINLINE HRESULT IApplicationDataContainer_get_Locality(IApplicationDataContainer* This,ApplicationDataLocality *value) {
    return This->lpVtbl->get_Locality(This,value);
}
static FORCEINLINE HRESULT IApplicationDataContainer_get_Values(IApplicationDataContainer* This,IInspectable **value) {
    return This->lpVtbl->get_Values(This,value);
}
static FORCEINLINE HRESULT IApplicationDataContainer_get_Containers(IApplicationDataContainer* This,IInspectable **value) {
    return This->lpVtbl->get_Containers(This,value);
}
static FORCEINLINE HRESULT IApplicationDataContainer_CreateContainer(IApplicationDataContainer* This,HSTRING name,ApplicationDataCreateDisposition disposition,IApplicationDataContainer **container) {
    return This->lpVtbl->CreateContainer(This,name,disposition,container);
}
static FORCEINLINE HRESULT IApplicationDataContainer_DeleteContainer(IApplicationDataContainer* This,HSTRING name) {
    return This->lpVtbl->DeleteContainer(This,name);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Name_Proxy(
    IApplicationDataContainer* This,
    HSTRING *value);
void __RPC_STUB IApplicationDataContainer_get_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Locality_Proxy(
    IApplicationDataContainer* This,
    ApplicationDataLocality *value);
void __RPC_STUB IApplicationDataContainer_get_Locality_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Values_Proxy(
    IApplicationDataContainer* This,
    IInspectable **value);
void __RPC_STUB IApplicationDataContainer_get_Values_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Containers_Proxy(
    IApplicationDataContainer* This,
    IInspectable **value);
void __RPC_STUB IApplicationDataContainer_get_Containers_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationDataContainer_CreateContainer_Proxy(
    IApplicationDataContainer* This,
    HSTRING name,
    ApplicationDataCreateDisposition disposition,
    IApplicationDataContainer **container);
void __RPC_STUB IApplicationDataContainer_CreateContainer_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationDataContainer_DeleteContainer_Proxy(
    IApplicationDataContainer* This,
    HSTRING name);
void __RPC_STUB IApplicationDataContainer_DeleteContainer_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IApplicationDataContainer_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IApplicationData interface
 */
#ifndef __IApplicationData_INTERFACE_DEFINED__
#define __IApplicationData_INTERFACE_DEFINED__

DEFINE_GUID(IID_IApplicationData, 0xc3da6fb7, 0xb744, 0x4b45, 0xb0,0xb8, 0x22,0x3a,0x09,0x38,0xd0,0xdc);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c3da6fb7-b744-4b45-b0b8-223a0938d0dc")
IApplicationData : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE get_Version(
        int *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetVersionAsync(
        int desiredVersion,
        ApplicationDataSetVersionHandler *handler,
        IInspectable **setVersionOperation) = 0;

    virtual HRESULT STDMETHODCALLTYPE ClearAllAsync(
        IInspectable **clearOperation) = 0;

    virtual HRESULT STDMETHODCALLTYPE ClearAsync(
        ApplicationDataLocality locality,
        IInspectable **clearOperation) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LocalSettings(
        IApplicationDataContainer **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RoamingSettings(
        IApplicationDataContainer **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LocalFolder(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RoamingFolder(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_TemporaryFolder(
        IStorageFolder **value) = 0;

    virtual HRESULT STDMETHODCALLTYPE DataChanged(
        EventRegistrationToken token) = 0;

    virtual HRESULT STDMETHODCALLTYPE SignalDataChanged(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE RoamingStorageQuota(
        UINT64 *value) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IApplicationData, 0xc3da6fb7, 0xb744, 0x4b45, 0xb0,0xb8, 0x22,0x3a,0x09,0x38,0xd0,0xdc)
#endif
#else
typedef struct IApplicationDataVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        IApplicationData* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        IApplicationData* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        IApplicationData* This,
        TrustLevel *trustLevel);

    /*** IApplicationData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Version)(
        IApplicationData* This,
        int *value);

    HRESULT (STDMETHODCALLTYPE *SetVersionAsync)(
        IApplicationData* This,
        int desiredVersion,
        ApplicationDataSetVersionHandler *handler,
        IInspectable **setVersionOperation);

    HRESULT (STDMETHODCALLTYPE *ClearAllAsync)(
        IApplicationData* This,
        IInspectable **clearOperation);

    HRESULT (STDMETHODCALLTYPE *ClearAsync)(
        IApplicationData* This,
        ApplicationDataLocality locality,
        IInspectable **clearOperation);

    HRESULT (STDMETHODCALLTYPE *get_LocalSettings)(
        IApplicationData* This,
        IApplicationDataContainer **value);

    HRESULT (STDMETHODCALLTYPE *get_RoamingSettings)(
        IApplicationData* This,
        IApplicationDataContainer **value);

    HRESULT (STDMETHODCALLTYPE *get_LocalFolder)(
        IApplicationData* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_RoamingFolder)(
        IApplicationData* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *get_TemporaryFolder)(
        IApplicationData* This,
        IStorageFolder **value);

    HRESULT (STDMETHODCALLTYPE *DataChanged)(
        IApplicationData* This,
        EventRegistrationToken token);

    HRESULT (STDMETHODCALLTYPE *SignalDataChanged)(
        IApplicationData* This);

    HRESULT (STDMETHODCALLTYPE *RoamingStorageQuota)(
        IApplicationData* This,
        UINT64 *value);

    END_INTERFACE
} IApplicationDataVtbl;
interface IApplicationData {
    CONST_VTBL IApplicationDataVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IApplicationData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IApplicationData_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IApplicationData_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define IApplicationData_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define IApplicationData_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define IApplicationData_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IApplicationData methods ***/
#define IApplicationData_get_Version(This,value) (This)->lpVtbl->get_Version(This,value)
#define IApplicationData_SetVersionAsync(This,desiredVersion,handler,setVersionOperation) (This)->lpVtbl->SetVersionAsync(This,desiredVersion,handler,setVersionOperation)
#define IApplicationData_ClearAllAsync(This,clearOperation) (This)->lpVtbl->ClearAllAsync(This,clearOperation)
#define IApplicationData_ClearAsync(This,locality,clearOperation) (This)->lpVtbl->ClearAsync(This,locality,clearOperation)
#define IApplicationData_get_LocalSettings(This,value) (This)->lpVtbl->get_LocalSettings(This,value)
#define IApplicationData_get_RoamingSettings(This,value) (This)->lpVtbl->get_RoamingSettings(This,value)
#define IApplicationData_get_LocalFolder(This,value) (This)->lpVtbl->get_LocalFolder(This,value)
#define IApplicationData_get_RoamingFolder(This,value) (This)->lpVtbl->get_RoamingFolder(This,value)
#define IApplicationData_get_TemporaryFolder(This,value) (This)->lpVtbl->get_TemporaryFolder(This,value)
#define IApplicationData_DataChanged(This,token) (This)->lpVtbl->DataChanged(This,token)
#define IApplicationData_SignalDataChanged(This) (This)->lpVtbl->SignalDataChanged(This)
#define IApplicationData_RoamingStorageQuota(This,value) (This)->lpVtbl->RoamingStorageQuota(This,value)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IApplicationData_QueryInterface(IApplicationData* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IApplicationData_AddRef(IApplicationData* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IApplicationData_Release(IApplicationData* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT IApplicationData_GetIids(IApplicationData* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT IApplicationData_GetRuntimeClassName(IApplicationData* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT IApplicationData_GetTrustLevel(IApplicationData* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IApplicationData methods ***/
static FORCEINLINE HRESULT IApplicationData_get_Version(IApplicationData* This,int *value) {
    return This->lpVtbl->get_Version(This,value);
}
static FORCEINLINE HRESULT IApplicationData_SetVersionAsync(IApplicationData* This,int desiredVersion,ApplicationDataSetVersionHandler *handler,IInspectable **setVersionOperation) {
    return This->lpVtbl->SetVersionAsync(This,desiredVersion,handler,setVersionOperation);
}
static FORCEINLINE HRESULT IApplicationData_ClearAllAsync(IApplicationData* This,IInspectable **clearOperation) {
    return This->lpVtbl->ClearAllAsync(This,clearOperation);
}
static FORCEINLINE HRESULT IApplicationData_ClearAsync(IApplicationData* This,ApplicationDataLocality locality,IInspectable **clearOperation) {
    return This->lpVtbl->ClearAsync(This,locality,clearOperation);
}
static FORCEINLINE HRESULT IApplicationData_get_LocalSettings(IApplicationData* This,IApplicationDataContainer **value) {
    return This->lpVtbl->get_LocalSettings(This,value);
}
static FORCEINLINE HRESULT IApplicationData_get_RoamingSettings(IApplicationData* This,IApplicationDataContainer **value) {
    return This->lpVtbl->get_RoamingSettings(This,value);
}
static FORCEINLINE HRESULT IApplicationData_get_LocalFolder(IApplicationData* This,IStorageFolder **value) {
    return This->lpVtbl->get_LocalFolder(This,value);
}
static FORCEINLINE HRESULT IApplicationData_get_RoamingFolder(IApplicationData* This,IStorageFolder **value) {
    return This->lpVtbl->get_RoamingFolder(This,value);
}
static FORCEINLINE HRESULT IApplicationData_get_TemporaryFolder(IApplicationData* This,IStorageFolder **value) {
    return This->lpVtbl->get_TemporaryFolder(This,value);
}
static FORCEINLINE HRESULT IApplicationData_DataChanged(IApplicationData* This,EventRegistrationToken token) {
    return This->lpVtbl->DataChanged(This,token);
}
static FORCEINLINE HRESULT IApplicationData_SignalDataChanged(IApplicationData* This) {
    return This->lpVtbl->SignalDataChanged(This);
}
static FORCEINLINE HRESULT IApplicationData_RoamingStorageQuota(IApplicationData* This,UINT64 *value) {
    return This->lpVtbl->RoamingStorageQuota(This,value);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IApplicationData_get_Version_Proxy(
    IApplicationData* This,
    int *value);
void __RPC_STUB IApplicationData_get_Version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_SetVersionAsync_Proxy(
    IApplicationData* This,
    int desiredVersion,
    ApplicationDataSetVersionHandler *handler,
    IInspectable **setVersionOperation);
void __RPC_STUB IApplicationData_SetVersionAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_ClearAllAsync_Proxy(
    IApplicationData* This,
    IInspectable **clearOperation);
void __RPC_STUB IApplicationData_ClearAllAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_ClearAsync_Proxy(
    IApplicationData* This,
    ApplicationDataLocality locality,
    IInspectable **clearOperation);
void __RPC_STUB IApplicationData_ClearAsync_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_get_LocalSettings_Proxy(
    IApplicationData* This,
    IApplicationDataContainer **value);
void __RPC_STUB IApplicationData_get_LocalSettings_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_get_RoamingSettings_Proxy(
    IApplicationData* This,
    IApplicationDataContainer **value);
void __RPC_STUB IApplicationData_get_RoamingSettings_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_get_LocalFolder_Proxy(
    IApplicationData* This,
    IStorageFolder **value);
void __RPC_STUB IApplicationData_get_LocalFolder_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_get_RoamingFolder_Proxy(
    IApplicationData* This,
    IStorageFolder **value);
void __RPC_STUB IApplicationData_get_RoamingFolder_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_get_TemporaryFolder_Proxy(
    IApplicationData* This,
    IStorageFolder **value);
void __RPC_STUB IApplicationData_get_TemporaryFolder_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_DataChanged_Proxy(
    IApplicationData* This,
    EventRegistrationToken token);
void __RPC_STUB IApplicationData_DataChanged_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_SignalDataChanged_Proxy(
    IApplicationData* This);
void __RPC_STUB IApplicationData_SignalDataChanged_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IApplicationData_RoamingStorageQuota_Proxy(
    IApplicationData* This,
    UINT64 *value);
void __RPC_STUB IApplicationData_RoamingStorageQuota_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IApplicationData_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IApplicationData2 interface
 */
#ifndef __IApplicationData2_INTERFACE_DEFINED__
#define __IApplicationData2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IApplicationData2, 0x9e65cd69, 0x0ba3, 0x4e32, 0xbe,0x29, 0xb0,0x2d,0xe6,0x60,0x76,0x38);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("9e65cd69-0ba3-4e32-be29-b02de6607638")
IApplicationData2 : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE get_LocalCacheFolder(
        IStorageFolder **value) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IApplicationData2, 0x9e65cd69, 0x0ba3, 0x4e32, 0xbe,0x29, 0xb0,0x2d,0xe6,0x60,0x76,0x38)
#endif
#else
typedef struct IApplicationData2Vtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        IApplicationData2 *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        IApplicationData2 *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        IApplicationData2 *This,
        TrustLevel *trustLevel);

    /*** IApplicationData2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_LocalCacheFolder)(
        IApplicationData2 *This,
        IStorageFolder **value);

    END_INTERFACE
} IApplicationData2Vtbl;

interface IApplicationData2 {
    CONST_VTBL IApplicationData2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IApplicationData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IApplicationData2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IApplicationData2_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define IApplicationData2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define IApplicationData2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define IApplicationData2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IApplicationData2 methods ***/
#define IApplicationData2_get_LocalCacheFolder(This,value) (This)->lpVtbl->get_LocalCacheFolder(This,value)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IApplicationData2_QueryInterface(IApplicationData2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IApplicationData2_AddRef(IApplicationData2* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IApplicationData2_Release(IApplicationData2* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT IApplicationData2_GetIids(IApplicationData2* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT IApplicationData2_GetRuntimeClassName(IApplicationData2* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT IApplicationData2_GetTrustLevel(IApplicationData2* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IApplicationData2 methods ***/
static FORCEINLINE HRESULT IApplicationData2_get_LocalCacheFolder(IApplicationData2* This,IStorageFolder **value) {
    return This->lpVtbl->get_LocalCacheFolder(This,value);
}
#endif
#endif

#endif

#endif  /* __IApplicationData2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IApplicationDataStatics interface
 */
#ifndef __IApplicationDataStatics_INTERFACE_DEFINED__
#define __IApplicationDataStatics_INTERFACE_DEFINED__

DEFINE_GUID(IID_IApplicationDataStatics, 0x5612147b, 0xe843, 0x45e3, 0x94,0xd8, 0x06,0x16,0x9e,0x3c,0x8e,0x17);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("5612147b-e843-45e3-94d8-06169e3c8e17")
IApplicationDataStatics : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE get_Current(
        IApplicationData **data) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IApplicationDataStatics, 0x5612147b, 0xe843, 0x45e3, 0x94,0xd8, 0x06,0x16,0x9e,0x3c,0x8e,0x17)
#endif
#else
typedef struct IApplicationDataStaticsVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        IApplicationDataStatics* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        IApplicationDataStatics* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        IApplicationDataStatics* This,
        TrustLevel *trustLevel);

    /*** IApplicationDataStatics methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Current)(
        IApplicationDataStatics* This,
        IApplicationData **data);

    END_INTERFACE
} IApplicationDataStaticsVtbl;
interface IApplicationDataStatics {
    CONST_VTBL IApplicationDataStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IApplicationDataStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IApplicationDataStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IApplicationDataStatics_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define IApplicationDataStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define IApplicationDataStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define IApplicationDataStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IApplicationDataStatics methods ***/
#define IApplicationDataStatics_get_Current(This,data) (This)->lpVtbl->get_Current(This,data)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IApplicationDataStatics_QueryInterface(IApplicationDataStatics* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IApplicationDataStatics_AddRef(IApplicationDataStatics* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IApplicationDataStatics_Release(IApplicationDataStatics* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT IApplicationDataStatics_GetIids(IApplicationDataStatics* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT IApplicationDataStatics_GetRuntimeClassName(IApplicationDataStatics* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT IApplicationDataStatics_GetTrustLevel(IApplicationDataStatics* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IApplicationDataStatics methods ***/
static FORCEINLINE HRESULT IApplicationDataStatics_get_Current(IApplicationDataStatics* This,IApplicationData **data) {
    return This->lpVtbl->get_Current(This,data);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE IApplicationDataStatics_get_Current_Proxy(
    IApplicationDataStatics* This,
    IApplicationData **data);
void __RPC_STUB IApplicationDataStatics_get_Current_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IApplicationDataStatics_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ApplicationDataSetVersionHandler interface
 */
#ifndef __ApplicationDataSetVersionHandler_INTERFACE_DEFINED__
#define __ApplicationDataSetVersionHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_ApplicationDataSetVersionHandler, 0xa05791e6, 0xcc9f, 0x4687, 0xac,0xab, 0xa3,0x64,0xfd,0x78,0x54,0x63);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("a05791e6-cc9f-4687-acab-a364fd785463")
ApplicationDataSetVersionHandler : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE ApplicationDataSetVersionHandler(
        ISetVersionRequest *setVersionRequest) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ApplicationDataSetVersionHandler, 0xa05791e6, 0xcc9f, 0x4687, 0xac,0xab, 0xa3,0x64,0xfd,0x78,0x54,0x63)
#endif
#else
typedef struct ApplicationDataSetVersionHandlerVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** ApplicationDataSetVersionHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *ApplicationDataSetVersionHandler)(
        ApplicationDataSetVersionHandler* This,
        ISetVersionRequest *setVersionRequest);

    END_INTERFACE
} ApplicationDataSetVersionHandlerVtbl;
interface ApplicationDataSetVersionHandler {
    CONST_VTBL ApplicationDataSetVersionHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ApplicationDataSetVersionHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ApplicationDataSetVersionHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ApplicationDataSetVersionHandler_Release(This) (This)->lpVtbl->Release(This)
/*** ApplicationDataSetVersionHandler methods ***/
#define ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler(This,setVersionRequest) (This)->lpVtbl->ApplicationDataSetVersionHandler(This,setVersionRequest)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ApplicationDataSetVersionHandler_QueryInterface(ApplicationDataSetVersionHandler* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ApplicationDataSetVersionHandler_AddRef(ApplicationDataSetVersionHandler* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ApplicationDataSetVersionHandler_Release(ApplicationDataSetVersionHandler* This) {
    return This->lpVtbl->Release(This);
}
/*** ApplicationDataSetVersionHandler methods ***/
static FORCEINLINE HRESULT ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler(ApplicationDataSetVersionHandler* This,ISetVersionRequest *setVersionRequest) {
    return This->lpVtbl->ApplicationDataSetVersionHandler(This,setVersionRequest);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler_Proxy(
    ApplicationDataSetVersionHandler* This,
    ISetVersionRequest *setVersionRequest);
void __RPC_STUB ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ApplicationDataSetVersionHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISetVersionRequest interface
 */
#ifndef __ISetVersionRequest_INTERFACE_DEFINED__
#define __ISetVersionRequest_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISetVersionRequest, 0xb9c76b9b, 0x1056, 0x4e69, 0x83,0x30, 0x16,0x26,0x19,0x95,0x6f,0x9b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("b9c76b9b-1056-4e69-8330-162619956f9b")
ISetVersionRequest : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE get_CurrentVersion(
        UINT32 *currentVersion) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_DesiredVersion(
        UINT32 *desiredVersion) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetDeferral(
        ISetVersionDeferral **deferral) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ISetVersionRequest, 0xb9c76b9b, 0x1056, 0x4e69, 0x83,0x30, 0x16,0x26,0x19,0x95,0x6f,0x9b)
#endif
#else
typedef struct ISetVersionRequestVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        ISetVersionRequest* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        ISetVersionRequest* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        ISetVersionRequest* This,
        TrustLevel *trustLevel);

    /*** ISetVersionRequest methods ***/
    HRESULT (STDMETHODCALLTYPE *get_CurrentVersion)(
        ISetVersionRequest* This,
        UINT32 *currentVersion);

    HRESULT (STDMETHODCALLTYPE *get_DesiredVersion)(
        ISetVersionRequest* This,
        UINT32 *desiredVersion);

    HRESULT (STDMETHODCALLTYPE *GetDeferral)(
        ISetVersionRequest* This,
        ISetVersionDeferral **deferral);

    END_INTERFACE
} ISetVersionRequestVtbl;
interface ISetVersionRequest {
    CONST_VTBL ISetVersionRequestVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ISetVersionRequest_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISetVersionRequest_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISetVersionRequest_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define ISetVersionRequest_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define ISetVersionRequest_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define ISetVersionRequest_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** ISetVersionRequest methods ***/
#define ISetVersionRequest_get_CurrentVersion(This,currentVersion) (This)->lpVtbl->get_CurrentVersion(This,currentVersion)
#define ISetVersionRequest_get_DesiredVersion(This,desiredVersion) (This)->lpVtbl->get_DesiredVersion(This,desiredVersion)
#define ISetVersionRequest_GetDeferral(This,deferral) (This)->lpVtbl->GetDeferral(This,deferral)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ISetVersionRequest_QueryInterface(ISetVersionRequest* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ISetVersionRequest_AddRef(ISetVersionRequest* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ISetVersionRequest_Release(ISetVersionRequest* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT ISetVersionRequest_GetIids(ISetVersionRequest* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT ISetVersionRequest_GetRuntimeClassName(ISetVersionRequest* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT ISetVersionRequest_GetTrustLevel(ISetVersionRequest* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** ISetVersionRequest methods ***/
static FORCEINLINE HRESULT ISetVersionRequest_get_CurrentVersion(ISetVersionRequest* This,UINT32 *currentVersion) {
    return This->lpVtbl->get_CurrentVersion(This,currentVersion);
}
static FORCEINLINE HRESULT ISetVersionRequest_get_DesiredVersion(ISetVersionRequest* This,UINT32 *desiredVersion) {
    return This->lpVtbl->get_DesiredVersion(This,desiredVersion);
}
static FORCEINLINE HRESULT ISetVersionRequest_GetDeferral(ISetVersionRequest* This,ISetVersionDeferral **deferral) {
    return This->lpVtbl->GetDeferral(This,deferral);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE ISetVersionRequest_get_CurrentVersion_Proxy(
    ISetVersionRequest* This,
    UINT32 *currentVersion);
void __RPC_STUB ISetVersionRequest_get_CurrentVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISetVersionRequest_get_DesiredVersion_Proxy(
    ISetVersionRequest* This,
    UINT32 *desiredVersion);
void __RPC_STUB ISetVersionRequest_get_DesiredVersion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISetVersionRequest_GetDeferral_Proxy(
    ISetVersionRequest* This,
    ISetVersionDeferral **deferral);
void __RPC_STUB ISetVersionRequest_GetDeferral_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISetVersionRequest_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISetVersionDeferral interface
 */
#ifndef __ISetVersionDeferral_INTERFACE_DEFINED__
#define __ISetVersionDeferral_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISetVersionDeferral, 0x033508a2, 0x781a, 0x437a, 0xb0,0x78, 0x3f,0x32,0xba,0xdc,0xfe,0x47);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("033508a2-781a-437a-b078-3f32badcfe47")
ISetVersionDeferral : public IInspectable
{
    virtual HRESULT STDMETHODCALLTYPE Complete(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(ISetVersionDeferral, 0x033508a2, 0x781a, 0x437a, 0xb0,0x78, 0x3f,0x32,0xba,0xdc,0xfe,0x47)
#endif
#else
typedef struct ISetVersionDeferralVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        ISetVersionDeferral* This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        ISetVersionDeferral* This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        ISetVersionDeferral* This,
        TrustLevel *trustLevel);

    /*** ISetVersionDeferral methods ***/
    HRESULT (STDMETHODCALLTYPE *Complete)(
        ISetVersionDeferral* This);

    END_INTERFACE
} ISetVersionDeferralVtbl;
interface ISetVersionDeferral {
    CONST_VTBL ISetVersionDeferralVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define ISetVersionDeferral_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISetVersionDeferral_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISetVersionDeferral_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define ISetVersionDeferral_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define ISetVersionDeferral_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define ISetVersionDeferral_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** ISetVersionDeferral methods ***/
#define ISetVersionDeferral_Complete(This) (This)->lpVtbl->Complete(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT ISetVersionDeferral_QueryInterface(ISetVersionDeferral* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG ISetVersionDeferral_AddRef(ISetVersionDeferral* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG ISetVersionDeferral_Release(ISetVersionDeferral* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT ISetVersionDeferral_GetIids(ISetVersionDeferral* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT ISetVersionDeferral_GetRuntimeClassName(ISetVersionDeferral* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT ISetVersionDeferral_GetTrustLevel(ISetVersionDeferral* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** ISetVersionDeferral methods ***/
static FORCEINLINE HRESULT ISetVersionDeferral_Complete(ISetVersionDeferral* This) {
    return This->lpVtbl->Complete(This);
}
#endif
#endif

#endif

HRESULT STDMETHODCALLTYPE ISetVersionDeferral_Complete_Proxy(
    ISetVersionDeferral* This);
void __RPC_STUB ISetVersionDeferral_Complete_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISetVersionDeferral_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_storage_h__ */
