/*** Autogenerated by WIDL 0.9.40 from wine/itss.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_ITSS_H
#define __WIDL_ITSS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <oaidl.h>
typedef struct _ITS_Control_Data {
    UINT cdwControlData;
    UINT adwControlData[1];
} ITS_Control_Data;
typedef struct _ITS_Control_Data *PITS_Control_Data;
typedef enum ECompactionLev {
    COMPACT_DATA = 0,
    COMPACT_DATA_AND_PATH = 1
} ECompactionLev;
#ifndef __IITStorage_FWD_DEFINED__
#define __IITStorage_FWD_DEFINED__
typedef interface IITStorage IITStorage;
#endif

/*****************************************************************************
 * IITStorage interface
 */
#ifndef __IITStorage_INTERFACE_DEFINED__
#define __IITStorage_INTERFACE_DEFINED__

DEFINE_GUID(IID_IITStorage, 0x88cc31de, 0x27ab, 0x11d0, 0x9d,0xf9, 0x00,0xa0,0xc9,0x22,0xe6,0xec);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IITStorage : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE StgCreateDocfile(
        const WCHAR *pwcsName,
        DWORD grfMode,
        DWORD reserved,
        IStorage **ppstgOpen) = 0;

    virtual HRESULT STDMETHODCALLTYPE StgCreateDocfileOnILockBytes(
        ILockBytes *plkbyt,
        DWORD grfMode,
        DWORD reserved,
        IStorage **ppstgOpen) = 0;

    virtual HRESULT STDMETHODCALLTYPE StgIsStorageFile(
        const WCHAR *pwcsName) = 0;

    virtual HRESULT STDMETHODCALLTYPE StgIsStorageILockBytes(
        ILockBytes *plkbyt) = 0;

    virtual HRESULT STDMETHODCALLTYPE StgOpenStorage(
        const WCHAR *pwcsName,
        IStorage *pstgPriority,
        DWORD grfMode,
        SNB snbExclude,
        DWORD reserved,
        IStorage **ppstgOpen) = 0;

    virtual HRESULT STDMETHODCALLTYPE StgOpenStorageOnILockBytes(
        ILockBytes *plkbyt,
        IStorage *pStgPriority,
        DWORD grfMode,
        SNB snbExclude,
        DWORD reserved,
        IStorage **ppstgOpen) = 0;

    virtual HRESULT STDMETHODCALLTYPE StgSetTimes(
        WCHAR *lpszName,
        FILETIME *pctime,
        FILETIME *patime,
        FILETIME *pmtime) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetControlData(
        PITS_Control_Data pControlData) = 0;

    virtual HRESULT STDMETHODCALLTYPE DefaultControlData(
        PITS_Control_Data *ppControlData) = 0;

    virtual HRESULT STDMETHODCALLTYPE Compact(
        const WCHAR *pwcsName,
        ECompactionLev iLev) = 0;

};
#else
typedef struct IITStorageVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IITStorage methods ***/
    HRESULT (STDMETHODCALLTYPE *StgCreateDocfile)(
        IITStorage* This,
        const WCHAR *pwcsName,
        DWORD grfMode,
        DWORD reserved,
        IStorage **ppstgOpen);

    HRESULT (STDMETHODCALLTYPE *StgCreateDocfileOnILockBytes)(
        IITStorage* This,
        ILockBytes *plkbyt,
        DWORD grfMode,
        DWORD reserved,
        IStorage **ppstgOpen);

    HRESULT (STDMETHODCALLTYPE *StgIsStorageFile)(
        IITStorage* This,
        const WCHAR *pwcsName);

    HRESULT (STDMETHODCALLTYPE *StgIsStorageILockBytes)(
        IITStorage* This,
        ILockBytes *plkbyt);

    HRESULT (STDMETHODCALLTYPE *StgOpenStorage)(
        IITStorage* This,
        const WCHAR *pwcsName,
        IStorage *pstgPriority,
        DWORD grfMode,
        SNB snbExclude,
        DWORD reserved,
        IStorage **ppstgOpen);

    HRESULT (STDMETHODCALLTYPE *StgOpenStorageOnILockBytes)(
        IITStorage* This,
        ILockBytes *plkbyt,
        IStorage *pStgPriority,
        DWORD grfMode,
        SNB snbExclude,
        DWORD reserved,
        IStorage **ppstgOpen);

    HRESULT (STDMETHODCALLTYPE *StgSetTimes)(
        IITStorage* This,
        WCHAR *lpszName,
        FILETIME *pctime,
        FILETIME *patime,
        FILETIME *pmtime);

    HRESULT (STDMETHODCALLTYPE *SetControlData)(
        IITStorage* This,
        PITS_Control_Data pControlData);

    HRESULT (STDMETHODCALLTYPE *DefaultControlData)(
        IITStorage* This,
        PITS_Control_Data *ppControlData);

    HRESULT (STDMETHODCALLTYPE *Compact)(
        IITStorage* This,
        const WCHAR *pwcsName,
        ECompactionLev iLev);

    END_INTERFACE
} IITStorageVtbl;
interface IITStorage {
    CONST_VTBL IITStorageVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IITStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IITStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IITStorage_Release(p) (p)->lpVtbl->Release(p)
/*** IITStorage methods ***/
#define IITStorage_StgCreateDocfile(p,a,b,c,d) (p)->lpVtbl->StgCreateDocfile(p,a,b,c,d)
#define IITStorage_StgCreateDocfileOnILockBytes(p,a,b,c,d) (p)->lpVtbl->StgCreateDocfileOnILockBytes(p,a,b,c,d)
#define IITStorage_StgIsStorageFile(p,a) (p)->lpVtbl->StgIsStorageFile(p,a)
#define IITStorage_StgIsStorageILockBytes(p,a) (p)->lpVtbl->StgIsStorageILockBytes(p,a)
#define IITStorage_StgOpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->StgOpenStorage(p,a,b,c,d,e,f)
#define IITStorage_StgOpenStorageOnILockBytes(p,a,b,c,d,e,f) (p)->lpVtbl->StgOpenStorageOnILockBytes(p,a,b,c,d,e,f)
#define IITStorage_StgSetTimes(p,a,b,c,d) (p)->lpVtbl->StgSetTimes(p,a,b,c,d)
#define IITStorage_SetControlData(p,a) (p)->lpVtbl->SetControlData(p,a)
#define IITStorage_DefaultControlData(p,a) (p)->lpVtbl->DefaultControlData(p,a)
#define IITStorage_Compact(p,a,b) (p)->lpVtbl->Compact(p,a,b)
#endif

#endif

HRESULT CALLBACK IITStorage_StgCreateDocfile_Proxy(
    IITStorage* This,
    const WCHAR *pwcsName,
    DWORD grfMode,
    DWORD reserved,
    IStorage **ppstgOpen);
void __RPC_STUB IITStorage_StgCreateDocfile_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_StgCreateDocfileOnILockBytes_Proxy(
    IITStorage* This,
    ILockBytes *plkbyt,
    DWORD grfMode,
    DWORD reserved,
    IStorage **ppstgOpen);
void __RPC_STUB IITStorage_StgCreateDocfileOnILockBytes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_StgIsStorageFile_Proxy(
    IITStorage* This,
    const WCHAR *pwcsName);
void __RPC_STUB IITStorage_StgIsStorageFile_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_StgIsStorageILockBytes_Proxy(
    IITStorage* This,
    ILockBytes *plkbyt);
void __RPC_STUB IITStorage_StgIsStorageILockBytes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_StgOpenStorage_Proxy(
    IITStorage* This,
    const WCHAR *pwcsName,
    IStorage *pstgPriority,
    DWORD grfMode,
    SNB snbExclude,
    DWORD reserved,
    IStorage **ppstgOpen);
void __RPC_STUB IITStorage_StgOpenStorage_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_StgOpenStorageOnILockBytes_Proxy(
    IITStorage* This,
    ILockBytes *plkbyt,
    IStorage *pStgPriority,
    DWORD grfMode,
    SNB snbExclude,
    DWORD reserved,
    IStorage **ppstgOpen);
void __RPC_STUB IITStorage_StgOpenStorageOnILockBytes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_StgSetTimes_Proxy(
    IITStorage* This,
    WCHAR *lpszName,
    FILETIME *pctime,
    FILETIME *patime,
    FILETIME *pmtime);
void __RPC_STUB IITStorage_StgSetTimes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_SetControlData_Proxy(
    IITStorage* This,
    PITS_Control_Data pControlData);
void __RPC_STUB IITStorage_SetControlData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_DefaultControlData_Proxy(
    IITStorage* This,
    PITS_Control_Data *ppControlData);
void __RPC_STUB IITStorage_DefaultControlData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IITStorage_Compact_Proxy(
    IITStorage* This,
    const WCHAR *pwcsName,
    ECompactionLev iLev);
void __RPC_STUB IITStorage_Compact_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IITStorage_INTERFACE_DEFINED__ */

DEFINE_GUID(CLSID_ITStorage,0x5d02926a,0x212e,0x11d0,0x9d,0xf9,0x00,0xa0,0xc9,0x22,0xe6,0xec);
DEFINE_GUID(CLSID_MSFSStore,0xd54eee56,0xaaab,0x11d0,0x9e,0x1d,0x00,0xa0,0xc9,0x22,0xe6,0xec);
DEFINE_GUID(CLSID_MSITStore,0x9d148290,0xb9c8,0x11d0,0xa4,0xcc,0x00,0x00,0xf8,0x01,0x49,0xf6);
DEFINE_GUID(CLSID_ITSProtocol,0x9d148291,0xb9c8,0x11d0,0xa4,0xcc,0x00,0x00,0xf8,0x01,0x49,0xf6);
/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER SNB_UserSize     (ULONG *, ULONG, SNB *);
unsigned char * __RPC_USER SNB_UserMarshal  (ULONG *, unsigned char *, SNB *);
unsigned char * __RPC_USER SNB_UserUnmarshal(ULONG *, unsigned char *, SNB *);
void            __RPC_USER SNB_UserFree     (ULONG *, SNB *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_ITSS_H */
