

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0366 */
/* at Wed May 20 19:06:28 2009
 */
/* Compiler settings for ..\..\builds\Release_Win32\_FileIO.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef ___FileIO_h__
#define ___FileIO_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IRsFileChunk_FWD_DEFINED__
#define __IRsFileChunk_FWD_DEFINED__
typedef interface IRsFileChunk IRsFileChunk;
#endif 	/* __IRsFileChunk_FWD_DEFINED__ */


#ifndef __IRdChunkHeader_FWD_DEFINED__
#define __IRdChunkHeader_FWD_DEFINED__
typedef interface IRdChunkHeader IRdChunkHeader;
#endif 	/* __IRdChunkHeader_FWD_DEFINED__ */


#ifndef __IRdChunkHeaderDisp_FWD_DEFINED__
#define __IRdChunkHeaderDisp_FWD_DEFINED__
typedef interface IRdChunkHeaderDisp IRdChunkHeaderDisp;
#endif 	/* __IRdChunkHeaderDisp_FWD_DEFINED__ */


#ifndef __IRdChunkTags_FWD_DEFINED__
#define __IRdChunkTags_FWD_DEFINED__
typedef interface IRdChunkTags IRdChunkTags;
#endif 	/* __IRdChunkTags_FWD_DEFINED__ */


#ifndef __IRdChunkRsObj_FWD_DEFINED__
#define __IRdChunkRsObj_FWD_DEFINED__
typedef interface IRdChunkRsObj IRdChunkRsObj;
#endif 	/* __IRdChunkRsObj_FWD_DEFINED__ */


#ifndef __IRdChunkRsObjDisp_FWD_DEFINED__
#define __IRdChunkRsObjDisp_FWD_DEFINED__
typedef interface IRdChunkRsObjDisp IRdChunkRsObjDisp;
#endif 	/* __IRdChunkRsObjDisp_FWD_DEFINED__ */


#ifndef __IRdChunkUnknown_FWD_DEFINED__
#define __IRdChunkUnknown_FWD_DEFINED__
typedef interface IRdChunkUnknown IRdChunkUnknown;
#endif 	/* __IRdChunkUnknown_FWD_DEFINED__ */


#ifndef __IRdChunkUnknownDisp_FWD_DEFINED__
#define __IRdChunkUnknownDisp_FWD_DEFINED__
typedef interface IRdChunkUnknownDisp IRdChunkUnknownDisp;
#endif 	/* __IRdChunkUnknownDisp_FWD_DEFINED__ */


#ifndef __IRdChunksList_FWD_DEFINED__
#define __IRdChunksList_FWD_DEFINED__
typedef interface IRdChunksList IRdChunksList;
#endif 	/* __IRdChunksList_FWD_DEFINED__ */


#ifndef __IRdChunksListDisp_FWD_DEFINED__
#define __IRdChunksListDisp_FWD_DEFINED__
typedef interface IRdChunksListDisp IRdChunksListDisp;
#endif 	/* __IRdChunksListDisp_FWD_DEFINED__ */


#ifndef __IRdChunkThumbnail_FWD_DEFINED__
#define __IRdChunkThumbnail_FWD_DEFINED__
typedef interface IRdChunkThumbnail IRdChunkThumbnail;
#endif 	/* __IRdChunkThumbnail_FWD_DEFINED__ */


#ifndef __IRdChunkThumbnailDisp_FWD_DEFINED__
#define __IRdChunkThumbnailDisp_FWD_DEFINED__
typedef interface IRdChunkThumbnailDisp IRdChunkThumbnailDisp;
#endif 	/* __IRdChunkThumbnailDisp_FWD_DEFINED__ */


#ifndef __IRdChunkHistory_FWD_DEFINED__
#define __IRdChunkHistory_FWD_DEFINED__
typedef interface IRdChunkHistory IRdChunkHistory;
#endif 	/* __IRdChunkHistory_FWD_DEFINED__ */


#ifndef __IRdChunkHistoryDisp_FWD_DEFINED__
#define __IRdChunkHistoryDisp_FWD_DEFINED__
typedef interface IRdChunkHistoryDisp IRdChunkHistoryDisp;
#endif 	/* __IRdChunkHistoryDisp_FWD_DEFINED__ */


#ifndef __IRdChunkSystem_FWD_DEFINED__
#define __IRdChunkSystem_FWD_DEFINED__
typedef interface IRdChunkSystem IRdChunkSystem;
#endif 	/* __IRdChunkSystem_FWD_DEFINED__ */


#ifndef __IRsFileInfo_FWD_DEFINED__
#define __IRsFileInfo_FWD_DEFINED__
typedef interface IRsFileInfo IRsFileInfo;
#endif 	/* __IRsFileInfo_FWD_DEFINED__ */


#ifndef __IRfFileSupport_FWD_DEFINED__
#define __IRfFileSupport_FWD_DEFINED__
typedef interface IRfFileSupport IRfFileSupport;
#endif 	/* __IRfFileSupport_FWD_DEFINED__ */


#ifndef __IRfObsFileIO_FWD_DEFINED__
#define __IRfObsFileIO_FWD_DEFINED__
typedef interface IRfObsFileIO IRfObsFileIO;
#endif 	/* __IRfObsFileIO_FWD_DEFINED__ */


#ifndef __IRsFileHandle_FWD_DEFINED__
#define __IRsFileHandle_FWD_DEFINED__
typedef interface IRsFileHandle IRsFileHandle;
#endif 	/* __IRsFileHandle_FWD_DEFINED__ */


#ifndef __IRsFileHandleDisp_FWD_DEFINED__
#define __IRsFileHandleDisp_FWD_DEFINED__
typedef interface IRsFileHandleDisp IRsFileHandleDisp;
#endif 	/* __IRsFileHandleDisp_FWD_DEFINED__ */


#ifndef __IRsFileIOAsyncNotify_FWD_DEFINED__
#define __IRsFileIOAsyncNotify_FWD_DEFINED__
typedef interface IRsFileIOAsyncNotify IRsFileIOAsyncNotify;
#endif 	/* __IRsFileIOAsyncNotify_FWD_DEFINED__ */


#ifndef __IRsFileIOType_FWD_DEFINED__
#define __IRsFileIOType_FWD_DEFINED__
typedef interface IRsFileIOType IRsFileIOType;
#endif 	/* __IRsFileIOType_FWD_DEFINED__ */


#ifndef __IRsFileIORepository_FWD_DEFINED__
#define __IRsFileIORepository_FWD_DEFINED__
typedef interface IRsFileIORepository IRsFileIORepository;
#endif 	/* __IRsFileIORepository_FWD_DEFINED__ */


#ifndef __IRsEnumFileIOTypes_FWD_DEFINED__
#define __IRsEnumFileIOTypes_FWD_DEFINED__
typedef interface IRsEnumFileIOTypes IRsEnumFileIOTypes;
#endif 	/* __IRsEnumFileIOTypes_FWD_DEFINED__ */


#ifndef __IRsFileIOGeneric_FWD_DEFINED__
#define __IRsFileIOGeneric_FWD_DEFINED__
typedef interface IRsFileIOGeneric IRsFileIOGeneric;
#endif 	/* __IRsFileIOGeneric_FWD_DEFINED__ */


#ifndef __IRsPackageFileIOReg_FWD_DEFINED__
#define __IRsPackageFileIOReg_FWD_DEFINED__
typedef interface IRsPackageFileIOReg IRsPackageFileIOReg;
#endif 	/* __IRsPackageFileIOReg_FWD_DEFINED__ */


#ifndef __IRsFileTypeRsObj_FWD_DEFINED__
#define __IRsFileTypeRsObj_FWD_DEFINED__
typedef interface IRsFileTypeRsObj IRsFileTypeRsObj;
#endif 	/* __IRsFileTypeRsObj_FWD_DEFINED__ */


#ifndef __IRsFileTypeRsSystem_FWD_DEFINED__
#define __IRsFileTypeRsSystem_FWD_DEFINED__
typedef interface IRsFileTypeRsSystem IRsFileTypeRsSystem;
#endif 	/* __IRsFileTypeRsSystem_FWD_DEFINED__ */


#ifndef __IRfFileIOHelper_FWD_DEFINED__
#define __IRfFileIOHelper_FWD_DEFINED__
typedef interface IRfFileIOHelper IRfFileIOHelper;
#endif 	/* __IRfFileIOHelper_FWD_DEFINED__ */


#ifndef __IRpFileIOPck_FWD_DEFINED__
#define __IRpFileIOPck_FWD_DEFINED__
typedef interface IRpFileIOPck IRpFileIOPck;
#endif 	/* __IRpFileIOPck_FWD_DEFINED__ */


#ifndef __IRiFileIOItem_FWD_DEFINED__
#define __IRiFileIOItem_FWD_DEFINED__
typedef interface IRiFileIOItem IRiFileIOItem;
#endif 	/* __IRiFileIOItem_FWD_DEFINED__ */


#ifndef __IRcSaveSystem_FWD_DEFINED__
#define __IRcSaveSystem_FWD_DEFINED__
typedef interface IRcSaveSystem IRcSaveSystem;
#endif 	/* __IRcSaveSystem_FWD_DEFINED__ */


#ifndef __IRcLoadSystem_FWD_DEFINED__
#define __IRcLoadSystem_FWD_DEFINED__
typedef interface IRcLoadSystem IRcLoadSystem;
#endif 	/* __IRcLoadSystem_FWD_DEFINED__ */


#ifndef __IRcSaveHistory_FWD_DEFINED__
#define __IRcSaveHistory_FWD_DEFINED__
typedef interface IRcSaveHistory IRcSaveHistory;
#endif 	/* __IRcSaveHistory_FWD_DEFINED__ */


#ifndef __IRcLoadHistory_FWD_DEFINED__
#define __IRcLoadHistory_FWD_DEFINED__
typedef interface IRcLoadHistory IRcLoadHistory;
#endif 	/* __IRcLoadHistory_FWD_DEFINED__ */


#ifndef __IRcGenericLoad_FWD_DEFINED__
#define __IRcGenericLoad_FWD_DEFINED__
typedef interface IRcGenericLoad IRcGenericLoad;
#endif 	/* __IRcGenericLoad_FWD_DEFINED__ */


#ifndef __IRcFileIOLoadObject_FWD_DEFINED__
#define __IRcFileIOLoadObject_FWD_DEFINED__
typedef interface IRcFileIOLoadObject IRcFileIOLoadObject;
#endif 	/* __IRcFileIOLoadObject_FWD_DEFINED__ */


#ifndef __IRcFileIOSaveObject_FWD_DEFINED__
#define __IRcFileIOSaveObject_FWD_DEFINED__
typedef interface IRcFileIOSaveObject IRcFileIOSaveObject;
#endif 	/* __IRcFileIOSaveObject_FWD_DEFINED__ */


#ifndef __IRsFileIOCmdFactory_FWD_DEFINED__
#define __IRsFileIOCmdFactory_FWD_DEFINED__
typedef interface IRsFileIOCmdFactory IRsFileIOCmdFactory;
#endif 	/* __IRsFileIOCmdFactory_FWD_DEFINED__ */


#ifndef __IRsFileIODataObjFactory_FWD_DEFINED__
#define __IRsFileIODataObjFactory_FWD_DEFINED__
typedef interface IRsFileIODataObjFactory IRsFileIODataObjFactory;
#endif 	/* __IRsFileIODataObjFactory_FWD_DEFINED__ */


#ifndef __CRdChunkHeader_FWD_DEFINED__
#define __CRdChunkHeader_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunkHeader CRdChunkHeader;
#else
typedef struct CRdChunkHeader CRdChunkHeader;
#endif /* __cplusplus */

#endif 	/* __CRdChunkHeader_FWD_DEFINED__ */


#ifndef __CRdChunkTags_FWD_DEFINED__
#define __CRdChunkTags_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunkTags CRdChunkTags;
#else
typedef struct CRdChunkTags CRdChunkTags;
#endif /* __cplusplus */

#endif 	/* __CRdChunkTags_FWD_DEFINED__ */


#ifndef __CRdChunkRsObj_FWD_DEFINED__
#define __CRdChunkRsObj_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunkRsObj CRdChunkRsObj;
#else
typedef struct CRdChunkRsObj CRdChunkRsObj;
#endif /* __cplusplus */

#endif 	/* __CRdChunkRsObj_FWD_DEFINED__ */


#ifndef __CRdChunkUnknown_FWD_DEFINED__
#define __CRdChunkUnknown_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunkUnknown CRdChunkUnknown;
#else
typedef struct CRdChunkUnknown CRdChunkUnknown;
#endif /* __cplusplus */

#endif 	/* __CRdChunkUnknown_FWD_DEFINED__ */


#ifndef __CRdChunksList_FWD_DEFINED__
#define __CRdChunksList_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunksList CRdChunksList;
#else
typedef struct CRdChunksList CRdChunksList;
#endif /* __cplusplus */

#endif 	/* __CRdChunksList_FWD_DEFINED__ */


#ifndef __CRdChunkThumbnail_FWD_DEFINED__
#define __CRdChunkThumbnail_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunkThumbnail CRdChunkThumbnail;
#else
typedef struct CRdChunkThumbnail CRdChunkThumbnail;
#endif /* __cplusplus */

#endif 	/* __CRdChunkThumbnail_FWD_DEFINED__ */


#ifndef __CRdChunkHistory_FWD_DEFINED__
#define __CRdChunkHistory_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunkHistory CRdChunkHistory;
#else
typedef struct CRdChunkHistory CRdChunkHistory;
#endif /* __cplusplus */

#endif 	/* __CRdChunkHistory_FWD_DEFINED__ */


#ifndef __CRdChunkSystem_FWD_DEFINED__
#define __CRdChunkSystem_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdChunkSystem CRdChunkSystem;
#else
typedef struct CRdChunkSystem CRdChunkSystem;
#endif /* __cplusplus */

#endif 	/* __CRdChunkSystem_FWD_DEFINED__ */


#ifndef __CRfObsFileIO_FWD_DEFINED__
#define __CRfObsFileIO_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRfObsFileIO CRfObsFileIO;
#else
typedef struct CRfObsFileIO CRfObsFileIO;
#endif /* __cplusplus */

#endif 	/* __CRfObsFileIO_FWD_DEFINED__ */


#ifndef __CRsFileHandle_FWD_DEFINED__
#define __CRsFileHandle_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRsFileHandle CRsFileHandle;
#else
typedef struct CRsFileHandle CRsFileHandle;
#endif /* __cplusplus */

#endif 	/* __CRsFileHandle_FWD_DEFINED__ */


#ifndef __CFileIOHelper_FWD_DEFINED__
#define __CFileIOHelper_FWD_DEFINED__

#ifdef __cplusplus
typedef class CFileIOHelper CFileIOHelper;
#else
typedef struct CFileIOHelper CFileIOHelper;
#endif /* __cplusplus */

#endif 	/* __CFileIOHelper_FWD_DEFINED__ */


#ifndef __CRpFileIOPck_FWD_DEFINED__
#define __CRpFileIOPck_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRpFileIOPck CRpFileIOPck;
#else
typedef struct CRpFileIOPck CRpFileIOPck;
#endif /* __cplusplus */

#endif 	/* __CRpFileIOPck_FWD_DEFINED__ */


#ifndef __CRiFileIOItem_FWD_DEFINED__
#define __CRiFileIOItem_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRiFileIOItem CRiFileIOItem;
#else
typedef struct CRiFileIOItem CRiFileIOItem;
#endif /* __cplusplus */

#endif 	/* __CRiFileIOItem_FWD_DEFINED__ */


/* header files for imported files */
#include "prsht.h"
#include "mshtml.h"
#include "mshtmhst.h"
#include "exdisp.h"
#include "objsafe.h"
#include "_kernel.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf__FileIO_0000 */
/* [local] */ 

typedef RtUshort RtChunkFileVer;

typedef struct tagRtChunkCustomId
    {
    RtChunkFileVer chunkVer;
    RtObjFileVer objVer;
    } 	RtChunkCustomId;



extern RPC_IF_HANDLE __MIDL_itf__FileIO_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__FileIO_0000_v0_0_s_ifspec;

#ifndef __IRsFileChunk_INTERFACE_DEFINED__
#define __IRsFileChunk_INTERFACE_DEFINED__

/* interface IRsFileChunk */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileChunk;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B21DA20F-C828-4f52-8344-CF991FFABE94")
    IRsFileChunk : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ChunkID( 
            /* [retval][out] */ IID *piidChunk) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CustomID( 
            /* [retval][out] */ RtChunkCustomId *pCustomID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Address( 
            /* [retval][out] */ RtQWORD *pqwVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Length( 
            /* [retval][out] */ RtQWORD *pqwVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SaveToStream( 
            /* [in] */ IStream *pStream,
            /* [in] */ RtBOOL bSaveChunkIID,
            /* [in] */ RtBOOL fClearDirty) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadFromStream( 
            /* [in] */ IStream *pStream) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileChunkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileChunk * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileChunk * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileChunk * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChunkID )( 
            IRsFileChunk * This,
            /* [retval][out] */ IID *piidChunk);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CustomID )( 
            IRsFileChunk * This,
            /* [retval][out] */ RtChunkCustomId *pCustomID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Address )( 
            IRsFileChunk * This,
            /* [retval][out] */ RtQWORD *pqwVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Length )( 
            IRsFileChunk * This,
            /* [retval][out] */ RtQWORD *pqwVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SaveToStream )( 
            IRsFileChunk * This,
            /* [in] */ IStream *pStream,
            /* [in] */ RtBOOL bSaveChunkIID,
            /* [in] */ RtBOOL fClearDirty);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadFromStream )( 
            IRsFileChunk * This,
            /* [in] */ IStream *pStream);
        
        END_INTERFACE
    } IRsFileChunkVtbl;

    interface IRsFileChunk
    {
        CONST_VTBL struct IRsFileChunkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileChunk_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileChunk_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileChunk_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileChunk_ChunkID(This,piidChunk)	\
    (This)->lpVtbl -> ChunkID(This,piidChunk)

#define IRsFileChunk_CustomID(This,pCustomID)	\
    (This)->lpVtbl -> CustomID(This,pCustomID)

#define IRsFileChunk_Address(This,pqwVal)	\
    (This)->lpVtbl -> Address(This,pqwVal)

#define IRsFileChunk_Length(This,pqwVal)	\
    (This)->lpVtbl -> Length(This,pqwVal)

#define IRsFileChunk_SaveToStream(This,pStream,bSaveChunkIID,fClearDirty)	\
    (This)->lpVtbl -> SaveToStream(This,pStream,bSaveChunkIID,fClearDirty)

#define IRsFileChunk_LoadFromStream(This,pStream)	\
    (This)->lpVtbl -> LoadFromStream(This,pStream)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileChunk_ChunkID_Proxy( 
    IRsFileChunk * This,
    /* [retval][out] */ IID *piidChunk);


void __RPC_STUB IRsFileChunk_ChunkID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileChunk_CustomID_Proxy( 
    IRsFileChunk * This,
    /* [retval][out] */ RtChunkCustomId *pCustomID);


void __RPC_STUB IRsFileChunk_CustomID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileChunk_Address_Proxy( 
    IRsFileChunk * This,
    /* [retval][out] */ RtQWORD *pqwVal);


void __RPC_STUB IRsFileChunk_Address_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileChunk_Length_Proxy( 
    IRsFileChunk * This,
    /* [retval][out] */ RtQWORD *pqwVal);


void __RPC_STUB IRsFileChunk_Length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileChunk_SaveToStream_Proxy( 
    IRsFileChunk * This,
    /* [in] */ IStream *pStream,
    /* [in] */ RtBOOL bSaveChunkIID,
    /* [in] */ RtBOOL fClearDirty);


void __RPC_STUB IRsFileChunk_SaveToStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileChunk_LoadFromStream_Proxy( 
    IRsFileChunk * This,
    /* [in] */ IStream *pStream);


void __RPC_STUB IRsFileChunk_LoadFromStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileChunk_INTERFACE_DEFINED__ */


#ifndef __IRdChunkHeader_INTERFACE_DEFINED__
#define __IRdChunkHeader_INTERFACE_DEFINED__

/* interface IRdChunkHeader */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdChunkHeader;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4867A909-5D8F-446b-BAC0-8C7750ABC2C0")
    IRdChunkHeader : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Producer( 
            /* [retval][out] */ BSTR *pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Producer( 
            /* [in] */ BSTR bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ IID *pidType) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ IID idType) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Author( 
            /* [retval][out] */ BSTR *pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Author( 
            /* [in] */ BSTR bstrVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkHeaderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkHeader * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkHeader * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkHeader * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkHeader * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Producer )( 
            IRdChunkHeader * This,
            /* [retval][out] */ BSTR *pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Producer )( 
            IRdChunkHeader * This,
            /* [in] */ BSTR bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IRdChunkHeader * This,
            /* [retval][out] */ IID *pidType);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IRdChunkHeader * This,
            /* [in] */ IID idType);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IRdChunkHeader * This,
            /* [retval][out] */ BSTR *pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IRdChunkHeader * This,
            /* [in] */ BSTR bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Author )( 
            IRdChunkHeader * This,
            /* [retval][out] */ BSTR *pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Author )( 
            IRdChunkHeader * This,
            /* [in] */ BSTR bstrVal);
        
        END_INTERFACE
    } IRdChunkHeaderVtbl;

    interface IRdChunkHeader
    {
        CONST_VTBL struct IRdChunkHeaderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkHeader_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkHeader_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkHeader_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkHeader_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkHeader_get_Producer(This,pbstrVal)	\
    (This)->lpVtbl -> get_Producer(This,pbstrVal)

#define IRdChunkHeader_put_Producer(This,bstrVal)	\
    (This)->lpVtbl -> put_Producer(This,bstrVal)

#define IRdChunkHeader_get_Type(This,pidType)	\
    (This)->lpVtbl -> get_Type(This,pidType)

#define IRdChunkHeader_put_Type(This,idType)	\
    (This)->lpVtbl -> put_Type(This,idType)

#define IRdChunkHeader_get_Description(This,pbstrVal)	\
    (This)->lpVtbl -> get_Description(This,pbstrVal)

#define IRdChunkHeader_put_Description(This,bstrVal)	\
    (This)->lpVtbl -> put_Description(This,bstrVal)

#define IRdChunkHeader_get_Author(This,pbstrVal)	\
    (This)->lpVtbl -> get_Author(This,pbstrVal)

#define IRdChunkHeader_put_Author(This,bstrVal)	\
    (This)->lpVtbl -> put_Author(This,bstrVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_Clear_Proxy( 
    IRdChunkHeader * This);


void __RPC_STUB IRdChunkHeader_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_get_Producer_Proxy( 
    IRdChunkHeader * This,
    /* [retval][out] */ BSTR *pbstrVal);


void __RPC_STUB IRdChunkHeader_get_Producer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_put_Producer_Proxy( 
    IRdChunkHeader * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdChunkHeader_put_Producer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_get_Type_Proxy( 
    IRdChunkHeader * This,
    /* [retval][out] */ IID *pidType);


void __RPC_STUB IRdChunkHeader_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_put_Type_Proxy( 
    IRdChunkHeader * This,
    /* [in] */ IID idType);


void __RPC_STUB IRdChunkHeader_put_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_get_Description_Proxy( 
    IRdChunkHeader * This,
    /* [retval][out] */ BSTR *pbstrVal);


void __RPC_STUB IRdChunkHeader_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_put_Description_Proxy( 
    IRdChunkHeader * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdChunkHeader_put_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_get_Author_Proxy( 
    IRdChunkHeader * This,
    /* [retval][out] */ BSTR *pbstrVal);


void __RPC_STUB IRdChunkHeader_get_Author_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeader_put_Author_Proxy( 
    IRdChunkHeader * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdChunkHeader_put_Author_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkHeader_INTERFACE_DEFINED__ */


#ifndef __IRdChunkHeaderDisp_INTERFACE_DEFINED__
#define __IRdChunkHeaderDisp_INTERFACE_DEFINED__

/* interface IRdChunkHeaderDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdChunkHeaderDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F8E384FB-AA53-44be-89B1-5DAEDB1494C1")
    IRdChunkHeaderDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Producer( 
            /* [retval][out] */ BSTR *pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Producer( 
            /* [in] */ BSTR bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BSTR *pbstrType) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ BSTR bstrType) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Author( 
            /* [retval][out] */ BSTR *pbstrVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Author( 
            /* [in] */ BSTR bstrVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkHeaderDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkHeaderDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkHeaderDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunkHeaderDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkHeaderDisp * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Producer )( 
            IRdChunkHeaderDisp * This,
            /* [retval][out] */ BSTR *pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Producer )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ BSTR bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IRdChunkHeaderDisp * This,
            /* [retval][out] */ BSTR *pbstrType);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ BSTR bstrType);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IRdChunkHeaderDisp * This,
            /* [retval][out] */ BSTR *pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ BSTR bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Author )( 
            IRdChunkHeaderDisp * This,
            /* [retval][out] */ BSTR *pbstrVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Author )( 
            IRdChunkHeaderDisp * This,
            /* [in] */ BSTR bstrVal);
        
        END_INTERFACE
    } IRdChunkHeaderDispVtbl;

    interface IRdChunkHeaderDisp
    {
        CONST_VTBL struct IRdChunkHeaderDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkHeaderDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkHeaderDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkHeaderDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkHeaderDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunkHeaderDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunkHeaderDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunkHeaderDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunkHeaderDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkHeaderDisp_get_Producer(This,pbstrVal)	\
    (This)->lpVtbl -> get_Producer(This,pbstrVal)

#define IRdChunkHeaderDisp_put_Producer(This,bstrVal)	\
    (This)->lpVtbl -> put_Producer(This,bstrVal)

#define IRdChunkHeaderDisp_get_Type(This,pbstrType)	\
    (This)->lpVtbl -> get_Type(This,pbstrType)

#define IRdChunkHeaderDisp_put_Type(This,bstrType)	\
    (This)->lpVtbl -> put_Type(This,bstrType)

#define IRdChunkHeaderDisp_get_Description(This,pbstrVal)	\
    (This)->lpVtbl -> get_Description(This,pbstrVal)

#define IRdChunkHeaderDisp_put_Description(This,bstrVal)	\
    (This)->lpVtbl -> put_Description(This,bstrVal)

#define IRdChunkHeaderDisp_get_Author(This,pbstrVal)	\
    (This)->lpVtbl -> get_Author(This,pbstrVal)

#define IRdChunkHeaderDisp_put_Author(This,bstrVal)	\
    (This)->lpVtbl -> put_Author(This,bstrVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_Clear_Proxy( 
    IRdChunkHeaderDisp * This);


void __RPC_STUB IRdChunkHeaderDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_get_Producer_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [retval][out] */ BSTR *pbstrVal);


void __RPC_STUB IRdChunkHeaderDisp_get_Producer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_put_Producer_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdChunkHeaderDisp_put_Producer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_get_Type_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [retval][out] */ BSTR *pbstrType);


void __RPC_STUB IRdChunkHeaderDisp_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_put_Type_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [in] */ BSTR bstrType);


void __RPC_STUB IRdChunkHeaderDisp_put_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_get_Description_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [retval][out] */ BSTR *pbstrVal);


void __RPC_STUB IRdChunkHeaderDisp_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_put_Description_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdChunkHeaderDisp_put_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_get_Author_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [retval][out] */ BSTR *pbstrVal);


void __RPC_STUB IRdChunkHeaderDisp_get_Author_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkHeaderDisp_put_Author_Proxy( 
    IRdChunkHeaderDisp * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdChunkHeaderDisp_put_Author_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkHeaderDisp_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__FileIO_1076 */
/* [local] */ 

typedef 
enum tagReChunkTagsFlags
    {	CHUNK_TAG_FLAG_NONE	= 0,
	CHUNK_TAG_FLAG_HIDDEN	= 1,
	CHUNK_TAG_FLAG_READ_ONLY	= 2
    } 	ReChunkTagsFlags;



extern RPC_IF_HANDLE __MIDL_itf__FileIO_1076_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__FileIO_1076_v0_0_s_ifspec;

#ifndef __IRdChunkTags_INTERFACE_DEFINED__
#define __IRdChunkTags_INTERFACE_DEFINED__

/* interface IRdChunkTags */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdChunkTags;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("306B4E87-0BD5-4ce9-B534-1009FAF00A6F")
    IRdChunkTags : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsSupportedTagVal( 
            /* [in] */ VARIANT *pvValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTagVal( 
            /* [in] */ BSTR bstrTagName,
            /* [in] */ VARIANT *pvValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTagVal( 
            /* [in] */ BSTR bstrTagName,
            /* [retval][out] */ VARIANT *pvValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTagFlags( 
            /* [in] */ BSTR bstrTagName,
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTagFlags( 
            /* [in] */ BSTR bstrTagName,
            /* [retval][out] */ RtDWORD *pdwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteTag( 
            /* [in] */ BSTR bstrTagName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TagsCount( 
            /* [retval][out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTagIndex( 
            /* [in] */ BSTR bstrTagName,
            /* [retval][out] */ RtDWORD *pdwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTagNameByIndex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ BSTR *pbstrTagName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTagValByIndex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTagFlagsByIndex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *pdwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTag( 
            /* [in] */ BSTR bstrTagName,
            /* [in] */ VARIANT *pvValue,
            /* [in] */ RtDWORD dwFlags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkTagsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkTags * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkTags * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkTags * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunkTags * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunkTags * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunkTags * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunkTags * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkTags * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsSupportedTagVal )( 
            IRdChunkTags * This,
            /* [in] */ VARIANT *pvValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTagVal )( 
            IRdChunkTags * This,
            /* [in] */ BSTR bstrTagName,
            /* [in] */ VARIANT *pvValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTagVal )( 
            IRdChunkTags * This,
            /* [in] */ BSTR bstrTagName,
            /* [retval][out] */ VARIANT *pvValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTagFlags )( 
            IRdChunkTags * This,
            /* [in] */ BSTR bstrTagName,
            /* [in] */ RtDWORD dwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTagFlags )( 
            IRdChunkTags * This,
            /* [in] */ BSTR bstrTagName,
            /* [retval][out] */ RtDWORD *pdwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteTag )( 
            IRdChunkTags * This,
            /* [in] */ BSTR bstrTagName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TagsCount )( 
            IRdChunkTags * This,
            /* [retval][out] */ RtDWORD *pdwCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTagIndex )( 
            IRdChunkTags * This,
            /* [in] */ BSTR bstrTagName,
            /* [retval][out] */ RtDWORD *pdwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTagNameByIndex )( 
            IRdChunkTags * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ BSTR *pbstrTagName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTagValByIndex )( 
            IRdChunkTags * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTagFlagsByIndex )( 
            IRdChunkTags * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *pdwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTag )( 
            IRdChunkTags * This,
            /* [in] */ BSTR bstrTagName,
            /* [in] */ VARIANT *pvValue,
            /* [in] */ RtDWORD dwFlags);
        
        END_INTERFACE
    } IRdChunkTagsVtbl;

    interface IRdChunkTags
    {
        CONST_VTBL struct IRdChunkTagsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkTags_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkTags_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkTags_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkTags_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunkTags_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunkTags_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunkTags_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunkTags_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkTags_IsSupportedTagVal(This,pvValue)	\
    (This)->lpVtbl -> IsSupportedTagVal(This,pvValue)

#define IRdChunkTags_SetTagVal(This,bstrTagName,pvValue)	\
    (This)->lpVtbl -> SetTagVal(This,bstrTagName,pvValue)

#define IRdChunkTags_GetTagVal(This,bstrTagName,pvValue)	\
    (This)->lpVtbl -> GetTagVal(This,bstrTagName,pvValue)

#define IRdChunkTags_SetTagFlags(This,bstrTagName,dwFlags)	\
    (This)->lpVtbl -> SetTagFlags(This,bstrTagName,dwFlags)

#define IRdChunkTags_GetTagFlags(This,bstrTagName,pdwFlags)	\
    (This)->lpVtbl -> GetTagFlags(This,bstrTagName,pdwFlags)

#define IRdChunkTags_DeleteTag(This,bstrTagName)	\
    (This)->lpVtbl -> DeleteTag(This,bstrTagName)

#define IRdChunkTags_get_TagsCount(This,pdwCount)	\
    (This)->lpVtbl -> get_TagsCount(This,pdwCount)

#define IRdChunkTags_GetTagIndex(This,bstrTagName,pdwIndex)	\
    (This)->lpVtbl -> GetTagIndex(This,bstrTagName,pdwIndex)

#define IRdChunkTags_GetTagNameByIndex(This,dwIndex,pbstrTagName)	\
    (This)->lpVtbl -> GetTagNameByIndex(This,dwIndex,pbstrTagName)

#define IRdChunkTags_GetTagValByIndex(This,dwIndex,pvValue)	\
    (This)->lpVtbl -> GetTagValByIndex(This,dwIndex,pvValue)

#define IRdChunkTags_GetTagFlagsByIndex(This,dwIndex,pdwFlags)	\
    (This)->lpVtbl -> GetTagFlagsByIndex(This,dwIndex,pdwFlags)

#define IRdChunkTags_SetTag(This,bstrTagName,pvValue,dwFlags)	\
    (This)->lpVtbl -> SetTag(This,bstrTagName,pvValue,dwFlags)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_Clear_Proxy( 
    IRdChunkTags * This);


void __RPC_STUB IRdChunkTags_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_IsSupportedTagVal_Proxy( 
    IRdChunkTags * This,
    /* [in] */ VARIANT *pvValue);


void __RPC_STUB IRdChunkTags_IsSupportedTagVal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_SetTagVal_Proxy( 
    IRdChunkTags * This,
    /* [in] */ BSTR bstrTagName,
    /* [in] */ VARIANT *pvValue);


void __RPC_STUB IRdChunkTags_SetTagVal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_GetTagVal_Proxy( 
    IRdChunkTags * This,
    /* [in] */ BSTR bstrTagName,
    /* [retval][out] */ VARIANT *pvValue);


void __RPC_STUB IRdChunkTags_GetTagVal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_SetTagFlags_Proxy( 
    IRdChunkTags * This,
    /* [in] */ BSTR bstrTagName,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRdChunkTags_SetTagFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_GetTagFlags_Proxy( 
    IRdChunkTags * This,
    /* [in] */ BSTR bstrTagName,
    /* [retval][out] */ RtDWORD *pdwFlags);


void __RPC_STUB IRdChunkTags_GetTagFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_DeleteTag_Proxy( 
    IRdChunkTags * This,
    /* [in] */ BSTR bstrTagName);


void __RPC_STUB IRdChunkTags_DeleteTag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_get_TagsCount_Proxy( 
    IRdChunkTags * This,
    /* [retval][out] */ RtDWORD *pdwCount);


void __RPC_STUB IRdChunkTags_get_TagsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_GetTagIndex_Proxy( 
    IRdChunkTags * This,
    /* [in] */ BSTR bstrTagName,
    /* [retval][out] */ RtDWORD *pdwIndex);


void __RPC_STUB IRdChunkTags_GetTagIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_GetTagNameByIndex_Proxy( 
    IRdChunkTags * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ BSTR *pbstrTagName);


void __RPC_STUB IRdChunkTags_GetTagNameByIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_GetTagValByIndex_Proxy( 
    IRdChunkTags * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvValue);


void __RPC_STUB IRdChunkTags_GetTagValByIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_GetTagFlagsByIndex_Proxy( 
    IRdChunkTags * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtDWORD *pdwFlags);


void __RPC_STUB IRdChunkTags_GetTagFlagsByIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkTags_SetTag_Proxy( 
    IRdChunkTags * This,
    /* [in] */ BSTR bstrTagName,
    /* [in] */ VARIANT *pvValue,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRdChunkTags_SetTag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkTags_INTERFACE_DEFINED__ */


#ifndef __IRdChunkRsObj_INTERFACE_DEFINED__
#define __IRdChunkRsObj_INTERFACE_DEFINED__

/* interface IRdChunkRsObj */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdChunkRsObj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D166742F-9DAD-4c38-9E77-F76222A10571")
    IRdChunkRsObj : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount( 
            /* [retval][out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddNode( 
            /* [in] */ BSTR bszFullName,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RestoreNode( 
            /* [in] */ RtDWORD dwInd,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pbszFullName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddObject( 
            /* [in] */ IRsObject *pRsObj,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObjectA( 
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ IRsObject **ppRsObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObjectPrefOwner( 
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszPrefOwner) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObjectCustom( 
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszCustom) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkRsObjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkRsObj * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkRsObj * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkRsObj * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkRsObj * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            IRdChunkRsObj * This,
            /* [retval][out] */ RtDWORD *pdwCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddNode )( 
            IRdChunkRsObj * This,
            /* [in] */ BSTR bszFullName,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RestoreNode )( 
            IRdChunkRsObj * This,
            /* [in] */ RtDWORD dwInd,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pbszFullName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddObject )( 
            IRdChunkRsObj * This,
            /* [in] */ IRsObject *pRsObj,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObjectA )( 
            IRdChunkRsObj * This,
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ IRsObject **ppRsObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObjectPrefOwner )( 
            IRdChunkRsObj * This,
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszPrefOwner);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObjectCustom )( 
            IRdChunkRsObj * This,
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszCustom);
        
        END_INTERFACE
    } IRdChunkRsObjVtbl;

    interface IRdChunkRsObj
    {
        CONST_VTBL struct IRdChunkRsObjVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkRsObj_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkRsObj_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkRsObj_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkRsObj_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkRsObj_GetCount(This,pdwCount)	\
    (This)->lpVtbl -> GetCount(This,pdwCount)

#define IRdChunkRsObj_AddNode(This,bszFullName,bszPrefOwner,bszCustom)	\
    (This)->lpVtbl -> AddNode(This,bszFullName,bszPrefOwner,bszCustom)

#define IRdChunkRsObj_RestoreNode(This,dwInd,bszOwnerName,pbszFullName)	\
    (This)->lpVtbl -> RestoreNode(This,dwInd,bszOwnerName,pbszFullName)

#define IRdChunkRsObj_AddObject(This,pRsObj,bszPrefOwner,bszCustom)	\
    (This)->lpVtbl -> AddObject(This,pRsObj,bszPrefOwner,bszCustom)

#define IRdChunkRsObj_GetObjectA(This,dwInd,ppRsObj)	\
    (This)->lpVtbl -> GetObjectA(This,dwInd,ppRsObj)

#define IRdChunkRsObj_GetObjectPrefOwner(This,dwInd,pbszPrefOwner)	\
    (This)->lpVtbl -> GetObjectPrefOwner(This,dwInd,pbszPrefOwner)

#define IRdChunkRsObj_GetObjectCustom(This,dwInd,pbszCustom)	\
    (This)->lpVtbl -> GetObjectCustom(This,dwInd,pbszCustom)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_Clear_Proxy( 
    IRdChunkRsObj * This);


void __RPC_STUB IRdChunkRsObj_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_GetCount_Proxy( 
    IRdChunkRsObj * This,
    /* [retval][out] */ RtDWORD *pdwCount);


void __RPC_STUB IRdChunkRsObj_GetCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_AddNode_Proxy( 
    IRdChunkRsObj * This,
    /* [in] */ BSTR bszFullName,
    /* [in] */ BSTR bszPrefOwner,
    /* [in] */ BSTR bszCustom);


void __RPC_STUB IRdChunkRsObj_AddNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_RestoreNode_Proxy( 
    IRdChunkRsObj * This,
    /* [in] */ RtDWORD dwInd,
    /* [in] */ BSTR bszOwnerName,
    /* [retval][out] */ BSTR *pbszFullName);


void __RPC_STUB IRdChunkRsObj_RestoreNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_AddObject_Proxy( 
    IRdChunkRsObj * This,
    /* [in] */ IRsObject *pRsObj,
    /* [in] */ BSTR bszPrefOwner,
    /* [in] */ BSTR bszCustom);


void __RPC_STUB IRdChunkRsObj_AddObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_GetObjectA_Proxy( 
    IRdChunkRsObj * This,
    /* [in] */ RtDWORD dwInd,
    /* [retval][out] */ IRsObject **ppRsObj);


void __RPC_STUB IRdChunkRsObj_GetObjectA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_GetObjectPrefOwner_Proxy( 
    IRdChunkRsObj * This,
    /* [in] */ RtDWORD dwInd,
    /* [retval][out] */ BSTR *pbszPrefOwner);


void __RPC_STUB IRdChunkRsObj_GetObjectPrefOwner_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObj_GetObjectCustom_Proxy( 
    IRdChunkRsObj * This,
    /* [in] */ RtDWORD dwInd,
    /* [retval][out] */ BSTR *pbszCustom);


void __RPC_STUB IRdChunkRsObj_GetObjectCustom_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkRsObj_INTERFACE_DEFINED__ */


#ifndef __IRdChunkRsObjDisp_INTERFACE_DEFINED__
#define __IRdChunkRsObjDisp_INTERFACE_DEFINED__

/* interface IRdChunkRsObjDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdChunkRsObjDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("c2356a42-c527-4fd7-8598-20413d7d1b68")
    IRdChunkRsObjDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount( 
            /* [retval][out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddNode( 
            /* [in] */ BSTR bszFullName,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RestoreNode( 
            /* [in] */ RtDWORD dwInd,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pbszFullName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddObject( 
            /* [in] */ IDispatch *pRsObj,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObjectA( 
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ IDispatch **ppRsObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObjectPrefOwner( 
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszPrefOwner) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObjectCustom( 
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszCustom) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkRsObjDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkRsObjDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkRsObjDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunkRsObjDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkRsObjDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            IRdChunkRsObjDisp * This,
            /* [retval][out] */ RtDWORD *pdwCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddNode )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ BSTR bszFullName,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RestoreNode )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ RtDWORD dwInd,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pbszFullName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddObject )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ IDispatch *pRsObj,
            /* [in] */ BSTR bszPrefOwner,
            /* [in] */ BSTR bszCustom);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObjectA )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ IDispatch **ppRsObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObjectPrefOwner )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszPrefOwner);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObjectCustom )( 
            IRdChunkRsObjDisp * This,
            /* [in] */ RtDWORD dwInd,
            /* [retval][out] */ BSTR *pbszCustom);
        
        END_INTERFACE
    } IRdChunkRsObjDispVtbl;

    interface IRdChunkRsObjDisp
    {
        CONST_VTBL struct IRdChunkRsObjDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkRsObjDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkRsObjDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkRsObjDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkRsObjDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunkRsObjDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunkRsObjDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunkRsObjDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunkRsObjDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkRsObjDisp_GetCount(This,pdwCount)	\
    (This)->lpVtbl -> GetCount(This,pdwCount)

#define IRdChunkRsObjDisp_AddNode(This,bszFullName,bszPrefOwner,bszCustom)	\
    (This)->lpVtbl -> AddNode(This,bszFullName,bszPrefOwner,bszCustom)

#define IRdChunkRsObjDisp_RestoreNode(This,dwInd,bszOwnerName,pbszFullName)	\
    (This)->lpVtbl -> RestoreNode(This,dwInd,bszOwnerName,pbszFullName)

#define IRdChunkRsObjDisp_AddObject(This,pRsObj,bszPrefOwner,bszCustom)	\
    (This)->lpVtbl -> AddObject(This,pRsObj,bszPrefOwner,bszCustom)

#define IRdChunkRsObjDisp_GetObjectA(This,dwInd,ppRsObj)	\
    (This)->lpVtbl -> GetObjectA(This,dwInd,ppRsObj)

#define IRdChunkRsObjDisp_GetObjectPrefOwner(This,dwInd,pbszPrefOwner)	\
    (This)->lpVtbl -> GetObjectPrefOwner(This,dwInd,pbszPrefOwner)

#define IRdChunkRsObjDisp_GetObjectCustom(This,dwInd,pbszCustom)	\
    (This)->lpVtbl -> GetObjectCustom(This,dwInd,pbszCustom)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_Clear_Proxy( 
    IRdChunkRsObjDisp * This);


void __RPC_STUB IRdChunkRsObjDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_GetCount_Proxy( 
    IRdChunkRsObjDisp * This,
    /* [retval][out] */ RtDWORD *pdwCount);


void __RPC_STUB IRdChunkRsObjDisp_GetCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_AddNode_Proxy( 
    IRdChunkRsObjDisp * This,
    /* [in] */ BSTR bszFullName,
    /* [in] */ BSTR bszPrefOwner,
    /* [in] */ BSTR bszCustom);


void __RPC_STUB IRdChunkRsObjDisp_AddNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_RestoreNode_Proxy( 
    IRdChunkRsObjDisp * This,
    /* [in] */ RtDWORD dwInd,
    /* [in] */ BSTR bszOwnerName,
    /* [retval][out] */ BSTR *pbszFullName);


void __RPC_STUB IRdChunkRsObjDisp_RestoreNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_AddObject_Proxy( 
    IRdChunkRsObjDisp * This,
    /* [in] */ IDispatch *pRsObj,
    /* [in] */ BSTR bszPrefOwner,
    /* [in] */ BSTR bszCustom);


void __RPC_STUB IRdChunkRsObjDisp_AddObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_GetObjectA_Proxy( 
    IRdChunkRsObjDisp * This,
    /* [in] */ RtDWORD dwInd,
    /* [retval][out] */ IDispatch **ppRsObj);


void __RPC_STUB IRdChunkRsObjDisp_GetObjectA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_GetObjectPrefOwner_Proxy( 
    IRdChunkRsObjDisp * This,
    /* [in] */ RtDWORD dwInd,
    /* [retval][out] */ BSTR *pbszPrefOwner);


void __RPC_STUB IRdChunkRsObjDisp_GetObjectPrefOwner_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkRsObjDisp_GetObjectCustom_Proxy( 
    IRdChunkRsObjDisp * This,
    /* [in] */ RtDWORD dwInd,
    /* [retval][out] */ BSTR *pbszCustom);


void __RPC_STUB IRdChunkRsObjDisp_GetObjectCustom_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkRsObjDisp_INTERFACE_DEFINED__ */


#ifndef __IRdChunkUnknown_INTERFACE_DEFINED__
#define __IRdChunkUnknown_INTERFACE_DEFINED__

/* interface IRdChunkUnknown */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdChunkUnknown;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E04FEB2A-983A-4f54-801E-CA777EDC3342")
    IRdChunkUnknown : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DataLen( 
            /* [retval][out] */ RtQWORD *pqwLength) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DataLen( 
            /* [in] */ RtQWORD qwLength) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [in] */ RtBOOL bWillOverwrite,
            /* [retval][out] */ RtBYTE **ppBuffer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnlockData( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ChunkIID( 
            /* [retval][out] */ CLSID *piidChunk) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ChunkIID( 
            /* [in] */ const CLSID *piidChunk) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CustomId( 
            /* [retval][out] */ RtDWORD *pdwCustomId) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CustomId( 
            /* [in] */ RtDWORD dwCustomId) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkUnknownVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkUnknown * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkUnknown * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkUnknown * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkUnknown * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DataLen )( 
            IRdChunkUnknown * This,
            /* [retval][out] */ RtQWORD *pqwLength);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DataLen )( 
            IRdChunkUnknown * This,
            /* [in] */ RtQWORD qwLength);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdChunkUnknown * This,
            /* [in] */ RtBOOL bWillOverwrite,
            /* [retval][out] */ RtBYTE **ppBuffer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnlockData )( 
            IRdChunkUnknown * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ChunkIID )( 
            IRdChunkUnknown * This,
            /* [retval][out] */ CLSID *piidChunk);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ChunkIID )( 
            IRdChunkUnknown * This,
            /* [in] */ const CLSID *piidChunk);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CustomId )( 
            IRdChunkUnknown * This,
            /* [retval][out] */ RtDWORD *pdwCustomId);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CustomId )( 
            IRdChunkUnknown * This,
            /* [in] */ RtDWORD dwCustomId);
        
        END_INTERFACE
    } IRdChunkUnknownVtbl;

    interface IRdChunkUnknown
    {
        CONST_VTBL struct IRdChunkUnknownVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkUnknown_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkUnknown_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkUnknown_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkUnknown_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkUnknown_get_DataLen(This,pqwLength)	\
    (This)->lpVtbl -> get_DataLen(This,pqwLength)

#define IRdChunkUnknown_put_DataLen(This,qwLength)	\
    (This)->lpVtbl -> put_DataLen(This,qwLength)

#define IRdChunkUnknown_LockData(This,bWillOverwrite,ppBuffer)	\
    (This)->lpVtbl -> LockData(This,bWillOverwrite,ppBuffer)

#define IRdChunkUnknown_UnlockData(This)	\
    (This)->lpVtbl -> UnlockData(This)

#define IRdChunkUnknown_get_ChunkIID(This,piidChunk)	\
    (This)->lpVtbl -> get_ChunkIID(This,piidChunk)

#define IRdChunkUnknown_put_ChunkIID(This,piidChunk)	\
    (This)->lpVtbl -> put_ChunkIID(This,piidChunk)

#define IRdChunkUnknown_get_CustomId(This,pdwCustomId)	\
    (This)->lpVtbl -> get_CustomId(This,pdwCustomId)

#define IRdChunkUnknown_put_CustomId(This,dwCustomId)	\
    (This)->lpVtbl -> put_CustomId(This,dwCustomId)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_Clear_Proxy( 
    IRdChunkUnknown * This);


void __RPC_STUB IRdChunkUnknown_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_get_DataLen_Proxy( 
    IRdChunkUnknown * This,
    /* [retval][out] */ RtQWORD *pqwLength);


void __RPC_STUB IRdChunkUnknown_get_DataLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_put_DataLen_Proxy( 
    IRdChunkUnknown * This,
    /* [in] */ RtQWORD qwLength);


void __RPC_STUB IRdChunkUnknown_put_DataLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_LockData_Proxy( 
    IRdChunkUnknown * This,
    /* [in] */ RtBOOL bWillOverwrite,
    /* [retval][out] */ RtBYTE **ppBuffer);


void __RPC_STUB IRdChunkUnknown_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_UnlockData_Proxy( 
    IRdChunkUnknown * This);


void __RPC_STUB IRdChunkUnknown_UnlockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_get_ChunkIID_Proxy( 
    IRdChunkUnknown * This,
    /* [retval][out] */ CLSID *piidChunk);


void __RPC_STUB IRdChunkUnknown_get_ChunkIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_put_ChunkIID_Proxy( 
    IRdChunkUnknown * This,
    /* [in] */ const CLSID *piidChunk);


void __RPC_STUB IRdChunkUnknown_put_ChunkIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_get_CustomId_Proxy( 
    IRdChunkUnknown * This,
    /* [retval][out] */ RtDWORD *pdwCustomId);


void __RPC_STUB IRdChunkUnknown_get_CustomId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknown_put_CustomId_Proxy( 
    IRdChunkUnknown * This,
    /* [in] */ RtDWORD dwCustomId);


void __RPC_STUB IRdChunkUnknown_put_CustomId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkUnknown_INTERFACE_DEFINED__ */


#ifndef __IRdChunkUnknownDisp_INTERFACE_DEFINED__
#define __IRdChunkUnknownDisp_INTERFACE_DEFINED__

/* interface IRdChunkUnknownDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdChunkUnknownDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("cadb616a-49ad-430b-a022-0f23e35ea4cc")
    IRdChunkUnknownDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DataLen( 
            /* [retval][out] */ RtQWORD *pqwLength) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DataLen( 
            /* [in] */ RtQWORD qwLength) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [in] */ RtBOOL bWillOverwrite,
            /* [retval][out] */ RtBYTE **ppBuffer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnlockData( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CustomId( 
            /* [retval][out] */ RtDWORD *pdwCustomId) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CustomId( 
            /* [in] */ RtDWORD dwCustomId) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkUnknownDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkUnknownDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkUnknownDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkUnknownDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunkUnknownDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunkUnknownDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunkUnknownDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunkUnknownDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkUnknownDisp * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DataLen )( 
            IRdChunkUnknownDisp * This,
            /* [retval][out] */ RtQWORD *pqwLength);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DataLen )( 
            IRdChunkUnknownDisp * This,
            /* [in] */ RtQWORD qwLength);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdChunkUnknownDisp * This,
            /* [in] */ RtBOOL bWillOverwrite,
            /* [retval][out] */ RtBYTE **ppBuffer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnlockData )( 
            IRdChunkUnknownDisp * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CustomId )( 
            IRdChunkUnknownDisp * This,
            /* [retval][out] */ RtDWORD *pdwCustomId);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CustomId )( 
            IRdChunkUnknownDisp * This,
            /* [in] */ RtDWORD dwCustomId);
        
        END_INTERFACE
    } IRdChunkUnknownDispVtbl;

    interface IRdChunkUnknownDisp
    {
        CONST_VTBL struct IRdChunkUnknownDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkUnknownDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkUnknownDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkUnknownDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkUnknownDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunkUnknownDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunkUnknownDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunkUnknownDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunkUnknownDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkUnknownDisp_get_DataLen(This,pqwLength)	\
    (This)->lpVtbl -> get_DataLen(This,pqwLength)

#define IRdChunkUnknownDisp_put_DataLen(This,qwLength)	\
    (This)->lpVtbl -> put_DataLen(This,qwLength)

#define IRdChunkUnknownDisp_LockData(This,bWillOverwrite,ppBuffer)	\
    (This)->lpVtbl -> LockData(This,bWillOverwrite,ppBuffer)

#define IRdChunkUnknownDisp_UnlockData(This)	\
    (This)->lpVtbl -> UnlockData(This)

#define IRdChunkUnknownDisp_get_CustomId(This,pdwCustomId)	\
    (This)->lpVtbl -> get_CustomId(This,pdwCustomId)

#define IRdChunkUnknownDisp_put_CustomId(This,dwCustomId)	\
    (This)->lpVtbl -> put_CustomId(This,dwCustomId)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknownDisp_Clear_Proxy( 
    IRdChunkUnknownDisp * This);


void __RPC_STUB IRdChunkUnknownDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknownDisp_get_DataLen_Proxy( 
    IRdChunkUnknownDisp * This,
    /* [retval][out] */ RtQWORD *pqwLength);


void __RPC_STUB IRdChunkUnknownDisp_get_DataLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknownDisp_put_DataLen_Proxy( 
    IRdChunkUnknownDisp * This,
    /* [in] */ RtQWORD qwLength);


void __RPC_STUB IRdChunkUnknownDisp_put_DataLen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknownDisp_LockData_Proxy( 
    IRdChunkUnknownDisp * This,
    /* [in] */ RtBOOL bWillOverwrite,
    /* [retval][out] */ RtBYTE **ppBuffer);


void __RPC_STUB IRdChunkUnknownDisp_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknownDisp_UnlockData_Proxy( 
    IRdChunkUnknownDisp * This);


void __RPC_STUB IRdChunkUnknownDisp_UnlockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknownDisp_get_CustomId_Proxy( 
    IRdChunkUnknownDisp * This,
    /* [retval][out] */ RtDWORD *pdwCustomId);


void __RPC_STUB IRdChunkUnknownDisp_get_CustomId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdChunkUnknownDisp_put_CustomId_Proxy( 
    IRdChunkUnknownDisp * This,
    /* [in] */ RtDWORD dwCustomId);


void __RPC_STUB IRdChunkUnknownDisp_put_CustomId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkUnknownDisp_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__FileIO_1081 */
/* [local] */ 

typedef 
enum tagReChunkListInfoFlags
    {	RSCHUNK_LST_FLG_NONE	= 0,
	RSCHUNK_LST_FLG_MODIFIED	= 1,
	RSCHUNK_LST_FLG_ERRLOAD	= 2,
	RSCHUNK_LST_FLG_NOT_IN_TABLE	= 4,
	RSCHUNK_LST_FLG_INCONSISTENT	= 8,
	RSCHUNK_LST_FLG_BAD_SIZE	= 16
    } 	ReChunkListInfoFlags;

typedef struct tagRtChunkListInfo
    {
    IID iidChunk;
    RtChunkCustomId customId;
    RtQWORD qwAddress;
    RtQWORD qwLength;
    } 	RtChunkListInfo;



extern RPC_IF_HANDLE __MIDL_itf__FileIO_1081_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__FileIO_1081_v0_0_s_ifspec;

#ifndef __IRdChunksList_INTERFACE_DEFINED__
#define __IRdChunksList_INTERFACE_DEFINED__

/* interface IRdChunksList */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdChunksList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C8AFCA38-4AA5-48c7-947C-6FEEACBFB337")
    IRdChunksList : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumChunks( 
            /* [retval][out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkIID( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvChunkIID) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkCustId( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvCustId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkAddress( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvAddress) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkLength( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvLength) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkInfoFlags( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkInfo( 
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ RtChunkListInfo *pChunkListInfo,
            /* [out] */ RtDWORD *pdwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddChunkInfo( 
            /* [in] */ const RtChunkListInfo *pChunkListInfo,
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertChunkInfo( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ const RtChunkListInfo *pChunkListInfo,
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetChunkInfo( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ const RtChunkListInfo *pChunkListInfo) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetChunkInfoFlags( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveChunkInfo( 
            /* [in] */ RtDWORD dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindChunkByAddr( 
            /* [in] */ RtQWORD qwAddress,
            /* [in] */ RtDWORD dwLastInd,
            /* [retval][out] */ RtDWORD *pdwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindChunkByIID( 
            /* [in] */ IID iidChunk,
            /* [in] */ RtDWORD dwLastInd,
            /* [retval][out] */ RtDWORD *pdwIndex) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunksListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunksList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunksList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunksList * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumChunks )( 
            IRdChunksList * This,
            /* [retval][out] */ RtDWORD *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkIID )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvChunkIID);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkCustId )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvCustId);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkAddress )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvAddress);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkLength )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvLength);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkInfoFlags )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkInfo )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ RtChunkListInfo *pChunkListInfo,
            /* [out] */ RtDWORD *pdwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunksList * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddChunkInfo )( 
            IRdChunksList * This,
            /* [in] */ const RtChunkListInfo *pChunkListInfo,
            /* [in] */ RtDWORD dwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertChunkInfo )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ const RtChunkListInfo *pChunkListInfo,
            /* [in] */ RtDWORD dwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetChunkInfo )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ const RtChunkListInfo *pChunkListInfo);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetChunkInfoFlags )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveChunkInfo )( 
            IRdChunksList * This,
            /* [in] */ RtDWORD dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindChunkByAddr )( 
            IRdChunksList * This,
            /* [in] */ RtQWORD qwAddress,
            /* [in] */ RtDWORD dwLastInd,
            /* [retval][out] */ RtDWORD *pdwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindChunkByIID )( 
            IRdChunksList * This,
            /* [in] */ IID iidChunk,
            /* [in] */ RtDWORD dwLastInd,
            /* [retval][out] */ RtDWORD *pdwIndex);
        
        END_INTERFACE
    } IRdChunksListVtbl;

    interface IRdChunksList
    {
        CONST_VTBL struct IRdChunksListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunksList_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunksList_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunksList_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunksList_GetNumChunks(This,pVal)	\
    (This)->lpVtbl -> GetNumChunks(This,pVal)

#define IRdChunksList_GetChunkIID(This,dwIndex,pvChunkIID)	\
    (This)->lpVtbl -> GetChunkIID(This,dwIndex,pvChunkIID)

#define IRdChunksList_GetChunkCustId(This,dwIndex,pvCustId)	\
    (This)->lpVtbl -> GetChunkCustId(This,dwIndex,pvCustId)

#define IRdChunksList_GetChunkAddress(This,dwIndex,pvAddress)	\
    (This)->lpVtbl -> GetChunkAddress(This,dwIndex,pvAddress)

#define IRdChunksList_GetChunkLength(This,dwIndex,pvLength)	\
    (This)->lpVtbl -> GetChunkLength(This,dwIndex,pvLength)

#define IRdChunksList_GetChunkInfoFlags(This,dwIndex,pvFlags)	\
    (This)->lpVtbl -> GetChunkInfoFlags(This,dwIndex,pvFlags)

#define IRdChunksList_GetChunkInfo(This,dwIndex,pChunkListInfo,pdwFlags)	\
    (This)->lpVtbl -> GetChunkInfo(This,dwIndex,pChunkListInfo,pdwFlags)

#define IRdChunksList_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunksList_AddChunkInfo(This,pChunkListInfo,dwFlags)	\
    (This)->lpVtbl -> AddChunkInfo(This,pChunkListInfo,dwFlags)

#define IRdChunksList_InsertChunkInfo(This,dwIndex,pChunkListInfo,dwFlags)	\
    (This)->lpVtbl -> InsertChunkInfo(This,dwIndex,pChunkListInfo,dwFlags)

#define IRdChunksList_SetChunkInfo(This,dwIndex,pChunkListInfo)	\
    (This)->lpVtbl -> SetChunkInfo(This,dwIndex,pChunkListInfo)

#define IRdChunksList_SetChunkInfoFlags(This,dwIndex,dwFlags)	\
    (This)->lpVtbl -> SetChunkInfoFlags(This,dwIndex,dwFlags)

#define IRdChunksList_RemoveChunkInfo(This,dwIndex)	\
    (This)->lpVtbl -> RemoveChunkInfo(This,dwIndex)

#define IRdChunksList_FindChunkByAddr(This,qwAddress,dwLastInd,pdwIndex)	\
    (This)->lpVtbl -> FindChunkByAddr(This,qwAddress,dwLastInd,pdwIndex)

#define IRdChunksList_FindChunkByIID(This,iidChunk,dwLastInd,pdwIndex)	\
    (This)->lpVtbl -> FindChunkByIID(This,iidChunk,dwLastInd,pdwIndex)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_GetNumChunks_Proxy( 
    IRdChunksList * This,
    /* [retval][out] */ RtDWORD *pVal);


void __RPC_STUB IRdChunksList_GetNumChunks_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_GetChunkIID_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvChunkIID);


void __RPC_STUB IRdChunksList_GetChunkIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_GetChunkCustId_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvCustId);


void __RPC_STUB IRdChunksList_GetChunkCustId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_GetChunkAddress_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvAddress);


void __RPC_STUB IRdChunksList_GetChunkAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_GetChunkLength_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvLength);


void __RPC_STUB IRdChunksList_GetChunkLength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_GetChunkInfoFlags_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvFlags);


void __RPC_STUB IRdChunksList_GetChunkInfoFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_GetChunkInfo_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [out] */ RtChunkListInfo *pChunkListInfo,
    /* [out] */ RtDWORD *pdwFlags);


void __RPC_STUB IRdChunksList_GetChunkInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_Clear_Proxy( 
    IRdChunksList * This);


void __RPC_STUB IRdChunksList_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_AddChunkInfo_Proxy( 
    IRdChunksList * This,
    /* [in] */ const RtChunkListInfo *pChunkListInfo,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRdChunksList_AddChunkInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_InsertChunkInfo_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ const RtChunkListInfo *pChunkListInfo,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRdChunksList_InsertChunkInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_SetChunkInfo_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ const RtChunkListInfo *pChunkListInfo);


void __RPC_STUB IRdChunksList_SetChunkInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_SetChunkInfoFlags_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRdChunksList_SetChunkInfoFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_RemoveChunkInfo_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtDWORD dwIndex);


void __RPC_STUB IRdChunksList_RemoveChunkInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_FindChunkByAddr_Proxy( 
    IRdChunksList * This,
    /* [in] */ RtQWORD qwAddress,
    /* [in] */ RtDWORD dwLastInd,
    /* [retval][out] */ RtDWORD *pdwIndex);


void __RPC_STUB IRdChunksList_FindChunkByAddr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksList_FindChunkByIID_Proxy( 
    IRdChunksList * This,
    /* [in] */ IID iidChunk,
    /* [in] */ RtDWORD dwLastInd,
    /* [retval][out] */ RtDWORD *pdwIndex);


void __RPC_STUB IRdChunksList_FindChunkByIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunksList_INTERFACE_DEFINED__ */


#ifndef __IRdChunksListDisp_INTERFACE_DEFINED__
#define __IRdChunksListDisp_INTERFACE_DEFINED__

/* interface IRdChunksListDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdChunksListDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("c688e8b8-0afd-41cf-9c27-e1b15ed2f003")
    IRdChunksListDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumChunks( 
            /* [retval][out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkIID( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvChunkIID) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkCustId( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvCustId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkAddress( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvAddress) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkLength( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvLength) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunkInfoFlags( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetChunkInfoFlags( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveChunkInfo( 
            /* [in] */ RtDWORD dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindChunkByAddr( 
            /* [in] */ RtQWORD qwAddress,
            /* [in] */ RtDWORD dwLastInd,
            /* [retval][out] */ RtDWORD *pdwIndex) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunksListDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunksListDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunksListDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunksListDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunksListDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunksListDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunksListDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunksListDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumChunks )( 
            IRdChunksListDisp * This,
            /* [retval][out] */ RtDWORD *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkIID )( 
            IRdChunksListDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvChunkIID);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkCustId )( 
            IRdChunksListDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvCustId);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkAddress )( 
            IRdChunksListDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvAddress);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkLength )( 
            IRdChunksListDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvLength);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunkInfoFlags )( 
            IRdChunksListDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ VARIANT *pvFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunksListDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetChunkInfoFlags )( 
            IRdChunksListDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveChunkInfo )( 
            IRdChunksListDisp * This,
            /* [in] */ RtDWORD dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindChunkByAddr )( 
            IRdChunksListDisp * This,
            /* [in] */ RtQWORD qwAddress,
            /* [in] */ RtDWORD dwLastInd,
            /* [retval][out] */ RtDWORD *pdwIndex);
        
        END_INTERFACE
    } IRdChunksListDispVtbl;

    interface IRdChunksListDisp
    {
        CONST_VTBL struct IRdChunksListDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunksListDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunksListDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunksListDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunksListDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunksListDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunksListDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunksListDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunksListDisp_GetNumChunks(This,pVal)	\
    (This)->lpVtbl -> GetNumChunks(This,pVal)

#define IRdChunksListDisp_GetChunkIID(This,dwIndex,pvChunkIID)	\
    (This)->lpVtbl -> GetChunkIID(This,dwIndex,pvChunkIID)

#define IRdChunksListDisp_GetChunkCustId(This,dwIndex,pvCustId)	\
    (This)->lpVtbl -> GetChunkCustId(This,dwIndex,pvCustId)

#define IRdChunksListDisp_GetChunkAddress(This,dwIndex,pvAddress)	\
    (This)->lpVtbl -> GetChunkAddress(This,dwIndex,pvAddress)

#define IRdChunksListDisp_GetChunkLength(This,dwIndex,pvLength)	\
    (This)->lpVtbl -> GetChunkLength(This,dwIndex,pvLength)

#define IRdChunksListDisp_GetChunkInfoFlags(This,dwIndex,pvFlags)	\
    (This)->lpVtbl -> GetChunkInfoFlags(This,dwIndex,pvFlags)

#define IRdChunksListDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunksListDisp_SetChunkInfoFlags(This,dwIndex,dwFlags)	\
    (This)->lpVtbl -> SetChunkInfoFlags(This,dwIndex,dwFlags)

#define IRdChunksListDisp_RemoveChunkInfo(This,dwIndex)	\
    (This)->lpVtbl -> RemoveChunkInfo(This,dwIndex)

#define IRdChunksListDisp_FindChunkByAddr(This,qwAddress,dwLastInd,pdwIndex)	\
    (This)->lpVtbl -> FindChunkByAddr(This,qwAddress,dwLastInd,pdwIndex)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_GetNumChunks_Proxy( 
    IRdChunksListDisp * This,
    /* [retval][out] */ RtDWORD *pVal);


void __RPC_STUB IRdChunksListDisp_GetNumChunks_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_GetChunkIID_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvChunkIID);


void __RPC_STUB IRdChunksListDisp_GetChunkIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_GetChunkCustId_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvCustId);


void __RPC_STUB IRdChunksListDisp_GetChunkCustId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_GetChunkAddress_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvAddress);


void __RPC_STUB IRdChunksListDisp_GetChunkAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_GetChunkLength_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvLength);


void __RPC_STUB IRdChunksListDisp_GetChunkLength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_GetChunkInfoFlags_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ VARIANT *pvFlags);


void __RPC_STUB IRdChunksListDisp_GetChunkInfoFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_Clear_Proxy( 
    IRdChunksListDisp * This);


void __RPC_STUB IRdChunksListDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_SetChunkInfoFlags_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRdChunksListDisp_SetChunkInfoFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_RemoveChunkInfo_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtDWORD dwIndex);


void __RPC_STUB IRdChunksListDisp_RemoveChunkInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunksListDisp_FindChunkByAddr_Proxy( 
    IRdChunksListDisp * This,
    /* [in] */ RtQWORD qwAddress,
    /* [in] */ RtDWORD dwLastInd,
    /* [retval][out] */ RtDWORD *pdwIndex);


void __RPC_STUB IRdChunksListDisp_FindChunkByAddr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunksListDisp_INTERFACE_DEFINED__ */


#ifndef __IRdChunkThumbnail_INTERFACE_DEFINED__
#define __IRdChunkThumbnail_INTERFACE_DEFINED__

/* interface IRdChunkThumbnail */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdChunkThumbnail;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("70386460-A6A7-4d90-B02A-23F8CDBA1C4F")
    IRdChunkThumbnail : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBitmap( 
            /* [retval][out] */ IRdBitmap **ppBitmap) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PutBitmap( 
            /* [in] */ IRdBitmap *pBitmap,
            /* [in] */ RtDWORD dwFormat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBitmapStream( 
            /* [retval][out] */ IStream **ppStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PutBitmapStream( 
            /* [in] */ IStream *pStream,
            /* [in] */ RtDWORD dwReadCount) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitmapStreamSize( 
            /* [retval][out] */ RtDWORD *pdwStreamSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkThumbnailVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkThumbnail * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkThumbnail * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkThumbnail * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBitmap )( 
            IRdChunkThumbnail * This,
            /* [retval][out] */ IRdBitmap **ppBitmap);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PutBitmap )( 
            IRdChunkThumbnail * This,
            /* [in] */ IRdBitmap *pBitmap,
            /* [in] */ RtDWORD dwFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBitmapStream )( 
            IRdChunkThumbnail * This,
            /* [retval][out] */ IStream **ppStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PutBitmapStream )( 
            IRdChunkThumbnail * This,
            /* [in] */ IStream *pStream,
            /* [in] */ RtDWORD dwReadCount);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapStreamSize )( 
            IRdChunkThumbnail * This,
            /* [retval][out] */ RtDWORD *pdwStreamSize);
        
        END_INTERFACE
    } IRdChunkThumbnailVtbl;

    interface IRdChunkThumbnail
    {
        CONST_VTBL struct IRdChunkThumbnailVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkThumbnail_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkThumbnail_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkThumbnail_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkThumbnail_GetBitmap(This,ppBitmap)	\
    (This)->lpVtbl -> GetBitmap(This,ppBitmap)

#define IRdChunkThumbnail_PutBitmap(This,pBitmap,dwFormat)	\
    (This)->lpVtbl -> PutBitmap(This,pBitmap,dwFormat)

#define IRdChunkThumbnail_GetBitmapStream(This,ppStream)	\
    (This)->lpVtbl -> GetBitmapStream(This,ppStream)

#define IRdChunkThumbnail_PutBitmapStream(This,pStream,dwReadCount)	\
    (This)->lpVtbl -> PutBitmapStream(This,pStream,dwReadCount)

#define IRdChunkThumbnail_get_BitmapStreamSize(This,pdwStreamSize)	\
    (This)->lpVtbl -> get_BitmapStreamSize(This,pdwStreamSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnail_GetBitmap_Proxy( 
    IRdChunkThumbnail * This,
    /* [retval][out] */ IRdBitmap **ppBitmap);


void __RPC_STUB IRdChunkThumbnail_GetBitmap_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnail_PutBitmap_Proxy( 
    IRdChunkThumbnail * This,
    /* [in] */ IRdBitmap *pBitmap,
    /* [in] */ RtDWORD dwFormat);


void __RPC_STUB IRdChunkThumbnail_PutBitmap_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnail_GetBitmapStream_Proxy( 
    IRdChunkThumbnail * This,
    /* [retval][out] */ IStream **ppStream);


void __RPC_STUB IRdChunkThumbnail_GetBitmapStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnail_PutBitmapStream_Proxy( 
    IRdChunkThumbnail * This,
    /* [in] */ IStream *pStream,
    /* [in] */ RtDWORD dwReadCount);


void __RPC_STUB IRdChunkThumbnail_PutBitmapStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnail_get_BitmapStreamSize_Proxy( 
    IRdChunkThumbnail * This,
    /* [retval][out] */ RtDWORD *pdwStreamSize);


void __RPC_STUB IRdChunkThumbnail_get_BitmapStreamSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkThumbnail_INTERFACE_DEFINED__ */


#ifndef __IRdChunkThumbnailDisp_INTERFACE_DEFINED__
#define __IRdChunkThumbnailDisp_INTERFACE_DEFINED__

/* interface IRdChunkThumbnailDisp */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdChunkThumbnailDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("60864087-0e5c-4d14-b9b0-892a6a36bae3")
    IRdChunkThumbnailDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBitmap( 
            /* [retval][out] */ IDispatch **ppBitmap) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PutBitmap( 
            /* [in] */ IDispatch *pBitmap,
            /* [in] */ RtDWORD dwFormat) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBitmapStream( 
            /* [retval][out] */ IDispatch **ppStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PutBitmapStream( 
            /* [in] */ IDispatch *pStream,
            /* [in] */ RtDWORD dwReadCount) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitmapStreamSize( 
            /* [retval][out] */ RtDWORD *pdwStreamSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkThumbnailDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkThumbnailDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkThumbnailDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkThumbnailDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunkThumbnailDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunkThumbnailDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunkThumbnailDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunkThumbnailDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBitmap )( 
            IRdChunkThumbnailDisp * This,
            /* [retval][out] */ IDispatch **ppBitmap);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PutBitmap )( 
            IRdChunkThumbnailDisp * This,
            /* [in] */ IDispatch *pBitmap,
            /* [in] */ RtDWORD dwFormat);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBitmapStream )( 
            IRdChunkThumbnailDisp * This,
            /* [retval][out] */ IDispatch **ppStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PutBitmapStream )( 
            IRdChunkThumbnailDisp * This,
            /* [in] */ IDispatch *pStream,
            /* [in] */ RtDWORD dwReadCount);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapStreamSize )( 
            IRdChunkThumbnailDisp * This,
            /* [retval][out] */ RtDWORD *pdwStreamSize);
        
        END_INTERFACE
    } IRdChunkThumbnailDispVtbl;

    interface IRdChunkThumbnailDisp
    {
        CONST_VTBL struct IRdChunkThumbnailDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkThumbnailDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkThumbnailDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkThumbnailDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkThumbnailDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunkThumbnailDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunkThumbnailDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunkThumbnailDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunkThumbnailDisp_GetBitmap(This,ppBitmap)	\
    (This)->lpVtbl -> GetBitmap(This,ppBitmap)

#define IRdChunkThumbnailDisp_PutBitmap(This,pBitmap,dwFormat)	\
    (This)->lpVtbl -> PutBitmap(This,pBitmap,dwFormat)

#define IRdChunkThumbnailDisp_GetBitmapStream(This,ppStream)	\
    (This)->lpVtbl -> GetBitmapStream(This,ppStream)

#define IRdChunkThumbnailDisp_PutBitmapStream(This,pStream,dwReadCount)	\
    (This)->lpVtbl -> PutBitmapStream(This,pStream,dwReadCount)

#define IRdChunkThumbnailDisp_get_BitmapStreamSize(This,pdwStreamSize)	\
    (This)->lpVtbl -> get_BitmapStreamSize(This,pdwStreamSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnailDisp_GetBitmap_Proxy( 
    IRdChunkThumbnailDisp * This,
    /* [retval][out] */ IDispatch **ppBitmap);


void __RPC_STUB IRdChunkThumbnailDisp_GetBitmap_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnailDisp_PutBitmap_Proxy( 
    IRdChunkThumbnailDisp * This,
    /* [in] */ IDispatch *pBitmap,
    /* [in] */ RtDWORD dwFormat);


void __RPC_STUB IRdChunkThumbnailDisp_PutBitmap_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnailDisp_GetBitmapStream_Proxy( 
    IRdChunkThumbnailDisp * This,
    /* [retval][out] */ IDispatch **ppStream);


void __RPC_STUB IRdChunkThumbnailDisp_GetBitmapStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnailDisp_PutBitmapStream_Proxy( 
    IRdChunkThumbnailDisp * This,
    /* [in] */ IDispatch *pStream,
    /* [in] */ RtDWORD dwReadCount);


void __RPC_STUB IRdChunkThumbnailDisp_PutBitmapStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdChunkThumbnailDisp_get_BitmapStreamSize_Proxy( 
    IRdChunkThumbnailDisp * This,
    /* [retval][out] */ RtDWORD *pdwStreamSize);


void __RPC_STUB IRdChunkThumbnailDisp_get_BitmapStreamSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkThumbnailDisp_INTERFACE_DEFINED__ */


#ifndef __IRdChunkHistory_INTERFACE_DEFINED__
#define __IRdChunkHistory_INTERFACE_DEFINED__

/* interface IRdChunkHistory */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdChunkHistory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B7AF3E73-9BD8-49bf-9341-C03AC2848D45")
    IRdChunkHistory : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveHistory( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RestoreHistory( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachHistory( 
            /* [in] */ IRsObject *pHistoryObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHistory( 
            /* [retval][out] */ IRsObject **ppHistoryObj) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkHistoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkHistory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkHistory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkHistory * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkHistory * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveHistory )( 
            IRdChunkHistory * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RestoreHistory )( 
            IRdChunkHistory * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachHistory )( 
            IRdChunkHistory * This,
            /* [in] */ IRsObject *pHistoryObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHistory )( 
            IRdChunkHistory * This,
            /* [retval][out] */ IRsObject **ppHistoryObj);
        
        END_INTERFACE
    } IRdChunkHistoryVtbl;

    interface IRdChunkHistory
    {
        CONST_VTBL struct IRdChunkHistoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkHistory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkHistory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkHistory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkHistory_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkHistory_SaveHistory(This)	\
    (This)->lpVtbl -> SaveHistory(This)

#define IRdChunkHistory_RestoreHistory(This)	\
    (This)->lpVtbl -> RestoreHistory(This)

#define IRdChunkHistory_AttachHistory(This,pHistoryObj)	\
    (This)->lpVtbl -> AttachHistory(This,pHistoryObj)

#define IRdChunkHistory_GetHistory(This,ppHistoryObj)	\
    (This)->lpVtbl -> GetHistory(This,ppHistoryObj)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistory_Clear_Proxy( 
    IRdChunkHistory * This);


void __RPC_STUB IRdChunkHistory_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistory_SaveHistory_Proxy( 
    IRdChunkHistory * This);


void __RPC_STUB IRdChunkHistory_SaveHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistory_RestoreHistory_Proxy( 
    IRdChunkHistory * This);


void __RPC_STUB IRdChunkHistory_RestoreHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistory_AttachHistory_Proxy( 
    IRdChunkHistory * This,
    /* [in] */ IRsObject *pHistoryObj);


void __RPC_STUB IRdChunkHistory_AttachHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistory_GetHistory_Proxy( 
    IRdChunkHistory * This,
    /* [retval][out] */ IRsObject **ppHistoryObj);


void __RPC_STUB IRdChunkHistory_GetHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkHistory_INTERFACE_DEFINED__ */


#ifndef __IRdChunkHistoryDisp_INTERFACE_DEFINED__
#define __IRdChunkHistoryDisp_INTERFACE_DEFINED__

/* interface IRdChunkHistoryDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdChunkHistoryDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a7b461da-1a25-4de8-af0a-3cc96790bb16")
    IRdChunkHistoryDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveHistory( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RestoreHistory( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachHistory( 
            /* [in] */ IDispatch *pHistoryObj) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHistory( 
            /* [retval][out] */ IDispatch **ppHistoryObj) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkHistoryDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkHistoryDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkHistoryDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkHistoryDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunkHistoryDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunkHistoryDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunkHistoryDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunkHistoryDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkHistoryDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveHistory )( 
            IRdChunkHistoryDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RestoreHistory )( 
            IRdChunkHistoryDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachHistory )( 
            IRdChunkHistoryDisp * This,
            /* [in] */ IDispatch *pHistoryObj);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHistory )( 
            IRdChunkHistoryDisp * This,
            /* [retval][out] */ IDispatch **ppHistoryObj);
        
        END_INTERFACE
    } IRdChunkHistoryDispVtbl;

    interface IRdChunkHistoryDisp
    {
        CONST_VTBL struct IRdChunkHistoryDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkHistoryDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkHistoryDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkHistoryDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkHistoryDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunkHistoryDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunkHistoryDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunkHistoryDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunkHistoryDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkHistoryDisp_SaveHistory(This)	\
    (This)->lpVtbl -> SaveHistory(This)

#define IRdChunkHistoryDisp_RestoreHistory(This)	\
    (This)->lpVtbl -> RestoreHistory(This)

#define IRdChunkHistoryDisp_AttachHistory(This,pHistoryObj)	\
    (This)->lpVtbl -> AttachHistory(This,pHistoryObj)

#define IRdChunkHistoryDisp_GetHistory(This,ppHistoryObj)	\
    (This)->lpVtbl -> GetHistory(This,ppHistoryObj)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistoryDisp_Clear_Proxy( 
    IRdChunkHistoryDisp * This);


void __RPC_STUB IRdChunkHistoryDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistoryDisp_SaveHistory_Proxy( 
    IRdChunkHistoryDisp * This);


void __RPC_STUB IRdChunkHistoryDisp_SaveHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistoryDisp_RestoreHistory_Proxy( 
    IRdChunkHistoryDisp * This);


void __RPC_STUB IRdChunkHistoryDisp_RestoreHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistoryDisp_AttachHistory_Proxy( 
    IRdChunkHistoryDisp * This,
    /* [in] */ IDispatch *pHistoryObj);


void __RPC_STUB IRdChunkHistoryDisp_AttachHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkHistoryDisp_GetHistory_Proxy( 
    IRdChunkHistoryDisp * This,
    /* [retval][out] */ IDispatch **ppHistoryObj);


void __RPC_STUB IRdChunkHistoryDisp_GetHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkHistoryDisp_INTERFACE_DEFINED__ */


#ifndef __IRdChunkSystem_INTERFACE_DEFINED__
#define __IRdChunkSystem_INTERFACE_DEFINED__

/* interface IRdChunkSystem */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdChunkSystem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9A198C41-FDA8-4389-A02C-AD50CB5EAB01")
    IRdChunkSystem : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SystemSnapshot( 
            /* [in] */ RtBOOL bSaveImmediatelly) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RestoreSystem( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadSystemIntoMemory( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReleaseSrcStream( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdChunkSystemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdChunkSystem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdChunkSystem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdChunkSystem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdChunkSystem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdChunkSystem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdChunkSystem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdChunkSystem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdChunkSystem * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SystemSnapshot )( 
            IRdChunkSystem * This,
            /* [in] */ RtBOOL bSaveImmediatelly);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RestoreSystem )( 
            IRdChunkSystem * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadSystemIntoMemory )( 
            IRdChunkSystem * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ReleaseSrcStream )( 
            IRdChunkSystem * This);
        
        END_INTERFACE
    } IRdChunkSystemVtbl;

    interface IRdChunkSystem
    {
        CONST_VTBL struct IRdChunkSystemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdChunkSystem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdChunkSystem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdChunkSystem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdChunkSystem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdChunkSystem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdChunkSystem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdChunkSystem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdChunkSystem_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdChunkSystem_SystemSnapshot(This,bSaveImmediatelly)	\
    (This)->lpVtbl -> SystemSnapshot(This,bSaveImmediatelly)

#define IRdChunkSystem_RestoreSystem(This)	\
    (This)->lpVtbl -> RestoreSystem(This)

#define IRdChunkSystem_LoadSystemIntoMemory(This)	\
    (This)->lpVtbl -> LoadSystemIntoMemory(This)

#define IRdChunkSystem_ReleaseSrcStream(This)	\
    (This)->lpVtbl -> ReleaseSrcStream(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkSystem_Clear_Proxy( 
    IRdChunkSystem * This);


void __RPC_STUB IRdChunkSystem_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkSystem_SystemSnapshot_Proxy( 
    IRdChunkSystem * This,
    /* [in] */ RtBOOL bSaveImmediatelly);


void __RPC_STUB IRdChunkSystem_SystemSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkSystem_RestoreSystem_Proxy( 
    IRdChunkSystem * This);


void __RPC_STUB IRdChunkSystem_RestoreSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkSystem_LoadSystemIntoMemory_Proxy( 
    IRdChunkSystem * This);


void __RPC_STUB IRdChunkSystem_LoadSystemIntoMemory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdChunkSystem_ReleaseSrcStream_Proxy( 
    IRdChunkSystem * This);


void __RPC_STUB IRdChunkSystem_ReleaseSrcStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdChunkSystem_INTERFACE_DEFINED__ */


#ifndef __IRsFileInfo_INTERFACE_DEFINED__
#define __IRsFileInfo_INTERFACE_DEFINED__

/* interface IRsFileInfo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B0B37AEB-378B-4669-855D-D413610549D1")
    IRsFileInfo : public IUnknown
    {
    public:
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR *newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Attributes( 
            /* [retval][out] */ DWORD *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Attributes( 
            /* [in] */ DWORD *newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FileSizeLo( 
            /* [retval][out] */ DWORD *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_FileSizeLo( 
            /* [in] */ DWORD *newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FileSizeHi( 
            /* [retval][out] */ DWORD *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_FileSizeHi( 
            /* [in] */ DWORD *newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CreationTime( 
            /* [retval][out] */ FILETIME *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_CreationTime( 
            /* [in] */ FILETIME *newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LastAccessTime( 
            /* [retval][out] */ FILETIME *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_LastAccessTime( 
            /* [in] */ FILETIME *newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_LastWriteTime( 
            /* [retval][out] */ FILETIME *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_LastWriteTime( 
            /* [in] */ FILETIME *newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileInfo * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IRsFileInfo * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IRsFileInfo * This,
            /* [in] */ BSTR *newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Attributes )( 
            IRsFileInfo * This,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Attributes )( 
            IRsFileInfo * This,
            /* [in] */ DWORD *newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileSizeLo )( 
            IRsFileInfo * This,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileSizeLo )( 
            IRsFileInfo * This,
            /* [in] */ DWORD *newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileSizeHi )( 
            IRsFileInfo * This,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileSizeHi )( 
            IRsFileInfo * This,
            /* [in] */ DWORD *newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CreationTime )( 
            IRsFileInfo * This,
            /* [retval][out] */ FILETIME *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CreationTime )( 
            IRsFileInfo * This,
            /* [in] */ FILETIME *newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastAccessTime )( 
            IRsFileInfo * This,
            /* [retval][out] */ FILETIME *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LastAccessTime )( 
            IRsFileInfo * This,
            /* [in] */ FILETIME *newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastWriteTime )( 
            IRsFileInfo * This,
            /* [retval][out] */ FILETIME *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LastWriteTime )( 
            IRsFileInfo * This,
            /* [in] */ FILETIME *newVal);
        
        END_INTERFACE
    } IRsFileInfoVtbl;

    interface IRsFileInfo
    {
        CONST_VTBL struct IRsFileInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileInfo_get_Name(This,pVal)	\
    (This)->lpVtbl -> get_Name(This,pVal)

#define IRsFileInfo_put_Name(This,newVal)	\
    (This)->lpVtbl -> put_Name(This,newVal)

#define IRsFileInfo_get_Attributes(This,pVal)	\
    (This)->lpVtbl -> get_Attributes(This,pVal)

#define IRsFileInfo_put_Attributes(This,newVal)	\
    (This)->lpVtbl -> put_Attributes(This,newVal)

#define IRsFileInfo_get_FileSizeLo(This,pVal)	\
    (This)->lpVtbl -> get_FileSizeLo(This,pVal)

#define IRsFileInfo_put_FileSizeLo(This,newVal)	\
    (This)->lpVtbl -> put_FileSizeLo(This,newVal)

#define IRsFileInfo_get_FileSizeHi(This,pVal)	\
    (This)->lpVtbl -> get_FileSizeHi(This,pVal)

#define IRsFileInfo_put_FileSizeHi(This,newVal)	\
    (This)->lpVtbl -> put_FileSizeHi(This,newVal)

#define IRsFileInfo_get_CreationTime(This,pVal)	\
    (This)->lpVtbl -> get_CreationTime(This,pVal)

#define IRsFileInfo_put_CreationTime(This,newVal)	\
    (This)->lpVtbl -> put_CreationTime(This,newVal)

#define IRsFileInfo_get_LastAccessTime(This,pVal)	\
    (This)->lpVtbl -> get_LastAccessTime(This,pVal)

#define IRsFileInfo_put_LastAccessTime(This,newVal)	\
    (This)->lpVtbl -> put_LastAccessTime(This,newVal)

#define IRsFileInfo_get_LastWriteTime(This,pVal)	\
    (This)->lpVtbl -> get_LastWriteTime(This,pVal)

#define IRsFileInfo_put_LastWriteTime(This,newVal)	\
    (This)->lpVtbl -> put_LastWriteTime(This,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_get_Name_Proxy( 
    IRsFileInfo * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRsFileInfo_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_put_Name_Proxy( 
    IRsFileInfo * This,
    /* [in] */ BSTR *newVal);


void __RPC_STUB IRsFileInfo_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_get_Attributes_Proxy( 
    IRsFileInfo * This,
    /* [retval][out] */ DWORD *pVal);


void __RPC_STUB IRsFileInfo_get_Attributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_put_Attributes_Proxy( 
    IRsFileInfo * This,
    /* [in] */ DWORD *newVal);


void __RPC_STUB IRsFileInfo_put_Attributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_get_FileSizeLo_Proxy( 
    IRsFileInfo * This,
    /* [retval][out] */ DWORD *pVal);


void __RPC_STUB IRsFileInfo_get_FileSizeLo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_put_FileSizeLo_Proxy( 
    IRsFileInfo * This,
    /* [in] */ DWORD *newVal);


void __RPC_STUB IRsFileInfo_put_FileSizeLo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_get_FileSizeHi_Proxy( 
    IRsFileInfo * This,
    /* [retval][out] */ DWORD *pVal);


void __RPC_STUB IRsFileInfo_get_FileSizeHi_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_put_FileSizeHi_Proxy( 
    IRsFileInfo * This,
    /* [in] */ DWORD *newVal);


void __RPC_STUB IRsFileInfo_put_FileSizeHi_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_get_CreationTime_Proxy( 
    IRsFileInfo * This,
    /* [retval][out] */ FILETIME *pVal);


void __RPC_STUB IRsFileInfo_get_CreationTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_put_CreationTime_Proxy( 
    IRsFileInfo * This,
    /* [in] */ FILETIME *newVal);


void __RPC_STUB IRsFileInfo_put_CreationTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_get_LastAccessTime_Proxy( 
    IRsFileInfo * This,
    /* [retval][out] */ FILETIME *pVal);


void __RPC_STUB IRsFileInfo_get_LastAccessTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_put_LastAccessTime_Proxy( 
    IRsFileInfo * This,
    /* [in] */ FILETIME *newVal);


void __RPC_STUB IRsFileInfo_put_LastAccessTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_get_LastWriteTime_Proxy( 
    IRsFileInfo * This,
    /* [retval][out] */ FILETIME *pVal);


void __RPC_STUB IRsFileInfo_get_LastWriteTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRsFileInfo_put_LastWriteTime_Proxy( 
    IRsFileInfo * This,
    /* [in] */ FILETIME *newVal);


void __RPC_STUB IRsFileInfo_put_LastWriteTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileInfo_INTERFACE_DEFINED__ */


#ifndef __IRfFileSupport_INTERFACE_DEFINED__
#define __IRfFileSupport_INTERFACE_DEFINED__

/* interface IRfFileSupport */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfFileSupport;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BA714954-4612-45bd-A155-C3ECCF1D940B")
    IRfFileSupport : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumDirectoryContent( 
            /* [in] */ BSTR szDirectoryPath,
            /* [in] */ BSTR szFilter,
            /* [retval][out] */ LPSAFEARRAY *ppFileInfoArray) = 0;
        
        virtual /* [helpstring][local] */ HRESULT STDMETHODCALLTYPE StartDirectoryChangesMonitor( 
            /* [in] */ BSTR szDirectory,
            /* [retval][out] */ void **ppHandle) = 0;
        
        virtual /* [helpstring][local] */ HRESULT STDMETHODCALLTYPE ReadDirectoryChanges( 
            /* [in] */ void *pHandle,
            /* [in] */ BYTE *pBuffer,
            /* [in] */ DWORD nBufferSize,
            /* [retval][out] */ DWORD *pBytesReturned) = 0;
        
        virtual /* [helpstring][local] */ HRESULT STDMETHODCALLTYPE StopDirectoryChangesMonitor( 
            /* [in] */ void *pHandle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateFileA( 
            /* [in] */ BSTR pszFilePath) = 0;
        
        virtual /* [helpstring][local] */ HRESULT STDMETHODCALLTYPE WriteFile( 
            /* [in] */ BSTR pszFilePath,
            /* [in] */ BYTE *pBuffer,
            /* [in] */ DWORD nSize) = 0;
        
        virtual /* [helpstring][local] */ HRESULT STDMETHODCALLTYPE ReadFile( 
            /* [in] */ BSTR pszFilePath,
            /* [in] */ BYTE *pBuffer,
            /* [in] */ DWORD nBufferSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FileExist( 
            /* [in] */ BSTR szFilePath,
            /* [retval][out] */ BOOL *bExist) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUniqueFileName( 
            /* [in] */ BSTR bszDirectory,
            /* [in] */ BSTR bszBaseName,
            /* [in] */ BSTR bszExt,
            /* [in] */ RtDWORD dwMaxAttempts,
            /* [retval][out] */ BSTR *pbszUniqueName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileInfo( 
            /* [in] */ BSTR szFilePath,
            /* [retval][out] */ IRsFileInfo **ppFileInfo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteFileA( 
            /* [in] */ BSTR szFilePath,
            /* [in] */ BOOL bAllowUndo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RenameFile( 
            /* [in] */ BSTR szFilePath,
            /* [in] */ BSTR szNewFileName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RenameDirectory( 
            /* [in] */ BSTR szFilePath,
            /* [in] */ BSTR szNewFileName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CopyFileA( 
            /* [in] */ BSTR bszSourceFilePath,
            /* [in] */ BSTR bszDestinationFilePath) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MoveFileA( 
            /* [in] */ BSTR bszSourceFilePath,
            /* [in] */ BSTR bszDestinationFilePath) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateDirectoryA( 
            /* [in] */ BSTR szDirectoryPath) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteDirectory( 
            /* [in] */ BSTR szDirectoryPath,
            /* [in] */ BOOL bAllowUndo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateDirectoryRecursive( 
            /* [in] */ BSTR szDirectoryPath) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfFileSupportVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfFileSupport * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfFileSupport * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfFileSupport * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumDirectoryContent )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szDirectoryPath,
            /* [in] */ BSTR szFilter,
            /* [retval][out] */ LPSAFEARRAY *ppFileInfoArray);
        
        /* [helpstring][local] */ HRESULT ( STDMETHODCALLTYPE *StartDirectoryChangesMonitor )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szDirectory,
            /* [retval][out] */ void **ppHandle);
        
        /* [helpstring][local] */ HRESULT ( STDMETHODCALLTYPE *ReadDirectoryChanges )( 
            IRfFileSupport * This,
            /* [in] */ void *pHandle,
            /* [in] */ BYTE *pBuffer,
            /* [in] */ DWORD nBufferSize,
            /* [retval][out] */ DWORD *pBytesReturned);
        
        /* [helpstring][local] */ HRESULT ( STDMETHODCALLTYPE *StopDirectoryChangesMonitor )( 
            IRfFileSupport * This,
            /* [in] */ void *pHandle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateFileA )( 
            IRfFileSupport * This,
            /* [in] */ BSTR pszFilePath);
        
        /* [helpstring][local] */ HRESULT ( STDMETHODCALLTYPE *WriteFile )( 
            IRfFileSupport * This,
            /* [in] */ BSTR pszFilePath,
            /* [in] */ BYTE *pBuffer,
            /* [in] */ DWORD nSize);
        
        /* [helpstring][local] */ HRESULT ( STDMETHODCALLTYPE *ReadFile )( 
            IRfFileSupport * This,
            /* [in] */ BSTR pszFilePath,
            /* [in] */ BYTE *pBuffer,
            /* [in] */ DWORD nBufferSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FileExist )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szFilePath,
            /* [retval][out] */ BOOL *bExist);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetUniqueFileName )( 
            IRfFileSupport * This,
            /* [in] */ BSTR bszDirectory,
            /* [in] */ BSTR bszBaseName,
            /* [in] */ BSTR bszExt,
            /* [in] */ RtDWORD dwMaxAttempts,
            /* [retval][out] */ BSTR *pbszUniqueName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileInfo )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szFilePath,
            /* [retval][out] */ IRsFileInfo **ppFileInfo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteFileA )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szFilePath,
            /* [in] */ BOOL bAllowUndo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RenameFile )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szFilePath,
            /* [in] */ BSTR szNewFileName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RenameDirectory )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szFilePath,
            /* [in] */ BSTR szNewFileName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CopyFileA )( 
            IRfFileSupport * This,
            /* [in] */ BSTR bszSourceFilePath,
            /* [in] */ BSTR bszDestinationFilePath);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MoveFileA )( 
            IRfFileSupport * This,
            /* [in] */ BSTR bszSourceFilePath,
            /* [in] */ BSTR bszDestinationFilePath);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateDirectoryA )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szDirectoryPath);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteDirectory )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szDirectoryPath,
            /* [in] */ BOOL bAllowUndo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateDirectoryRecursive )( 
            IRfFileSupport * This,
            /* [in] */ BSTR szDirectoryPath);
        
        END_INTERFACE
    } IRfFileSupportVtbl;

    interface IRfFileSupport
    {
        CONST_VTBL struct IRfFileSupportVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfFileSupport_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfFileSupport_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfFileSupport_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfFileSupport_EnumDirectoryContent(This,szDirectoryPath,szFilter,ppFileInfoArray)	\
    (This)->lpVtbl -> EnumDirectoryContent(This,szDirectoryPath,szFilter,ppFileInfoArray)

#define IRfFileSupport_StartDirectoryChangesMonitor(This,szDirectory,ppHandle)	\
    (This)->lpVtbl -> StartDirectoryChangesMonitor(This,szDirectory,ppHandle)

#define IRfFileSupport_ReadDirectoryChanges(This,pHandle,pBuffer,nBufferSize,pBytesReturned)	\
    (This)->lpVtbl -> ReadDirectoryChanges(This,pHandle,pBuffer,nBufferSize,pBytesReturned)

#define IRfFileSupport_StopDirectoryChangesMonitor(This,pHandle)	\
    (This)->lpVtbl -> StopDirectoryChangesMonitor(This,pHandle)

#define IRfFileSupport_CreateFileA(This,pszFilePath)	\
    (This)->lpVtbl -> CreateFileA(This,pszFilePath)

#define IRfFileSupport_WriteFile(This,pszFilePath,pBuffer,nSize)	\
    (This)->lpVtbl -> WriteFile(This,pszFilePath,pBuffer,nSize)

#define IRfFileSupport_ReadFile(This,pszFilePath,pBuffer,nBufferSize)	\
    (This)->lpVtbl -> ReadFile(This,pszFilePath,pBuffer,nBufferSize)

#define IRfFileSupport_FileExist(This,szFilePath,bExist)	\
    (This)->lpVtbl -> FileExist(This,szFilePath,bExist)

#define IRfFileSupport_GetUniqueFileName(This,bszDirectory,bszBaseName,bszExt,dwMaxAttempts,pbszUniqueName)	\
    (This)->lpVtbl -> GetUniqueFileName(This,bszDirectory,bszBaseName,bszExt,dwMaxAttempts,pbszUniqueName)

#define IRfFileSupport_GetFileInfo(This,szFilePath,ppFileInfo)	\
    (This)->lpVtbl -> GetFileInfo(This,szFilePath,ppFileInfo)

#define IRfFileSupport_DeleteFileA(This,szFilePath,bAllowUndo)	\
    (This)->lpVtbl -> DeleteFileA(This,szFilePath,bAllowUndo)

#define IRfFileSupport_RenameFile(This,szFilePath,szNewFileName)	\
    (This)->lpVtbl -> RenameFile(This,szFilePath,szNewFileName)

#define IRfFileSupport_RenameDirectory(This,szFilePath,szNewFileName)	\
    (This)->lpVtbl -> RenameDirectory(This,szFilePath,szNewFileName)

#define IRfFileSupport_CopyFileA(This,bszSourceFilePath,bszDestinationFilePath)	\
    (This)->lpVtbl -> CopyFileA(This,bszSourceFilePath,bszDestinationFilePath)

#define IRfFileSupport_MoveFileA(This,bszSourceFilePath,bszDestinationFilePath)	\
    (This)->lpVtbl -> MoveFileA(This,bszSourceFilePath,bszDestinationFilePath)

#define IRfFileSupport_CreateDirectoryA(This,szDirectoryPath)	\
    (This)->lpVtbl -> CreateDirectoryA(This,szDirectoryPath)

#define IRfFileSupport_DeleteDirectory(This,szDirectoryPath,bAllowUndo)	\
    (This)->lpVtbl -> DeleteDirectory(This,szDirectoryPath,bAllowUndo)

#define IRfFileSupport_CreateDirectoryRecursive(This,szDirectoryPath)	\
    (This)->lpVtbl -> CreateDirectoryRecursive(This,szDirectoryPath)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_EnumDirectoryContent_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szDirectoryPath,
    /* [in] */ BSTR szFilter,
    /* [retval][out] */ LPSAFEARRAY *ppFileInfoArray);


void __RPC_STUB IRfFileSupport_EnumDirectoryContent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_StartDirectoryChangesMonitor_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szDirectory,
    /* [retval][out] */ void **ppHandle);


void __RPC_STUB IRfFileSupport_StartDirectoryChangesMonitor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_ReadDirectoryChanges_Proxy( 
    IRfFileSupport * This,
    /* [in] */ void *pHandle,
    /* [in] */ BYTE *pBuffer,
    /* [in] */ DWORD nBufferSize,
    /* [retval][out] */ DWORD *pBytesReturned);


void __RPC_STUB IRfFileSupport_ReadDirectoryChanges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_StopDirectoryChangesMonitor_Proxy( 
    IRfFileSupport * This,
    /* [in] */ void *pHandle);


void __RPC_STUB IRfFileSupport_StopDirectoryChangesMonitor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_CreateFileA_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR pszFilePath);


void __RPC_STUB IRfFileSupport_CreateFileA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_WriteFile_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR pszFilePath,
    /* [in] */ BYTE *pBuffer,
    /* [in] */ DWORD nSize);


void __RPC_STUB IRfFileSupport_WriteFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_ReadFile_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR pszFilePath,
    /* [in] */ BYTE *pBuffer,
    /* [in] */ DWORD nBufferSize);


void __RPC_STUB IRfFileSupport_ReadFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_FileExist_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szFilePath,
    /* [retval][out] */ BOOL *bExist);


void __RPC_STUB IRfFileSupport_FileExist_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_GetUniqueFileName_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR bszDirectory,
    /* [in] */ BSTR bszBaseName,
    /* [in] */ BSTR bszExt,
    /* [in] */ RtDWORD dwMaxAttempts,
    /* [retval][out] */ BSTR *pbszUniqueName);


void __RPC_STUB IRfFileSupport_GetUniqueFileName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_GetFileInfo_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szFilePath,
    /* [retval][out] */ IRsFileInfo **ppFileInfo);


void __RPC_STUB IRfFileSupport_GetFileInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_DeleteFileA_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szFilePath,
    /* [in] */ BOOL bAllowUndo);


void __RPC_STUB IRfFileSupport_DeleteFileA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_RenameFile_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szFilePath,
    /* [in] */ BSTR szNewFileName);


void __RPC_STUB IRfFileSupport_RenameFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_RenameDirectory_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szFilePath,
    /* [in] */ BSTR szNewFileName);


void __RPC_STUB IRfFileSupport_RenameDirectory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_CopyFileA_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR bszSourceFilePath,
    /* [in] */ BSTR bszDestinationFilePath);


void __RPC_STUB IRfFileSupport_CopyFileA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_MoveFileA_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR bszSourceFilePath,
    /* [in] */ BSTR bszDestinationFilePath);


void __RPC_STUB IRfFileSupport_MoveFileA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_CreateDirectoryA_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szDirectoryPath);


void __RPC_STUB IRfFileSupport_CreateDirectoryA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_DeleteDirectory_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szDirectoryPath,
    /* [in] */ BOOL bAllowUndo);


void __RPC_STUB IRfFileSupport_DeleteDirectory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfFileSupport_CreateDirectoryRecursive_Proxy( 
    IRfFileSupport * This,
    /* [in] */ BSTR szDirectoryPath);


void __RPC_STUB IRfFileSupport_CreateDirectoryRecursive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfFileSupport_INTERFACE_DEFINED__ */


#ifndef __IRfObsFileIO_INTERFACE_DEFINED__
#define __IRfObsFileIO_INTERFACE_DEFINED__

/* interface IRfObsFileIO */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfObsFileIO;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3727D299-B4A0-4b01-8F28-5162FA793E8B")
    IRfObsFileIO : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveHistory( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ RtBool fClearDirty) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadNode( 
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveNode( 
            /* [in] */ BSTR bszFileName,
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadNodeListFromStream( 
            /* [in] */ IStream *pStream,
            /* [out] */ IRsObjectList **ppNodeList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveNodeListToStream( 
            /* [in] */ IStream *pStream,
            /* [in] */ IRsObjectList *pNodeList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadNodeList( 
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsObjectList **ppNodeList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveNodeList( 
            /* [in] */ BSTR bszFileName,
            /* [in] */ IRsObjectList *pNodeList) = 0;
        
        virtual /* [helpstring][local][id] */ HRESULT STDMETHODCALLTYPE LoadNodeFromResource( 
            /* [in] */ HINSTANCE hInstance,
            /* [in] */ RtUlong dwResourceId,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadSystem( 
            /* [in] */ BSTR bszFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindFileIOTypeIIDByObsoleteExt( 
            /* [in] */ BSTR bstrExt,
            /* [retval][out] */ IID *piidFileType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SpecifyPhysicsObject( 
            /* [in] */ BSTR bstrFilePath,
            /* [retval][out] */ IID *piidFileType) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfObsFileIOVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfObsFileIO * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfObsFileIO * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfObsFileIO * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveHistory )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ RtBool fClearDirty);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadNode )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveNode )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bszFileName,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadNodeListFromStream )( 
            IRfObsFileIO * This,
            /* [in] */ IStream *pStream,
            /* [out] */ IRsObjectList **ppNodeList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveNodeListToStream )( 
            IRfObsFileIO * This,
            /* [in] */ IStream *pStream,
            /* [in] */ IRsObjectList *pNodeList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadNodeList )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsObjectList **ppNodeList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveNodeList )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bszFileName,
            /* [in] */ IRsObjectList *pNodeList);
        
        /* [helpstring][local][id] */ HRESULT ( STDMETHODCALLTYPE *LoadNodeFromResource )( 
            IRfObsFileIO * This,
            /* [in] */ HINSTANCE hInstance,
            /* [in] */ RtUlong dwResourceId,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadSystem )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bszFileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindFileIOTypeIIDByObsoleteExt )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bstrExt,
            /* [retval][out] */ IID *piidFileType);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SpecifyPhysicsObject )( 
            IRfObsFileIO * This,
            /* [in] */ BSTR bstrFilePath,
            /* [retval][out] */ IID *piidFileType);
        
        END_INTERFACE
    } IRfObsFileIOVtbl;

    interface IRfObsFileIO
    {
        CONST_VTBL struct IRfObsFileIOVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfObsFileIO_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfObsFileIO_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfObsFileIO_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfObsFileIO_SaveHistory(This,bstrFileName,fClearDirty)	\
    (This)->lpVtbl -> SaveHistory(This,bstrFileName,fClearDirty)

#define IRfObsFileIO_LoadNode(This,bszFileName,ppNode)	\
    (This)->lpVtbl -> LoadNode(This,bszFileName,ppNode)

#define IRfObsFileIO_SaveNode(This,bszFileName,pNode)	\
    (This)->lpVtbl -> SaveNode(This,bszFileName,pNode)

#define IRfObsFileIO_LoadNodeListFromStream(This,pStream,ppNodeList)	\
    (This)->lpVtbl -> LoadNodeListFromStream(This,pStream,ppNodeList)

#define IRfObsFileIO_SaveNodeListToStream(This,pStream,pNodeList)	\
    (This)->lpVtbl -> SaveNodeListToStream(This,pStream,pNodeList)

#define IRfObsFileIO_LoadNodeList(This,bszFileName,ppNodeList)	\
    (This)->lpVtbl -> LoadNodeList(This,bszFileName,ppNodeList)

#define IRfObsFileIO_SaveNodeList(This,bszFileName,pNodeList)	\
    (This)->lpVtbl -> SaveNodeList(This,bszFileName,pNodeList)

#define IRfObsFileIO_LoadNodeFromResource(This,hInstance,dwResourceId,ppNode)	\
    (This)->lpVtbl -> LoadNodeFromResource(This,hInstance,dwResourceId,ppNode)

#define IRfObsFileIO_LoadSystem(This,bszFileName)	\
    (This)->lpVtbl -> LoadSystem(This,bszFileName)

#define IRfObsFileIO_FindFileIOTypeIIDByObsoleteExt(This,bstrExt,piidFileType)	\
    (This)->lpVtbl -> FindFileIOTypeIIDByObsoleteExt(This,bstrExt,piidFileType)

#define IRfObsFileIO_SpecifyPhysicsObject(This,bstrFilePath,piidFileType)	\
    (This)->lpVtbl -> SpecifyPhysicsObject(This,bstrFilePath,piidFileType)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_SaveHistory_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ RtBool fClearDirty);


void __RPC_STUB IRfObsFileIO_SaveHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_LoadNode_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bszFileName,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfObsFileIO_LoadNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_SaveNode_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bszFileName,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfObsFileIO_SaveNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_LoadNodeListFromStream_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ IStream *pStream,
    /* [out] */ IRsObjectList **ppNodeList);


void __RPC_STUB IRfObsFileIO_LoadNodeListFromStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_SaveNodeListToStream_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ IStream *pStream,
    /* [in] */ IRsObjectList *pNodeList);


void __RPC_STUB IRfObsFileIO_SaveNodeListToStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_LoadNodeList_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bszFileName,
    /* [out] */ IRsObjectList **ppNodeList);


void __RPC_STUB IRfObsFileIO_LoadNodeList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_SaveNodeList_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bszFileName,
    /* [in] */ IRsObjectList *pNodeList);


void __RPC_STUB IRfObsFileIO_SaveNodeList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_LoadNodeFromResource_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ HINSTANCE hInstance,
    /* [in] */ RtUlong dwResourceId,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfObsFileIO_LoadNodeFromResource_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_LoadSystem_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bszFileName);


void __RPC_STUB IRfObsFileIO_LoadSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_FindFileIOTypeIIDByObsoleteExt_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bstrExt,
    /* [retval][out] */ IID *piidFileType);


void __RPC_STUB IRfObsFileIO_FindFileIOTypeIIDByObsoleteExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfObsFileIO_SpecifyPhysicsObject_Proxy( 
    IRfObsFileIO * This,
    /* [in] */ BSTR bstrFilePath,
    /* [retval][out] */ IID *piidFileType);


void __RPC_STUB IRfObsFileIO_SpecifyPhysicsObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfObsFileIO_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__FileIO_1091 */
/* [local] */ 

typedef 
enum tagReFileHandleOpenFlags
    {	RSFHNDO_NONE	= 0,
	RSFHNDO_READ	= 1,
	RSFHNDO_WRITE	= 2,
	RSFHNDO_NO_CHNK_LIST	= 4,
	RSFHNDO_NO_CHNK_SUPP	= 8
    } 	ReFileHandleOpenFlags;

typedef 
enum tagReFHndGetChunFlags
    {	FHND_GET_CHUNK_FLG_NONE	= 0,
	FHND_GET_CHUNK_FLG_MAKE_COPY	= 1,
	FHND_GET_CHUNK_FLG_AS_UNKNOWN	= 2
    } 	ReFHndGetChunFlags;



extern RPC_IF_HANDLE __MIDL_itf__FileIO_1091_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__FileIO_1091_v0_0_s_ifspec;

#ifndef __IRsFileHandle_INTERFACE_DEFINED__
#define __IRsFileHandle_INTERFACE_DEFINED__

/* interface IRsFileHandle */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileHandle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("05789712-0A1C-44a9-BDA2-B62E766E7B6B")
    IRsFileHandle : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Open( 
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStreamName( 
            /* [retval][out] */ BSTR *pbstrStreamName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStream( 
            /* [retval][out] */ IStream **ppStm) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFlags( 
            /* [retval][out] */ RtDWORD *pdwFlags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChunksList( 
            /* [in] */ RtBOOL bCheckConsistency,
            /* [retval][out] */ IRdChunksList **ppChunksList) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ScanChunksList( 
            /* [retval][out] */ IRdChunksList **ppChunksList) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChunk( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ IRsFileChunk **ppRsFileChunk) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindChunk( 
            /* [in] */ IID iid,
            /* [in] */ RtDWORD dwFromIndex,
            /* [retval][out] */ RtDWORD *pdwIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddChunk( 
            /* [in] */ IRsFileChunk *pRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ReplaceChunk( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IRsFileChunk *pRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InsertChunk( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IRsFileChunk *pRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteChunk( 
            /* [in] */ RtDWORD dwIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FlushToStream( 
            /* [in] */ RtBOOL bIgnoreBadChunks) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Close( 
            /* [in] */ RtBOOL bForce) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileHandleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileHandle * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileHandle * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileHandle * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Open )( 
            IRsFileHandle * This,
            /* [in] */ RtDWORD dwFlags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStreamName )( 
            IRsFileHandle * This,
            /* [retval][out] */ BSTR *pbstrStreamName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStream )( 
            IRsFileHandle * This,
            /* [retval][out] */ IStream **ppStm);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFlags )( 
            IRsFileHandle * This,
            /* [retval][out] */ RtDWORD *pdwFlags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChunksList )( 
            IRsFileHandle * This,
            /* [in] */ RtBOOL bCheckConsistency,
            /* [retval][out] */ IRdChunksList **ppChunksList);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ScanChunksList )( 
            IRsFileHandle * This,
            /* [retval][out] */ IRdChunksList **ppChunksList);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChunk )( 
            IRsFileHandle * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ IRsFileChunk **ppRsFileChunk);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindChunk )( 
            IRsFileHandle * This,
            /* [in] */ IID iid,
            /* [in] */ RtDWORD dwFromIndex,
            /* [retval][out] */ RtDWORD *pdwIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddChunk )( 
            IRsFileHandle * This,
            /* [in] */ IRsFileChunk *pRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ReplaceChunk )( 
            IRsFileHandle * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IRsFileChunk *pRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InsertChunk )( 
            IRsFileHandle * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IRsFileChunk *pRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteChunk )( 
            IRsFileHandle * This,
            /* [in] */ RtDWORD dwIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FlushToStream )( 
            IRsFileHandle * This,
            /* [in] */ RtBOOL bIgnoreBadChunks);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Close )( 
            IRsFileHandle * This,
            /* [in] */ RtBOOL bForce);
        
        END_INTERFACE
    } IRsFileHandleVtbl;

    interface IRsFileHandle
    {
        CONST_VTBL struct IRsFileHandleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileHandle_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileHandle_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileHandle_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileHandle_Open(This,dwFlags)	\
    (This)->lpVtbl -> Open(This,dwFlags)

#define IRsFileHandle_GetStreamName(This,pbstrStreamName)	\
    (This)->lpVtbl -> GetStreamName(This,pbstrStreamName)

#define IRsFileHandle_GetStream(This,ppStm)	\
    (This)->lpVtbl -> GetStream(This,ppStm)

#define IRsFileHandle_GetFlags(This,pdwFlags)	\
    (This)->lpVtbl -> GetFlags(This,pdwFlags)

#define IRsFileHandle_GetChunksList(This,bCheckConsistency,ppChunksList)	\
    (This)->lpVtbl -> GetChunksList(This,bCheckConsistency,ppChunksList)

#define IRsFileHandle_ScanChunksList(This,ppChunksList)	\
    (This)->lpVtbl -> ScanChunksList(This,ppChunksList)

#define IRsFileHandle_GetChunk(This,dwIndex,dwFlags,ppRsFileChunk)	\
    (This)->lpVtbl -> GetChunk(This,dwIndex,dwFlags,ppRsFileChunk)

#define IRsFileHandle_FindChunk(This,iid,dwFromIndex,pdwIndex)	\
    (This)->lpVtbl -> FindChunk(This,iid,dwFromIndex,pdwIndex)

#define IRsFileHandle_AddChunk(This,pRsFileChunk,bMakeCopy)	\
    (This)->lpVtbl -> AddChunk(This,pRsFileChunk,bMakeCopy)

#define IRsFileHandle_ReplaceChunk(This,dwIndex,pRsFileChunk,bMakeCopy)	\
    (This)->lpVtbl -> ReplaceChunk(This,dwIndex,pRsFileChunk,bMakeCopy)

#define IRsFileHandle_InsertChunk(This,dwIndex,pRsFileChunk,bMakeCopy)	\
    (This)->lpVtbl -> InsertChunk(This,dwIndex,pRsFileChunk,bMakeCopy)

#define IRsFileHandle_DeleteChunk(This,dwIndex)	\
    (This)->lpVtbl -> DeleteChunk(This,dwIndex)

#define IRsFileHandle_FlushToStream(This,bIgnoreBadChunks)	\
    (This)->lpVtbl -> FlushToStream(This,bIgnoreBadChunks)

#define IRsFileHandle_Close(This,bForce)	\
    (This)->lpVtbl -> Close(This,bForce)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_Open_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRsFileHandle_Open_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_GetStreamName_Proxy( 
    IRsFileHandle * This,
    /* [retval][out] */ BSTR *pbstrStreamName);


void __RPC_STUB IRsFileHandle_GetStreamName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_GetStream_Proxy( 
    IRsFileHandle * This,
    /* [retval][out] */ IStream **ppStm);


void __RPC_STUB IRsFileHandle_GetStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_GetFlags_Proxy( 
    IRsFileHandle * This,
    /* [retval][out] */ RtDWORD *pdwFlags);


void __RPC_STUB IRsFileHandle_GetFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_GetChunksList_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtBOOL bCheckConsistency,
    /* [retval][out] */ IRdChunksList **ppChunksList);


void __RPC_STUB IRsFileHandle_GetChunksList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_ScanChunksList_Proxy( 
    IRsFileHandle * This,
    /* [retval][out] */ IRdChunksList **ppChunksList);


void __RPC_STUB IRsFileHandle_ScanChunksList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_GetChunk_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ IRsFileChunk **ppRsFileChunk);


void __RPC_STUB IRsFileHandle_GetChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_FindChunk_Proxy( 
    IRsFileHandle * This,
    /* [in] */ IID iid,
    /* [in] */ RtDWORD dwFromIndex,
    /* [retval][out] */ RtDWORD *pdwIndex);


void __RPC_STUB IRsFileHandle_FindChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_AddChunk_Proxy( 
    IRsFileHandle * This,
    /* [in] */ IRsFileChunk *pRsFileChunk,
    /* [in] */ RtBOOL bMakeCopy);


void __RPC_STUB IRsFileHandle_AddChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_ReplaceChunk_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ IRsFileChunk *pRsFileChunk,
    /* [in] */ RtBOOL bMakeCopy);


void __RPC_STUB IRsFileHandle_ReplaceChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_InsertChunk_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ IRsFileChunk *pRsFileChunk,
    /* [in] */ RtBOOL bMakeCopy);


void __RPC_STUB IRsFileHandle_InsertChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_DeleteChunk_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtDWORD dwIndex);


void __RPC_STUB IRsFileHandle_DeleteChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_FlushToStream_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtBOOL bIgnoreBadChunks);


void __RPC_STUB IRsFileHandle_FlushToStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileHandle_Close_Proxy( 
    IRsFileHandle * This,
    /* [in] */ RtBOOL bForce);


void __RPC_STUB IRsFileHandle_Close_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileHandle_INTERFACE_DEFINED__ */


#ifndef __IRsFileHandleDisp_INTERFACE_DEFINED__
#define __IRsFileHandleDisp_INTERFACE_DEFINED__

/* interface IRsFileHandleDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRsFileHandleDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E6001D33-4369-47ac-BFCC-AD24785FB154")
    IRsFileHandleDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( 
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetStreamName( 
            /* [retval][out] */ BSTR *pbstrStreamName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFlags( 
            /* [retval][out] */ RtDWORD *pdwFlags) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunksList( 
            /* [in] */ RtBOOL bCheckConsistency,
            /* [retval][out] */ VARIANT *pvChunksList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ScanChunksList( 
            /* [retval][out] */ VARIANT *pvChunksList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetChunk( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ VARIANT *pvRsFileChunk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindChunk( 
            /* [in] */ BSTR bszIID,
            /* [in] */ RtDWORD dwFromIndex,
            /* [retval][out] */ RtDWORD *pdwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddChunk( 
            /* [in] */ VARIANT vRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReplaceChunk( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ VARIANT vRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertChunk( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ VARIANT vRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteChunk( 
            /* [in] */ RtDWORD dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Close( 
            /* [in] */ RtBOOL bForce) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileHandleDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileHandleDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileHandleDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileHandleDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRsFileHandleDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRsFileHandleDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRsFileHandleDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRsFileHandleDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( 
            IRsFileHandleDisp * This,
            /* [in] */ RtDWORD dwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetStreamName )( 
            IRsFileHandleDisp * This,
            /* [retval][out] */ BSTR *pbstrStreamName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFlags )( 
            IRsFileHandleDisp * This,
            /* [retval][out] */ RtDWORD *pdwFlags);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunksList )( 
            IRsFileHandleDisp * This,
            /* [in] */ RtBOOL bCheckConsistency,
            /* [retval][out] */ VARIANT *pvChunksList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScanChunksList )( 
            IRsFileHandleDisp * This,
            /* [retval][out] */ VARIANT *pvChunksList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetChunk )( 
            IRsFileHandleDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ VARIANT *pvRsFileChunk);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindChunk )( 
            IRsFileHandleDisp * This,
            /* [in] */ BSTR bszIID,
            /* [in] */ RtDWORD dwFromIndex,
            /* [retval][out] */ RtDWORD *pdwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddChunk )( 
            IRsFileHandleDisp * This,
            /* [in] */ VARIANT vRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ReplaceChunk )( 
            IRsFileHandleDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ VARIANT vRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertChunk )( 
            IRsFileHandleDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ VARIANT vRsFileChunk,
            /* [in] */ RtBOOL bMakeCopy);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteChunk )( 
            IRsFileHandleDisp * This,
            /* [in] */ RtDWORD dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Close )( 
            IRsFileHandleDisp * This,
            /* [in] */ RtBOOL bForce);
        
        END_INTERFACE
    } IRsFileHandleDispVtbl;

    interface IRsFileHandleDisp
    {
        CONST_VTBL struct IRsFileHandleDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileHandleDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileHandleDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileHandleDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileHandleDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRsFileHandleDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRsFileHandleDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRsFileHandleDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRsFileHandleDisp_Open(This,dwFlags)	\
    (This)->lpVtbl -> Open(This,dwFlags)

#define IRsFileHandleDisp_GetStreamName(This,pbstrStreamName)	\
    (This)->lpVtbl -> GetStreamName(This,pbstrStreamName)

#define IRsFileHandleDisp_GetFlags(This,pdwFlags)	\
    (This)->lpVtbl -> GetFlags(This,pdwFlags)

#define IRsFileHandleDisp_GetChunksList(This,bCheckConsistency,pvChunksList)	\
    (This)->lpVtbl -> GetChunksList(This,bCheckConsistency,pvChunksList)

#define IRsFileHandleDisp_ScanChunksList(This,pvChunksList)	\
    (This)->lpVtbl -> ScanChunksList(This,pvChunksList)

#define IRsFileHandleDisp_GetChunk(This,dwIndex,dwFlags,pvRsFileChunk)	\
    (This)->lpVtbl -> GetChunk(This,dwIndex,dwFlags,pvRsFileChunk)

#define IRsFileHandleDisp_FindChunk(This,bszIID,dwFromIndex,pdwIndex)	\
    (This)->lpVtbl -> FindChunk(This,bszIID,dwFromIndex,pdwIndex)

#define IRsFileHandleDisp_AddChunk(This,vRsFileChunk,bMakeCopy)	\
    (This)->lpVtbl -> AddChunk(This,vRsFileChunk,bMakeCopy)

#define IRsFileHandleDisp_ReplaceChunk(This,dwIndex,vRsFileChunk,bMakeCopy)	\
    (This)->lpVtbl -> ReplaceChunk(This,dwIndex,vRsFileChunk,bMakeCopy)

#define IRsFileHandleDisp_InsertChunk(This,dwIndex,vRsFileChunk,bMakeCopy)	\
    (This)->lpVtbl -> InsertChunk(This,dwIndex,vRsFileChunk,bMakeCopy)

#define IRsFileHandleDisp_DeleteChunk(This,dwIndex)	\
    (This)->lpVtbl -> DeleteChunk(This,dwIndex)

#define IRsFileHandleDisp_Close(This,bForce)	\
    (This)->lpVtbl -> Close(This,bForce)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_Open_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRsFileHandleDisp_Open_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_GetStreamName_Proxy( 
    IRsFileHandleDisp * This,
    /* [retval][out] */ BSTR *pbstrStreamName);


void __RPC_STUB IRsFileHandleDisp_GetStreamName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_GetFlags_Proxy( 
    IRsFileHandleDisp * This,
    /* [retval][out] */ RtDWORD *pdwFlags);


void __RPC_STUB IRsFileHandleDisp_GetFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_GetChunksList_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ RtBOOL bCheckConsistency,
    /* [retval][out] */ VARIANT *pvChunksList);


void __RPC_STUB IRsFileHandleDisp_GetChunksList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_ScanChunksList_Proxy( 
    IRsFileHandleDisp * This,
    /* [retval][out] */ VARIANT *pvChunksList);


void __RPC_STUB IRsFileHandleDisp_ScanChunksList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_GetChunk_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ VARIANT *pvRsFileChunk);


void __RPC_STUB IRsFileHandleDisp_GetChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_FindChunk_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ BSTR bszIID,
    /* [in] */ RtDWORD dwFromIndex,
    /* [retval][out] */ RtDWORD *pdwIndex);


void __RPC_STUB IRsFileHandleDisp_FindChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_AddChunk_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ VARIANT vRsFileChunk,
    /* [in] */ RtBOOL bMakeCopy);


void __RPC_STUB IRsFileHandleDisp_AddChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_ReplaceChunk_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ VARIANT vRsFileChunk,
    /* [in] */ RtBOOL bMakeCopy);


void __RPC_STUB IRsFileHandleDisp_ReplaceChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_InsertChunk_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ VARIANT vRsFileChunk,
    /* [in] */ RtBOOL bMakeCopy);


void __RPC_STUB IRsFileHandleDisp_InsertChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_DeleteChunk_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ RtDWORD dwIndex);


void __RPC_STUB IRsFileHandleDisp_DeleteChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsFileHandleDisp_Close_Proxy( 
    IRsFileHandleDisp * This,
    /* [in] */ RtBOOL bForce);


void __RPC_STUB IRsFileHandleDisp_Close_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileHandleDisp_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__FileIO_1093 */
/* [local] */ 

typedef 
enum tagRePckFileIOCaps
    {	RS_PCK_FILEIO_CAP_NONE	= 0,
	RS_PCK_FILEIO_CAP_SAVE	= 1,
	RS_PCK_FILEIO_CAP_SAVE_ASYNC	= 2,
	RS_PCK_FILEIO_CAP_LOAD	= 4,
	RS_PCK_FILEIO_CAP_LOAD_ASYNC	= 8,
	RS_PCK_FILEIO_CAP_APPLY	= 16
    } 	RePckFileIOCaps;

typedef 
enum tagRePckFileTypeIOCaps
    {	RS_PCK_FILETYPEIO_CAP_NONE	= 0,
	RS_PCK_FILETYPEIO_CAP_LOAD	= 1,
	RS_PCK_FILETYPEIO_CAP_SAVE	= 2,
	RS_PCK_FILETYPEIO_CAP_EXTERNAL	= 4
    } 	RePckFileTypeIOCaps;

typedef 
enum tagRePckFileIOOperation
    {	RS_PCK_FILEIO_OPERATION_UNKNOWN	= 0,
	RS_PCK_FILEIO_OPERATION_INSERT	= 2,
	RS_PCK_FILEIO_OPERATION_INSERT_AS	= 3,
	RS_PCK_FILEIO_OPERATION_SAVE	= 4,
	RS_PCK_FILEIO_OPERATION_LOAD	= 5,
	RS_PCK_FILEIO_OPERATION_APPLY	= 6
    } 	RePckFileIOOperation;

typedef 
enum tagRePckFileIOGenLoadFlags
    {	FIO_GEN_LOAD_SYNC	= 1,
	FIO_GEN_LOAD_ASYNC	= 2,
	FIO_GEN_LOAD_PREFER_ASYNC_LOAD	= 4,
	FIO_GEN_LOAD_FORCE_APPLY	= 8
    } 	RePckFileIOGenLoadFlags;

typedef 
enum tagRePckFileIOGenSaveFlags
    {	FIO_GEN_SAVE_SYNC	= 1,
	FIO_GEN_SAVE_ASYNC	= 2,
	FIO_GEN_SAVE_PREFER_ASYNC_SAVE	= 4
    } 	RePckFileIOGenSaveFlags;



extern RPC_IF_HANDLE __MIDL_itf__FileIO_1093_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__FileIO_1093_v0_0_s_ifspec;

#ifndef __IRsFileIOAsyncNotify_INTERFACE_DEFINED__
#define __IRsFileIOAsyncNotify_INTERFACE_DEFINED__

/* interface IRsFileIOAsyncNotify */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileIOAsyncNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9FF0556F-E874-47b2-85A1-14114D8C0C8A")
    IRsFileIOAsyncNotify : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AsyncOperationResult( 
            /* [in] */ HRESULT hr,
            /* [in] */ IRsObject *pObject) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileIOAsyncNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileIOAsyncNotify * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileIOAsyncNotify * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileIOAsyncNotify * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AsyncOperationResult )( 
            IRsFileIOAsyncNotify * This,
            /* [in] */ HRESULT hr,
            /* [in] */ IRsObject *pObject);
        
        END_INTERFACE
    } IRsFileIOAsyncNotifyVtbl;

    interface IRsFileIOAsyncNotify
    {
        CONST_VTBL struct IRsFileIOAsyncNotifyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileIOAsyncNotify_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileIOAsyncNotify_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileIOAsyncNotify_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileIOAsyncNotify_AsyncOperationResult(This,hr,pObject)	\
    (This)->lpVtbl -> AsyncOperationResult(This,hr,pObject)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOAsyncNotify_AsyncOperationResult_Proxy( 
    IRsFileIOAsyncNotify * This,
    /* [in] */ HRESULT hr,
    /* [in] */ IRsObject *pObject);


void __RPC_STUB IRsFileIOAsyncNotify_AsyncOperationResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileIOAsyncNotify_INTERFACE_DEFINED__ */


#ifndef __IRsFileIOType_INTERFACE_DEFINED__
#define __IRsFileIOType_INTERFACE_DEFINED__

/* interface IRsFileIOType */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileIOType;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7130245C-05A3-4465-A20B-DE22FF424994")
    IRsFileIOType : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileTypeIID( 
            /* [retval][out] */ IID *piidType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileTypeExt( 
            /* [retval][out] */ BSTR *pbstrExt) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAlternativeFileTypeExt( 
            /* [retval][out] */ BSTR *pbstrExt) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileTypeName( 
            /* [retval][out] */ BSTR *pbstrName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultThumbnail( 
            /* [retval][out] */ IRdBitmap **ppThumbnail) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileTypeCaps( 
            /* [retval][out] */ RtDWORD *pdwCaps) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCaps( 
            /* [in] */ IRsObject *pObject,
            /* [in] */ RePckFileIOOperation eOperation,
            /* [retval][out] */ RtDWORD *pdwCaps) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Save( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pObject) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SaveAsync( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pObject,
            /* [in] */ IRsFileIOAsyncNotify *pNotify) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Load( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pTarget,
            /* [retval][out] */ IRsObject **ppObject) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadAsync( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pTarget,
            /* [in] */ IRsFileIOAsyncNotify *pNotify) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Apply( 
            /* [in] */ IRsObject *pObject,
            /* [in] */ IRsObject *pTarget,
            /* [retval][out] */ IRsObject **ppObject) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNameForObject( 
            /* [in] */ IRsObject *pObject,
            /* [retval][out] */ BSTR *pbstrName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetThumbnailForObject( 
            /* [in] */ IRsObject *pObject,
            /* [retval][out] */ IRdBitmap **ppThumbnail) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetThumbnailFromStream( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [retval][out] */ IRdBitmap **ppThumbnail) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileIOTypeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileIOType * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileIOType * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileIOType * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileTypeIID )( 
            IRsFileIOType * This,
            /* [retval][out] */ IID *piidType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileTypeExt )( 
            IRsFileIOType * This,
            /* [retval][out] */ BSTR *pbstrExt);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAlternativeFileTypeExt )( 
            IRsFileIOType * This,
            /* [retval][out] */ BSTR *pbstrExt);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileTypeName )( 
            IRsFileIOType * This,
            /* [retval][out] */ BSTR *pbstrName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultThumbnail )( 
            IRsFileIOType * This,
            /* [retval][out] */ IRdBitmap **ppThumbnail);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileTypeCaps )( 
            IRsFileIOType * This,
            /* [retval][out] */ RtDWORD *pdwCaps);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCaps )( 
            IRsFileIOType * This,
            /* [in] */ IRsObject *pObject,
            /* [in] */ RePckFileIOOperation eOperation,
            /* [retval][out] */ RtDWORD *pdwCaps);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
            IRsFileIOType * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pObject);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SaveAsync )( 
            IRsFileIOType * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pObject,
            /* [in] */ IRsFileIOAsyncNotify *pNotify);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Load )( 
            IRsFileIOType * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pTarget,
            /* [retval][out] */ IRsObject **ppObject);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadAsync )( 
            IRsFileIOType * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pTarget,
            /* [in] */ IRsFileIOAsyncNotify *pNotify);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Apply )( 
            IRsFileIOType * This,
            /* [in] */ IRsObject *pObject,
            /* [in] */ IRsObject *pTarget,
            /* [retval][out] */ IRsObject **ppObject);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNameForObject )( 
            IRsFileIOType * This,
            /* [in] */ IRsObject *pObject,
            /* [retval][out] */ BSTR *pbstrName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetThumbnailForObject )( 
            IRsFileIOType * This,
            /* [in] */ IRsObject *pObject,
            /* [retval][out] */ IRdBitmap **ppThumbnail);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetThumbnailFromStream )( 
            IRsFileIOType * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [retval][out] */ IRdBitmap **ppThumbnail);
        
        END_INTERFACE
    } IRsFileIOTypeVtbl;

    interface IRsFileIOType
    {
        CONST_VTBL struct IRsFileIOTypeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileIOType_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileIOType_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileIOType_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileIOType_GetFileTypeIID(This,piidType)	\
    (This)->lpVtbl -> GetFileTypeIID(This,piidType)

#define IRsFileIOType_GetFileTypeExt(This,pbstrExt)	\
    (This)->lpVtbl -> GetFileTypeExt(This,pbstrExt)

#define IRsFileIOType_GetAlternativeFileTypeExt(This,pbstrExt)	\
    (This)->lpVtbl -> GetAlternativeFileTypeExt(This,pbstrExt)

#define IRsFileIOType_GetFileTypeName(This,pbstrName)	\
    (This)->lpVtbl -> GetFileTypeName(This,pbstrName)

#define IRsFileIOType_GetDefaultThumbnail(This,ppThumbnail)	\
    (This)->lpVtbl -> GetDefaultThumbnail(This,ppThumbnail)

#define IRsFileIOType_GetFileTypeCaps(This,pdwCaps)	\
    (This)->lpVtbl -> GetFileTypeCaps(This,pdwCaps)

#define IRsFileIOType_GetCaps(This,pObject,eOperation,pdwCaps)	\
    (This)->lpVtbl -> GetCaps(This,pObject,eOperation,pdwCaps)

#define IRsFileIOType_Save(This,pRsFileHandle,pObject)	\
    (This)->lpVtbl -> Save(This,pRsFileHandle,pObject)

#define IRsFileIOType_SaveAsync(This,pRsFileHandle,pObject,pNotify)	\
    (This)->lpVtbl -> SaveAsync(This,pRsFileHandle,pObject,pNotify)

#define IRsFileIOType_Load(This,pRsFileHandle,pTarget,ppObject)	\
    (This)->lpVtbl -> Load(This,pRsFileHandle,pTarget,ppObject)

#define IRsFileIOType_LoadAsync(This,pRsFileHandle,pTarget,pNotify)	\
    (This)->lpVtbl -> LoadAsync(This,pRsFileHandle,pTarget,pNotify)

#define IRsFileIOType_Apply(This,pObject,pTarget,ppObject)	\
    (This)->lpVtbl -> Apply(This,pObject,pTarget,ppObject)

#define IRsFileIOType_GetNameForObject(This,pObject,pbstrName)	\
    (This)->lpVtbl -> GetNameForObject(This,pObject,pbstrName)

#define IRsFileIOType_GetThumbnailForObject(This,pObject,ppThumbnail)	\
    (This)->lpVtbl -> GetThumbnailForObject(This,pObject,ppThumbnail)

#define IRsFileIOType_GetThumbnailFromStream(This,pRsFileHandle,ppThumbnail)	\
    (This)->lpVtbl -> GetThumbnailFromStream(This,pRsFileHandle,ppThumbnail)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetFileTypeIID_Proxy( 
    IRsFileIOType * This,
    /* [retval][out] */ IID *piidType);


void __RPC_STUB IRsFileIOType_GetFileTypeIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetFileTypeExt_Proxy( 
    IRsFileIOType * This,
    /* [retval][out] */ BSTR *pbstrExt);


void __RPC_STUB IRsFileIOType_GetFileTypeExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetAlternativeFileTypeExt_Proxy( 
    IRsFileIOType * This,
    /* [retval][out] */ BSTR *pbstrExt);


void __RPC_STUB IRsFileIOType_GetAlternativeFileTypeExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetFileTypeName_Proxy( 
    IRsFileIOType * This,
    /* [retval][out] */ BSTR *pbstrName);


void __RPC_STUB IRsFileIOType_GetFileTypeName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetDefaultThumbnail_Proxy( 
    IRsFileIOType * This,
    /* [retval][out] */ IRdBitmap **ppThumbnail);


void __RPC_STUB IRsFileIOType_GetDefaultThumbnail_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetFileTypeCaps_Proxy( 
    IRsFileIOType * This,
    /* [retval][out] */ RtDWORD *pdwCaps);


void __RPC_STUB IRsFileIOType_GetFileTypeCaps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetCaps_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsObject *pObject,
    /* [in] */ RePckFileIOOperation eOperation,
    /* [retval][out] */ RtDWORD *pdwCaps);


void __RPC_STUB IRsFileIOType_GetCaps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_Save_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsObject *pObject);


void __RPC_STUB IRsFileIOType_Save_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_SaveAsync_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsObject *pObject,
    /* [in] */ IRsFileIOAsyncNotify *pNotify);


void __RPC_STUB IRsFileIOType_SaveAsync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_Load_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsObject *pTarget,
    /* [retval][out] */ IRsObject **ppObject);


void __RPC_STUB IRsFileIOType_Load_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_LoadAsync_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsObject *pTarget,
    /* [in] */ IRsFileIOAsyncNotify *pNotify);


void __RPC_STUB IRsFileIOType_LoadAsync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_Apply_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsObject *pObject,
    /* [in] */ IRsObject *pTarget,
    /* [retval][out] */ IRsObject **ppObject);


void __RPC_STUB IRsFileIOType_Apply_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetNameForObject_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsObject *pObject,
    /* [retval][out] */ BSTR *pbstrName);


void __RPC_STUB IRsFileIOType_GetNameForObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetThumbnailForObject_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsObject *pObject,
    /* [retval][out] */ IRdBitmap **ppThumbnail);


void __RPC_STUB IRsFileIOType_GetThumbnailForObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOType_GetThumbnailFromStream_Proxy( 
    IRsFileIOType * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [retval][out] */ IRdBitmap **ppThumbnail);


void __RPC_STUB IRsFileIOType_GetThumbnailFromStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileIOType_INTERFACE_DEFINED__ */


#ifndef __IRsFileIORepository_INTERFACE_DEFINED__
#define __IRsFileIORepository_INTERFACE_DEFINED__

/* interface IRsFileIORepository */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileIORepository;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("91F07631-FC42-4138-B494-9D1FE8F737E9")
    IRsFileIORepository : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Register( 
            /* [in] */ IRsFileIOType *pRsFileIOType) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileIORepositoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileIORepository * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileIORepository * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileIORepository * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Register )( 
            IRsFileIORepository * This,
            /* [in] */ IRsFileIOType *pRsFileIOType);
        
        END_INTERFACE
    } IRsFileIORepositoryVtbl;

    interface IRsFileIORepository
    {
        CONST_VTBL struct IRsFileIORepositoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileIORepository_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileIORepository_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileIORepository_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileIORepository_Register(This,pRsFileIOType)	\
    (This)->lpVtbl -> Register(This,pRsFileIOType)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIORepository_Register_Proxy( 
    IRsFileIORepository * This,
    /* [in] */ IRsFileIOType *pRsFileIOType);


void __RPC_STUB IRsFileIORepository_Register_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileIORepository_INTERFACE_DEFINED__ */


#ifndef __IRsEnumFileIOTypes_INTERFACE_DEFINED__
#define __IRsEnumFileIOTypes_INTERFACE_DEFINED__

/* interface IRsEnumFileIOTypes */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsEnumFileIOTypes;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6207E4B4-66DE-491f-A233-4E8F7C2F471F")
    IRsEnumFileIOTypes : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG cShapes,
            /* [out] */ IRsFileIOType **pFileIOType,
            /* [out] */ ULONG *pcFetched) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG cShapes) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IRsEnumFileIOTypes **ppEnum) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsEnumFileIOTypesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsEnumFileIOTypes * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsEnumFileIOTypes * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsEnumFileIOTypes * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
            IRsEnumFileIOTypes * This,
            /* [in] */ ULONG cShapes,
            /* [out] */ IRsFileIOType **pFileIOType,
            /* [out] */ ULONG *pcFetched);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )( 
            IRsEnumFileIOTypes * This,
            /* [in] */ ULONG cShapes);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRsEnumFileIOTypes * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clone )( 
            IRsEnumFileIOTypes * This,
            /* [out] */ IRsEnumFileIOTypes **ppEnum);
        
        END_INTERFACE
    } IRsEnumFileIOTypesVtbl;

    interface IRsEnumFileIOTypes
    {
        CONST_VTBL struct IRsEnumFileIOTypesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsEnumFileIOTypes_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsEnumFileIOTypes_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsEnumFileIOTypes_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsEnumFileIOTypes_Next(This,cShapes,pFileIOType,pcFetched)	\
    (This)->lpVtbl -> Next(This,cShapes,pFileIOType,pcFetched)

#define IRsEnumFileIOTypes_Skip(This,cShapes)	\
    (This)->lpVtbl -> Skip(This,cShapes)

#define IRsEnumFileIOTypes_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IRsEnumFileIOTypes_Clone(This,ppEnum)	\
    (This)->lpVtbl -> Clone(This,ppEnum)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumFileIOTypes_Next_Proxy( 
    IRsEnumFileIOTypes * This,
    /* [in] */ ULONG cShapes,
    /* [out] */ IRsFileIOType **pFileIOType,
    /* [out] */ ULONG *pcFetched);


void __RPC_STUB IRsEnumFileIOTypes_Next_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumFileIOTypes_Skip_Proxy( 
    IRsEnumFileIOTypes * This,
    /* [in] */ ULONG cShapes);


void __RPC_STUB IRsEnumFileIOTypes_Skip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumFileIOTypes_Reset_Proxy( 
    IRsEnumFileIOTypes * This);


void __RPC_STUB IRsEnumFileIOTypes_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumFileIOTypes_Clone_Proxy( 
    IRsEnumFileIOTypes * This,
    /* [out] */ IRsEnumFileIOTypes **ppEnum);


void __RPC_STUB IRsEnumFileIOTypes_Clone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsEnumFileIOTypes_INTERFACE_DEFINED__ */


#ifndef __IRsFileIOGeneric_INTERFACE_DEFINED__
#define __IRsFileIOGeneric_INTERFACE_DEFINED__

/* interface IRsFileIOGeneric */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileIOGeneric;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3268A1B9-4146-442b-893F-D7A2F859A541")
    IRsFileIOGeneric : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileTypeIIDFromExt( 
            /* [in] */ BSTR bstrExt,
            /* [retval][out] */ IID *piidType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileTypeExtFromIID( 
            /* [in] */ IID iidType,
            /* [retval][out] */ BSTR *pbstrExt) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindFileIOTypeByIID( 
            /* [in] */ IID iidType,
            /* [retval][out] */ IRsFileIOType **ppRsFileIOType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindFileIOTypeByExt( 
            /* [in] */ BSTR bstrExt,
            /* [retval][out] */ IRsFileIOType **ppRsFileIOType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindFileIOTypeByFile( 
            /* [in] */ IRsFileHandle *pFileHandle,
            /* [retval][out] */ IRsFileIOType **ppRsFileIOType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumFileIOTypes( 
            /* [retval][out] */ IRsEnumFileIOTypes **ppEnum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetGenericFileTypeTarget( 
            /* [retval][out] */ IRsObject **ppTargetObject) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GenericLoad( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ IRsObject *pTarget,
            /* [in] */ DWORD dwFlags,
            /* [in] */ IRsFileIOAsyncNotify *pNotify,
            /* [retval][out] */ IRsObject **ppObject) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GenericSave( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ IRsObject *pTarget,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ DWORD dwFlags,
            /* [in] */ IRsFileIOAsyncNotify *pNotify) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsFileIOGenericVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileIOGeneric * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileIOGeneric * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileIOGeneric * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileTypeIIDFromExt )( 
            IRsFileIOGeneric * This,
            /* [in] */ BSTR bstrExt,
            /* [retval][out] */ IID *piidType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileTypeExtFromIID )( 
            IRsFileIOGeneric * This,
            /* [in] */ IID iidType,
            /* [retval][out] */ BSTR *pbstrExt);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindFileIOTypeByIID )( 
            IRsFileIOGeneric * This,
            /* [in] */ IID iidType,
            /* [retval][out] */ IRsFileIOType **ppRsFileIOType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindFileIOTypeByExt )( 
            IRsFileIOGeneric * This,
            /* [in] */ BSTR bstrExt,
            /* [retval][out] */ IRsFileIOType **ppRsFileIOType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindFileIOTypeByFile )( 
            IRsFileIOGeneric * This,
            /* [in] */ IRsFileHandle *pFileHandle,
            /* [retval][out] */ IRsFileIOType **ppRsFileIOType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumFileIOTypes )( 
            IRsFileIOGeneric * This,
            /* [retval][out] */ IRsEnumFileIOTypes **ppEnum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetGenericFileTypeTarget )( 
            IRsFileIOGeneric * This,
            /* [retval][out] */ IRsObject **ppTargetObject);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GenericLoad )( 
            IRsFileIOGeneric * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ IRsObject *pTarget,
            /* [in] */ DWORD dwFlags,
            /* [in] */ IRsFileIOAsyncNotify *pNotify,
            /* [retval][out] */ IRsObject **ppObject);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GenericSave )( 
            IRsFileIOGeneric * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ IRsObject *pTarget,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ DWORD dwFlags,
            /* [in] */ IRsFileIOAsyncNotify *pNotify);
        
        END_INTERFACE
    } IRsFileIOGenericVtbl;

    interface IRsFileIOGeneric
    {
        CONST_VTBL struct IRsFileIOGenericVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileIOGeneric_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileIOGeneric_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileIOGeneric_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsFileIOGeneric_GetFileTypeIIDFromExt(This,bstrExt,piidType)	\
    (This)->lpVtbl -> GetFileTypeIIDFromExt(This,bstrExt,piidType)

#define IRsFileIOGeneric_GetFileTypeExtFromIID(This,iidType,pbstrExt)	\
    (This)->lpVtbl -> GetFileTypeExtFromIID(This,iidType,pbstrExt)

#define IRsFileIOGeneric_FindFileIOTypeByIID(This,iidType,ppRsFileIOType)	\
    (This)->lpVtbl -> FindFileIOTypeByIID(This,iidType,ppRsFileIOType)

#define IRsFileIOGeneric_FindFileIOTypeByExt(This,bstrExt,ppRsFileIOType)	\
    (This)->lpVtbl -> FindFileIOTypeByExt(This,bstrExt,ppRsFileIOType)

#define IRsFileIOGeneric_FindFileIOTypeByFile(This,pFileHandle,ppRsFileIOType)	\
    (This)->lpVtbl -> FindFileIOTypeByFile(This,pFileHandle,ppRsFileIOType)

#define IRsFileIOGeneric_EnumFileIOTypes(This,ppEnum)	\
    (This)->lpVtbl -> EnumFileIOTypes(This,ppEnum)

#define IRsFileIOGeneric_GetGenericFileTypeTarget(This,ppTargetObject)	\
    (This)->lpVtbl -> GetGenericFileTypeTarget(This,ppTargetObject)

#define IRsFileIOGeneric_GenericLoad(This,bstrFileName,pTarget,dwFlags,pNotify,ppObject)	\
    (This)->lpVtbl -> GenericLoad(This,bstrFileName,pTarget,dwFlags,pNotify,ppObject)

#define IRsFileIOGeneric_GenericSave(This,bstrFileName,pTarget,bstrDescr,pThumbnail,dwFlags,pNotify)	\
    (This)->lpVtbl -> GenericSave(This,bstrFileName,pTarget,bstrDescr,pThumbnail,dwFlags,pNotify)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_GetFileTypeIIDFromExt_Proxy( 
    IRsFileIOGeneric * This,
    /* [in] */ BSTR bstrExt,
    /* [retval][out] */ IID *piidType);


void __RPC_STUB IRsFileIOGeneric_GetFileTypeIIDFromExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_GetFileTypeExtFromIID_Proxy( 
    IRsFileIOGeneric * This,
    /* [in] */ IID iidType,
    /* [retval][out] */ BSTR *pbstrExt);


void __RPC_STUB IRsFileIOGeneric_GetFileTypeExtFromIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_FindFileIOTypeByIID_Proxy( 
    IRsFileIOGeneric * This,
    /* [in] */ IID iidType,
    /* [retval][out] */ IRsFileIOType **ppRsFileIOType);


void __RPC_STUB IRsFileIOGeneric_FindFileIOTypeByIID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_FindFileIOTypeByExt_Proxy( 
    IRsFileIOGeneric * This,
    /* [in] */ BSTR bstrExt,
    /* [retval][out] */ IRsFileIOType **ppRsFileIOType);


void __RPC_STUB IRsFileIOGeneric_FindFileIOTypeByExt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_FindFileIOTypeByFile_Proxy( 
    IRsFileIOGeneric * This,
    /* [in] */ IRsFileHandle *pFileHandle,
    /* [retval][out] */ IRsFileIOType **ppRsFileIOType);


void __RPC_STUB IRsFileIOGeneric_FindFileIOTypeByFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_EnumFileIOTypes_Proxy( 
    IRsFileIOGeneric * This,
    /* [retval][out] */ IRsEnumFileIOTypes **ppEnum);


void __RPC_STUB IRsFileIOGeneric_EnumFileIOTypes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_GetGenericFileTypeTarget_Proxy( 
    IRsFileIOGeneric * This,
    /* [retval][out] */ IRsObject **ppTargetObject);


void __RPC_STUB IRsFileIOGeneric_GetGenericFileTypeTarget_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_GenericLoad_Proxy( 
    IRsFileIOGeneric * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ IRsObject *pTarget,
    /* [in] */ DWORD dwFlags,
    /* [in] */ IRsFileIOAsyncNotify *pNotify,
    /* [retval][out] */ IRsObject **ppObject);


void __RPC_STUB IRsFileIOGeneric_GenericLoad_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsFileIOGeneric_GenericSave_Proxy( 
    IRsFileIOGeneric * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ IRsObject *pTarget,
    /* [in] */ BSTR bstrDescr,
    /* [in] */ IRdBitmap *pThumbnail,
    /* [in] */ DWORD dwFlags,
    /* [in] */ IRsFileIOAsyncNotify *pNotify);


void __RPC_STUB IRsFileIOGeneric_GenericSave_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsFileIOGeneric_INTERFACE_DEFINED__ */


#ifndef __IRsPackageFileIOReg_INTERFACE_DEFINED__
#define __IRsPackageFileIOReg_INTERFACE_DEFINED__

/* interface IRsPackageFileIOReg */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPackageFileIOReg;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FFBB24E1-E2B0-474f-8CA8-1779A9347575")
    IRsPackageFileIOReg : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterObjectTypes( 
            /* [in] */ IRsFileIORepository *pRsFileIORepository) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPackageFileIORegVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPackageFileIOReg * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPackageFileIOReg * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPackageFileIOReg * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterObjectTypes )( 
            IRsPackageFileIOReg * This,
            /* [in] */ IRsFileIORepository *pRsFileIORepository);
        
        END_INTERFACE
    } IRsPackageFileIORegVtbl;

    interface IRsPackageFileIOReg
    {
        CONST_VTBL struct IRsPackageFileIORegVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPackageFileIOReg_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPackageFileIOReg_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPackageFileIOReg_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPackageFileIOReg_RegisterObjectTypes(This,pRsFileIORepository)	\
    (This)->lpVtbl -> RegisterObjectTypes(This,pRsFileIORepository)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPackageFileIOReg_RegisterObjectTypes_Proxy( 
    IRsPackageFileIOReg * This,
    /* [in] */ IRsFileIORepository *pRsFileIORepository);


void __RPC_STUB IRsPackageFileIOReg_RegisterObjectTypes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPackageFileIOReg_INTERFACE_DEFINED__ */


#ifndef __IRsFileTypeRsObj_INTERFACE_DEFINED__
#define __IRsFileTypeRsObj_INTERFACE_DEFINED__

/* interface IRsFileTypeRsObj */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileTypeRsObj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E6082008-48E3-427c-A1BC-E94BB82906EE")
    IRsFileTypeRsObj : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileTypeRsObjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileTypeRsObj * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileTypeRsObj * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileTypeRsObj * This);
        
        END_INTERFACE
    } IRsFileTypeRsObjVtbl;

    interface IRsFileTypeRsObj
    {
        CONST_VTBL struct IRsFileTypeRsObjVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileTypeRsObj_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileTypeRsObj_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileTypeRsObj_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileTypeRsObj_INTERFACE_DEFINED__ */


#ifndef __IRsFileTypeRsSystem_INTERFACE_DEFINED__
#define __IRsFileTypeRsSystem_INTERFACE_DEFINED__

/* interface IRsFileTypeRsSystem */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileTypeRsSystem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("64BA5215-B75B-458b-970F-30F7C10445E6")
    IRsFileTypeRsSystem : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileTypeRsSystemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileTypeRsSystem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileTypeRsSystem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileTypeRsSystem * This);
        
        END_INTERFACE
    } IRsFileTypeRsSystemVtbl;

    interface IRsFileTypeRsSystem
    {
        CONST_VTBL struct IRsFileTypeRsSystemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileTypeRsSystem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileTypeRsSystem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileTypeRsSystem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileTypeRsSystem_INTERFACE_DEFINED__ */


#ifndef __IRfFileIOHelper_INTERFACE_DEFINED__
#define __IRfFileIOHelper_INTERFACE_DEFINED__

/* interface IRfFileIOHelper */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfFileIOHelper;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2BCA75A0-ED86-4868-B02C-48191FA50BD6")
    IRfFileIOHelper : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAllowed( 
            /* [retval][out] */ RtBOOL *pbVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadNode( 
            /* [in] */ BSTR bstrFileName,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadObject( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [out] */ IRsObject **ppObject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveNode( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveObject( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pObject) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadPreobject( 
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring][local][id] */ HRESULT STDMETHODCALLTYPE LoadNodeFromResource( 
            /* [in] */ HINSTANCE hInstance,
            /* [in] */ RtUlong dwResourceId,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveHistory( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ RtBool fClearDirty) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadHistory( 
            /* [in] */ BSTR bstrFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveSystem( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ RtBool fClearDirty) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadSystem( 
            /* [in] */ BSTR bstrFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateHeaderChunk( 
            /* [in] */ IID idType,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [retval][out] */ IRsFileChunk **ppChunk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadObjListFromStream( 
            /* [in] */ IStream *pStream,
            /* [out] */ IRsObjectList **ppObjList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveObjListToStream( 
            /* [in] */ IStream *pStream,
            /* [in] */ IRsObjectList *pObjList) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadPreobjectShader( 
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE WriteSystemChunk( 
            /* [in] */ IRsFileHandle *pRsFileHandle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReadSystemChunk( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [retval][out] */ IRdChunkSystem **ppChunkSystem) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDefaultProducer( 
            /* [retval][out] */ BSTR *pbstrProducer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDefaultAuthor( 
            /* [retval][out] */ BSTR *pbstrAuthor) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfFileIOHelperVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfFileIOHelper * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfFileIOHelper * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfFileIOHelper * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAllowed )( 
            IRfFileIOHelper * This,
            /* [retval][out] */ RtBOOL *pbVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadNode )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bstrFileName,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadObject )( 
            IRfFileIOHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [out] */ IRsObject **ppObject);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveNode )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveObject )( 
            IRfFileIOHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsObject *pObject);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadPreobject )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring][local][id] */ HRESULT ( STDMETHODCALLTYPE *LoadNodeFromResource )( 
            IRfFileIOHelper * This,
            /* [in] */ HINSTANCE hInstance,
            /* [in] */ RtUlong dwResourceId,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveHistory )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ RtBool fClearDirty);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadHistory )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bstrFileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveSystem )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ RtBool fClearDirty);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadSystem )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bstrFileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateHeaderChunk )( 
            IRfFileIOHelper * This,
            /* [in] */ IID idType,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [retval][out] */ IRsFileChunk **ppChunk);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadObjListFromStream )( 
            IRfFileIOHelper * This,
            /* [in] */ IStream *pStream,
            /* [out] */ IRsObjectList **ppObjList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveObjListToStream )( 
            IRfFileIOHelper * This,
            /* [in] */ IStream *pStream,
            /* [in] */ IRsObjectList *pObjList);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadPreobjectShader )( 
            IRfFileIOHelper * This,
            /* [in] */ BSTR bszFileName,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *WriteSystemChunk )( 
            IRfFileIOHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ReadSystemChunk )( 
            IRfFileIOHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [retval][out] */ IRdChunkSystem **ppChunkSystem);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultProducer )( 
            IRfFileIOHelper * This,
            /* [retval][out] */ BSTR *pbstrProducer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultAuthor )( 
            IRfFileIOHelper * This,
            /* [retval][out] */ BSTR *pbstrAuthor);
        
        END_INTERFACE
    } IRfFileIOHelperVtbl;

    interface IRfFileIOHelper
    {
        CONST_VTBL struct IRfFileIOHelperVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfFileIOHelper_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfFileIOHelper_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfFileIOHelper_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfFileIOHelper_SaveAllowed(This,pbVal)	\
    (This)->lpVtbl -> SaveAllowed(This,pbVal)

#define IRfFileIOHelper_LoadNode(This,bstrFileName,ppNode)	\
    (This)->lpVtbl -> LoadNode(This,bstrFileName,ppNode)

#define IRfFileIOHelper_LoadObject(This,pRsFileHandle,ppObject)	\
    (This)->lpVtbl -> LoadObject(This,pRsFileHandle,ppObject)

#define IRfFileIOHelper_SaveNode(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,pNode)	\
    (This)->lpVtbl -> SaveNode(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,pNode)

#define IRfFileIOHelper_SaveObject(This,pRsFileHandle,pObject)	\
    (This)->lpVtbl -> SaveObject(This,pRsFileHandle,pObject)

#define IRfFileIOHelper_LoadPreobject(This,bszFileName,ppNode)	\
    (This)->lpVtbl -> LoadPreobject(This,bszFileName,ppNode)

#define IRfFileIOHelper_LoadNodeFromResource(This,hInstance,dwResourceId,ppNode)	\
    (This)->lpVtbl -> LoadNodeFromResource(This,hInstance,dwResourceId,ppNode)

#define IRfFileIOHelper_SaveHistory(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,fClearDirty)	\
    (This)->lpVtbl -> SaveHistory(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,fClearDirty)

#define IRfFileIOHelper_LoadHistory(This,bstrFileName)	\
    (This)->lpVtbl -> LoadHistory(This,bstrFileName)

#define IRfFileIOHelper_SaveSystem(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,fClearDirty)	\
    (This)->lpVtbl -> SaveSystem(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,fClearDirty)

#define IRfFileIOHelper_LoadSystem(This,bstrFileName)	\
    (This)->lpVtbl -> LoadSystem(This,bstrFileName)

#define IRfFileIOHelper_CreateHeaderChunk(This,idType,bstrAuthor,bstrDescr,ppChunk)	\
    (This)->lpVtbl -> CreateHeaderChunk(This,idType,bstrAuthor,bstrDescr,ppChunk)

#define IRfFileIOHelper_LoadObjListFromStream(This,pStream,ppObjList)	\
    (This)->lpVtbl -> LoadObjListFromStream(This,pStream,ppObjList)

#define IRfFileIOHelper_SaveObjListToStream(This,pStream,pObjList)	\
    (This)->lpVtbl -> SaveObjListToStream(This,pStream,pObjList)

#define IRfFileIOHelper_LoadPreobjectShader(This,bszFileName,ppNode)	\
    (This)->lpVtbl -> LoadPreobjectShader(This,bszFileName,ppNode)

#define IRfFileIOHelper_WriteSystemChunk(This,pRsFileHandle)	\
    (This)->lpVtbl -> WriteSystemChunk(This,pRsFileHandle)

#define IRfFileIOHelper_ReadSystemChunk(This,pRsFileHandle,ppChunkSystem)	\
    (This)->lpVtbl -> ReadSystemChunk(This,pRsFileHandle,ppChunkSystem)

#define IRfFileIOHelper_GetDefaultProducer(This,pbstrProducer)	\
    (This)->lpVtbl -> GetDefaultProducer(This,pbstrProducer)

#define IRfFileIOHelper_GetDefaultAuthor(This,pbstrAuthor)	\
    (This)->lpVtbl -> GetDefaultAuthor(This,pbstrAuthor)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_SaveAllowed_Proxy( 
    IRfFileIOHelper * This,
    /* [retval][out] */ RtBOOL *pbVal);


void __RPC_STUB IRfFileIOHelper_SaveAllowed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadNode_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bstrFileName,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfFileIOHelper_LoadNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadObject_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [out] */ IRsObject **ppObject);


void __RPC_STUB IRfFileIOHelper_LoadObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_SaveNode_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ BSTR bstrAuthor,
    /* [in] */ BSTR bstrDescr,
    /* [in] */ IRdBitmap *pThumbnail,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfFileIOHelper_SaveNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_SaveObject_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsObject *pObject);


void __RPC_STUB IRfFileIOHelper_SaveObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadPreobject_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bszFileName,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfFileIOHelper_LoadPreobject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadNodeFromResource_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ HINSTANCE hInstance,
    /* [in] */ RtUlong dwResourceId,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfFileIOHelper_LoadNodeFromResource_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_SaveHistory_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ BSTR bstrAuthor,
    /* [in] */ BSTR bstrDescr,
    /* [in] */ IRdBitmap *pThumbnail,
    /* [in] */ RtBool fClearDirty);


void __RPC_STUB IRfFileIOHelper_SaveHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadHistory_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bstrFileName);


void __RPC_STUB IRfFileIOHelper_LoadHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_SaveSystem_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ BSTR bstrAuthor,
    /* [in] */ BSTR bstrDescr,
    /* [in] */ IRdBitmap *pThumbnail,
    /* [in] */ RtBool fClearDirty);


void __RPC_STUB IRfFileIOHelper_SaveSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadSystem_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bstrFileName);


void __RPC_STUB IRfFileIOHelper_LoadSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_CreateHeaderChunk_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ IID idType,
    /* [in] */ BSTR bstrAuthor,
    /* [in] */ BSTR bstrDescr,
    /* [retval][out] */ IRsFileChunk **ppChunk);


void __RPC_STUB IRfFileIOHelper_CreateHeaderChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadObjListFromStream_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ IStream *pStream,
    /* [out] */ IRsObjectList **ppObjList);


void __RPC_STUB IRfFileIOHelper_LoadObjListFromStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_SaveObjListToStream_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ IStream *pStream,
    /* [in] */ IRsObjectList *pObjList);


void __RPC_STUB IRfFileIOHelper_SaveObjListToStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_LoadPreobjectShader_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ BSTR bszFileName,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfFileIOHelper_LoadPreobjectShader_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_WriteSystemChunk_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle);


void __RPC_STUB IRfFileIOHelper_WriteSystemChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_ReadSystemChunk_Proxy( 
    IRfFileIOHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [retval][out] */ IRdChunkSystem **ppChunkSystem);


void __RPC_STUB IRfFileIOHelper_ReadSystemChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_GetDefaultProducer_Proxy( 
    IRfFileIOHelper * This,
    /* [retval][out] */ BSTR *pbstrProducer);


void __RPC_STUB IRfFileIOHelper_GetDefaultProducer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfFileIOHelper_GetDefaultAuthor_Proxy( 
    IRfFileIOHelper * This,
    /* [retval][out] */ BSTR *pbstrAuthor);


void __RPC_STUB IRfFileIOHelper_GetDefaultAuthor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfFileIOHelper_INTERFACE_DEFINED__ */


#ifndef __IRpFileIOPck_INTERFACE_DEFINED__
#define __IRpFileIOPck_INTERFACE_DEFINED__

/* interface IRpFileIOPck */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRpFileIOPck;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("961CB989-B6ED-49EC-888E-E0863E766367")
    IRpFileIOPck : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileIOHelper( 
            /* [retval][out] */ IRfFileIOHelper **ppFileIOHelper) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObsFileIOHelper( 
            /* [retval][out] */ IRfObsFileIO **ppRfObsFileIO) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateDiskFileSupport( 
            /* [retval][out] */ IRfFileSupport **ppiFileSupport) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateRsFileHandle( 
            /* [in] */ BSTR bszFileName,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ IRsFileHandle **ppRsFileHandle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateRsFileHandleForStream( 
            /* [in] */ IStream *pStm,
            /* [in] */ BSTR bszName,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ IRsFileHandle **ppRsFileHandle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateRsFileChunk( 
            /* [in] */ IUnknown *pOuter,
            /* [retval][out] */ IUnknown **ppRsFileChunk) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFileIOGenericHelper( 
            /* [retval][out] */ IRsFileIOGeneric **ppFileIOGeneric) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRpFileIOPckVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRpFileIOPck * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRpFileIOPck * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRpFileIOPck * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRpFileIOPck * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRpFileIOPck * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileIOHelper )( 
            IRpFileIOPck * This,
            /* [retval][out] */ IRfFileIOHelper **ppFileIOHelper);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObsFileIOHelper )( 
            IRpFileIOPck * This,
            /* [retval][out] */ IRfObsFileIO **ppRfObsFileIO);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateDiskFileSupport )( 
            IRpFileIOPck * This,
            /* [retval][out] */ IRfFileSupport **ppiFileSupport);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateRsFileHandle )( 
            IRpFileIOPck * This,
            /* [in] */ BSTR bszFileName,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ IRsFileHandle **ppRsFileHandle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateRsFileHandleForStream )( 
            IRpFileIOPck * This,
            /* [in] */ IStream *pStm,
            /* [in] */ BSTR bszName,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ IRsFileHandle **ppRsFileHandle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateRsFileChunk )( 
            IRpFileIOPck * This,
            /* [in] */ IUnknown *pOuter,
            /* [retval][out] */ IUnknown **ppRsFileChunk);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFileIOGenericHelper )( 
            IRpFileIOPck * This,
            /* [retval][out] */ IRsFileIOGeneric **ppFileIOGeneric);
        
        END_INTERFACE
    } IRpFileIOPckVtbl;

    interface IRpFileIOPck
    {
        CONST_VTBL struct IRpFileIOPckVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRpFileIOPck_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRpFileIOPck_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRpFileIOPck_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRpFileIOPck_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRpFileIOPck_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRpFileIOPck_GetFileIOHelper(This,ppFileIOHelper)	\
    (This)->lpVtbl -> GetFileIOHelper(This,ppFileIOHelper)

#define IRpFileIOPck_GetObsFileIOHelper(This,ppRfObsFileIO)	\
    (This)->lpVtbl -> GetObsFileIOHelper(This,ppRfObsFileIO)

#define IRpFileIOPck_CreateDiskFileSupport(This,ppiFileSupport)	\
    (This)->lpVtbl -> CreateDiskFileSupport(This,ppiFileSupport)

#define IRpFileIOPck_CreateRsFileHandle(This,bszFileName,dwFlags,ppRsFileHandle)	\
    (This)->lpVtbl -> CreateRsFileHandle(This,bszFileName,dwFlags,ppRsFileHandle)

#define IRpFileIOPck_CreateRsFileHandleForStream(This,pStm,bszName,dwFlags,ppRsFileHandle)	\
    (This)->lpVtbl -> CreateRsFileHandleForStream(This,pStm,bszName,dwFlags,ppRsFileHandle)

#define IRpFileIOPck_CreateRsFileChunk(This,pOuter,ppRsFileChunk)	\
    (This)->lpVtbl -> CreateRsFileChunk(This,pOuter,ppRsFileChunk)

#define IRpFileIOPck_GetFileIOGenericHelper(This,ppFileIOGeneric)	\
    (This)->lpVtbl -> GetFileIOGenericHelper(This,ppFileIOGeneric)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpFileIOPck_GetFileIOHelper_Proxy( 
    IRpFileIOPck * This,
    /* [retval][out] */ IRfFileIOHelper **ppFileIOHelper);


void __RPC_STUB IRpFileIOPck_GetFileIOHelper_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpFileIOPck_GetObsFileIOHelper_Proxy( 
    IRpFileIOPck * This,
    /* [retval][out] */ IRfObsFileIO **ppRfObsFileIO);


void __RPC_STUB IRpFileIOPck_GetObsFileIOHelper_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpFileIOPck_CreateDiskFileSupport_Proxy( 
    IRpFileIOPck * This,
    /* [retval][out] */ IRfFileSupport **ppiFileSupport);


void __RPC_STUB IRpFileIOPck_CreateDiskFileSupport_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpFileIOPck_CreateRsFileHandle_Proxy( 
    IRpFileIOPck * This,
    /* [in] */ BSTR bszFileName,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ IRsFileHandle **ppRsFileHandle);


void __RPC_STUB IRpFileIOPck_CreateRsFileHandle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpFileIOPck_CreateRsFileHandleForStream_Proxy( 
    IRpFileIOPck * This,
    /* [in] */ IStream *pStm,
    /* [in] */ BSTR bszName,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ IRsFileHandle **ppRsFileHandle);


void __RPC_STUB IRpFileIOPck_CreateRsFileHandleForStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpFileIOPck_CreateRsFileChunk_Proxy( 
    IRpFileIOPck * This,
    /* [in] */ IUnknown *pOuter,
    /* [retval][out] */ IUnknown **ppRsFileChunk);


void __RPC_STUB IRpFileIOPck_CreateRsFileChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpFileIOPck_GetFileIOGenericHelper_Proxy( 
    IRpFileIOPck * This,
    /* [retval][out] */ IRsFileIOGeneric **ppFileIOGeneric);


void __RPC_STUB IRpFileIOPck_GetFileIOGenericHelper_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRpFileIOPck_INTERFACE_DEFINED__ */


#ifndef __IRiFileIOItem_INTERFACE_DEFINED__
#define __IRiFileIOItem_INTERFACE_DEFINED__

/* interface IRiFileIOItem */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRiFileIOItem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8791527B-81DC-433B-A88C-60C73C665F86")
    IRiFileIOItem : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveObject( 
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveObjectEx( 
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szAuthor,
            /* [in] */ VARIANT szDescr,
            /* [in] */ VARIANT vThumbnail,
            /* [in] */ VARIANT szObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadObject( 
            /* [in] */ BSTR bszFileName,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadPreobject( 
            /* [in] */ BSTR bszFileName,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateRsFileHandle( 
            /* [in] */ BSTR bszFileName,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ VARIANT *pvRsFileHandle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveSystem( 
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szAuthor,
            /* [in] */ VARIANT szDescr,
            /* [in] */ VARIANT vThumbnail) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LoadSystem( 
            /* [in] */ VARIANT szFileName,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveHistory( 
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szAuthor,
            /* [in] */ VARIANT szDescr,
            /* [in] */ VARIANT vThumbnail) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadHistory( 
            /* [in] */ VARIANT szFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GenericLoad( 
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szTargetName,
            /* [in] */ VARIANT dwFlags,
            /* [retval][out] */ VARIANT *pvObject) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRiFileIOItemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRiFileIOItem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRiFileIOItem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRiFileIOItem * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRiFileIOItem * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRiFileIOItem * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRiFileIOItem * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRiFileIOItem * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveObject )( 
            IRiFileIOItem * This,
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveObjectEx )( 
            IRiFileIOItem * This,
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szAuthor,
            /* [in] */ VARIANT szDescr,
            /* [in] */ VARIANT vThumbnail,
            /* [in] */ VARIANT szObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadObject )( 
            IRiFileIOItem * This,
            /* [in] */ BSTR bszFileName,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadPreobject )( 
            IRiFileIOItem * This,
            /* [in] */ BSTR bszFileName,
            /* [in] */ BSTR bszOwnerName,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateRsFileHandle )( 
            IRiFileIOItem * This,
            /* [in] */ BSTR bszFileName,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ VARIANT *pvRsFileHandle);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveSystem )( 
            IRiFileIOItem * This,
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szAuthor,
            /* [in] */ VARIANT szDescr,
            /* [in] */ VARIANT vThumbnail);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LoadSystem )( 
            IRiFileIOItem * This,
            /* [in] */ VARIANT szFileName,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveHistory )( 
            IRiFileIOItem * This,
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szAuthor,
            /* [in] */ VARIANT szDescr,
            /* [in] */ VARIANT vThumbnail);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadHistory )( 
            IRiFileIOItem * This,
            /* [in] */ VARIANT szFileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GenericLoad )( 
            IRiFileIOItem * This,
            /* [in] */ VARIANT szFileName,
            /* [in] */ VARIANT szTargetName,
            /* [in] */ VARIANT dwFlags,
            /* [retval][out] */ VARIANT *pvObject);
        
        END_INTERFACE
    } IRiFileIOItemVtbl;

    interface IRiFileIOItem
    {
        CONST_VTBL struct IRiFileIOItemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRiFileIOItem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRiFileIOItem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRiFileIOItem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRiFileIOItem_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRiFileIOItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRiFileIOItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRiFileIOItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRiFileIOItem_SaveObject(This,szFileName,szObjName)	\
    (This)->lpVtbl -> SaveObject(This,szFileName,szObjName)

#define IRiFileIOItem_SaveObjectEx(This,szFileName,szAuthor,szDescr,vThumbnail,szObjName)	\
    (This)->lpVtbl -> SaveObjectEx(This,szFileName,szAuthor,szDescr,vThumbnail,szObjName)

#define IRiFileIOItem_LoadObject(This,bszFileName,bszOwnerName,pVal)	\
    (This)->lpVtbl -> LoadObject(This,bszFileName,bszOwnerName,pVal)

#define IRiFileIOItem_LoadPreobject(This,bszFileName,bszOwnerName,pVal)	\
    (This)->lpVtbl -> LoadPreobject(This,bszFileName,bszOwnerName,pVal)

#define IRiFileIOItem_CreateRsFileHandle(This,bszFileName,dwFlags,pvRsFileHandle)	\
    (This)->lpVtbl -> CreateRsFileHandle(This,bszFileName,dwFlags,pvRsFileHandle)

#define IRiFileIOItem_SaveSystem(This,szFileName,szAuthor,szDescr,vThumbnail)	\
    (This)->lpVtbl -> SaveSystem(This,szFileName,szAuthor,szDescr,vThumbnail)

#define IRiFileIOItem_get_LoadSystem(This,szFileName,pVal)	\
    (This)->lpVtbl -> get_LoadSystem(This,szFileName,pVal)

#define IRiFileIOItem_SaveHistory(This,szFileName,szAuthor,szDescr,vThumbnail)	\
    (This)->lpVtbl -> SaveHistory(This,szFileName,szAuthor,szDescr,vThumbnail)

#define IRiFileIOItem_LoadHistory(This,szFileName)	\
    (This)->lpVtbl -> LoadHistory(This,szFileName)

#define IRiFileIOItem_GenericLoad(This,szFileName,szTargetName,dwFlags,pvObject)	\
    (This)->lpVtbl -> GenericLoad(This,szFileName,szTargetName,dwFlags,pvObject)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_SaveObject_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ VARIANT szFileName,
    /* [in] */ VARIANT szObjName);


void __RPC_STUB IRiFileIOItem_SaveObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_SaveObjectEx_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ VARIANT szFileName,
    /* [in] */ VARIANT szAuthor,
    /* [in] */ VARIANT szDescr,
    /* [in] */ VARIANT vThumbnail,
    /* [in] */ VARIANT szObjName);


void __RPC_STUB IRiFileIOItem_SaveObjectEx_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_LoadObject_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ BSTR bszFileName,
    /* [in] */ BSTR bszOwnerName,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiFileIOItem_LoadObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_LoadPreobject_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ BSTR bszFileName,
    /* [in] */ BSTR bszOwnerName,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiFileIOItem_LoadPreobject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_CreateRsFileHandle_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ BSTR bszFileName,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ VARIANT *pvRsFileHandle);


void __RPC_STUB IRiFileIOItem_CreateRsFileHandle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_SaveSystem_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ VARIANT szFileName,
    /* [in] */ VARIANT szAuthor,
    /* [in] */ VARIANT szDescr,
    /* [in] */ VARIANT vThumbnail);


void __RPC_STUB IRiFileIOItem_SaveSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_get_LoadSystem_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ VARIANT szFileName,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRiFileIOItem_get_LoadSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_SaveHistory_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ VARIANT szFileName,
    /* [in] */ VARIANT szAuthor,
    /* [in] */ VARIANT szDescr,
    /* [in] */ VARIANT vThumbnail);


void __RPC_STUB IRiFileIOItem_SaveHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_LoadHistory_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ VARIANT szFileName);


void __RPC_STUB IRiFileIOItem_LoadHistory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiFileIOItem_GenericLoad_Proxy( 
    IRiFileIOItem * This,
    /* [in] */ VARIANT szFileName,
    /* [in] */ VARIANT szTargetName,
    /* [in] */ VARIANT dwFlags,
    /* [retval][out] */ VARIANT *pvObject);


void __RPC_STUB IRiFileIOItem_GenericLoad_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRiFileIOItem_INTERFACE_DEFINED__ */


#ifndef __IRcSaveSystem_INTERFACE_DEFINED__
#define __IRcSaveSystem_INTERFACE_DEFINED__

/* interface IRcSaveSystem */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSaveSystem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D2856A4-25DE-4C25-9DF9-B828A8A87657")
    IRcSaveSystem : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcSaveSystemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSaveSystem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSaveSystem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSaveSystem * This);
        
        END_INTERFACE
    } IRcSaveSystemVtbl;

    interface IRcSaveSystem
    {
        CONST_VTBL struct IRcSaveSystemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSaveSystem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSaveSystem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSaveSystem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcSaveSystem_INTERFACE_DEFINED__ */


#ifndef __IRcLoadSystem_INTERFACE_DEFINED__
#define __IRcLoadSystem_INTERFACE_DEFINED__

/* interface IRcLoadSystem */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcLoadSystem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F1DA443B-E16B-42F1-9322-5BA2E746C916")
    IRcLoadSystem : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcLoadSystemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcLoadSystem * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcLoadSystem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcLoadSystem * This);
        
        END_INTERFACE
    } IRcLoadSystemVtbl;

    interface IRcLoadSystem
    {
        CONST_VTBL struct IRcLoadSystemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcLoadSystem_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcLoadSystem_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcLoadSystem_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcLoadSystem_INTERFACE_DEFINED__ */


#ifndef __IRcSaveHistory_INTERFACE_DEFINED__
#define __IRcSaveHistory_INTERFACE_DEFINED__

/* interface IRcSaveHistory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSaveHistory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E1A7A910-F80A-45CC-B48F-FAD465281948")
    IRcSaveHistory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcSaveHistoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSaveHistory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSaveHistory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSaveHistory * This);
        
        END_INTERFACE
    } IRcSaveHistoryVtbl;

    interface IRcSaveHistory
    {
        CONST_VTBL struct IRcSaveHistoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSaveHistory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSaveHistory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSaveHistory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcSaveHistory_INTERFACE_DEFINED__ */


#ifndef __IRcLoadHistory_INTERFACE_DEFINED__
#define __IRcLoadHistory_INTERFACE_DEFINED__

/* interface IRcLoadHistory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcLoadHistory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6AA21A90-8B19-4D05-97DF-5F202478B885")
    IRcLoadHistory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcLoadHistoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcLoadHistory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcLoadHistory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcLoadHistory * This);
        
        END_INTERFACE
    } IRcLoadHistoryVtbl;

    interface IRcLoadHistory
    {
        CONST_VTBL struct IRcLoadHistoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcLoadHistory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcLoadHistory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcLoadHistory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcLoadHistory_INTERFACE_DEFINED__ */


#ifndef __IRcGenericLoad_INTERFACE_DEFINED__
#define __IRcGenericLoad_INTERFACE_DEFINED__

/* interface IRcGenericLoad */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcGenericLoad;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("34EDD886-F218-490d-B28E-F44E16EB2129")
    IRcGenericLoad : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcGenericLoadVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcGenericLoad * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcGenericLoad * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcGenericLoad * This);
        
        END_INTERFACE
    } IRcGenericLoadVtbl;

    interface IRcGenericLoad
    {
        CONST_VTBL struct IRcGenericLoadVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcGenericLoad_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcGenericLoad_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcGenericLoad_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcGenericLoad_INTERFACE_DEFINED__ */


#ifndef __IRcFileIOLoadObject_INTERFACE_DEFINED__
#define __IRcFileIOLoadObject_INTERFACE_DEFINED__

/* interface IRcFileIOLoadObject */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcFileIOLoadObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2187E8C3-B1D9-4AA8-94FF-6FF04F0C3697")
    IRcFileIOLoadObject : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcFileIOLoadObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcFileIOLoadObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcFileIOLoadObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcFileIOLoadObject * This);
        
        END_INTERFACE
    } IRcFileIOLoadObjectVtbl;

    interface IRcFileIOLoadObject
    {
        CONST_VTBL struct IRcFileIOLoadObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcFileIOLoadObject_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcFileIOLoadObject_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcFileIOLoadObject_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcFileIOLoadObject_INTERFACE_DEFINED__ */


#ifndef __IRcFileIOSaveObject_INTERFACE_DEFINED__
#define __IRcFileIOSaveObject_INTERFACE_DEFINED__

/* interface IRcFileIOSaveObject */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcFileIOSaveObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("734250E0-F959-4C4B-8D37-5DD93EA6C485")
    IRcFileIOSaveObject : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcFileIOSaveObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcFileIOSaveObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcFileIOSaveObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcFileIOSaveObject * This);
        
        END_INTERFACE
    } IRcFileIOSaveObjectVtbl;

    interface IRcFileIOSaveObject
    {
        CONST_VTBL struct IRcFileIOSaveObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcFileIOSaveObject_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcFileIOSaveObject_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcFileIOSaveObject_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcFileIOSaveObject_INTERFACE_DEFINED__ */


#ifndef __IRsFileIOCmdFactory_INTERFACE_DEFINED__
#define __IRsFileIOCmdFactory_INTERFACE_DEFINED__

/* interface IRsFileIOCmdFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileIOCmdFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6726EC4F-2DC5-4A93-8F78-BE18F9E0208B")
    IRsFileIOCmdFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileIOCmdFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileIOCmdFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileIOCmdFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileIOCmdFactory * This);
        
        END_INTERFACE
    } IRsFileIOCmdFactoryVtbl;

    interface IRsFileIOCmdFactory
    {
        CONST_VTBL struct IRsFileIOCmdFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileIOCmdFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileIOCmdFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileIOCmdFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileIOCmdFactory_INTERFACE_DEFINED__ */


#ifndef __IRsFileIODataObjFactory_INTERFACE_DEFINED__
#define __IRsFileIODataObjFactory_INTERFACE_DEFINED__

/* interface IRsFileIODataObjFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileIODataObjFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FCB7D2DB-4E82-414c-8E64-93AD60CD066A")
    IRsFileIODataObjFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileIODataObjFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileIODataObjFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileIODataObjFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileIODataObjFactory * This);
        
        END_INTERFACE
    } IRsFileIODataObjFactoryVtbl;

    interface IRsFileIODataObjFactory
    {
        CONST_VTBL struct IRsFileIODataObjFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileIODataObjFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileIODataObjFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileIODataObjFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileIODataObjFactory_INTERFACE_DEFINED__ */



#ifndef __FileIO_LIBRARY_DEFINED__
#define __FileIO_LIBRARY_DEFINED__

/* library FileIO */
/* [helpstring][uuid][version] */ 


EXTERN_C const IID LIBID_FileIO;

EXTERN_C const CLSID CLSID_CRdChunkHeader;

#ifdef __cplusplus

class DECLSPEC_UUID("B2AAFC17-FF40-4cc8-A87E-45CEFACA2823")
CRdChunkHeader;
#endif

EXTERN_C const CLSID CLSID_CRdChunkTags;

#ifdef __cplusplus

class DECLSPEC_UUID("BA5E98C6-AF96-4066-B255-D98B2F80940D")
CRdChunkTags;
#endif

EXTERN_C const CLSID CLSID_CRdChunkRsObj;

#ifdef __cplusplus

class DECLSPEC_UUID("5C853E79-18A5-482c-9FBE-19E1BB3795EF")
CRdChunkRsObj;
#endif

EXTERN_C const CLSID CLSID_CRdChunkUnknown;

#ifdef __cplusplus

class DECLSPEC_UUID("12E51F84-F8DE-4f50-80C4-4836EF9BFA14")
CRdChunkUnknown;
#endif

EXTERN_C const CLSID CLSID_CRdChunksList;

#ifdef __cplusplus

class DECLSPEC_UUID("FA19C48A-1178-48bb-82AF-71738A0B8491")
CRdChunksList;
#endif

EXTERN_C const CLSID CLSID_CRdChunkThumbnail;

#ifdef __cplusplus

class DECLSPEC_UUID("B7CDB277-B8EC-44c2-A76E-3909ACECA132")
CRdChunkThumbnail;
#endif

EXTERN_C const CLSID CLSID_CRdChunkHistory;

#ifdef __cplusplus

class DECLSPEC_UUID("AAAA84B2-5F2C-4520-BD8D-F66444049043")
CRdChunkHistory;
#endif

EXTERN_C const CLSID CLSID_CRdChunkSystem;

#ifdef __cplusplus

class DECLSPEC_UUID("BF10A525-B400-45a1-88BE-A14C80E2E23F")
CRdChunkSystem;
#endif

EXTERN_C const CLSID CLSID_CRfObsFileIO;

#ifdef __cplusplus

class DECLSPEC_UUID("43ECEF80-BB28-408c-A0EC-212C4D5A01B0")
CRfObsFileIO;
#endif

EXTERN_C const CLSID CLSID_CRsFileHandle;

#ifdef __cplusplus

class DECLSPEC_UUID("9EA221AC-748E-4B83-BB2C-3B1DD97D12BF")
CRsFileHandle;
#endif

EXTERN_C const CLSID CLSID_CFileIOHelper;

#ifdef __cplusplus

class DECLSPEC_UUID("207F528E-CF4E-47E1-8627-25CB28DA4778")
CFileIOHelper;
#endif

EXTERN_C const CLSID CLSID_CRpFileIOPck;

#ifdef __cplusplus

class DECLSPEC_UUID("01FE077F-4D0A-4C11-BCD4-F493489B968E")
CRpFileIOPck;
#endif

EXTERN_C const CLSID CLSID_CRiFileIOItem;

#ifdef __cplusplus

class DECLSPEC_UUID("52CE0ABA-63C0-4175-A5A4-A372696390EC")
CRiFileIOItem;
#endif
#endif /* __FileIO_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  LPSAFEARRAY_UserSize(     unsigned long *, unsigned long            , LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal(  unsigned long *, unsigned char *, LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY * ); 
void                      __RPC_USER  LPSAFEARRAY_UserFree(     unsigned long *, LPSAFEARRAY * ); 

unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); 
void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


