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


/* File created by MIDL compiler version 5.01.0164 */
/* at Mon Mar 07 19:56:27 2005
 */
/* Compiler settings for D:\Voron\maCom\src\maCom\maCom.idl:
    Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
*/
//@@MIDL_FILE_HEADING(  )


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#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 __maCom_h__
#define __maCom_h__

#ifdef __cplusplus
extern "C"{
#endif 

/* Forward Declarations */ 

#ifndef __ImaMethodDef_FWD_DEFINED__
#define __ImaMethodDef_FWD_DEFINED__
typedef interface ImaMethodDef ImaMethodDef;
#endif 	/* __ImaMethodDef_FWD_DEFINED__ */


#ifndef __ImaLibrary_FWD_DEFINED__
#define __ImaLibrary_FWD_DEFINED__
typedef interface ImaLibrary ImaLibrary;
#endif 	/* __ImaLibrary_FWD_DEFINED__ */


#ifndef __ImaProgressHandler_FWD_DEFINED__
#define __ImaProgressHandler_FWD_DEFINED__
typedef interface ImaProgressHandler ImaProgressHandler;
#endif 	/* __ImaProgressHandler_FWD_DEFINED__ */


#ifndef __ImaDataHandler_FWD_DEFINED__
#define __ImaDataHandler_FWD_DEFINED__
typedef interface ImaDataHandler ImaDataHandler;
#endif 	/* __ImaDataHandler_FWD_DEFINED__ */


#ifndef __ImaComponent_FWD_DEFINED__
#define __ImaComponent_FWD_DEFINED__
typedef interface ImaComponent ImaComponent;
#endif 	/* __ImaComponent_FWD_DEFINED__ */


#ifndef __ImaAccessControl_FWD_DEFINED__
#define __ImaAccessControl_FWD_DEFINED__
typedef interface ImaAccessControl ImaAccessControl;
#endif 	/* __ImaAccessControl_FWD_DEFINED__ */


#ifndef __ImaSupportsStringConversion_FWD_DEFINED__
#define __ImaSupportsStringConversion_FWD_DEFINED__
typedef interface ImaSupportsStringConversion ImaSupportsStringConversion;
#endif 	/* __ImaSupportsStringConversion_FWD_DEFINED__ */


#ifndef __ImaCell_FWD_DEFINED__
#define __ImaCell_FWD_DEFINED__
typedef interface ImaCell ImaCell;
#endif 	/* __ImaCell_FWD_DEFINED__ */


#ifndef __ImaReadList_FWD_DEFINED__
#define __ImaReadList_FWD_DEFINED__
typedef interface ImaReadList ImaReadList;
#endif 	/* __ImaReadList_FWD_DEFINED__ */


#ifndef __ImaList_FWD_DEFINED__
#define __ImaList_FWD_DEFINED__
typedef interface ImaList ImaList;
#endif 	/* __ImaList_FWD_DEFINED__ */


#ifndef __ImaReadList2_FWD_DEFINED__
#define __ImaReadList2_FWD_DEFINED__
typedef interface ImaReadList2 ImaReadList2;
#endif 	/* __ImaReadList2_FWD_DEFINED__ */


#ifndef __ImaList2_FWD_DEFINED__
#define __ImaList2_FWD_DEFINED__
typedef interface ImaList2 ImaList2;
#endif 	/* __ImaList2_FWD_DEFINED__ */


#ifndef __ImaMatrix_FWD_DEFINED__
#define __ImaMatrix_FWD_DEFINED__
typedef interface ImaMatrix ImaMatrix;
#endif 	/* __ImaMatrix_FWD_DEFINED__ */


#ifndef __ImaMatrixFactory_FWD_DEFINED__
#define __ImaMatrixFactory_FWD_DEFINED__
typedef interface ImaMatrixFactory ImaMatrixFactory;
#endif 	/* __ImaMatrixFactory_FWD_DEFINED__ */


#ifndef __ImaSubMatrix_FWD_DEFINED__
#define __ImaSubMatrix_FWD_DEFINED__
typedef interface ImaSubMatrix ImaSubMatrix;
#endif 	/* __ImaSubMatrix_FWD_DEFINED__ */


#ifndef __ImaCompositeMatrix_FWD_DEFINED__
#define __ImaCompositeMatrix_FWD_DEFINED__
typedef interface ImaCompositeMatrix ImaCompositeMatrix;
#endif 	/* __ImaCompositeMatrix_FWD_DEFINED__ */


#ifndef __ImaEvalMatrix_FWD_DEFINED__
#define __ImaEvalMatrix_FWD_DEFINED__
typedef interface ImaEvalMatrix ImaEvalMatrix;
#endif 	/* __ImaEvalMatrix_FWD_DEFINED__ */


#ifndef __ImaSparseMatrix_FWD_DEFINED__
#define __ImaSparseMatrix_FWD_DEFINED__
typedef interface ImaSparseMatrix ImaSparseMatrix;
#endif 	/* __ImaSparseMatrix_FWD_DEFINED__ */


#ifndef __ImaStream_FWD_DEFINED__
#define __ImaStream_FWD_DEFINED__
typedef interface ImaStream ImaStream;
#endif 	/* __ImaStream_FWD_DEFINED__ */


#ifndef __ImaSupportsStreaming_FWD_DEFINED__
#define __ImaSupportsStreaming_FWD_DEFINED__
typedef interface ImaSupportsStreaming ImaSupportsStreaming;
#endif 	/* __ImaSupportsStreaming_FWD_DEFINED__ */


#ifndef __ImaFileStream_FWD_DEFINED__
#define __ImaFileStream_FWD_DEFINED__
typedef interface ImaFileStream ImaFileStream;
#endif 	/* __ImaFileStream_FWD_DEFINED__ */


#ifndef __ImaMemoryStream_FWD_DEFINED__
#define __ImaMemoryStream_FWD_DEFINED__
typedef interface ImaMemoryStream ImaMemoryStream;
#endif 	/* __ImaMemoryStream_FWD_DEFINED__ */


#ifndef __ImaClientDataStream_FWD_DEFINED__
#define __ImaClientDataStream_FWD_DEFINED__
typedef interface ImaClientDataStream ImaClientDataStream;
#endif 	/* __ImaClientDataStream_FWD_DEFINED__ */


#ifndef __ImaMethod_FWD_DEFINED__
#define __ImaMethod_FWD_DEFINED__
typedef interface ImaMethod ImaMethod;
#endif 	/* __ImaMethod_FWD_DEFINED__ */


#ifndef __ImaAlgorithm_FWD_DEFINED__
#define __ImaAlgorithm_FWD_DEFINED__
typedef interface ImaAlgorithm ImaAlgorithm;
#endif 	/* __ImaAlgorithm_FWD_DEFINED__ */


#ifndef __ImaKernel_FWD_DEFINED__
#define __ImaKernel_FWD_DEFINED__
typedef interface ImaKernel ImaKernel;
#endif 	/* __ImaKernel_FWD_DEFINED__ */


#ifndef __MaCell_FWD_DEFINED__
#define __MaCell_FWD_DEFINED__

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

#endif 	/* __MaCell_FWD_DEFINED__ */


#ifndef __MaList_FWD_DEFINED__
#define __MaList_FWD_DEFINED__

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

#endif 	/* __MaList_FWD_DEFINED__ */


#ifndef __MaMatrixFactory_FWD_DEFINED__
#define __MaMatrixFactory_FWD_DEFINED__

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

#endif 	/* __MaMatrixFactory_FWD_DEFINED__ */


#ifndef __MaDoubleMatrix_FWD_DEFINED__
#define __MaDoubleMatrix_FWD_DEFINED__

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

#endif 	/* __MaDoubleMatrix_FWD_DEFINED__ */


#ifndef __MaDoubleSparseMatrix_FWD_DEFINED__
#define __MaDoubleSparseMatrix_FWD_DEFINED__

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

#endif 	/* __MaDoubleSparseMatrix_FWD_DEFINED__ */


#ifndef __MaStringMatrix_FWD_DEFINED__
#define __MaStringMatrix_FWD_DEFINED__

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

#endif 	/* __MaStringMatrix_FWD_DEFINED__ */


#ifndef __MaStringSparseMatrix_FWD_DEFINED__
#define __MaStringSparseMatrix_FWD_DEFINED__

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

#endif 	/* __MaStringSparseMatrix_FWD_DEFINED__ */


#ifndef __MaLongMatrix_FWD_DEFINED__
#define __MaLongMatrix_FWD_DEFINED__

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

#endif 	/* __MaLongMatrix_FWD_DEFINED__ */


#ifndef __MaBoolMatrix_FWD_DEFINED__
#define __MaBoolMatrix_FWD_DEFINED__

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

#endif 	/* __MaBoolMatrix_FWD_DEFINED__ */


#ifndef __MaByteMatrix_FWD_DEFINED__
#define __MaByteMatrix_FWD_DEFINED__

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

#endif 	/* __MaByteMatrix_FWD_DEFINED__ */


#ifndef __MaEvalMatrix_FWD_DEFINED__
#define __MaEvalMatrix_FWD_DEFINED__

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

#endif 	/* __MaEvalMatrix_FWD_DEFINED__ */


#ifndef __MaSubMatrix_FWD_DEFINED__
#define __MaSubMatrix_FWD_DEFINED__

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

#endif 	/* __MaSubMatrix_FWD_DEFINED__ */


#ifndef __MaCompositeMatrix_FWD_DEFINED__
#define __MaCompositeMatrix_FWD_DEFINED__

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

#endif 	/* __MaCompositeMatrix_FWD_DEFINED__ */


#ifndef __MaSparseMatrix_FWD_DEFINED__
#define __MaSparseMatrix_FWD_DEFINED__

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

#endif 	/* __MaSparseMatrix_FWD_DEFINED__ */


#ifndef __MaMemoryStream_FWD_DEFINED__
#define __MaMemoryStream_FWD_DEFINED__

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

#endif 	/* __MaMemoryStream_FWD_DEFINED__ */


#ifndef __MaTextFileStream_FWD_DEFINED__
#define __MaTextFileStream_FWD_DEFINED__

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

#endif 	/* __MaTextFileStream_FWD_DEFINED__ */


#ifndef __MaBinaryFileStream_FWD_DEFINED__
#define __MaBinaryFileStream_FWD_DEFINED__

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

#endif 	/* __MaBinaryFileStream_FWD_DEFINED__ */


#ifndef __MaClientDataStream_FWD_DEFINED__
#define __MaClientDataStream_FWD_DEFINED__

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

#endif 	/* __MaClientDataStream_FWD_DEFINED__ */


#ifndef __MaMethod_FWD_DEFINED__
#define __MaMethod_FWD_DEFINED__

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

#endif 	/* __MaMethod_FWD_DEFINED__ */


#ifndef __MaAlgorithm_FWD_DEFINED__
#define __MaAlgorithm_FWD_DEFINED__

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

#endif 	/* __MaAlgorithm_FWD_DEFINED__ */


#ifndef __MaKernel_FWD_DEFINED__
#define __MaKernel_FWD_DEFINED__

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

#endif 	/* __MaKernel_FWD_DEFINED__ */


#ifndef __MaList2_FWD_DEFINED__
#define __MaList2_FWD_DEFINED__

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

#endif 	/* __MaList2_FWD_DEFINED__ */


/* header files for imported files */
#include "objidl.h"

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

/* interface __MIDL_itf_maCom_0000 */
/* [local] */ 

typedef struct  __MIDL___MIDL_itf_maCom_0000_0001
    {
    int count;
    /* [size_is] */ int idx[ 1 ];
    }	__RPC_FAR *maIndex;

typedef HRESULT maType;

typedef wchar_t __RPC_FAR *maString;

typedef /* [public][public][public][public][public][public][public][public][public] */ struct  __MIDL___MIDL_itf_maCom_0000_0002
    {
    maString strReadFmt;
    maString strWriteFmt;
    maString longReadFmt;
    maString longWriteFmt;
    maString doubleReadFmt;
    maString doubleWriteFmt;
    maString defaultString;
    long defaultLong;
    double defaultDouble;
    }	maConvertStrings;

typedef /* [public][public][public][public][public] */ struct  __MIDL___MIDL_itf_maCom_0000_0003
    {
    maType fileMode;
    boolean textStream;
    boolean canRead;
    boolean canWrite;
    maString fileName;
    maConvertStrings convStrings;
    maString emptyValue;
    boolean printGUIDs;
    maString DelimiterSkipFmt;
    maString Delimiter;
    maString RowDelimiter;
    long levelIndent;
    }	maStreamOptions;

#define	MA_DEBUG_NONE	( 0 )

#define	MA_DEBUG_LIFETIME	( 1 )

#define	MA_DEBUG_REFCOUNT	( 2 )

#define	MA_DEBUG_ALLOCATIONS	( 3 )

#define	MA_EMPTY	( 0L )

#define	MA_BOOLEAN	( 0x1L )

#define	MA_LONG	( 0x2L )

#define	MA_DOUBLE	( 0x4L )

#define	MA_STRING	( 0x8L )

#define	MA_COMPONENT	( 0x10L )

#define	MA_READLIST	( 0x20L + MA_COMPONENT )

#define	MA_LIST	( 0x40L + MA_READLIST )

#define	MA_ALGORITHM	( 0x80L + MA_READLIST )

#define	MA_METHOD	( 0x100L + MA_READLIST )

#define	MA_STREAM	( 0x200L + MA_COMPONENT )

#define	MA_MATRIX	( 0x400L + MA_COMPONENT )

#define	MA_SPARSEMATRIX	( 0x800L + MA_COMPONENT )

#define	MA_COMPOSITE	( 0x1000L + MA_MATRIX )

#define	MA_SPARSE	( 0x10000L )

#define	MA_BYTE	( 0x20000L )

#define	MA_SUBMATRIX	( 0x40000L )

#define	MA_EVAL	( 0x80000L )

#define	MA_DATATYPE_MASK	( 0xffffL )

#define	MA_ANY_COMPONENT	( 0xfff0L )

#define	MA_NOERROR	( 0L )

#define	MA_TRUE	( 0x1L )

#define	MA_FALSE	( 0L )

#define	MA_ERR_NOTFOUND	( 0x80010001L )

#define	MA_ERR_REPNAME	( 0x80010002L )

#define	MA_ERR_VERIFY	( 0x80010003L )

#define	MA_ERR_METHODUNDEF	( 0x80010004L )

#define	MA_ERR_NOMEMORY	( 0x80010005L )

#define	MA_ERR_INVALIDDEF	( 0x80010006L )

#define	MA_ERR_STREAMING	( 0x80010007L )

#define	MA_ERR_NOTIMPLEMENTED	( 0x80010008L )

#define	MA_ERR_INTERRUPT	( 0x80010009L )

#define	MA_ERR_IOPERM	( 0x8001000aL )

#define	MA_ERR_SECTION_BEGIN	( 0x8001000bL )

#define	MA_ERR_SECTION_END	( 0x8001000cL )

#define	MA_ERR_ACCESS	( 0x8001000dL )

#define	MA_ERR_CLIENTFAIL	( 0x8001000eL )

#define	MA_ERR_BAD_CLSID	( 0x8001000fL )

#define	MA_ERR_BAD_PARAM	( 0x80010010L )

#define	MA_ERR_NOINTERFACE	( 0x80010011L )

#define	MA_ERR_UNKNOWN	( 0x800100ffL )

#define	MA_ERROR_MASK	( 0x80010000L )

#define	MA_FILE_READ	( 1L )

#define	MA_FILE_WRITE	( 2L )

#define	MA_FILE_READWRITE	( 3L )

#define	MA_FILE_APPEND	( 4L )

#define	MA_FILE_BINARY	( 0 )

#define	MA_FILE_TEXT	( 8L )

#define	MA_CACHE_WRITE	( 0 )

#define	MA_CACHE_READ	( 1 )

#define	MA_CACHE_WRITE_THROUGH	( 2 )

#define	MA_CACHE_WRITE_APPEND	( 3 )

#define	MA_ACCESS_READ	( 1 )

#define	MA_ACCESS_WRITE	( 2 )

#define	MA_ACCESS_ALL	( 3 )

#define	MA_ACCESS_CELL_SET	( 4 )

#define	MA_ACCESS_LIST_SET	( 8 )

#define	MA_ACCESS_LIST_DISABLE_SUBLIST_WRITE	( 16 )

#define	MA_ACCESS_LIST_DISABLE_RESULT_WRITE	( 32 )

#define	MA_ACCESS_METHOD_DISABLE_PARAM_WRITE	( 64 )

#define	MA_ACCESS_METHOD_DISABLE_IO_WRITE	( 128 )

#define	MA_ACCESS_PROPAGATE_TO_SUBCOMPONENTS	( 4 )

#define	MA_ACCESS_PROPAGATE_TO_SUBLISTS	( 4 )









extern RPC_IF_HANDLE __MIDL_itf_maCom_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_maCom_0000_v0_0_s_ifspec;

#ifndef __ImaMethodDef_INTERFACE_DEFINED__
#define __ImaMethodDef_INTERFACE_DEFINED__

/* interface ImaMethodDef */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaMethodDef;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71100-DF5A-4BD6-93AD-51DF79B64FED")
    ImaMethodDef : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetDescription( 
            /* [string][retval][out] */ maString __RPC_FAR *descr) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Init( 
            /* [in] */ ImaList __RPC_FAR *param,
            /* [in] */ ImaReadList __RPC_FAR *input,
            /* [in] */ ImaReadList __RPC_FAR *output) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CalcDef( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CalcCellDef( 
            /* [in] */ int argno,
            /* [in] */ maIndex index,
            /* [in] */ ImaCell __RPC_FAR *cell) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaMethodDefVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaMethodDef __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaMethodDef __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaMethodDef __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDescription )( 
            ImaMethodDef __RPC_FAR * This,
            /* [string][retval][out] */ maString __RPC_FAR *descr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Init )( 
            ImaMethodDef __RPC_FAR * This,
            /* [in] */ ImaList __RPC_FAR *param,
            /* [in] */ ImaReadList __RPC_FAR *input,
            /* [in] */ ImaReadList __RPC_FAR *output);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CalcDef )( 
            ImaMethodDef __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CalcCellDef )( 
            ImaMethodDef __RPC_FAR * This,
            /* [in] */ int argno,
            /* [in] */ maIndex index,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        END_INTERFACE
    } ImaMethodDefVtbl;

    interface ImaMethodDef
    {
        CONST_VTBL struct ImaMethodDefVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaMethodDef_GetDescription(This,descr)	\
    (This)->lpVtbl -> GetDescription(This,descr)

#define ImaMethodDef_Init(This,param,input,output)	\
    (This)->lpVtbl -> Init(This,param,input,output)

#define ImaMethodDef_CalcDef(This)	\
    (This)->lpVtbl -> CalcDef(This)

#define ImaMethodDef_CalcCellDef(This,argno,index,cell)	\
    (This)->lpVtbl -> CalcCellDef(This,argno,index,cell)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaMethodDef_GetDescription_Proxy( 
    ImaMethodDef __RPC_FAR * This,
    /* [string][retval][out] */ maString __RPC_FAR *descr);


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


HRESULT STDMETHODCALLTYPE ImaMethodDef_Init_Proxy( 
    ImaMethodDef __RPC_FAR * This,
    /* [in] */ ImaList __RPC_FAR *param,
    /* [in] */ ImaReadList __RPC_FAR *input,
    /* [in] */ ImaReadList __RPC_FAR *output);


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


HRESULT STDMETHODCALLTYPE ImaMethodDef_CalcDef_Proxy( 
    ImaMethodDef __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaMethodDef_CalcCellDef_Proxy( 
    ImaMethodDef __RPC_FAR * This,
    /* [in] */ int argno,
    /* [in] */ maIndex index,
    /* [in] */ ImaCell __RPC_FAR *cell);


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



#endif 	/* __ImaMethodDef_INTERFACE_DEFINED__ */


#ifndef __ImaLibrary_INTERFACE_DEFINED__
#define __ImaLibrary_INTERFACE_DEFINED__

/* interface ImaLibrary */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaLibrary;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71101-DF5A-4BD6-93AD-51DF79B64FED")
    ImaLibrary : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateMethodDef( 
            /* [string][in] */ maString aname,
            /* [in] */ int methodno,
            /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *method) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaLibraryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaLibrary __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaLibrary __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaLibrary __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateMethodDef )( 
            ImaLibrary __RPC_FAR * This,
            /* [string][in] */ maString aname,
            /* [in] */ int methodno,
            /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *method);
        
        END_INTERFACE
    } ImaLibraryVtbl;

    interface ImaLibrary
    {
        CONST_VTBL struct ImaLibraryVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaLibrary_CreateMethodDef(This,aname,methodno,method)	\
    (This)->lpVtbl -> CreateMethodDef(This,aname,methodno,method)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaLibrary_CreateMethodDef_Proxy( 
    ImaLibrary __RPC_FAR * This,
    /* [string][in] */ maString aname,
    /* [in] */ int methodno,
    /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *method);


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



#endif 	/* __ImaLibrary_INTERFACE_DEFINED__ */


#ifndef __ImaProgressHandler_INTERFACE_DEFINED__
#define __ImaProgressHandler_INTERFACE_DEFINED__

/* interface ImaProgressHandler */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaProgressHandler;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d689b062-c5b1-4365-b6ae-41e9c27b5399")
    ImaProgressHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnProgress( 
            /* [in] */ double percent,
            /* [in] */ maString message,
            /* [out] */ boolean __RPC_FAR *cancel) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaProgressHandlerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaProgressHandler __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaProgressHandler __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaProgressHandler __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OnProgress )( 
            ImaProgressHandler __RPC_FAR * This,
            /* [in] */ double percent,
            /* [in] */ maString message,
            /* [out] */ boolean __RPC_FAR *cancel);
        
        END_INTERFACE
    } ImaProgressHandlerVtbl;

    interface ImaProgressHandler
    {
        CONST_VTBL struct ImaProgressHandlerVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaProgressHandler_OnProgress(This,percent,message,cancel)	\
    (This)->lpVtbl -> OnProgress(This,percent,message,cancel)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaProgressHandler_OnProgress_Proxy( 
    ImaProgressHandler __RPC_FAR * This,
    /* [in] */ double percent,
    /* [in] */ maString message,
    /* [out] */ boolean __RPC_FAR *cancel);


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



#endif 	/* __ImaProgressHandler_INTERFACE_DEFINED__ */


#ifndef __ImaDataHandler_INTERFACE_DEFINED__
#define __ImaDataHandler_INTERFACE_DEFINED__

/* interface ImaDataHandler */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaDataHandler;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("19c92bbc-3588-446d-adf2-b06340e2c856")
    ImaDataHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnDataRead( 
            /* [out] */ maString __RPC_FAR *data) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnDataWrite( 
            /* [in] */ maString data) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaDataHandlerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaDataHandler __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaDataHandler __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaDataHandler __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OnDataRead )( 
            ImaDataHandler __RPC_FAR * This,
            /* [out] */ maString __RPC_FAR *data);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OnDataWrite )( 
            ImaDataHandler __RPC_FAR * This,
            /* [in] */ maString data);
        
        END_INTERFACE
    } ImaDataHandlerVtbl;

    interface ImaDataHandler
    {
        CONST_VTBL struct ImaDataHandlerVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaDataHandler_OnDataRead(This,data)	\
    (This)->lpVtbl -> OnDataRead(This,data)

#define ImaDataHandler_OnDataWrite(This,data)	\
    (This)->lpVtbl -> OnDataWrite(This,data)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaDataHandler_OnDataRead_Proxy( 
    ImaDataHandler __RPC_FAR * This,
    /* [out] */ maString __RPC_FAR *data);


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


HRESULT STDMETHODCALLTYPE ImaDataHandler_OnDataWrite_Proxy( 
    ImaDataHandler __RPC_FAR * This,
    /* [in] */ maString data);


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



#endif 	/* __ImaDataHandler_INTERFACE_DEFINED__ */


#ifndef __ImaComponent_INTERFACE_DEFINED__
#define __ImaComponent_INTERFACE_DEFINED__

/* interface ImaComponent */
/* [local][unique][uuid][object] */ 


EXTERN_C const IID IID_ImaComponent;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("509B8EF2-9337-47f8-9B0E-5FF1726397F3")
    ImaComponent : public IPersist
    {
    public:
        virtual void STDMETHODCALLTYPE SetName( 
            /* [in] */ maString name) = 0;
        
        virtual maString STDMETHODCALLTYPE GetName( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaComponentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaComponent __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaComponent __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaComponent __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaComponent __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaComponent __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaComponent __RPC_FAR * This);
        
        END_INTERFACE
    } ImaComponentVtbl;

    interface ImaComponent
    {
        CONST_VTBL struct ImaComponentVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaComponent_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaComponent_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaComponent_GetName(This)	\
    (This)->lpVtbl -> GetName(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



void STDMETHODCALLTYPE ImaComponent_SetName_Proxy( 
    ImaComponent __RPC_FAR * This,
    /* [in] */ maString name);


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


maString STDMETHODCALLTYPE ImaComponent_GetName_Proxy( 
    ImaComponent __RPC_FAR * This);


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



#endif 	/* __ImaComponent_INTERFACE_DEFINED__ */


#ifndef __ImaAccessControl_INTERFACE_DEFINED__
#define __ImaAccessControl_INTERFACE_DEFINED__

/* interface ImaAccessControl */
/* [hidden][local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaAccessControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F9EDE54F-7681-4113-971A-E334A4568A6A")
    ImaAccessControl : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetFlags( 
            /* [in] */ int flags) = 0;
        
        virtual int STDMETHODCALLTYPE GetFlags( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaAccessControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaAccessControl __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaAccessControl __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaAccessControl __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetFlags )( 
            ImaAccessControl __RPC_FAR * This,
            /* [in] */ int flags);
        
        int ( STDMETHODCALLTYPE __RPC_FAR *GetFlags )( 
            ImaAccessControl __RPC_FAR * This);
        
        END_INTERFACE
    } ImaAccessControlVtbl;

    interface ImaAccessControl
    {
        CONST_VTBL struct ImaAccessControlVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaAccessControl_SetFlags(This,flags)	\
    (This)->lpVtbl -> SetFlags(This,flags)

#define ImaAccessControl_GetFlags(This)	\
    (This)->lpVtbl -> GetFlags(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaAccessControl_SetFlags_Proxy( 
    ImaAccessControl __RPC_FAR * This,
    /* [in] */ int flags);


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


int STDMETHODCALLTYPE ImaAccessControl_GetFlags_Proxy( 
    ImaAccessControl __RPC_FAR * This);


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



#endif 	/* __ImaAccessControl_INTERFACE_DEFINED__ */


#ifndef __ImaSupportsStringConversion_INTERFACE_DEFINED__
#define __ImaSupportsStringConversion_INTERFACE_DEFINED__

/* interface ImaSupportsStringConversion */
/* [local][unique][uuid][object] */ 


EXTERN_C const IID IID_ImaSupportsStringConversion;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6C42D0D8-0AAE-4e41-84EE-D23053EEF0BA")
    ImaSupportsStringConversion : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetConversionStrings( 
            /* [in] */ maConvertStrings __RPC_FAR *strings) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetConversionStrings( 
            /* [out][in] */ maConvertStrings __RPC_FAR *strings) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ClearConversionStrings( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaSupportsStringConversionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaSupportsStringConversion __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaSupportsStringConversion __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaSupportsStringConversion __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetConversionStrings )( 
            ImaSupportsStringConversion __RPC_FAR * This,
            /* [in] */ maConvertStrings __RPC_FAR *strings);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetConversionStrings )( 
            ImaSupportsStringConversion __RPC_FAR * This,
            /* [out][in] */ maConvertStrings __RPC_FAR *strings);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClearConversionStrings )( 
            ImaSupportsStringConversion __RPC_FAR * This);
        
        END_INTERFACE
    } ImaSupportsStringConversionVtbl;

    interface ImaSupportsStringConversion
    {
        CONST_VTBL struct ImaSupportsStringConversionVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaSupportsStringConversion_SetConversionStrings(This,strings)	\
    (This)->lpVtbl -> SetConversionStrings(This,strings)

#define ImaSupportsStringConversion_GetConversionStrings(This,strings)	\
    (This)->lpVtbl -> GetConversionStrings(This,strings)

#define ImaSupportsStringConversion_ClearConversionStrings(This)	\
    (This)->lpVtbl -> ClearConversionStrings(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaSupportsStringConversion_SetConversionStrings_Proxy( 
    ImaSupportsStringConversion __RPC_FAR * This,
    /* [in] */ maConvertStrings __RPC_FAR *strings);


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


HRESULT STDMETHODCALLTYPE ImaSupportsStringConversion_GetConversionStrings_Proxy( 
    ImaSupportsStringConversion __RPC_FAR * This,
    /* [out][in] */ maConvertStrings __RPC_FAR *strings);


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


HRESULT STDMETHODCALLTYPE ImaSupportsStringConversion_ClearConversionStrings_Proxy( 
    ImaSupportsStringConversion __RPC_FAR * This);


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



#endif 	/* __ImaSupportsStringConversion_INTERFACE_DEFINED__ */


#ifndef __ImaCell_INTERFACE_DEFINED__
#define __ImaCell_INTERFACE_DEFINED__

/* interface ImaCell */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaCell;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71102-DF5A-4BD6-93AD-51DF79B64FED")
    ImaCell : public ImaComponent
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetType( 
            /* [retval][out] */ maType __RPC_FAR *type) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsBoolean( 
            /* [retval][out] */ boolean __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsBoolean( 
            /* [in] */ boolean value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsLong( 
            /* [retval][out] */ int __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsLong( 
            /* [in] */ int value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsDouble( 
            /* [retval][out] */ double __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsDouble( 
            /* [in] */ double value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsString( 
            /* [string][retval][out] */ maString __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsString( 
            /* [string][in] */ maString value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsComponent( 
            /* [in] */ maType type,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsComponent( 
            /* [in] */ maType type,
            /* [in] */ ImaComponent __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsAnyComponent( 
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsAnyComponent( 
            /* [in] */ ImaComponent __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Copy( 
            /* [in] */ ImaCell __RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IsEmpty( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaCellVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaCell __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaCell __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaCell __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaCell __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetType )( 
            ImaCell __RPC_FAR * This,
            /* [retval][out] */ maType __RPC_FAR *type);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsBoolean )( 
            ImaCell __RPC_FAR * This,
            /* [retval][out] */ boolean __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsBoolean )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ boolean value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsLong )( 
            ImaCell __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsLong )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsDouble )( 
            ImaCell __RPC_FAR * This,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsDouble )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsString )( 
            ImaCell __RPC_FAR * This,
            /* [string][retval][out] */ maString __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsString )( 
            ImaCell __RPC_FAR * This,
            /* [string][in] */ maString value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsComponent )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ maType type,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsComponent )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ maType type,
            /* [in] */ ImaComponent __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsAnyComponent )( 
            ImaCell __RPC_FAR * This,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsAnyComponent )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ ImaComponent __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Copy )( 
            ImaCell __RPC_FAR * This,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsEmpty )( 
            ImaCell __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clear )( 
            ImaCell __RPC_FAR * This);
        
        END_INTERFACE
    } ImaCellVtbl;

    interface ImaCell
    {
        CONST_VTBL struct ImaCellVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaCell_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaCell_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaCell_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaCell_GetType(This,type)	\
    (This)->lpVtbl -> GetType(This,type)

#define ImaCell_GetAsBoolean(This,value)	\
    (This)->lpVtbl -> GetAsBoolean(This,value)

#define ImaCell_SetAsBoolean(This,value)	\
    (This)->lpVtbl -> SetAsBoolean(This,value)

#define ImaCell_GetAsLong(This,value)	\
    (This)->lpVtbl -> GetAsLong(This,value)

#define ImaCell_SetAsLong(This,value)	\
    (This)->lpVtbl -> SetAsLong(This,value)

#define ImaCell_GetAsDouble(This,value)	\
    (This)->lpVtbl -> GetAsDouble(This,value)

#define ImaCell_SetAsDouble(This,value)	\
    (This)->lpVtbl -> SetAsDouble(This,value)

#define ImaCell_GetAsString(This,value)	\
    (This)->lpVtbl -> GetAsString(This,value)

#define ImaCell_SetAsString(This,value)	\
    (This)->lpVtbl -> SetAsString(This,value)

#define ImaCell_GetAsComponent(This,type,value)	\
    (This)->lpVtbl -> GetAsComponent(This,type,value)

#define ImaCell_SetAsComponent(This,type,value)	\
    (This)->lpVtbl -> SetAsComponent(This,type,value)

#define ImaCell_GetAsAnyComponent(This,value)	\
    (This)->lpVtbl -> GetAsAnyComponent(This,value)

#define ImaCell_SetAsAnyComponent(This,value)	\
    (This)->lpVtbl -> SetAsAnyComponent(This,value)

#define ImaCell_Copy(This,cell)	\
    (This)->lpVtbl -> Copy(This,cell)

#define ImaCell_IsEmpty(This)	\
    (This)->lpVtbl -> IsEmpty(This)

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

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaCell_GetType_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [retval][out] */ maType __RPC_FAR *type);


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


HRESULT STDMETHODCALLTYPE ImaCell_GetAsBoolean_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [retval][out] */ boolean __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_SetAsBoolean_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [in] */ boolean value);


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


HRESULT STDMETHODCALLTYPE ImaCell_GetAsLong_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_SetAsLong_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [in] */ int value);


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


HRESULT STDMETHODCALLTYPE ImaCell_GetAsDouble_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [retval][out] */ double __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_SetAsDouble_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [in] */ double value);


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


HRESULT STDMETHODCALLTYPE ImaCell_GetAsString_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [string][retval][out] */ maString __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_SetAsString_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [string][in] */ maString value);


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


HRESULT STDMETHODCALLTYPE ImaCell_GetAsComponent_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [in] */ maType type,
    /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_SetAsComponent_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [in] */ maType type,
    /* [in] */ ImaComponent __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_GetAsAnyComponent_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_SetAsAnyComponent_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [in] */ ImaComponent __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaCell_Copy_Proxy( 
    ImaCell __RPC_FAR * This,
    /* [in] */ ImaCell __RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaCell_IsEmpty_Proxy( 
    ImaCell __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaCell_Clear_Proxy( 
    ImaCell __RPC_FAR * This);


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



#endif 	/* __ImaCell_INTERFACE_DEFINED__ */


#ifndef __ImaReadList_INTERFACE_DEFINED__
#define __ImaReadList_INTERFACE_DEFINED__

/* interface ImaReadList */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaReadList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71103-DF5A-4BD6-93AD-51DF79B64FED")
    ImaReadList : public ImaComponent
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ int __RPC_FAR *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCell( 
            /* [in] */ int cellno,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindCellno( 
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindCell( 
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCellName( 
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaReadListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaReadList __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaReadList __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaReadList __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaReadList __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaReadList __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaReadList __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaReadList __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCell )( 
            ImaReadList __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCellno )( 
            ImaReadList __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCell )( 
            ImaReadList __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCellName )( 
            ImaReadList __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name);
        
        END_INTERFACE
    } ImaReadListVtbl;

    interface ImaReadList
    {
        CONST_VTBL struct ImaReadListVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaReadList_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaReadList_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaReadList_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaReadList_GetSize(This,size)	\
    (This)->lpVtbl -> GetSize(This,size)

#define ImaReadList_GetCell(This,cellno,cell)	\
    (This)->lpVtbl -> GetCell(This,cellno,cell)

#define ImaReadList_FindCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCellno(This,name,cellno)

#define ImaReadList_FindCell(This,name,cell)	\
    (This)->lpVtbl -> FindCell(This,name,cell)

#define ImaReadList_GetCellName(This,cellno,name)	\
    (This)->lpVtbl -> GetCellName(This,cellno,name)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaReadList_GetSize_Proxy( 
    ImaReadList __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *size);


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


HRESULT STDMETHODCALLTYPE ImaReadList_GetCell_Proxy( 
    ImaReadList __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaReadList_FindCellno_Proxy( 
    ImaReadList __RPC_FAR * This,
    /* [in] */ maString name,
    /* [retval][out] */ int __RPC_FAR *cellno);


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


HRESULT STDMETHODCALLTYPE ImaReadList_FindCell_Proxy( 
    ImaReadList __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaReadList_GetCellName_Proxy( 
    ImaReadList __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [string][retval][out] */ maString __RPC_FAR *name);


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



#endif 	/* __ImaReadList_INTERFACE_DEFINED__ */


#ifndef __ImaList_INTERFACE_DEFINED__
#define __ImaList_INTERFACE_DEFINED__

/* interface ImaList */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71104-DF5A-4BD6-93AD-51DF79B64FED")
    ImaList : public ImaReadList
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddCellno( 
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddCell( 
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindCreateCellno( 
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindCreateCell( 
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateCells( 
            /* [in] */ int cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaList __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaList __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaList __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaList __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaList __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaList __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaList __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCell )( 
            ImaList __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCellno )( 
            ImaList __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCell )( 
            ImaList __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCellName )( 
            ImaList __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddCellno )( 
            ImaList __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddCell )( 
            ImaList __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCreateCellno )( 
            ImaList __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCreateCell )( 
            ImaList __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateCells )( 
            ImaList __RPC_FAR * This,
            /* [in] */ int cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clear )( 
            ImaList __RPC_FAR * This);
        
        END_INTERFACE
    } ImaListVtbl;

    interface ImaList
    {
        CONST_VTBL struct ImaListVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaList_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaList_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaList_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaList_GetSize(This,size)	\
    (This)->lpVtbl -> GetSize(This,size)

#define ImaList_GetCell(This,cellno,cell)	\
    (This)->lpVtbl -> GetCell(This,cellno,cell)

#define ImaList_FindCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCellno(This,name,cellno)

#define ImaList_FindCell(This,name,cell)	\
    (This)->lpVtbl -> FindCell(This,name,cell)

#define ImaList_GetCellName(This,cellno,name)	\
    (This)->lpVtbl -> GetCellName(This,cellno,name)


#define ImaList_AddCellno(This,name,cellno)	\
    (This)->lpVtbl -> AddCellno(This,name,cellno)

#define ImaList_AddCell(This,name,cell)	\
    (This)->lpVtbl -> AddCell(This,name,cell)

#define ImaList_FindCreateCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCreateCellno(This,name,cellno)

#define ImaList_FindCreateCell(This,name,cell)	\
    (This)->lpVtbl -> FindCreateCell(This,name,cell)

#define ImaList_CreateCells(This,cellno)	\
    (This)->lpVtbl -> CreateCells(This,cellno)

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

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaList_AddCellno_Proxy( 
    ImaList __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ int __RPC_FAR *cellno);


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


HRESULT STDMETHODCALLTYPE ImaList_AddCell_Proxy( 
    ImaList __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaList_FindCreateCellno_Proxy( 
    ImaList __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ int __RPC_FAR *cellno);


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


HRESULT STDMETHODCALLTYPE ImaList_FindCreateCell_Proxy( 
    ImaList __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaList_CreateCells_Proxy( 
    ImaList __RPC_FAR * This,
    /* [in] */ int cellno);


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


HRESULT STDMETHODCALLTYPE ImaList_Clear_Proxy( 
    ImaList __RPC_FAR * This);


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



#endif 	/* __ImaList_INTERFACE_DEFINED__ */


#ifndef __ImaReadList2_INTERFACE_DEFINED__
#define __ImaReadList2_INTERFACE_DEFINED__

/* interface ImaReadList2 */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaReadList2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("256EC45A-DB97-4013-B7BC-6F63E39BCCAA")
    ImaReadList2 : public ImaComponent
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ int __RPC_FAR *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindCellno( 
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCellName( 
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ValueToCell( 
            /* [in] */ int cellno,
            /* [in] */ ImaCell __RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ValueFromCell( 
            /* [in] */ int cellno,
            /* [in] */ ImaCell __RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetType( 
            /* [in] */ int cellno,
            /* [retval][out] */ maType __RPC_FAR *type) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IsEmpty( 
            /* [in] */ int cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsBoolean( 
            /* [in] */ int cellno,
            /* [retval][out] */ boolean __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsBoolean( 
            /* [in] */ int cellno,
            /* [in] */ boolean value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsLong( 
            /* [in] */ int cellno,
            /* [retval][out] */ int __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsLong( 
            /* [in] */ int cellno,
            /* [in] */ int value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsDouble( 
            /* [in] */ int cellno,
            /* [retval][out] */ double __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsDouble( 
            /* [in] */ int cellno,
            /* [in] */ double value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsString( 
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsString( 
            /* [in] */ int cellno,
            /* [string][in] */ maString value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsComponent( 
            /* [in] */ int cellno,
            /* [in] */ maType type,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsComponent( 
            /* [in] */ int cellno,
            /* [in] */ maType type,
            /* [in] */ ImaComponent __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsAnyComponent( 
            /* [in] */ int cellno,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsAnyComponent( 
            /* [in] */ int cellno,
            /* [in] */ ImaComponent __RPC_FAR *value) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaReadList2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaReadList2 __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaReadList2 __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaReadList2 __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaReadList2 __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaReadList2 __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCellno )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCellName )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ValueToCell )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ValueFromCell )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetType )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ maType __RPC_FAR *type);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsEmpty )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsBoolean )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ boolean __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsBoolean )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ boolean value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsLong )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsLong )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsDouble )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsDouble )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsString )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsString )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][in] */ maString value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsComponent )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ maType type,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsComponent )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ maType type,
            /* [in] */ ImaComponent __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsAnyComponent )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsAnyComponent )( 
            ImaReadList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ ImaComponent __RPC_FAR *value);
        
        END_INTERFACE
    } ImaReadList2Vtbl;

    interface ImaReadList2
    {
        CONST_VTBL struct ImaReadList2Vtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaReadList2_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaReadList2_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaReadList2_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaReadList2_GetSize(This,size)	\
    (This)->lpVtbl -> GetSize(This,size)

#define ImaReadList2_FindCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCellno(This,name,cellno)

#define ImaReadList2_GetCellName(This,cellno,name)	\
    (This)->lpVtbl -> GetCellName(This,cellno,name)

#define ImaReadList2_ValueToCell(This,cellno,cell)	\
    (This)->lpVtbl -> ValueToCell(This,cellno,cell)

#define ImaReadList2_ValueFromCell(This,cellno,cell)	\
    (This)->lpVtbl -> ValueFromCell(This,cellno,cell)

#define ImaReadList2_GetType(This,cellno,type)	\
    (This)->lpVtbl -> GetType(This,cellno,type)

#define ImaReadList2_IsEmpty(This,cellno)	\
    (This)->lpVtbl -> IsEmpty(This,cellno)

#define ImaReadList2_GetAsBoolean(This,cellno,value)	\
    (This)->lpVtbl -> GetAsBoolean(This,cellno,value)

#define ImaReadList2_SetAsBoolean(This,cellno,value)	\
    (This)->lpVtbl -> SetAsBoolean(This,cellno,value)

#define ImaReadList2_GetAsLong(This,cellno,value)	\
    (This)->lpVtbl -> GetAsLong(This,cellno,value)

#define ImaReadList2_SetAsLong(This,cellno,value)	\
    (This)->lpVtbl -> SetAsLong(This,cellno,value)

#define ImaReadList2_GetAsDouble(This,cellno,value)	\
    (This)->lpVtbl -> GetAsDouble(This,cellno,value)

#define ImaReadList2_SetAsDouble(This,cellno,value)	\
    (This)->lpVtbl -> SetAsDouble(This,cellno,value)

#define ImaReadList2_GetAsString(This,cellno,value)	\
    (This)->lpVtbl -> GetAsString(This,cellno,value)

#define ImaReadList2_SetAsString(This,cellno,value)	\
    (This)->lpVtbl -> SetAsString(This,cellno,value)

#define ImaReadList2_GetAsComponent(This,cellno,type,value)	\
    (This)->lpVtbl -> GetAsComponent(This,cellno,type,value)

#define ImaReadList2_SetAsComponent(This,cellno,type,value)	\
    (This)->lpVtbl -> SetAsComponent(This,cellno,type,value)

#define ImaReadList2_GetAsAnyComponent(This,cellno,value)	\
    (This)->lpVtbl -> GetAsAnyComponent(This,cellno,value)

#define ImaReadList2_SetAsAnyComponent(This,cellno,value)	\
    (This)->lpVtbl -> SetAsAnyComponent(This,cellno,value)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaReadList2_GetSize_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *size);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_FindCellno_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ maString name,
    /* [retval][out] */ int __RPC_FAR *cellno);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetCellName_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [string][retval][out] */ maString __RPC_FAR *name);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_ValueToCell_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ ImaCell __RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_ValueFromCell_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ ImaCell __RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetType_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [retval][out] */ maType __RPC_FAR *type);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_IsEmpty_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetAsBoolean_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [retval][out] */ boolean __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_SetAsBoolean_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ boolean value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetAsLong_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [retval][out] */ int __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_SetAsLong_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ int value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetAsDouble_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [retval][out] */ double __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_SetAsDouble_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ double value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetAsString_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [string][retval][out] */ maString __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_SetAsString_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [string][in] */ maString value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetAsComponent_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ maType type,
    /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_SetAsComponent_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ maType type,
    /* [in] */ ImaComponent __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_GetAsAnyComponent_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaReadList2_SetAsAnyComponent_Proxy( 
    ImaReadList2 __RPC_FAR * This,
    /* [in] */ int cellno,
    /* [in] */ ImaComponent __RPC_FAR *value);


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



#endif 	/* __ImaReadList2_INTERFACE_DEFINED__ */


#ifndef __ImaList2_INTERFACE_DEFINED__
#define __ImaList2_INTERFACE_DEFINED__

/* interface ImaList2 */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaList2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9DDD22D8-CE1A-413c-B094-4CB4F9212936")
    ImaList2 : public ImaReadList2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddCellno( 
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindCreateCellno( 
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateCells( 
            /* [in] */ int cellno) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaList2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaList2 __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaList2 __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaList2 __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaList2 __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaList2 __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCellno )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCellName )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ValueToCell )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ValueFromCell )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetType )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ maType __RPC_FAR *type);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsEmpty )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsBoolean )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ boolean __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsBoolean )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ boolean value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsLong )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsLong )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsDouble )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsDouble )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsString )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsString )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][in] */ maString value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsComponent )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ maType type,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsComponent )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ maType type,
            /* [in] */ ImaComponent __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsAnyComponent )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ ImaComponent __RPC_FAR *__RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsAnyComponent )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [in] */ ImaComponent __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clear )( 
            ImaList2 __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddCellno )( 
            ImaList2 __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCreateCellno )( 
            ImaList2 __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateCells )( 
            ImaList2 __RPC_FAR * This,
            /* [in] */ int cellno);
        
        END_INTERFACE
    } ImaList2Vtbl;

    interface ImaList2
    {
        CONST_VTBL struct ImaList2Vtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaList2_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaList2_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaList2_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaList2_GetSize(This,size)	\
    (This)->lpVtbl -> GetSize(This,size)

#define ImaList2_FindCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCellno(This,name,cellno)

#define ImaList2_GetCellName(This,cellno,name)	\
    (This)->lpVtbl -> GetCellName(This,cellno,name)

#define ImaList2_ValueToCell(This,cellno,cell)	\
    (This)->lpVtbl -> ValueToCell(This,cellno,cell)

#define ImaList2_ValueFromCell(This,cellno,cell)	\
    (This)->lpVtbl -> ValueFromCell(This,cellno,cell)

#define ImaList2_GetType(This,cellno,type)	\
    (This)->lpVtbl -> GetType(This,cellno,type)

#define ImaList2_IsEmpty(This,cellno)	\
    (This)->lpVtbl -> IsEmpty(This,cellno)

#define ImaList2_GetAsBoolean(This,cellno,value)	\
    (This)->lpVtbl -> GetAsBoolean(This,cellno,value)

#define ImaList2_SetAsBoolean(This,cellno,value)	\
    (This)->lpVtbl -> SetAsBoolean(This,cellno,value)

#define ImaList2_GetAsLong(This,cellno,value)	\
    (This)->lpVtbl -> GetAsLong(This,cellno,value)

#define ImaList2_SetAsLong(This,cellno,value)	\
    (This)->lpVtbl -> SetAsLong(This,cellno,value)

#define ImaList2_GetAsDouble(This,cellno,value)	\
    (This)->lpVtbl -> GetAsDouble(This,cellno,value)

#define ImaList2_SetAsDouble(This,cellno,value)	\
    (This)->lpVtbl -> SetAsDouble(This,cellno,value)

#define ImaList2_GetAsString(This,cellno,value)	\
    (This)->lpVtbl -> GetAsString(This,cellno,value)

#define ImaList2_SetAsString(This,cellno,value)	\
    (This)->lpVtbl -> SetAsString(This,cellno,value)

#define ImaList2_GetAsComponent(This,cellno,type,value)	\
    (This)->lpVtbl -> GetAsComponent(This,cellno,type,value)

#define ImaList2_SetAsComponent(This,cellno,type,value)	\
    (This)->lpVtbl -> SetAsComponent(This,cellno,type,value)

#define ImaList2_GetAsAnyComponent(This,cellno,value)	\
    (This)->lpVtbl -> GetAsAnyComponent(This,cellno,value)

#define ImaList2_SetAsAnyComponent(This,cellno,value)	\
    (This)->lpVtbl -> SetAsAnyComponent(This,cellno,value)


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

#define ImaList2_AddCellno(This,name,cellno)	\
    (This)->lpVtbl -> AddCellno(This,name,cellno)

#define ImaList2_FindCreateCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCreateCellno(This,name,cellno)

#define ImaList2_CreateCells(This,cellno)	\
    (This)->lpVtbl -> CreateCells(This,cellno)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaList2_Clear_Proxy( 
    ImaList2 __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaList2_AddCellno_Proxy( 
    ImaList2 __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ int __RPC_FAR *cellno);


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


HRESULT STDMETHODCALLTYPE ImaList2_FindCreateCellno_Proxy( 
    ImaList2 __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ int __RPC_FAR *cellno);


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


HRESULT STDMETHODCALLTYPE ImaList2_CreateCells_Proxy( 
    ImaList2 __RPC_FAR * This,
    /* [in] */ int cellno);


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



#endif 	/* __ImaList2_INTERFACE_DEFINED__ */


#ifndef __ImaMatrix_INTERFACE_DEFINED__
#define __ImaMatrix_INTERFACE_DEFINED__

/* interface ImaMatrix */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71105-DF5A-4BD6-93AD-51DF79B64FED")
    ImaMatrix : public ImaComponent
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetDim( 
            /* [retval][out] */ int __RPC_FAR *dim) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSize( 
            /* [in] */ int dimno,
            /* [retval][out] */ int __RPC_FAR *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetType( 
            /* [retval][out] */ maType __RPC_FAR *type) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCell( 
            /* [in] */ maIndex index,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCell( 
            /* [in] */ maIndex index,
            /* [in] */ ImaCell __RPC_FAR *cell) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsDouble( 
            /* [in] */ maIndex index,
            /* [retval][out] */ double __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsDouble( 
            /* [in] */ maIndex index,
            /* [in] */ double value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsString( 
            /* [in] */ maIndex index,
            /* [string][retval][out] */ maString __RPC_FAR *val) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsString( 
            /* [in] */ maIndex index,
            /* [string][in] */ maString value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAsLong( 
            /* [in] */ maIndex index,
            /* [retval][out] */ int __RPC_FAR *val) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAsLong( 
            /* [in] */ maIndex index,
            /* [in] */ int value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetEmpty( 
            /* [in] */ maIndex index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IsEmpty( 
            /* [in] */ maIndex index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetEmptyDoubleValue( 
            /* [in] */ double value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetEmptyStringValue( 
            /* [in] */ maString value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetEmptyLongValue( 
            /* [in] */ int value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetEmptyDoubleValue( 
            /* [retval][out] */ double __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetEmptyStringValue( 
            /* [retval][out] */ maString __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetEmptyLongValue( 
            /* [retval][out] */ int __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CacheMatrix( 
            /* [in] */ byte cacheMode,
            /* [in] */ ImaMatrix __RPC_FAR *source) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE StopCacheing( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Create( 
            /* [in] */ maIndex sizes) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateShared( 
            /* [in] */ maIndex sizes,
            /* [string][in] */ maString name,
            /* [in] */ int maxSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Resize( 
            /* [in] */ maIndex sizes) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateIter( 
            /* [retval][out] */ int __RPC_FAR *iterno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteIter( 
            /* [in] */ int iterno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FirstIter( 
            /* [in] */ int iterno,
            /* [out][in] */ maIndex __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NextIter( 
            /* [in] */ int iterno,
            /* [out][in] */ maIndex __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetIter( 
            /* [in] */ int iterno,
            /* [out][in] */ maIndex __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ShiftResize( 
            /* [in] */ maIndex newOrigin,
            /* [in] */ maIndex newSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetClippingSize( 
            /* [in] */ maIndex clipOrigin,
            /* [in] */ maIndex clipSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaMatrix __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaMatrix __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDim )( 
            ImaMatrix __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *dim);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ int dimno,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetType )( 
            ImaMatrix __RPC_FAR * This,
            /* [retval][out] */ maType __RPC_FAR *type);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCell )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCell )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsDouble )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsDouble )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsString )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [string][retval][out] */ maString __RPC_FAR *val);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsString )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [string][in] */ maString value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAsLong )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [retval][out] */ int __RPC_FAR *val);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAsLong )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEmpty )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsEmpty )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEmptyDoubleValue )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEmptyStringValue )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maString value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEmptyLongValue )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEmptyDoubleValue )( 
            ImaMatrix __RPC_FAR * This,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEmptyStringValue )( 
            ImaMatrix __RPC_FAR * This,
            /* [retval][out] */ maString __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEmptyLongValue )( 
            ImaMatrix __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clear )( 
            ImaMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CacheMatrix )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ byte cacheMode,
            /* [in] */ ImaMatrix __RPC_FAR *source);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Commit )( 
            ImaMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *StopCacheing )( 
            ImaMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Create )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex sizes);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateShared )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex sizes,
            /* [string][in] */ maString name,
            /* [in] */ int maxSize);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Resize )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex sizes);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateIter )( 
            ImaMatrix __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *iterno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteIter )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ int iterno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FirstIter )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ int iterno,
            /* [out][in] */ maIndex __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NextIter )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ int iterno,
            /* [out][in] */ maIndex __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIter )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ int iterno,
            /* [out][in] */ maIndex __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ShiftResize )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex newOrigin,
            /* [in] */ maIndex newSize);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetClippingSize )( 
            ImaMatrix __RPC_FAR * This,
            /* [in] */ maIndex clipOrigin,
            /* [in] */ maIndex clipSize);
        
        END_INTERFACE
    } ImaMatrixVtbl;

    interface ImaMatrix
    {
        CONST_VTBL struct ImaMatrixVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaMatrix_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaMatrix_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaMatrix_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaMatrix_GetDim(This,dim)	\
    (This)->lpVtbl -> GetDim(This,dim)

#define ImaMatrix_GetSize(This,dimno,size)	\
    (This)->lpVtbl -> GetSize(This,dimno,size)

#define ImaMatrix_GetType(This,type)	\
    (This)->lpVtbl -> GetType(This,type)

#define ImaMatrix_GetCell(This,index,cell)	\
    (This)->lpVtbl -> GetCell(This,index,cell)

#define ImaMatrix_SetCell(This,index,cell)	\
    (This)->lpVtbl -> SetCell(This,index,cell)

#define ImaMatrix_GetAsDouble(This,index,value)	\
    (This)->lpVtbl -> GetAsDouble(This,index,value)

#define ImaMatrix_SetAsDouble(This,index,value)	\
    (This)->lpVtbl -> SetAsDouble(This,index,value)

#define ImaMatrix_GetAsString(This,index,val)	\
    (This)->lpVtbl -> GetAsString(This,index,val)

#define ImaMatrix_SetAsString(This,index,value)	\
    (This)->lpVtbl -> SetAsString(This,index,value)

#define ImaMatrix_GetAsLong(This,index,val)	\
    (This)->lpVtbl -> GetAsLong(This,index,val)

#define ImaMatrix_SetAsLong(This,index,value)	\
    (This)->lpVtbl -> SetAsLong(This,index,value)

#define ImaMatrix_SetEmpty(This,index)	\
    (This)->lpVtbl -> SetEmpty(This,index)

#define ImaMatrix_IsEmpty(This,index)	\
    (This)->lpVtbl -> IsEmpty(This,index)

#define ImaMatrix_SetEmptyDoubleValue(This,value)	\
    (This)->lpVtbl -> SetEmptyDoubleValue(This,value)

#define ImaMatrix_SetEmptyStringValue(This,value)	\
    (This)->lpVtbl -> SetEmptyStringValue(This,value)

#define ImaMatrix_SetEmptyLongValue(This,value)	\
    (This)->lpVtbl -> SetEmptyLongValue(This,value)

#define ImaMatrix_GetEmptyDoubleValue(This,value)	\
    (This)->lpVtbl -> GetEmptyDoubleValue(This,value)

#define ImaMatrix_GetEmptyStringValue(This,value)	\
    (This)->lpVtbl -> GetEmptyStringValue(This,value)

#define ImaMatrix_GetEmptyLongValue(This,value)	\
    (This)->lpVtbl -> GetEmptyLongValue(This,value)

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

#define ImaMatrix_CacheMatrix(This,cacheMode,source)	\
    (This)->lpVtbl -> CacheMatrix(This,cacheMode,source)

#define ImaMatrix_Commit(This)	\
    (This)->lpVtbl -> Commit(This)

#define ImaMatrix_StopCacheing(This)	\
    (This)->lpVtbl -> StopCacheing(This)

#define ImaMatrix_Create(This,sizes)	\
    (This)->lpVtbl -> Create(This,sizes)

#define ImaMatrix_CreateShared(This,sizes,name,maxSize)	\
    (This)->lpVtbl -> CreateShared(This,sizes,name,maxSize)

#define ImaMatrix_Resize(This,sizes)	\
    (This)->lpVtbl -> Resize(This,sizes)

#define ImaMatrix_CreateIter(This,iterno)	\
    (This)->lpVtbl -> CreateIter(This,iterno)

#define ImaMatrix_DeleteIter(This,iterno)	\
    (This)->lpVtbl -> DeleteIter(This,iterno)

#define ImaMatrix_FirstIter(This,iterno,index)	\
    (This)->lpVtbl -> FirstIter(This,iterno,index)

#define ImaMatrix_NextIter(This,iterno,index)	\
    (This)->lpVtbl -> NextIter(This,iterno,index)

#define ImaMatrix_GetIter(This,iterno,index)	\
    (This)->lpVtbl -> GetIter(This,iterno,index)

#define ImaMatrix_ShiftResize(This,newOrigin,newSize)	\
    (This)->lpVtbl -> ShiftResize(This,newOrigin,newSize)

#define ImaMatrix_SetClippingSize(This,clipOrigin,clipSize)	\
    (This)->lpVtbl -> SetClippingSize(This,clipOrigin,clipSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaMatrix_GetDim_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *dim);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetSize_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ int dimno,
    /* [retval][out] */ int __RPC_FAR *size);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetType_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [retval][out] */ maType __RPC_FAR *type);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetCell_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetCell_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [in] */ ImaCell __RPC_FAR *cell);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetAsDouble_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [retval][out] */ double __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetAsDouble_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [in] */ double value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetAsString_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [string][retval][out] */ maString __RPC_FAR *val);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetAsString_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [string][in] */ maString value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetAsLong_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [retval][out] */ int __RPC_FAR *val);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetAsLong_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index,
    /* [in] */ int value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetEmpty_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_IsEmpty_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex index);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetEmptyDoubleValue_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ double value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetEmptyStringValue_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maString value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetEmptyLongValue_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ int value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetEmptyDoubleValue_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [retval][out] */ double __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetEmptyStringValue_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [retval][out] */ maString __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetEmptyLongValue_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_Clear_Proxy( 
    ImaMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_CacheMatrix_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ byte cacheMode,
    /* [in] */ ImaMatrix __RPC_FAR *source);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_Commit_Proxy( 
    ImaMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_StopCacheing_Proxy( 
    ImaMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_Create_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex sizes);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_CreateShared_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex sizes,
    /* [string][in] */ maString name,
    /* [in] */ int maxSize);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_Resize_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex sizes);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_CreateIter_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *iterno);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_DeleteIter_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ int iterno);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_FirstIter_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ int iterno,
    /* [out][in] */ maIndex __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_NextIter_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ int iterno,
    /* [out][in] */ maIndex __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_GetIter_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ int iterno,
    /* [out][in] */ maIndex __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_ShiftResize_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex newOrigin,
    /* [in] */ maIndex newSize);


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


HRESULT STDMETHODCALLTYPE ImaMatrix_SetClippingSize_Proxy( 
    ImaMatrix __RPC_FAR * This,
    /* [in] */ maIndex clipOrigin,
    /* [in] */ maIndex clipSize);


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



#endif 	/* __ImaMatrix_INTERFACE_DEFINED__ */


#ifndef __ImaMatrixFactory_INTERFACE_DEFINED__
#define __ImaMatrixFactory_INTERFACE_DEFINED__

/* interface ImaMatrixFactory */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaMatrixFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1212EF81-7AF6-400f-B763-D8B2270A4C5B")
    ImaMatrixFactory : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Create( 
            /* [in] */ maType type,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *intf) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaMatrixFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaMatrixFactory __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaMatrixFactory __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaMatrixFactory __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Create )( 
            ImaMatrixFactory __RPC_FAR * This,
            /* [in] */ maType type,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *intf);
        
        END_INTERFACE
    } ImaMatrixFactoryVtbl;

    interface ImaMatrixFactory
    {
        CONST_VTBL struct ImaMatrixFactoryVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaMatrixFactory_Create(This,type,intf)	\
    (This)->lpVtbl -> Create(This,type,intf)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaMatrixFactory_Create_Proxy( 
    ImaMatrixFactory __RPC_FAR * This,
    /* [in] */ maType type,
    /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *intf);


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



#endif 	/* __ImaMatrixFactory_INTERFACE_DEFINED__ */


#ifndef __ImaSubMatrix_INTERFACE_DEFINED__
#define __ImaSubMatrix_INTERFACE_DEFINED__

/* interface ImaSubMatrix */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaSubMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E3618A31-E1A0-4cfb-BC97-3E5F4270169D")
    ImaSubMatrix : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetParent( 
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *par) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetParent( 
            /* [in] */ ImaMatrix __RPC_FAR *par) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDim( 
            /* [in] */ int parentDim,
            /* [in] */ int dim,
            /* [in] */ int size,
            /* [in] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FixDim( 
            /* [in] */ int parentDim,
            /* [in] */ int index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ClearStructure( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE VerifyStructure( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetIdentityDim( 
            /* [in] */ int dim) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDimBool( 
            /* [in] */ int parentDim,
            /* [in] */ int dim,
            /* [in] */ boolean __RPC_FAR *index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaSubMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaSubMatrix __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaSubMatrix __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaSubMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetParent )( 
            ImaSubMatrix __RPC_FAR * This,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *par);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetParent )( 
            ImaSubMatrix __RPC_FAR * This,
            /* [in] */ ImaMatrix __RPC_FAR *par);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetDim )( 
            ImaSubMatrix __RPC_FAR * This,
            /* [in] */ int parentDim,
            /* [in] */ int dim,
            /* [in] */ int size,
            /* [in] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FixDim )( 
            ImaSubMatrix __RPC_FAR * This,
            /* [in] */ int parentDim,
            /* [in] */ int index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClearStructure )( 
            ImaSubMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *VerifyStructure )( 
            ImaSubMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetIdentityDim )( 
            ImaSubMatrix __RPC_FAR * This,
            /* [in] */ int dim);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetDimBool )( 
            ImaSubMatrix __RPC_FAR * This,
            /* [in] */ int parentDim,
            /* [in] */ int dim,
            /* [in] */ boolean __RPC_FAR *index);
        
        END_INTERFACE
    } ImaSubMatrixVtbl;

    interface ImaSubMatrix
    {
        CONST_VTBL struct ImaSubMatrixVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaSubMatrix_GetParent(This,par)	\
    (This)->lpVtbl -> GetParent(This,par)

#define ImaSubMatrix_SetParent(This,par)	\
    (This)->lpVtbl -> SetParent(This,par)

#define ImaSubMatrix_SetDim(This,parentDim,dim,size,index)	\
    (This)->lpVtbl -> SetDim(This,parentDim,dim,size,index)

#define ImaSubMatrix_FixDim(This,parentDim,index)	\
    (This)->lpVtbl -> FixDim(This,parentDim,index)

#define ImaSubMatrix_ClearStructure(This)	\
    (This)->lpVtbl -> ClearStructure(This)

#define ImaSubMatrix_VerifyStructure(This)	\
    (This)->lpVtbl -> VerifyStructure(This)

#define ImaSubMatrix_SetIdentityDim(This,dim)	\
    (This)->lpVtbl -> SetIdentityDim(This,dim)

#define ImaSubMatrix_SetDimBool(This,parentDim,dim,index)	\
    (This)->lpVtbl -> SetDimBool(This,parentDim,dim,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaSubMatrix_GetParent_Proxy( 
    ImaSubMatrix __RPC_FAR * This,
    /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *par);


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


HRESULT STDMETHODCALLTYPE ImaSubMatrix_SetParent_Proxy( 
    ImaSubMatrix __RPC_FAR * This,
    /* [in] */ ImaMatrix __RPC_FAR *par);


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


HRESULT STDMETHODCALLTYPE ImaSubMatrix_SetDim_Proxy( 
    ImaSubMatrix __RPC_FAR * This,
    /* [in] */ int parentDim,
    /* [in] */ int dim,
    /* [in] */ int size,
    /* [in] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSubMatrix_FixDim_Proxy( 
    ImaSubMatrix __RPC_FAR * This,
    /* [in] */ int parentDim,
    /* [in] */ int index);


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


HRESULT STDMETHODCALLTYPE ImaSubMatrix_ClearStructure_Proxy( 
    ImaSubMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaSubMatrix_VerifyStructure_Proxy( 
    ImaSubMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaSubMatrix_SetIdentityDim_Proxy( 
    ImaSubMatrix __RPC_FAR * This,
    /* [in] */ int dim);


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


HRESULT STDMETHODCALLTYPE ImaSubMatrix_SetDimBool_Proxy( 
    ImaSubMatrix __RPC_FAR * This,
    /* [in] */ int parentDim,
    /* [in] */ int dim,
    /* [in] */ boolean __RPC_FAR *index);


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



#endif 	/* __ImaSubMatrix_INTERFACE_DEFINED__ */


#ifndef __ImaCompositeMatrix_INTERFACE_DEFINED__
#define __ImaCompositeMatrix_INTERFACE_DEFINED__

/* interface ImaCompositeMatrix */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaCompositeMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C4DF9783-43EA-4607-8775-2870F4ABB107")
    ImaCompositeMatrix : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PutMatrix( 
            /* [in] */ maIndex startPos,
            /* [in] */ ImaMatrix __RPC_FAR *mat) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMatrixAtPos( 
            /* [in] */ maIndex pos,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *mat) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPosType( 
            /* [in] */ maIndex pos,
            /* [retval][out] */ maType __RPC_FAR *type) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MatrixCount( 
            /* [retval][out] */ int __RPC_FAR *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMatrix( 
            /* [in] */ int no,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *mat) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteMatrix( 
            /* [in] */ ImaMatrix __RPC_FAR *mat) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteMatrixno( 
            /* [in] */ int no) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaCompositeMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaCompositeMatrix __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaCompositeMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PutMatrix )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [in] */ maIndex startPos,
            /* [in] */ ImaMatrix __RPC_FAR *mat);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMatrixAtPos )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [in] */ maIndex pos,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *mat);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetPosType )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [in] */ maIndex pos,
            /* [retval][out] */ maType __RPC_FAR *type);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MatrixCount )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *count);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMatrix )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [in] */ int no,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *mat);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteMatrix )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [in] */ ImaMatrix __RPC_FAR *mat);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteMatrixno )( 
            ImaCompositeMatrix __RPC_FAR * This,
            /* [in] */ int no);
        
        END_INTERFACE
    } ImaCompositeMatrixVtbl;

    interface ImaCompositeMatrix
    {
        CONST_VTBL struct ImaCompositeMatrixVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaCompositeMatrix_PutMatrix(This,startPos,mat)	\
    (This)->lpVtbl -> PutMatrix(This,startPos,mat)

#define ImaCompositeMatrix_GetMatrixAtPos(This,pos,mat)	\
    (This)->lpVtbl -> GetMatrixAtPos(This,pos,mat)

#define ImaCompositeMatrix_GetPosType(This,pos,type)	\
    (This)->lpVtbl -> GetPosType(This,pos,type)

#define ImaCompositeMatrix_MatrixCount(This,count)	\
    (This)->lpVtbl -> MatrixCount(This,count)

#define ImaCompositeMatrix_GetMatrix(This,no,mat)	\
    (This)->lpVtbl -> GetMatrix(This,no,mat)

#define ImaCompositeMatrix_DeleteMatrix(This,mat)	\
    (This)->lpVtbl -> DeleteMatrix(This,mat)

#define ImaCompositeMatrix_DeleteMatrixno(This,no)	\
    (This)->lpVtbl -> DeleteMatrixno(This,no)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaCompositeMatrix_PutMatrix_Proxy( 
    ImaCompositeMatrix __RPC_FAR * This,
    /* [in] */ maIndex startPos,
    /* [in] */ ImaMatrix __RPC_FAR *mat);


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


HRESULT STDMETHODCALLTYPE ImaCompositeMatrix_GetMatrixAtPos_Proxy( 
    ImaCompositeMatrix __RPC_FAR * This,
    /* [in] */ maIndex pos,
    /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *mat);


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


HRESULT STDMETHODCALLTYPE ImaCompositeMatrix_GetPosType_Proxy( 
    ImaCompositeMatrix __RPC_FAR * This,
    /* [in] */ maIndex pos,
    /* [retval][out] */ maType __RPC_FAR *type);


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


HRESULT STDMETHODCALLTYPE ImaCompositeMatrix_MatrixCount_Proxy( 
    ImaCompositeMatrix __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *count);


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


HRESULT STDMETHODCALLTYPE ImaCompositeMatrix_GetMatrix_Proxy( 
    ImaCompositeMatrix __RPC_FAR * This,
    /* [in] */ int no,
    /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *mat);


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


HRESULT STDMETHODCALLTYPE ImaCompositeMatrix_DeleteMatrix_Proxy( 
    ImaCompositeMatrix __RPC_FAR * This,
    /* [in] */ ImaMatrix __RPC_FAR *mat);


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


HRESULT STDMETHODCALLTYPE ImaCompositeMatrix_DeleteMatrixno_Proxy( 
    ImaCompositeMatrix __RPC_FAR * This,
    /* [in] */ int no);


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



#endif 	/* __ImaCompositeMatrix_INTERFACE_DEFINED__ */


#ifndef __ImaEvalMatrix_INTERFACE_DEFINED__
#define __ImaEvalMatrix_INTERFACE_DEFINED__

/* interface ImaEvalMatrix */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaEvalMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A69C1096-C1B8-488c-80E4-832245CB5219")
    ImaEvalMatrix : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetEvalMethod( 
            /* [in] */ ImaMethodDef __RPC_FAR *evaldef,
            /* [in] */ int argno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetEvalMethod( 
            /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *evaldef) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaEvalMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaEvalMatrix __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaEvalMatrix __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaEvalMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEvalMethod )( 
            ImaEvalMatrix __RPC_FAR * This,
            /* [in] */ ImaMethodDef __RPC_FAR *evaldef,
            /* [in] */ int argno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEvalMethod )( 
            ImaEvalMatrix __RPC_FAR * This,
            /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *evaldef);
        
        END_INTERFACE
    } ImaEvalMatrixVtbl;

    interface ImaEvalMatrix
    {
        CONST_VTBL struct ImaEvalMatrixVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaEvalMatrix_SetEvalMethod(This,evaldef,argno)	\
    (This)->lpVtbl -> SetEvalMethod(This,evaldef,argno)

#define ImaEvalMatrix_GetEvalMethod(This,evaldef)	\
    (This)->lpVtbl -> GetEvalMethod(This,evaldef)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaEvalMatrix_SetEvalMethod_Proxy( 
    ImaEvalMatrix __RPC_FAR * This,
    /* [in] */ ImaMethodDef __RPC_FAR *evaldef,
    /* [in] */ int argno);


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


HRESULT STDMETHODCALLTYPE ImaEvalMatrix_GetEvalMethod_Proxy( 
    ImaEvalMatrix __RPC_FAR * This,
    /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *evaldef);


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



#endif 	/* __ImaEvalMatrix_INTERFACE_DEFINED__ */


#ifndef __ImaSparseMatrix_INTERFACE_DEFINED__
#define __ImaSparseMatrix_INTERFACE_DEFINED__

/* interface ImaSparseMatrix */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaSparseMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3DC57674-BB47-4226-8AFC-DCE4FA15EBF3")
    ImaSparseMatrix : public ImaComponent
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ int i,
            /* [in] */ int j,
            /* [in] */ double val) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateIndex( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteIndex( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ElemCount( 
            /* [retval][out] */ int __RPC_FAR *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Elem( 
            /* [in] */ int i,
            /* [retval][out] */ double __RPC_FAR *elem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ElemIndex( 
            /* [in] */ int i,
            /* [in] */ int dim,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ElemNo( 
            /* [in] */ int i,
            /* [in] */ int dim,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Rows( 
            /* [retval][out] */ int __RPC_FAR *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RowSize( 
            /* [in] */ int row,
            /* [retval][out] */ int __RPC_FAR *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Row( 
            /* [in] */ int row,
            /* [in] */ int i,
            /* [retval][out] */ double __RPC_FAR *elem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RowIndex( 
            /* [in] */ int row,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RowElemIndex( 
            /* [in] */ int row,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RowElemNo( 
            /* [in] */ int row,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Cols( 
            /* [retval][out] */ int __RPC_FAR *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ColSize( 
            /* [in] */ int col,
            /* [retval][out] */ int __RPC_FAR *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Col( 
            /* [in] */ int col,
            /* [in] */ int i,
            /* [retval][out] */ double __RPC_FAR *elem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ColIndex( 
            /* [in] */ int col,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ColElemIndex( 
            /* [in] */ int col,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ColElemNo( 
            /* [in] */ int col,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaSparseMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaSparseMatrix __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaSparseMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaSparseMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clear )( 
            ImaSparseMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Add )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int i,
            /* [in] */ int j,
            /* [in] */ double val);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateIndex )( 
            ImaSparseMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteIndex )( 
            ImaSparseMatrix __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ElemCount )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *count);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Elem )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int i,
            /* [retval][out] */ double __RPC_FAR *elem);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ElemIndex )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int i,
            /* [in] */ int dim,
            /* [retval][out] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ElemNo )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int i,
            /* [in] */ int dim,
            /* [retval][out] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Rows )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RowSize )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int row,
            /* [retval][out] */ int __RPC_FAR *count);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Row )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int row,
            /* [in] */ int i,
            /* [retval][out] */ double __RPC_FAR *elem);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RowIndex )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int row,
            /* [retval][out] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RowElemIndex )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int row,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RowElemNo )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int row,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Cols )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ColSize )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int col,
            /* [retval][out] */ int __RPC_FAR *count);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Col )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int col,
            /* [in] */ int i,
            /* [retval][out] */ double __RPC_FAR *elem);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ColIndex )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int col,
            /* [retval][out] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ColElemIndex )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int col,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ColElemNo )( 
            ImaSparseMatrix __RPC_FAR * This,
            /* [in] */ int col,
            /* [in] */ int i,
            /* [retval][out] */ int __RPC_FAR *index);
        
        END_INTERFACE
    } ImaSparseMatrixVtbl;

    interface ImaSparseMatrix
    {
        CONST_VTBL struct ImaSparseMatrixVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaSparseMatrix_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaSparseMatrix_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaSparseMatrix_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


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

#define ImaSparseMatrix_Add(This,i,j,val)	\
    (This)->lpVtbl -> Add(This,i,j,val)

#define ImaSparseMatrix_CreateIndex(This)	\
    (This)->lpVtbl -> CreateIndex(This)

#define ImaSparseMatrix_DeleteIndex(This)	\
    (This)->lpVtbl -> DeleteIndex(This)

#define ImaSparseMatrix_ElemCount(This,count)	\
    (This)->lpVtbl -> ElemCount(This,count)

#define ImaSparseMatrix_Elem(This,i,elem)	\
    (This)->lpVtbl -> Elem(This,i,elem)

#define ImaSparseMatrix_ElemIndex(This,i,dim,index)	\
    (This)->lpVtbl -> ElemIndex(This,i,dim,index)

#define ImaSparseMatrix_ElemNo(This,i,dim,index)	\
    (This)->lpVtbl -> ElemNo(This,i,dim,index)

#define ImaSparseMatrix_Rows(This,size)	\
    (This)->lpVtbl -> Rows(This,size)

#define ImaSparseMatrix_RowSize(This,row,count)	\
    (This)->lpVtbl -> RowSize(This,row,count)

#define ImaSparseMatrix_Row(This,row,i,elem)	\
    (This)->lpVtbl -> Row(This,row,i,elem)

#define ImaSparseMatrix_RowIndex(This,row,index)	\
    (This)->lpVtbl -> RowIndex(This,row,index)

#define ImaSparseMatrix_RowElemIndex(This,row,i,index)	\
    (This)->lpVtbl -> RowElemIndex(This,row,i,index)

#define ImaSparseMatrix_RowElemNo(This,row,i,index)	\
    (This)->lpVtbl -> RowElemNo(This,row,i,index)

#define ImaSparseMatrix_Cols(This,size)	\
    (This)->lpVtbl -> Cols(This,size)

#define ImaSparseMatrix_ColSize(This,col,count)	\
    (This)->lpVtbl -> ColSize(This,col,count)

#define ImaSparseMatrix_Col(This,col,i,elem)	\
    (This)->lpVtbl -> Col(This,col,i,elem)

#define ImaSparseMatrix_ColIndex(This,col,index)	\
    (This)->lpVtbl -> ColIndex(This,col,index)

#define ImaSparseMatrix_ColElemIndex(This,col,i,index)	\
    (This)->lpVtbl -> ColElemIndex(This,col,i,index)

#define ImaSparseMatrix_ColElemNo(This,col,i,index)	\
    (This)->lpVtbl -> ColElemNo(This,col,i,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaSparseMatrix_Clear_Proxy( 
    ImaSparseMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_Add_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int i,
    /* [in] */ int j,
    /* [in] */ double val);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_CreateIndex_Proxy( 
    ImaSparseMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_DeleteIndex_Proxy( 
    ImaSparseMatrix __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_ElemCount_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *count);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_Elem_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int i,
    /* [retval][out] */ double __RPC_FAR *elem);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_ElemIndex_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int i,
    /* [in] */ int dim,
    /* [retval][out] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_ElemNo_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int i,
    /* [in] */ int dim,
    /* [retval][out] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_Rows_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *size);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_RowSize_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int row,
    /* [retval][out] */ int __RPC_FAR *count);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_Row_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int row,
    /* [in] */ int i,
    /* [retval][out] */ double __RPC_FAR *elem);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_RowIndex_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int row,
    /* [retval][out] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_RowElemIndex_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int row,
    /* [in] */ int i,
    /* [retval][out] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_RowElemNo_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int row,
    /* [in] */ int i,
    /* [retval][out] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_Cols_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *size);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_ColSize_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int col,
    /* [retval][out] */ int __RPC_FAR *count);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_Col_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int col,
    /* [in] */ int i,
    /* [retval][out] */ double __RPC_FAR *elem);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_ColIndex_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int col,
    /* [retval][out] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_ColElemIndex_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int col,
    /* [in] */ int i,
    /* [retval][out] */ int __RPC_FAR *index);


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


HRESULT STDMETHODCALLTYPE ImaSparseMatrix_ColElemNo_Proxy( 
    ImaSparseMatrix __RPC_FAR * This,
    /* [in] */ int col,
    /* [in] */ int i,
    /* [retval][out] */ int __RPC_FAR *index);


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



#endif 	/* __ImaSparseMatrix_INTERFACE_DEFINED__ */


#ifndef __ImaStream_INTERFACE_DEFINED__
#define __ImaStream_INTERFACE_DEFINED__

/* interface ImaStream */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71108-DF5A-4BD6-93AD-51DF79B64FED")
    ImaStream : public ImaComponent
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Open( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetOptions( 
            /* [out][in] */ maStreamOptions __RPC_FAR *opt) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PushOptions( 
            /* [in] */ maStreamOptions __RPC_FAR *opt) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PopOptions( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PushConversionStrings( 
            /* [in] */ maConvertStrings __RPC_FAR *cs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NewLine( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WriteStr( 
            /* [string][in] */ maString str) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReadStr( 
            /* [string][retval][out] */ maString __RPC_FAR *str) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WriteLong( 
            /* [in] */ int value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReadLong( 
            /* [retval][out] */ int __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WriteDouble( 
            /* [in] */ double value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReadDouble( 
            /* [retval][out] */ double __RPC_FAR *value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WriteBlock( 
            /* [in] */ int length,
            /* [size_is][in] */ byte __RPC_FAR *ptr) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReadBlock( 
            /* [in] */ int length,
            /* [size_is][out][in] */ byte __RPC_FAR *ptr) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WriteComponent( 
            /* [in] */ ImaComponent __RPC_FAR *comp) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReadComponent( 
            /* [out][in] */ ImaComponent __RPC_FAR *__RPC_FAR *comp) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NewField( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaStream __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaStream __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Open )( 
            ImaStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Close )( 
            ImaStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Flush )( 
            ImaStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOptions )( 
            ImaStream __RPC_FAR * This,
            /* [out][in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushOptions )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PopOptions )( 
            ImaStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushConversionStrings )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ maConvertStrings __RPC_FAR *cs);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewLine )( 
            ImaStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteStr )( 
            ImaStream __RPC_FAR * This,
            /* [string][in] */ maString str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadStr )( 
            ImaStream __RPC_FAR * This,
            /* [string][retval][out] */ maString __RPC_FAR *str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteLong )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadLong )( 
            ImaStream __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteDouble )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadDouble )( 
            ImaStream __RPC_FAR * This,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteBlock )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadBlock )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][out][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteComponent )( 
            ImaStream __RPC_FAR * This,
            /* [in] */ ImaComponent __RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadComponent )( 
            ImaStream __RPC_FAR * This,
            /* [out][in] */ ImaComponent __RPC_FAR *__RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewField )( 
            ImaStream __RPC_FAR * This);
        
        END_INTERFACE
    } ImaStreamVtbl;

    interface ImaStream
    {
        CONST_VTBL struct ImaStreamVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaStream_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaStream_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaStream_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaStream_Open(This)	\
    (This)->lpVtbl -> Open(This)

#define ImaStream_Close(This)	\
    (This)->lpVtbl -> Close(This)

#define ImaStream_Flush(This)	\
    (This)->lpVtbl -> Flush(This)

#define ImaStream_GetOptions(This,opt)	\
    (This)->lpVtbl -> GetOptions(This,opt)

#define ImaStream_PushOptions(This,opt)	\
    (This)->lpVtbl -> PushOptions(This,opt)

#define ImaStream_PopOptions(This)	\
    (This)->lpVtbl -> PopOptions(This)

#define ImaStream_PushConversionStrings(This,cs)	\
    (This)->lpVtbl -> PushConversionStrings(This,cs)

#define ImaStream_NewLine(This)	\
    (This)->lpVtbl -> NewLine(This)

#define ImaStream_WriteStr(This,str)	\
    (This)->lpVtbl -> WriteStr(This,str)

#define ImaStream_ReadStr(This,str)	\
    (This)->lpVtbl -> ReadStr(This,str)

#define ImaStream_WriteLong(This,value)	\
    (This)->lpVtbl -> WriteLong(This,value)

#define ImaStream_ReadLong(This,value)	\
    (This)->lpVtbl -> ReadLong(This,value)

#define ImaStream_WriteDouble(This,value)	\
    (This)->lpVtbl -> WriteDouble(This,value)

#define ImaStream_ReadDouble(This,value)	\
    (This)->lpVtbl -> ReadDouble(This,value)

#define ImaStream_WriteBlock(This,length,ptr)	\
    (This)->lpVtbl -> WriteBlock(This,length,ptr)

#define ImaStream_ReadBlock(This,length,ptr)	\
    (This)->lpVtbl -> ReadBlock(This,length,ptr)

#define ImaStream_WriteComponent(This,comp)	\
    (This)->lpVtbl -> WriteComponent(This,comp)

#define ImaStream_ReadComponent(This,comp)	\
    (This)->lpVtbl -> ReadComponent(This,comp)

#define ImaStream_NewField(This)	\
    (This)->lpVtbl -> NewField(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaStream_Open_Proxy( 
    ImaStream __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaStream_Close_Proxy( 
    ImaStream __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaStream_Flush_Proxy( 
    ImaStream __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaStream_GetOptions_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [out][in] */ maStreamOptions __RPC_FAR *opt);


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


HRESULT STDMETHODCALLTYPE ImaStream_PushOptions_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [in] */ maStreamOptions __RPC_FAR *opt);


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


HRESULT STDMETHODCALLTYPE ImaStream_PopOptions_Proxy( 
    ImaStream __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaStream_PushConversionStrings_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [in] */ maConvertStrings __RPC_FAR *cs);


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


HRESULT STDMETHODCALLTYPE ImaStream_NewLine_Proxy( 
    ImaStream __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaStream_WriteStr_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [string][in] */ maString str);


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


HRESULT STDMETHODCALLTYPE ImaStream_ReadStr_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [string][retval][out] */ maString __RPC_FAR *str);


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


HRESULT STDMETHODCALLTYPE ImaStream_WriteLong_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [in] */ int value);


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


HRESULT STDMETHODCALLTYPE ImaStream_ReadLong_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaStream_WriteDouble_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [in] */ double value);


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


HRESULT STDMETHODCALLTYPE ImaStream_ReadDouble_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [retval][out] */ double __RPC_FAR *value);


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


HRESULT STDMETHODCALLTYPE ImaStream_WriteBlock_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [in] */ int length,
    /* [size_is][in] */ byte __RPC_FAR *ptr);


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


HRESULT STDMETHODCALLTYPE ImaStream_ReadBlock_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [in] */ int length,
    /* [size_is][out][in] */ byte __RPC_FAR *ptr);


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


HRESULT STDMETHODCALLTYPE ImaStream_WriteComponent_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [in] */ ImaComponent __RPC_FAR *comp);


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


HRESULT STDMETHODCALLTYPE ImaStream_ReadComponent_Proxy( 
    ImaStream __RPC_FAR * This,
    /* [out][in] */ ImaComponent __RPC_FAR *__RPC_FAR *comp);


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


HRESULT STDMETHODCALLTYPE ImaStream_NewField_Proxy( 
    ImaStream __RPC_FAR * This);


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



#endif 	/* __ImaStream_INTERFACE_DEFINED__ */


#ifndef __ImaSupportsStreaming_INTERFACE_DEFINED__
#define __ImaSupportsStreaming_INTERFACE_DEFINED__

/* interface ImaSupportsStreaming */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaSupportsStreaming;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE71109-DF5A-4BD6-93AD-51DF79B64FED")
    ImaSupportsStreaming : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE ReadFromStream( 
            /* [in] */ ImaStream __RPC_FAR *stream,
            /* [in] */ maStreamOptions opt,
            /* [in] */ maString extra) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WriteToStream( 
            /* [in] */ ImaStream __RPC_FAR *stream,
            /* [in] */ maStreamOptions opt) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetExtraInfo( 
            /* [retval][out] */ maString __RPC_FAR *extra) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaSupportsStreamingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaSupportsStreaming __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaSupportsStreaming __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaSupportsStreaming __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadFromStream )( 
            ImaSupportsStreaming __RPC_FAR * This,
            /* [in] */ ImaStream __RPC_FAR *stream,
            /* [in] */ maStreamOptions opt,
            /* [in] */ maString extra);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteToStream )( 
            ImaSupportsStreaming __RPC_FAR * This,
            /* [in] */ ImaStream __RPC_FAR *stream,
            /* [in] */ maStreamOptions opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetExtraInfo )( 
            ImaSupportsStreaming __RPC_FAR * This,
            /* [retval][out] */ maString __RPC_FAR *extra);
        
        END_INTERFACE
    } ImaSupportsStreamingVtbl;

    interface ImaSupportsStreaming
    {
        CONST_VTBL struct ImaSupportsStreamingVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaSupportsStreaming_ReadFromStream(This,stream,opt,extra)	\
    (This)->lpVtbl -> ReadFromStream(This,stream,opt,extra)

#define ImaSupportsStreaming_WriteToStream(This,stream,opt)	\
    (This)->lpVtbl -> WriteToStream(This,stream,opt)

#define ImaSupportsStreaming_GetExtraInfo(This,extra)	\
    (This)->lpVtbl -> GetExtraInfo(This,extra)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaSupportsStreaming_ReadFromStream_Proxy( 
    ImaSupportsStreaming __RPC_FAR * This,
    /* [in] */ ImaStream __RPC_FAR *stream,
    /* [in] */ maStreamOptions opt,
    /* [in] */ maString extra);


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


HRESULT STDMETHODCALLTYPE ImaSupportsStreaming_WriteToStream_Proxy( 
    ImaSupportsStreaming __RPC_FAR * This,
    /* [in] */ ImaStream __RPC_FAR *stream,
    /* [in] */ maStreamOptions opt);


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


HRESULT STDMETHODCALLTYPE ImaSupportsStreaming_GetExtraInfo_Proxy( 
    ImaSupportsStreaming __RPC_FAR * This,
    /* [retval][out] */ maString __RPC_FAR *extra);


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



#endif 	/* __ImaSupportsStreaming_INTERFACE_DEFINED__ */


#ifndef __ImaFileStream_INTERFACE_DEFINED__
#define __ImaFileStream_INTERFACE_DEFINED__

/* interface ImaFileStream */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaFileStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE7110A-DF5A-4BD6-93AD-51DF79B64FED")
    ImaFileStream : public ImaStream
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Create( 
            /* [in] */ maString fileName,
            /* [in] */ int mode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaFileStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaFileStream __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaFileStream __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Open )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Close )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Flush )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOptions )( 
            ImaFileStream __RPC_FAR * This,
            /* [out][in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushOptions )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PopOptions )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushConversionStrings )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ maConvertStrings __RPC_FAR *cs);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewLine )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteStr )( 
            ImaFileStream __RPC_FAR * This,
            /* [string][in] */ maString str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadStr )( 
            ImaFileStream __RPC_FAR * This,
            /* [string][retval][out] */ maString __RPC_FAR *str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteLong )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadLong )( 
            ImaFileStream __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteDouble )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadDouble )( 
            ImaFileStream __RPC_FAR * This,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteBlock )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadBlock )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][out][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteComponent )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ ImaComponent __RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadComponent )( 
            ImaFileStream __RPC_FAR * This,
            /* [out][in] */ ImaComponent __RPC_FAR *__RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewField )( 
            ImaFileStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Create )( 
            ImaFileStream __RPC_FAR * This,
            /* [in] */ maString fileName,
            /* [in] */ int mode);
        
        END_INTERFACE
    } ImaFileStreamVtbl;

    interface ImaFileStream
    {
        CONST_VTBL struct ImaFileStreamVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaFileStream_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaFileStream_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaFileStream_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaFileStream_Open(This)	\
    (This)->lpVtbl -> Open(This)

#define ImaFileStream_Close(This)	\
    (This)->lpVtbl -> Close(This)

#define ImaFileStream_Flush(This)	\
    (This)->lpVtbl -> Flush(This)

#define ImaFileStream_GetOptions(This,opt)	\
    (This)->lpVtbl -> GetOptions(This,opt)

#define ImaFileStream_PushOptions(This,opt)	\
    (This)->lpVtbl -> PushOptions(This,opt)

#define ImaFileStream_PopOptions(This)	\
    (This)->lpVtbl -> PopOptions(This)

#define ImaFileStream_PushConversionStrings(This,cs)	\
    (This)->lpVtbl -> PushConversionStrings(This,cs)

#define ImaFileStream_NewLine(This)	\
    (This)->lpVtbl -> NewLine(This)

#define ImaFileStream_WriteStr(This,str)	\
    (This)->lpVtbl -> WriteStr(This,str)

#define ImaFileStream_ReadStr(This,str)	\
    (This)->lpVtbl -> ReadStr(This,str)

#define ImaFileStream_WriteLong(This,value)	\
    (This)->lpVtbl -> WriteLong(This,value)

#define ImaFileStream_ReadLong(This,value)	\
    (This)->lpVtbl -> ReadLong(This,value)

#define ImaFileStream_WriteDouble(This,value)	\
    (This)->lpVtbl -> WriteDouble(This,value)

#define ImaFileStream_ReadDouble(This,value)	\
    (This)->lpVtbl -> ReadDouble(This,value)

#define ImaFileStream_WriteBlock(This,length,ptr)	\
    (This)->lpVtbl -> WriteBlock(This,length,ptr)

#define ImaFileStream_ReadBlock(This,length,ptr)	\
    (This)->lpVtbl -> ReadBlock(This,length,ptr)

#define ImaFileStream_WriteComponent(This,comp)	\
    (This)->lpVtbl -> WriteComponent(This,comp)

#define ImaFileStream_ReadComponent(This,comp)	\
    (This)->lpVtbl -> ReadComponent(This,comp)

#define ImaFileStream_NewField(This)	\
    (This)->lpVtbl -> NewField(This)


#define ImaFileStream_Create(This,fileName,mode)	\
    (This)->lpVtbl -> Create(This,fileName,mode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaFileStream_Create_Proxy( 
    ImaFileStream __RPC_FAR * This,
    /* [in] */ maString fileName,
    /* [in] */ int mode);


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



#endif 	/* __ImaFileStream_INTERFACE_DEFINED__ */


#ifndef __ImaMemoryStream_INTERFACE_DEFINED__
#define __ImaMemoryStream_INTERFACE_DEFINED__

/* interface ImaMemoryStream */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaMemoryStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E34E0012-3D25-47f6-B6F8-93AC13A5066D")
    ImaMemoryStream : public ImaStream
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateNew( 
            /* [in] */ int mode,
            /* [in] */ int sizeInc,
            /* [in] */ int maxSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromFile( 
            /* [in] */ maString fileName,
            /* [in] */ int mode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToFile( 
            /* [in] */ maString fileName,
            /* [in] */ int mode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ int __RPC_FAR *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetContents( 
            /* [retval][out] */ void __RPC_FAR *__RPC_FAR *memory) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaMemoryStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaMemoryStream __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Open )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Close )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Flush )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOptions )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [out][in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushOptions )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PopOptions )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushConversionStrings )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ maConvertStrings __RPC_FAR *cs);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewLine )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteStr )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [string][in] */ maString str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadStr )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [string][retval][out] */ maString __RPC_FAR *str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteLong )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadLong )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteDouble )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadDouble )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteBlock )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadBlock )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][out][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteComponent )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ ImaComponent __RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadComponent )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [out][in] */ ImaComponent __RPC_FAR *__RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewField )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateNew )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ int mode,
            /* [in] */ int sizeInc,
            /* [in] */ int maxSize);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LoadFromFile )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ maString fileName,
            /* [in] */ int mode);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SaveToFile )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [in] */ maString fileName,
            /* [in] */ int mode);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clear )( 
            ImaMemoryStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetContents )( 
            ImaMemoryStream __RPC_FAR * This,
            /* [retval][out] */ void __RPC_FAR *__RPC_FAR *memory);
        
        END_INTERFACE
    } ImaMemoryStreamVtbl;

    interface ImaMemoryStream
    {
        CONST_VTBL struct ImaMemoryStreamVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaMemoryStream_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaMemoryStream_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaMemoryStream_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaMemoryStream_Open(This)	\
    (This)->lpVtbl -> Open(This)

#define ImaMemoryStream_Close(This)	\
    (This)->lpVtbl -> Close(This)

#define ImaMemoryStream_Flush(This)	\
    (This)->lpVtbl -> Flush(This)

#define ImaMemoryStream_GetOptions(This,opt)	\
    (This)->lpVtbl -> GetOptions(This,opt)

#define ImaMemoryStream_PushOptions(This,opt)	\
    (This)->lpVtbl -> PushOptions(This,opt)

#define ImaMemoryStream_PopOptions(This)	\
    (This)->lpVtbl -> PopOptions(This)

#define ImaMemoryStream_PushConversionStrings(This,cs)	\
    (This)->lpVtbl -> PushConversionStrings(This,cs)

#define ImaMemoryStream_NewLine(This)	\
    (This)->lpVtbl -> NewLine(This)

#define ImaMemoryStream_WriteStr(This,str)	\
    (This)->lpVtbl -> WriteStr(This,str)

#define ImaMemoryStream_ReadStr(This,str)	\
    (This)->lpVtbl -> ReadStr(This,str)

#define ImaMemoryStream_WriteLong(This,value)	\
    (This)->lpVtbl -> WriteLong(This,value)

#define ImaMemoryStream_ReadLong(This,value)	\
    (This)->lpVtbl -> ReadLong(This,value)

#define ImaMemoryStream_WriteDouble(This,value)	\
    (This)->lpVtbl -> WriteDouble(This,value)

#define ImaMemoryStream_ReadDouble(This,value)	\
    (This)->lpVtbl -> ReadDouble(This,value)

#define ImaMemoryStream_WriteBlock(This,length,ptr)	\
    (This)->lpVtbl -> WriteBlock(This,length,ptr)

#define ImaMemoryStream_ReadBlock(This,length,ptr)	\
    (This)->lpVtbl -> ReadBlock(This,length,ptr)

#define ImaMemoryStream_WriteComponent(This,comp)	\
    (This)->lpVtbl -> WriteComponent(This,comp)

#define ImaMemoryStream_ReadComponent(This,comp)	\
    (This)->lpVtbl -> ReadComponent(This,comp)

#define ImaMemoryStream_NewField(This)	\
    (This)->lpVtbl -> NewField(This)


#define ImaMemoryStream_CreateNew(This,mode,sizeInc,maxSize)	\
    (This)->lpVtbl -> CreateNew(This,mode,sizeInc,maxSize)

#define ImaMemoryStream_LoadFromFile(This,fileName,mode)	\
    (This)->lpVtbl -> LoadFromFile(This,fileName,mode)

#define ImaMemoryStream_SaveToFile(This,fileName,mode)	\
    (This)->lpVtbl -> SaveToFile(This,fileName,mode)

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

#define ImaMemoryStream_GetSize(This,size)	\
    (This)->lpVtbl -> GetSize(This,size)

#define ImaMemoryStream_GetContents(This,memory)	\
    (This)->lpVtbl -> GetContents(This,memory)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaMemoryStream_CreateNew_Proxy( 
    ImaMemoryStream __RPC_FAR * This,
    /* [in] */ int mode,
    /* [in] */ int sizeInc,
    /* [in] */ int maxSize);


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


HRESULT STDMETHODCALLTYPE ImaMemoryStream_LoadFromFile_Proxy( 
    ImaMemoryStream __RPC_FAR * This,
    /* [in] */ maString fileName,
    /* [in] */ int mode);


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


HRESULT STDMETHODCALLTYPE ImaMemoryStream_SaveToFile_Proxy( 
    ImaMemoryStream __RPC_FAR * This,
    /* [in] */ maString fileName,
    /* [in] */ int mode);


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


HRESULT STDMETHODCALLTYPE ImaMemoryStream_Clear_Proxy( 
    ImaMemoryStream __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaMemoryStream_GetSize_Proxy( 
    ImaMemoryStream __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *size);


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


HRESULT STDMETHODCALLTYPE ImaMemoryStream_GetContents_Proxy( 
    ImaMemoryStream __RPC_FAR * This,
    /* [retval][out] */ void __RPC_FAR *__RPC_FAR *memory);


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



#endif 	/* __ImaMemoryStream_INTERFACE_DEFINED__ */


#ifndef __ImaClientDataStream_INTERFACE_DEFINED__
#define __ImaClientDataStream_INTERFACE_DEFINED__

/* interface ImaClientDataStream */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaClientDataStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("161f995f-3be0-46bd-aa88-97857e803e05")
    ImaClientDataStream : public ImaStream
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetDataConnection( 
            /* [in] */ ImaDataHandler __RPC_FAR *hnd) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDataConnection( 
            /* [out] */ ImaDataHandler __RPC_FAR *__RPC_FAR *hnd) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaClientDataStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaClientDataStream __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Open )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Close )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Flush )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOptions )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [out][in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushOptions )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ maStreamOptions __RPC_FAR *opt);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PopOptions )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PushConversionStrings )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ maConvertStrings __RPC_FAR *cs);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewLine )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteStr )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [string][in] */ maString str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadStr )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [string][retval][out] */ maString __RPC_FAR *str);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteLong )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ int value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadLong )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteDouble )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ double value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadDouble )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [retval][out] */ double __RPC_FAR *value);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteBlock )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadBlock )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ int length,
            /* [size_is][out][in] */ byte __RPC_FAR *ptr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteComponent )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ ImaComponent __RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadComponent )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [out][in] */ ImaComponent __RPC_FAR *__RPC_FAR *comp);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NewField )( 
            ImaClientDataStream __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetDataConnection )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [in] */ ImaDataHandler __RPC_FAR *hnd);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDataConnection )( 
            ImaClientDataStream __RPC_FAR * This,
            /* [out] */ ImaDataHandler __RPC_FAR *__RPC_FAR *hnd);
        
        END_INTERFACE
    } ImaClientDataStreamVtbl;

    interface ImaClientDataStream
    {
        CONST_VTBL struct ImaClientDataStreamVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaClientDataStream_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaClientDataStream_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaClientDataStream_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaClientDataStream_Open(This)	\
    (This)->lpVtbl -> Open(This)

#define ImaClientDataStream_Close(This)	\
    (This)->lpVtbl -> Close(This)

#define ImaClientDataStream_Flush(This)	\
    (This)->lpVtbl -> Flush(This)

#define ImaClientDataStream_GetOptions(This,opt)	\
    (This)->lpVtbl -> GetOptions(This,opt)

#define ImaClientDataStream_PushOptions(This,opt)	\
    (This)->lpVtbl -> PushOptions(This,opt)

#define ImaClientDataStream_PopOptions(This)	\
    (This)->lpVtbl -> PopOptions(This)

#define ImaClientDataStream_PushConversionStrings(This,cs)	\
    (This)->lpVtbl -> PushConversionStrings(This,cs)

#define ImaClientDataStream_NewLine(This)	\
    (This)->lpVtbl -> NewLine(This)

#define ImaClientDataStream_WriteStr(This,str)	\
    (This)->lpVtbl -> WriteStr(This,str)

#define ImaClientDataStream_ReadStr(This,str)	\
    (This)->lpVtbl -> ReadStr(This,str)

#define ImaClientDataStream_WriteLong(This,value)	\
    (This)->lpVtbl -> WriteLong(This,value)

#define ImaClientDataStream_ReadLong(This,value)	\
    (This)->lpVtbl -> ReadLong(This,value)

#define ImaClientDataStream_WriteDouble(This,value)	\
    (This)->lpVtbl -> WriteDouble(This,value)

#define ImaClientDataStream_ReadDouble(This,value)	\
    (This)->lpVtbl -> ReadDouble(This,value)

#define ImaClientDataStream_WriteBlock(This,length,ptr)	\
    (This)->lpVtbl -> WriteBlock(This,length,ptr)

#define ImaClientDataStream_ReadBlock(This,length,ptr)	\
    (This)->lpVtbl -> ReadBlock(This,length,ptr)

#define ImaClientDataStream_WriteComponent(This,comp)	\
    (This)->lpVtbl -> WriteComponent(This,comp)

#define ImaClientDataStream_ReadComponent(This,comp)	\
    (This)->lpVtbl -> ReadComponent(This,comp)

#define ImaClientDataStream_NewField(This)	\
    (This)->lpVtbl -> NewField(This)


#define ImaClientDataStream_SetDataConnection(This,hnd)	\
    (This)->lpVtbl -> SetDataConnection(This,hnd)

#define ImaClientDataStream_GetDataConnection(This,hnd)	\
    (This)->lpVtbl -> GetDataConnection(This,hnd)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaClientDataStream_SetDataConnection_Proxy( 
    ImaClientDataStream __RPC_FAR * This,
    /* [in] */ ImaDataHandler __RPC_FAR *hnd);


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


HRESULT STDMETHODCALLTYPE ImaClientDataStream_GetDataConnection_Proxy( 
    ImaClientDataStream __RPC_FAR * This,
    /* [out] */ ImaDataHandler __RPC_FAR *__RPC_FAR *hnd);


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



#endif 	/* __ImaClientDataStream_INTERFACE_DEFINED__ */


#ifndef __ImaMethod_INTERFACE_DEFINED__
#define __ImaMethod_INTERFACE_DEFINED__

/* interface ImaMethod */
/* [local][local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaMethod;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE7110B-DF5A-4BD6-93AD-51DF79B64FED")
    ImaMethod : public ImaReadList
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetMethodDef( 
            /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *mdef) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetParam( 
            /* [retval][out] */ ImaList __RPC_FAR *__RPC_FAR *param) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetInput( 
            /* [in] */ maString name,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *arg) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetInput( 
            /* [in] */ maString name,
            /* [in] */ ImaMatrix __RPC_FAR *arg) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetOutput( 
            /* [in] */ maString name,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *arg) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetOutput( 
            /* [in] */ maString name,
            /* [in] */ ImaMatrix __RPC_FAR *arg) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Calc( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CalcCell( 
            /* [in] */ int argno,
            /* [in] */ maIndex index,
            /* [in] */ ImaCell __RPC_FAR *cell) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaMethodVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaMethod __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaMethod __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaMethod __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaMethod __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaMethod __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCell )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCellno )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCell )( 
            ImaMethod __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCellName )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMethodDef )( 
            ImaMethod __RPC_FAR * This,
            /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *mdef);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetParam )( 
            ImaMethod __RPC_FAR * This,
            /* [retval][out] */ ImaList __RPC_FAR *__RPC_FAR *param);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetInput )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *arg);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetInput )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ maString name,
            /* [in] */ ImaMatrix __RPC_FAR *arg);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOutput )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *arg);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetOutput )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ maString name,
            /* [in] */ ImaMatrix __RPC_FAR *arg);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Calc )( 
            ImaMethod __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CalcCell )( 
            ImaMethod __RPC_FAR * This,
            /* [in] */ int argno,
            /* [in] */ maIndex index,
            /* [in] */ ImaCell __RPC_FAR *cell);
        
        END_INTERFACE
    } ImaMethodVtbl;

    interface ImaMethod
    {
        CONST_VTBL struct ImaMethodVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaMethod_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaMethod_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaMethod_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaMethod_GetSize(This,size)	\
    (This)->lpVtbl -> GetSize(This,size)

#define ImaMethod_GetCell(This,cellno,cell)	\
    (This)->lpVtbl -> GetCell(This,cellno,cell)

#define ImaMethod_FindCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCellno(This,name,cellno)

#define ImaMethod_FindCell(This,name,cell)	\
    (This)->lpVtbl -> FindCell(This,name,cell)

#define ImaMethod_GetCellName(This,cellno,name)	\
    (This)->lpVtbl -> GetCellName(This,cellno,name)


#define ImaMethod_GetMethodDef(This,mdef)	\
    (This)->lpVtbl -> GetMethodDef(This,mdef)

#define ImaMethod_GetParam(This,param)	\
    (This)->lpVtbl -> GetParam(This,param)

#define ImaMethod_GetInput(This,name,arg)	\
    (This)->lpVtbl -> GetInput(This,name,arg)

#define ImaMethod_SetInput(This,name,arg)	\
    (This)->lpVtbl -> SetInput(This,name,arg)

#define ImaMethod_GetOutput(This,name,arg)	\
    (This)->lpVtbl -> GetOutput(This,name,arg)

#define ImaMethod_SetOutput(This,name,arg)	\
    (This)->lpVtbl -> SetOutput(This,name,arg)

#define ImaMethod_Calc(This)	\
    (This)->lpVtbl -> Calc(This)

#define ImaMethod_CalcCell(This,argno,index,cell)	\
    (This)->lpVtbl -> CalcCell(This,argno,index,cell)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaMethod_GetMethodDef_Proxy( 
    ImaMethod __RPC_FAR * This,
    /* [retval][out] */ ImaMethodDef __RPC_FAR *__RPC_FAR *mdef);


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


HRESULT STDMETHODCALLTYPE ImaMethod_GetParam_Proxy( 
    ImaMethod __RPC_FAR * This,
    /* [retval][out] */ ImaList __RPC_FAR *__RPC_FAR *param);


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


HRESULT STDMETHODCALLTYPE ImaMethod_GetInput_Proxy( 
    ImaMethod __RPC_FAR * This,
    /* [in] */ maString name,
    /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *arg);


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


HRESULT STDMETHODCALLTYPE ImaMethod_SetInput_Proxy( 
    ImaMethod __RPC_FAR * This,
    /* [in] */ maString name,
    /* [in] */ ImaMatrix __RPC_FAR *arg);


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


HRESULT STDMETHODCALLTYPE ImaMethod_GetOutput_Proxy( 
    ImaMethod __RPC_FAR * This,
    /* [in] */ maString name,
    /* [retval][out] */ ImaMatrix __RPC_FAR *__RPC_FAR *arg);


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


HRESULT STDMETHODCALLTYPE ImaMethod_SetOutput_Proxy( 
    ImaMethod __RPC_FAR * This,
    /* [in] */ maString name,
    /* [in] */ ImaMatrix __RPC_FAR *arg);


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


HRESULT STDMETHODCALLTYPE ImaMethod_Calc_Proxy( 
    ImaMethod __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaMethod_CalcCell_Proxy( 
    ImaMethod __RPC_FAR * This,
    /* [in] */ int argno,
    /* [in] */ maIndex index,
    /* [in] */ ImaCell __RPC_FAR *cell);


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



#endif 	/* __ImaMethod_INTERFACE_DEFINED__ */


#ifndef __ImaAlgorithm_INTERFACE_DEFINED__
#define __ImaAlgorithm_INTERFACE_DEFINED__

/* interface ImaAlgorithm */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaAlgorithm;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE7110C-DF5A-4BD6-93AD-51DF79B64FED")
    ImaAlgorithm : public ImaReadList
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetMethod( 
            /* [in] */ ImaMethodDef __RPC_FAR *mdef) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMethod( 
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaMethod __RPC_FAR *__RPC_FAR *method) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDescription( 
            /* [string][retval][out] */ maString __RPC_FAR *descr) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE VerifyMethod( 
            /* [in] */ int cellno) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE VerifyMethodByName( 
            /* [string][in] */ maString name) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Verify( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaAlgorithmVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaAlgorithm __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaAlgorithm __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaAlgorithm __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSize )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *size);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCell )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCellno )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [in] */ maString name,
            /* [retval][out] */ int __RPC_FAR *cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindCell )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaCell __RPC_FAR *__RPC_FAR *cell);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCellName )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [in] */ int cellno,
            /* [string][retval][out] */ maString __RPC_FAR *name);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetMethod )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [in] */ ImaMethodDef __RPC_FAR *mdef);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMethod )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaMethod __RPC_FAR *__RPC_FAR *method);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDescription )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [string][retval][out] */ maString __RPC_FAR *descr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *VerifyMethod )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [in] */ int cellno);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *VerifyMethodByName )( 
            ImaAlgorithm __RPC_FAR * This,
            /* [string][in] */ maString name);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Verify )( 
            ImaAlgorithm __RPC_FAR * This);
        
        END_INTERFACE
    } ImaAlgorithmVtbl;

    interface ImaAlgorithm
    {
        CONST_VTBL struct ImaAlgorithmVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaAlgorithm_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaAlgorithm_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaAlgorithm_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaAlgorithm_GetSize(This,size)	\
    (This)->lpVtbl -> GetSize(This,size)

#define ImaAlgorithm_GetCell(This,cellno,cell)	\
    (This)->lpVtbl -> GetCell(This,cellno,cell)

#define ImaAlgorithm_FindCellno(This,name,cellno)	\
    (This)->lpVtbl -> FindCellno(This,name,cellno)

#define ImaAlgorithm_FindCell(This,name,cell)	\
    (This)->lpVtbl -> FindCell(This,name,cell)

#define ImaAlgorithm_GetCellName(This,cellno,name)	\
    (This)->lpVtbl -> GetCellName(This,cellno,name)


#define ImaAlgorithm_SetMethod(This,mdef)	\
    (This)->lpVtbl -> SetMethod(This,mdef)

#define ImaAlgorithm_GetMethod(This,name,method)	\
    (This)->lpVtbl -> GetMethod(This,name,method)

#define ImaAlgorithm_GetDescription(This,descr)	\
    (This)->lpVtbl -> GetDescription(This,descr)

#define ImaAlgorithm_VerifyMethod(This,cellno)	\
    (This)->lpVtbl -> VerifyMethod(This,cellno)

#define ImaAlgorithm_VerifyMethodByName(This,name)	\
    (This)->lpVtbl -> VerifyMethodByName(This,name)

#define ImaAlgorithm_Verify(This)	\
    (This)->lpVtbl -> Verify(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaAlgorithm_SetMethod_Proxy( 
    ImaAlgorithm __RPC_FAR * This,
    /* [in] */ ImaMethodDef __RPC_FAR *mdef);


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


HRESULT STDMETHODCALLTYPE ImaAlgorithm_GetMethod_Proxy( 
    ImaAlgorithm __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ ImaMethod __RPC_FAR *__RPC_FAR *method);


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


HRESULT STDMETHODCALLTYPE ImaAlgorithm_GetDescription_Proxy( 
    ImaAlgorithm __RPC_FAR * This,
    /* [string][retval][out] */ maString __RPC_FAR *descr);


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


HRESULT STDMETHODCALLTYPE ImaAlgorithm_VerifyMethod_Proxy( 
    ImaAlgorithm __RPC_FAR * This,
    /* [in] */ int cellno);


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


HRESULT STDMETHODCALLTYPE ImaAlgorithm_VerifyMethodByName_Proxy( 
    ImaAlgorithm __RPC_FAR * This,
    /* [string][in] */ maString name);


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


HRESULT STDMETHODCALLTYPE ImaAlgorithm_Verify_Proxy( 
    ImaAlgorithm __RPC_FAR * This);


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



#endif 	/* __ImaAlgorithm_INTERFACE_DEFINED__ */


#ifndef __ImaKernel_INTERFACE_DEFINED__
#define __ImaKernel_INTERFACE_DEFINED__

/* interface ImaKernel */
/* [local][unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ImaKernel;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1FE7110D-DF5A-4BD6-93AD-51DF79B64FED")
    ImaKernel : public ImaComponent
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE LoadLibraryByName( 
            /* [string][in] */ maString clsname) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadLibraryByClsid( 
            /* [string][in] */ maString clsid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterLibrary( 
            /* [in] */ ImaLibrary __RPC_FAR *lib) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnloadLibraries( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenLogFile( 
            /* [string][in] */ maString name) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateAlgorithm( 
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaAlgorithm __RPC_FAR *__RPC_FAR *algor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDebugStream( 
            /* [in] */ ImaStream __RPC_FAR *debug) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDebugStream( 
            /* [retval][out] */ ImaStream __RPC_FAR *__RPC_FAR *debug) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LogError( 
            /* [in] */ ImaComponent __RPC_FAR *sender,
            /* [in] */ HRESULT ecode,
            /* [in] */ maString message) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LogMessage( 
            /* [in] */ ImaComponent __RPC_FAR *sender,
            /* [string][in] */ maString message) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Log( 
            /* [string][in] */ maString message) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetLastErrorString( 
            /* [retval][out] */ maString __RPC_FAR *errorStr) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDebugLevel( 
            /* [in] */ int level) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDebugLevel( 
            /* [retval][out] */ int __RPC_FAR *level) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LogMemoryReport( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LogROT( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetProgressHandler( 
            /* [in] */ ImaProgressHandler __RPC_FAR *handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Progress( 
            /* [in] */ double percent,
            /* [string][in] */ maString message) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetMinProgressStep( 
            /* [in] */ double minProgressStep) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ImaKernelVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ImaKernel __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ImaKernel __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )( 
            ImaKernel __RPC_FAR * This,
            /* [out] */ CLSID __RPC_FAR *pClassID);
        
        void ( STDMETHODCALLTYPE __RPC_FAR *SetName )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ maString name);
        
        maString ( STDMETHODCALLTYPE __RPC_FAR *GetName )( 
            ImaKernel __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LoadLibraryByName )( 
            ImaKernel __RPC_FAR * This,
            /* [string][in] */ maString clsname);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LoadLibraryByClsid )( 
            ImaKernel __RPC_FAR * This,
            /* [string][in] */ maString clsid);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RegisterLibrary )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ ImaLibrary __RPC_FAR *lib);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *UnloadLibraries )( 
            ImaKernel __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OpenLogFile )( 
            ImaKernel __RPC_FAR * This,
            /* [string][in] */ maString name);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateAlgorithm )( 
            ImaKernel __RPC_FAR * This,
            /* [string][in] */ maString name,
            /* [retval][out] */ ImaAlgorithm __RPC_FAR *__RPC_FAR *algor);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetDebugStream )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ ImaStream __RPC_FAR *debug);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDebugStream )( 
            ImaKernel __RPC_FAR * This,
            /* [retval][out] */ ImaStream __RPC_FAR *__RPC_FAR *debug);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LogError )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ ImaComponent __RPC_FAR *sender,
            /* [in] */ HRESULT ecode,
            /* [in] */ maString message);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LogMessage )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ ImaComponent __RPC_FAR *sender,
            /* [string][in] */ maString message);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Log )( 
            ImaKernel __RPC_FAR * This,
            /* [string][in] */ maString message);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetLastErrorString )( 
            ImaKernel __RPC_FAR * This,
            /* [retval][out] */ maString __RPC_FAR *errorStr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetDebugLevel )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ int level);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDebugLevel )( 
            ImaKernel __RPC_FAR * This,
            /* [retval][out] */ int __RPC_FAR *level);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LogMemoryReport )( 
            ImaKernel __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LogROT )( 
            ImaKernel __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetProgressHandler )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ ImaProgressHandler __RPC_FAR *handler);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Progress )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ double percent,
            /* [string][in] */ maString message);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetMinProgressStep )( 
            ImaKernel __RPC_FAR * This,
            /* [in] */ double minProgressStep);
        
        END_INTERFACE
    } ImaKernelVtbl;

    interface ImaKernel
    {
        CONST_VTBL struct ImaKernelVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ImaKernel_GetClassID(This,pClassID)	\
    (This)->lpVtbl -> GetClassID(This,pClassID)


#define ImaKernel_SetName(This,name)	\
    (This)->lpVtbl -> SetName(This,name)

#define ImaKernel_GetName(This)	\
    (This)->lpVtbl -> GetName(This)


#define ImaKernel_LoadLibraryByName(This,clsname)	\
    (This)->lpVtbl -> LoadLibraryByName(This,clsname)

#define ImaKernel_LoadLibraryByClsid(This,clsid)	\
    (This)->lpVtbl -> LoadLibraryByClsid(This,clsid)

#define ImaKernel_RegisterLibrary(This,lib)	\
    (This)->lpVtbl -> RegisterLibrary(This,lib)

#define ImaKernel_UnloadLibraries(This)	\
    (This)->lpVtbl -> UnloadLibraries(This)

#define ImaKernel_OpenLogFile(This,name)	\
    (This)->lpVtbl -> OpenLogFile(This,name)

#define ImaKernel_CreateAlgorithm(This,name,algor)	\
    (This)->lpVtbl -> CreateAlgorithm(This,name,algor)

#define ImaKernel_SetDebugStream(This,debug)	\
    (This)->lpVtbl -> SetDebugStream(This,debug)

#define ImaKernel_GetDebugStream(This,debug)	\
    (This)->lpVtbl -> GetDebugStream(This,debug)

#define ImaKernel_LogError(This,sender,ecode,message)	\
    (This)->lpVtbl -> LogError(This,sender,ecode,message)

#define ImaKernel_LogMessage(This,sender,message)	\
    (This)->lpVtbl -> LogMessage(This,sender,message)

#define ImaKernel_Log(This,message)	\
    (This)->lpVtbl -> Log(This,message)

#define ImaKernel_GetLastErrorString(This,errorStr)	\
    (This)->lpVtbl -> GetLastErrorString(This,errorStr)

#define ImaKernel_SetDebugLevel(This,level)	\
    (This)->lpVtbl -> SetDebugLevel(This,level)

#define ImaKernel_GetDebugLevel(This,level)	\
    (This)->lpVtbl -> GetDebugLevel(This,level)

#define ImaKernel_LogMemoryReport(This)	\
    (This)->lpVtbl -> LogMemoryReport(This)

#define ImaKernel_LogROT(This)	\
    (This)->lpVtbl -> LogROT(This)

#define ImaKernel_SetProgressHandler(This,handler)	\
    (This)->lpVtbl -> SetProgressHandler(This,handler)

#define ImaKernel_Progress(This,percent,message)	\
    (This)->lpVtbl -> Progress(This,percent,message)

#define ImaKernel_SetMinProgressStep(This,minProgressStep)	\
    (This)->lpVtbl -> SetMinProgressStep(This,minProgressStep)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ImaKernel_LoadLibraryByName_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [string][in] */ maString clsname);


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


HRESULT STDMETHODCALLTYPE ImaKernel_LoadLibraryByClsid_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [string][in] */ maString clsid);


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


HRESULT STDMETHODCALLTYPE ImaKernel_RegisterLibrary_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ ImaLibrary __RPC_FAR *lib);


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


HRESULT STDMETHODCALLTYPE ImaKernel_UnloadLibraries_Proxy( 
    ImaKernel __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaKernel_OpenLogFile_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [string][in] */ maString name);


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


HRESULT STDMETHODCALLTYPE ImaKernel_CreateAlgorithm_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [string][in] */ maString name,
    /* [retval][out] */ ImaAlgorithm __RPC_FAR *__RPC_FAR *algor);


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


HRESULT STDMETHODCALLTYPE ImaKernel_SetDebugStream_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ ImaStream __RPC_FAR *debug);


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


HRESULT STDMETHODCALLTYPE ImaKernel_GetDebugStream_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [retval][out] */ ImaStream __RPC_FAR *__RPC_FAR *debug);


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


HRESULT STDMETHODCALLTYPE ImaKernel_LogError_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ ImaComponent __RPC_FAR *sender,
    /* [in] */ HRESULT ecode,
    /* [in] */ maString message);


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


HRESULT STDMETHODCALLTYPE ImaKernel_LogMessage_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ ImaComponent __RPC_FAR *sender,
    /* [string][in] */ maString message);


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


HRESULT STDMETHODCALLTYPE ImaKernel_Log_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [string][in] */ maString message);


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


HRESULT STDMETHODCALLTYPE ImaKernel_GetLastErrorString_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [retval][out] */ maString __RPC_FAR *errorStr);


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


HRESULT STDMETHODCALLTYPE ImaKernel_SetDebugLevel_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ int level);


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


HRESULT STDMETHODCALLTYPE ImaKernel_GetDebugLevel_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [retval][out] */ int __RPC_FAR *level);


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


HRESULT STDMETHODCALLTYPE ImaKernel_LogMemoryReport_Proxy( 
    ImaKernel __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaKernel_LogROT_Proxy( 
    ImaKernel __RPC_FAR * This);


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


HRESULT STDMETHODCALLTYPE ImaKernel_SetProgressHandler_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ ImaProgressHandler __RPC_FAR *handler);


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


HRESULT STDMETHODCALLTYPE ImaKernel_Progress_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ double percent,
    /* [string][in] */ maString message);


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


HRESULT STDMETHODCALLTYPE ImaKernel_SetMinProgressStep_Proxy( 
    ImaKernel __RPC_FAR * This,
    /* [in] */ double minProgressStep);


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



#endif 	/* __ImaKernel_INTERFACE_DEFINED__ */



#ifndef __ForecsysMA_LIBRARY_DEFINED__
#define __ForecsysMA_LIBRARY_DEFINED__

/* library ForecsysMA */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_ForecsysMA;

EXTERN_C const CLSID CLSID_MaCell;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71100-DF5B-4BD6-93AD-51DF79B64FED")
MaCell;
#endif

EXTERN_C const CLSID CLSID_MaList;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71101-DF5B-4BD6-93AD-51DF79B64FED")
MaList;
#endif

EXTERN_C const CLSID CLSID_MaMatrixFactory;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE7110B-DF5B-4BD6-93AD-51DF79B64FED")
MaMatrixFactory;
#endif

EXTERN_C const CLSID CLSID_MaDoubleMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71102-DF5B-4BD6-93AD-51DF79B64FED")
MaDoubleMatrix;
#endif

EXTERN_C const CLSID CLSID_MaDoubleSparseMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71112-DF5B-4BD6-93AD-51DF79B64FED")
MaDoubleSparseMatrix;
#endif

EXTERN_C const CLSID CLSID_MaStringMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71103-DF5B-4BD6-93AD-51DF79B64FED")
MaStringMatrix;
#endif

EXTERN_C const CLSID CLSID_MaStringSparseMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71113-DF5B-4BD6-93AD-51DF79B64FED")
MaStringSparseMatrix;
#endif

EXTERN_C const CLSID CLSID_MaLongMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE7110E-DF5B-4BD6-93AD-51DF79B64FED")
MaLongMatrix;
#endif

EXTERN_C const CLSID CLSID_MaBoolMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71108-DF5B-4BD6-93AD-51DF79B64FED")
MaBoolMatrix;
#endif

EXTERN_C const CLSID CLSID_MaByteMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71109-DF5B-4BD6-93AD-51DF79B64FED")
MaByteMatrix;
#endif

EXTERN_C const CLSID CLSID_MaEvalMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE7110C-DF5B-4BD6-93AD-51DF79B64FED")
MaEvalMatrix;
#endif

EXTERN_C const CLSID CLSID_MaSubMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71121-DF5B-4BD6-93AD-51DF79B64FED")
MaSubMatrix;
#endif

EXTERN_C const CLSID CLSID_MaCompositeMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71114-DF5B-4BD6-93AD-51DF79B64FED")
MaCompositeMatrix;
#endif

EXTERN_C const CLSID CLSID_MaSparseMatrix;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71110-DF5B-4BD6-93AD-51DF79B64FED")
MaSparseMatrix;
#endif

EXTERN_C const CLSID CLSID_MaMemoryStream;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE7110A-DF5B-4BD6-93AD-51DF79B64FED")
MaMemoryStream;
#endif

EXTERN_C const CLSID CLSID_MaTextFileStream;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71104-DF5B-4BD6-93AD-51DF79B64FED")
MaTextFileStream;
#endif

EXTERN_C const CLSID CLSID_MaBinaryFileStream;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE7110D-DF5B-4BD6-93AD-51DF79B64FED")
MaBinaryFileStream;
#endif

EXTERN_C const CLSID CLSID_MaClientDataStream;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE7110F-DF5B-4BD6-93AD-51DF79B64FED")
MaClientDataStream;
#endif

EXTERN_C const CLSID CLSID_MaMethod;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71105-DF5B-4BD6-93AD-51DF79B64FED")
MaMethod;
#endif

EXTERN_C const CLSID CLSID_MaAlgorithm;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71106-DF5B-4BD6-93AD-51DF79B64FED")
MaAlgorithm;
#endif

EXTERN_C const CLSID CLSID_MaKernel;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71107-DF5B-4BD6-93AD-51DF79B64FED")
MaKernel;
#endif

EXTERN_C const CLSID CLSID_MaList2;

#ifdef __cplusplus

class DECLSPEC_UUID("1FE71111-DF5B-4BD6-93AD-51DF79B64FED")
MaList2;
#endif
#endif /* __ForecsysMA_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif
