FirteX-高性能全文索引和检索平台

API Documentation


首页 | 名字空间列表 | 类继承关系 | 组合类型列表 | $(BL\录(B | 文件列表 | 名字空间成员 | 组合类型成员 | 文件成员

ComInterface.h

浏览该文件的文档。
00001 #ifndef _COMINTERFACES_H_
00002 #define _COMINTERFACES_H_
00003 
00004 /* this function should only be called from within Com.h */
00005 #ifndef _COM_H_
00006         #error The include file 'ComInterfaces.h' should not be called directly.
00007 #endif
00008 
00009 #ifdef __cplusplus
00010 namespace firtex
00011 {
00012         namespace com 
00013         {
00014 #endif
00015 
00017         // Helpful Defines
00019 
00020 #ifndef __cplusplus
00021 
00022         #define START_C_INTERFACE( iname ) \
00023                 struct iname##Vtbl { \
00024                 FX_BEGIN_INTERFACE \
00025                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( \
00026                 struct iname __RPC_FAR * This, \
00027                 FX_REFIID riid, \
00028                 void __RPC_FAR *__RPC_FAR *ppvObject); \
00029                 uint32_t ( FX_STDMETHODCALLTYPE __RPC_FAR *AddRef )( \
00030                 struct iname __RPC_FAR * This); \
00031                 uint32_t ( FX_STDMETHODCALLTYPE __RPC_FAR *Release )( \
00032                 struct iname __RPC_FAR * This);
00033 
00034         #define END_C_INTERFACE( iname ) \
00035                 FX_END_INTERFACE \
00036                 }; \
00037                 struct iname { \
00038                 const struct iname##Vtbl __RPC_FAR *lpVtbl; \
00039                 }; \
00040                 EXTERN_C FX_IID const IID_##iname;
00041 
00042 #endif // __cplusplus
00043 
00045         // IUnknown
00047 
00048 #ifdef __cplusplus
00049         /* uuid {00000000-0000-0000-C000-000000000046} */
00050         class IUnknown 
00051         {
00052         public:
00053                 static const firtex::com::FX_IID iid;
00054 
00055                 virtual FX_HRESULT FX_STDMETHODCALLTYPE QueryInterface( /* [in] */ FX_REFIID riid, /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject ) = 0;
00056                 virtual uint32_t FX_STDMETHODCALLTYPE AddRef( void ) = 0;
00057                 virtual uint32_t FX_STDMETHODCALLTYPE Release( void ) = 0;
00058         };
00059 #else
00060         START_C_INTERFACE( IUnknown )
00061                 END_C_INTERFACE( IUnknown );
00062 
00063 #endif /* IUnknown */
00064 
00066         // IClassFactory
00068 
00069 #ifdef __cplusplus
00070         /* uuid {00000001-0000-0000-C000-000000000046} */
00071         class IClassFactory : public IUnknown  
00072         {
00073         public:
00074                 static const firtex::com::FX_IID iid;
00075 
00076                 virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE CreateInstance( /* [in] */ IUnknown __RPC_FAR* pUnkOuter, /* [in] */ FX_REFIID riid, /* [out] */ void __RPC_FAR *__RPC_FAR * ppvObject ) = 0;
00077                 virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE LockServer( /* [in] */ int32_t fLock ) = 0;
00078         };
00079 #else
00080         START_C_INTERFACE( IClassFactory )
00081                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *CreateInstance )(
00082         struct IClassFactory __RPC_FAR * This,
00083                 /* [in] */ IUnknown __RPC_FAR* pUnkOuter, 
00084                 /* [in] */ FX_REFIID riid, 
00085                 /* [out] */ void __RPC_FAR *__RPC_FAR * ppvObject);
00086 
00087                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *LockServer )(
00088         struct IClassFactory __RPC_FAR * This,
00089                 /* [in] */ int32_t fLock);
00090                 END_C_INTERFACE( IClassFactory );
00091 #endif /* IClassFactory */
00092 
00094         // ICreateErrorInfo
00096 
00097 #ifdef __cplusplus
00098         /* uuid {00000001-0000-0000-C000-000000000046} */
00099         class ICreateErrorInfo : public IUnknown 
00100         {
00101         public:
00102                 static FX_IID const iid;
00103 
00104                 virtual FX_HRESULT FX_STDMETHODCALLTYPE SetGUID( 
00105                         /* [in] */ FX_REFGUID rguid) = 0;
00106 
00107                         virtual FX_HRESULT FX_STDMETHODCALLTYPE SetSource( 
00108                         /* [in] */ wchar_t const __RPC_FAR* szSource) = 0;
00109 
00110                         virtual FX_HRESULT FX_STDMETHODCALLTYPE SetDescription( 
00111                         /* [in] */ wchar_t const __RPC_FAR* szDescription) = 0;
00112 
00113                         virtual FX_HRESULT FX_STDMETHODCALLTYPE SetHelpFile( 
00114                         /* [in] */ wchar_t const __RPC_FAR* szHelpFile) = 0;
00115 
00116                         virtual FX_HRESULT FX_STDMETHODCALLTYPE SetHelpContext( 
00117                         /* [in] */ uint32_t dwHelpContext) = 0;
00118         };
00119 #else
00120         START_C_INTERFACE( ICreateErrorInfo )
00121                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR * SetGUID)( 
00122                 ICreateErrorInfo __RPC_FAR * This,
00123                 /* [in] */ FX_REFGUID rguid);
00124 
00125                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR * SetSource)( 
00126                 ICreateErrorInfo __RPC_FAR * This,
00127                 /* [in] */ wchar_t const __RPC_FAR* szSource);
00128 
00129                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR * SetDescription)( 
00130                 ICreateErrorInfo __RPC_FAR * This,
00131                 /* [in] */ wchar_t const __RPC_FAR* szDescription);
00132 
00133                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR * SetHelpFile)( 
00134                 ICreateErrorInfo __RPC_FAR * This,
00135                 /* [in] */ wchar_t const __RPC_FAR* szHelpFile);
00136 
00137                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR * SetHelpContext)( 
00138                 ICreateErrorInfo __RPC_FAR * This,
00139                 /* [in] */ uint32_t dwHelpContext);
00140                 END_C_INTERFACE( ICreateErrorInfo );
00141 #endif /* ICreateErrorInfo */
00142 
00143 #ifdef __cplusplus
00144         /* uuid {00000001-0000-0000-C000-000000000046} */
00145         class IErrorInfo : public IUnknown  
00146         {
00147         public:
00148                 static const firtex::com::FX_IID iid;
00149 
00150                 virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE GetGUID( 
00151                         /* [out] */ FX_GUID __RPC_FAR *pGUID) = 0;
00152 
00153                         virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE GetSource( 
00154                         /* [out] */ BSTR __RPC_FAR *pBstrSource) = 0;
00155 
00156                         virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE GetDescription( 
00157                         /* [out] */ BSTR __RPC_FAR *pBstrDescription) = 0;
00158 
00159                         virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE GetHelpFile( 
00160                         /* [out] */ BSTR __RPC_FAR *pBstrHelpFile) = 0;
00161 
00162                         virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE GetHelpContext( 
00163                         /* [out] */ uint32_t __RPC_FAR *pdwHelpContext) = 0;
00164         };
00165 #else
00166         START_C_INTERFACE( IErrorInfo )
00167                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetGUID )( 
00168                 IErrorInfo __RPC_FAR * This,
00169         /* [out] */ struct FX_GUID __RPC_FAR *pGUID);
00170 
00171                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetSource )( 
00172                 IErrorInfo __RPC_FAR * This,
00173                 /* [out] */ BSTR __RPC_FAR *pBstrSource);
00174 
00175                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetDescription )( 
00176                 IErrorInfo __RPC_FAR * This,
00177                 /* [out] */ BSTR __RPC_FAR *pBstrDescription);
00178 
00179                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetHelpFile )( 
00180                 IErrorInfo __RPC_FAR * This,
00181                 /* [out] */ BSTR __RPC_FAR *pBstrHelpFile);
00182 
00183                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetHelpContext )( 
00184                 IErrorInfo __RPC_FAR * This,
00185                 /* [out] */ uint32_t __RPC_FAR *pdwHelpContext);
00186                 END_C_INTERFACE( IErrorInfo )
00187 #endif /* IClassFactory */
00188 
00189 #ifdef __cplusplus
00190                 /* uuid {00000146-0000-0000-C000-000000000046} */
00191         class IGlobalInterfaceTable : public IUnknown 
00192         {
00193         public:
00194                 static const firtex::com::FX_IID iid;
00195 
00196                 virtual FX_HRESULT FX_STDMETHODCALLTYPE RegisterInterfaceInGlobal( 
00197                         /* [in] */ IUnknown __RPC_FAR *pUnk,
00198                         /* [in] */ FX_REFIID riid,
00199                         /* [out] */ uint32_t __RPC_FAR *pdwCookie) = 0;
00200 
00201                         virtual FX_HRESULT FX_STDMETHODCALLTYPE RevokeInterfaceFromGlobal( 
00202                         /* [in] */ uint32_t dwCookie) = 0;
00203 
00204                         virtual FX_HRESULT FX_STDMETHODCALLTYPE GetInterfaceFromGlobal( 
00205                         /* [in] */ uint32_t dwCookie,
00206                         /* [in] */ FX_REFIID riid,
00207                         /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppv) = 0;
00208         };
00209 #else
00210                 START_C_INTERFACE( IGlobalInterfaceTable )
00211                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *RegisterInterfaceInGlobal )( 
00212                 IGlobalInterfaceTable __RPC_FAR * This,
00213                 /* [in] */ IUnknown __RPC_FAR *pUnk,
00214                 /* [in] */ FX_REFIID riid,
00215                 /* [out] */ uint32_t __RPC_FAR *pdwCookie);
00216 
00217                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *RevokeInterfaceFromGlobal )( 
00218                 IGlobalInterfaceTable __RPC_FAR * This,
00219                 /* [in] */ uint32_t dwCookie);
00220 
00221                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetInterfaceFromGlobal )( 
00222                 IGlobalInterfaceTable __RPC_FAR * This,
00223                 /* [in] */ uint32_t dwCookie,
00224                 /* [in] */ FX_REFIID riid,
00225                 /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppv);
00226 
00227                 END_C_INTERFACE( IGlobalInterfaceTable )
00228 #endif /* IGlobalInterfaceTable */
00229 
00230 #ifdef __cplusplus
00231                 /* uuid {00000002-0000-0000-C000-000000000046} */
00232         class IMarshal : public IUnknown 
00233         {
00234         public:
00235                 static const firtex::com::FX_IID iid;
00236 
00237                 virtual FX_HRESULT FX_STDMETHODCALLTYPE GetUnmarshalClass( 
00238                         /* [in] */ FX_REFIID riid,
00239                         /* [unique][in] */ void __RPC_FAR *pv,
00240                         /* [in] */ uint32_t dwDestContext,
00241                         /* [unique][in] */ void __RPC_FAR *pvDestContext,
00242                         /* [in] */ uint32_t mshlflags,
00243                         /* [out] */ FX_CLSID __RPC_FAR *pCid) = 0;
00244 
00245                         virtual FX_HRESULT FX_STDMETHODCALLTYPE GetMarshalSizeMax( 
00246                         /* [in] */ FX_REFIID riid,
00247                         /* [unique][in] */ void __RPC_FAR *pv,
00248                         /* [in] */ uint32_t dwDestContext,
00249                         /* [unique][in] */ void __RPC_FAR *pvDestContext,
00250                         /* [in] */ uint32_t mshlflags,
00251                         /* [out] */ uint32_t __RPC_FAR *pSize) = 0;
00252 
00253                         virtual FX_HRESULT FX_STDMETHODCALLTYPE MarshalInterface( 
00254                         /* [unique][in] */ IStream __RPC_FAR *pStm,
00255                         /* [in] */ FX_REFIID riid,
00256                         /* [unique][in] */ void __RPC_FAR *pv,
00257                         /* [in] */ uint32_t dwDestContext,
00258                         /* [unique][in] */ void __RPC_FAR *pvDestContext,
00259                         /* [in] */ uint32_t mshlflags) = 0;
00260 
00261                         virtual FX_HRESULT FX_STDMETHODCALLTYPE UnmarshalInterface( 
00262                         /* [unique][in] */ IStream __RPC_FAR *pStm,
00263                         /* [in] */ FX_REFIID riid,
00264                         /* [out] */ void __RPC_FAR *__RPC_FAR *ppv) = 0;
00265 
00266                         virtual FX_HRESULT FX_STDMETHODCALLTYPE ReleaseMarshalData( 
00267                         /* [unique][in] */ IStream __RPC_FAR *pStm) = 0;
00268 
00269                         virtual FX_HRESULT FX_STDMETHODCALLTYPE DisconnectObject( 
00270                         /* [in] */ uint32_t dwReserved) = 0;
00271         };
00272 #else
00273                 START_C_INTERFACE( IMarshal )
00274                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetUnmarshalClass)(
00275                 IMarshal __RPC_FAR* This, 
00276                 /* [in] */ FX_REFIID riid,
00277                 /* [unique][in] */ void __RPC_FAR *pv,
00278                 /* [in] */ uint32_t dwDestContext,
00279                 /* [unique][in] */ void __RPC_FAR *pvDestContext,
00280                 /* [in] */ uint32_t mshlflags,
00281                 /* [out] */ FX_CLSID __RPC_FAR *pCid);
00282 
00283                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *GetMarshalSizeMax)( 
00284                 IMarshal __RPC_FAR* This, 
00285                 /* [in] */ FX_REFIID riid,
00286                 /* [unique][in] */ void __RPC_FAR *pv,
00287                 /* [in] */ uint32_t dwDestContext,
00288                 /* [unique][in] */ void __RPC_FAR *pvDestContext,
00289                 /* [in] */ uint32_t mshlflags,
00290                 /* [out] */ uint32_t __RPC_FAR *pSize);
00291 
00292                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *MarshalInterface)( 
00293                 IMarshal __RPC_FAR* This, 
00294                 /* [unique][in] */ IStream __RPC_FAR *pStm,
00295                 /* [in] */ FX_REFIID riid,
00296                 /* [unique][in] */ void __RPC_FAR *pv,
00297                 /* [in] */ uint32_t dwDestContext,
00298                 /* [unique][in] */ void __RPC_FAR *pvDestContext,
00299                 /* [in] */ uint32_t mshlflags);
00300 
00301                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *UnmarshalInterface)( 
00302                 IMarshal __RPC_FAR* This, 
00303                 /* [unique][in] */ IStream __RPC_FAR *pStm,
00304                 /* [in] */ FX_REFIID riid,
00305                 /* [out] */ void __RPC_FAR *__RPC_FAR *ppv);
00306 
00307                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *ReleaseMarshalData)( 
00308                 IMarshal __RPC_FAR* This, 
00309                 /* [unique][in] */ IStream __RPC_FAR *pStm);
00310 
00311                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *DisconnectObject)( 
00312                 IMarshal __RPC_FAR* This, 
00313                 /* [in] */ uint32_t dwReserved);
00314                 END_C_INTERFACE( IMarshal )
00315 #endif /* IMarshal */
00316 
00317 #ifdef __cplusplus
00318                 /* uuid {00000002-0000-0000-C000-000000000046} */
00319         class IMalloc : public IUnknown 
00320         {
00321         public:
00322                 static const firtex::com::FX_IID iid;
00323 
00324                 virtual void __RPC_FAR *FX_STDMETHODCALLTYPE Alloc( 
00325                         /* [in] */ uint32_t cb) = 0;
00326 
00327                         virtual void __RPC_FAR *FX_STDMETHODCALLTYPE Realloc( 
00328                         /* [in] */ void __RPC_FAR *pv,
00329                         /* [in] */ uint32_t cb) = 0;
00330 
00331                         virtual void FX_STDMETHODCALLTYPE Free( 
00332                         /* [in] */ void __RPC_FAR *pv) = 0;
00333 
00334                         virtual uint32_t FX_STDMETHODCALLTYPE GetSize( 
00335                         /* [in] */ void __RPC_FAR *pv) = 0;
00336 
00337                         virtual int16_t FX_STDMETHODCALLTYPE DidAlloc( 
00338                         void __RPC_FAR *pv) = 0;
00339 
00340                 virtual void FX_STDMETHODCALLTYPE HeapMinimize( void) = 0;
00341         };
00342 #else
00343         START_C_INTERFACE( IMalloc )
00344                 void __RPC_FAR * ( FX_STDMETHODCALLTYPE __RPC_FAR *Alloc)( 
00345                 IMalloc __RPC_FAR * This,
00346                 /* [in] */ void __RPC_FAR *pv,
00347                 /* [in] */ uint32_t cb);
00348 
00349                 void __RPC_FAR *( FX_STDMETHODCALLTYPE __RPC_FAR *Realloc)( 
00350                 IMalloc __RPC_FAR * This,
00351                 /* [in] */ uint32_t dwCookie);
00352 
00353                 void ( FX_STDMETHODCALLTYPE __RPC_FAR *Free )( 
00354                 IMalloc __RPC_FAR * This,
00355                 /* [in] */ void __RPC_FAR *pv);
00356 
00357                 uint32_t ( FX_STDMETHODCALLTYPE __RPC_FAR *GetSize)( 
00358                 IMalloc __RPC_FAR * This,
00359                 /* [in] */ void __RPC_FAR *pv);
00360 
00361                 int16_t ( FX_STDMETHODCALLTYPE __RPC_FAR *DidAlloc)( IMalloc __RPC_FAR * This,void __RPC_FAR *pv);
00362 
00363                 void ( FX_STDMETHODCALLTYPE __RPC_FAR *HeapMinimize)(IMalloc __RPC_FAR * This);
00364 
00365         END_C_INTERFACE( IMalloc )
00366 #endif /* IMalloc */
00367 
00368 #ifdef __cplusplus
00369 
00370         class IMallocSpy : public IUnknown
00371         {
00372         public:         
00373                 virtual uint32_t FX_STDMETHODCALLTYPE PreAlloc(uint32_t cbRequest) = 0;
00374                 virtual void __RPC_FAR *FX_STDMETHODCALLTYPE PostAlloc(void __RPC_FAR *pActual) = 0;
00375                 virtual void __RPC_FAR *FX_STDMETHODCALLTYPE PreFree(void __RPC_FAR *pRequest,bool_t fSpyed) = 0;
00376                 virtual void FX_STDMETHODCALLTYPE PostFree(bool_t fSpyed) = 0;
00377                 virtual uint32_t FX_STDMETHODCALLTYPE PreRealloc(void __RPC_FAR *pRequest,uint32_t cbRequest,void __RPC_FAR *__RPC_FAR *ppNewRequest,bool_t fSpyed) = 0;
00378                 virtual void __RPC_FAR *FX_STDMETHODCALLTYPE PostRealloc(void __RPC_FAR *pActual,bool_t fSpyed) = 0;
00379                 virtual void __RPC_FAR *FX_STDMETHODCALLTYPE PreGetSize(void __RPC_FAR *pRequest,bool_t fSpyed) = 0;
00380                 virtual uint32_t FX_STDMETHODCALLTYPE PostGetSize(uint32_t cbActual,bool_t fSpyed) = 0;
00381                 virtual void __RPC_FAR *FX_STDMETHODCALLTYPE PreDidAlloc(void __RPC_FAR *pRequest,bool_t fSpyed) = 0;
00382                 virtual int16_t FX_STDMETHODCALLTYPE PostDidAlloc(void __RPC_FAR *pRequest,bool_t fSpyed,int16_t fActual) = 0;
00383                 virtual void FX_STDMETHODCALLTYPE PreHeapMinimize( void) = 0;
00384                 virtual void FX_STDMETHODCALLTYPE PostHeapMinimize( void) = 0;  
00385         };
00386 
00387 #else   /* C style interface */
00388 
00389 
00390         START_C_INTERFACE( IMallocSpy )
00391                 uint32_t (FX_STDMETHODCALLTYPE __RPC_FAR *PreAlloc)(uint32_t cbRequest) ;
00392                 void __RPC_FAR *(FX_STDMETHODCALLTYPE __RPC_FAR *PostAlloc)(void __RPC_FAR *pActual) ;
00393                 void __RPC_FAR *(FX_STDMETHODCALLTYPE __RPC_FAR *PreFree)(void __RPC_FAR *pRequest,bool_t fSpyed) ;
00394                 void (FX_STDMETHODCALLTYPE __RPC_FAR *PostFree)(bool_t fSpyed) ;
00395                 uint32_t (FX_STDMETHODCALLTYPE __RPC_FAR *PreRealloc)(void __RPC_FAR *pRequest,uint32_t cbRequest,void __RPC_FAR *__RPC_FAR *ppNewRequest,bool_t fSpyed) ;
00396                 void __RPC_FAR *(FX_STDMETHODCALLTYPE __RPC_FAR *PostRealloc)(void __RPC_FAR *pActual,bool_t fSpyed) ;
00397                 void __RPC_FAR *(FX_STDMETHODCALLTYPE __RPC_FAR *PreGetSize)(void __RPC_FAR *pRequest,bool_t fSpyed) ;
00398                 uint32_t (FX_STDMETHODCALLTYPE __RPC_FAR *PostGetSize)(uint32_t cbActual,bool_t fSpyed) ;
00399                 void __RPC_FAR *(FX_STDMETHODCALLTYPE __RPC_FAR *PreDidAlloc)(void __RPC_FAR *pRequest,bool_t fSpyed) ;
00400                 int16_t (FX_STDMETHODCALLTYPE __RPC_FAR *PostDidAlloc)(void __RPC_FAR *pRequest,bool_t fSpyed,int16_t fActual) ;
00401                 void (FX_STDMETHODCALLTYPE __RPC_FAR *PreHeapMinimize)( void) ;
00402                 void (FX_STDMETHODCALLTYPE __RPC_FAR * PostHeapMinimize)( void) ;       
00403         END_C_INTERFACE(IMallocSpy)     
00404 
00405 #endif /* IMallocSpy */
00406 
00407 #ifdef __cplusplus
00408                 /* uuid {0c733a30-2a1c-11ce-ade5-00aa0044773d} */
00409         class ISequentialStream : public IUnknown  
00410         {
00411         public:
00412                 static const firtex::com::FX_IID iid;
00413 
00414                 virtual /* [local] */ FX_HRESULT FX_STDMETHODCALLTYPE Read( 
00415                         /* [length_is][size_is][out] */ void __RPC_FAR *pv,
00416                         /* [in] */ uint32_t cb,
00417                         /* [out] */ uint32_t __RPC_FAR *pcbRead) = 0;
00418 
00419                         virtual /* [local] */ FX_HRESULT FX_STDMETHODCALLTYPE Write( 
00420                         /* [size_is][in] */ const void __RPC_FAR *pv,
00421                         /* [in] */ uint32_t cb,
00422                         /* [out] */ uint32_t __RPC_FAR *pcbWritten) = 0;
00423         };
00424 #else
00425                 START_C_INTERFACE( ISequentialStream )
00426                 /* [local] */ FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Read )( 
00427                 ISequentialStream __RPC_FAR * This,
00428                 /* [length_is][size_is][out] */ void __RPC_FAR *pv,
00429                 /* [in] */ uint32_t cb,
00430                 /* [out] */ uint32_t __RPC_FAR *pcbRead);
00431 
00432                 /* [local] */ FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Write )( 
00433                 ISequentialStream __RPC_FAR * This,
00434                 /* [size_is][in] */ const void __RPC_FAR *pv,
00435                 /* [in] */ uint32_t cb,
00436                 /* [out] */ uint32_t __RPC_FAR *pcbWritten);
00437 
00438                 END_C_INTERFACE( ISequentialStream )
00439 #endif /* ISequentialStream */
00440 
00441                 /* Is this correct */
00442                 typedef int64_t FILETIME;
00443 
00444 #ifdef _MAC
00445         typedef struct tagSTATSTG
00446         {                      
00447                 LPOLESTR pwcsName;
00448                 FSSpec *pspec;
00449                 DWORD type;
00450                 ULARGE_INTEGER cbSize;
00451                 FILETIME mtime;
00452                 FILETIME ctime;
00453                 FILETIME atime;
00454                 DWORD grfMode;
00455                 DWORD grfLocksSupported;
00456                 FX_CLSID clsid;
00457                 DWORD grfStateBits;
00458                 DWORD reserved;
00459         } STATSTG;
00460 #else //_MAC
00461         typedef struct  tagSTATSTG
00462         {
00463                 wchar_t const __RPC_FAR * pwcsName;
00464                 uint32_t type;
00465                 uint64_t cbSize;
00466                 FILETIME mtime;
00467                 FILETIME ctime;
00468                 FILETIME atime;
00469                 uint32_t grfMode;
00470                 uint32_t grfLocksSupported;
00471                 FX_CLSID clsid;
00472                 uint32_t grfStateBits;
00473                 uint32_t reserved;
00474         }       STATSTG;
00475 
00476 #endif //_MAC
00477 
00478 #ifdef __cplusplus
00479         /* uuid {0000000c-0000-0000-C000-000000000046} */
00480         class IStream : public ISequentialStream  
00481         {
00482         public:
00483                 static const firtex::com::FX_IID iid;
00484 
00485 #ifdef _MAC
00486                 struct STATSTG
00487                 {                      
00488                         LPOLESTR pwcsName;
00489                         FSSpec *pspec;
00490                         DWORD type;
00491                         ULARGE_INTEGER cbSize;
00492                         FILETIME mtime;
00493                         FILETIME ctime;
00494                         FILETIME atime;
00495                         DWORD grfMode;
00496                         DWORD grfLocksSupported;
00497                         FX_CLSID clsid;
00498                         DWORD grfStateBits;
00499                         DWORD reserved;
00500                 } STATSTG;
00501 #else //_MAC
00502                 struct STATSTG 
00503                 {
00504                         wchar_t const* pwcsName;
00505                         uint32_t type;
00506                         uint64_t cbSize;
00507                         uint64_t mtime;
00508                         uint64_t ctime;
00509                         uint64_t atime;
00510                         uint32_t grfMode;
00511                         uint32_t grfLocksSupported;
00512                         FX_CLSID clsid;
00513                         uint32_t grfStateBits;
00514                         uint32_t reserved;
00515                 };
00516 #endif // _MAC
00517                 enum STGTY 
00518                 {
00519                         STGTY_STORAGE   = 1,
00520                         STGTY_STREAM    = 2,
00521                         STGTY_LOCKBYTES = 3,
00522                         STGTY_PROPERTY  = 4
00523                 };
00524                 enum STREAM_SEEK 
00525                 {
00526                         STREAM_SEEK_SET = 0,
00527                         STREAM_SEEK_CUR = 1,
00528                         STREAM_SEEK_END = 2
00529                 };
00530                 /*enum LOCKTYPE 
00531                 {
00532                         LOCK_WRITE      = 1,
00533                         LOCK_EXCLUSIVE  = 2,
00534                         LOCK_ONLYONCE   = 4
00535                 };*/
00536 
00537                 virtual /* [local] */ FX_HRESULT FX_STDMETHODCALLTYPE Seek( 
00538                         /* [in] */ int64_t dlibMove,
00539                         /* [in] */ uint32_t dwOrigin,
00540                         /* [out] */ uint64_t __RPC_FAR *plibNewPosition) = 0;
00541 
00542                         virtual FX_HRESULT FX_STDMETHODCALLTYPE SetSize( 
00543                         /* [in] */ uint64_t libNewSize) = 0;
00544 
00545                         virtual /* [local] */ FX_HRESULT FX_STDMETHODCALLTYPE CopyTo( 
00546                         /* [unique][in] */ IStream __RPC_FAR *pstm,
00547                         /* [in] */ uint64_t cb,
00548                         /* [out] */ uint64_t __RPC_FAR *pcbRead,
00549                         /* [out] */ uint64_t __RPC_FAR *pcbWritten) = 0;
00550 
00551                         virtual FX_HRESULT FX_STDMETHODCALLTYPE Commit( 
00552                         /* [in] */ uint32_t grfCommitFlags) = 0;
00553 
00554                         virtual FX_HRESULT FX_STDMETHODCALLTYPE Revert( void) = 0;
00555 
00556                 virtual FX_HRESULT FX_STDMETHODCALLTYPE LockRegion( 
00557                         /* [in] */ uint64_t libOffset,
00558                         /* [in] */ uint64_t cb,
00559                         /* [in] */ uint32_t dwLockType) = 0;
00560 
00561                         virtual FX_HRESULT FX_STDMETHODCALLTYPE UnlockRegion( 
00562                         /* [in] */ uint64_t libOffset,
00563                         /* [in] */ uint64_t cb,
00564                         /* [in] */ uint32_t dwLockType) = 0;
00565 
00566                         virtual FX_HRESULT FX_STDMETHODCALLTYPE Stat( 
00567                         /* [out] */ STATSTG __RPC_FAR *pstatstg,
00568                         /* [in] */ uint32_t grfStatFlag) = 0;
00569 
00570                         virtual FX_HRESULT FX_STDMETHODCALLTYPE Clone( 
00571                         /* [out] */ IStream __RPC_FAR *__RPC_FAR *ppstm) = 0;
00572         };
00573 #else
00574         START_C_INTERFACE( IStream )
00575                 /* [local] */ FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Read )( 
00576                 IStream __RPC_FAR * This,
00577                 /* [length_is][size_is][out] */ void __RPC_FAR *pv,
00578                 /* [in] */ uint32_t cb,
00579                 /* [out] */ uint32_t __RPC_FAR *pcbRead);
00580 
00581                 /* [local] */ FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Write )( 
00582                 IStream __RPC_FAR * This,
00583                 /* [size_is][in] */ const void __RPC_FAR *pv,
00584                 /* [in] */ uint32_t cb,
00585                 /* [out] */ uint32_t __RPC_FAR *pcbWritten);
00586 
00587                 /* [local] */ FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Seek )( 
00588                 IStream __RPC_FAR * This,
00589                 /* [in] */ int64_t dlibMove,
00590                 /* [in] */ uint32_t dwOrigin,
00591                 /* [out] */ uint64_t __RPC_FAR *plibNewPosition);
00592 
00593                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *SetSize )( 
00594                 IStream __RPC_FAR * This,
00595                 /* [in] */ uint64_t libNewSize);
00596 
00597                 /* [local] */ FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *CopyTo )( 
00598                 IStream __RPC_FAR * This,
00599                 /* [unique][in] */ IStream __RPC_FAR *pstm,
00600                 /* [in] */ uint64_t cb,
00601                 /* [out] */ uint64_t __RPC_FAR *pcbRead,
00602                 /* [out] */ uint64_t __RPC_FAR *pcbWritten);
00603 
00604                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Commit )( 
00605                 IStream __RPC_FAR * This,
00606                 /* [in] */ uint32_t grfCommitFlags);
00607 
00608                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Revert )( 
00609                 IStream __RPC_FAR * This);
00610 
00611         FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *LockRegion )( 
00612                 IStream __RPC_FAR * This,
00613                 /* [in] */ uint64_t libOffset,
00614                 /* [in] */ uint64_t cb,
00615                 /* [in] */ uint32_t dwLockType);
00616 
00617                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *UnlockRegion )( 
00618                 IStream __RPC_FAR * This,
00619                 /* [in] */ uint64_t libOffset,
00620                 /* [in] */ uint64_t cb,
00621                 /* [in] */ uint32_t dwLockType);
00622 
00623                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Stat )( 
00624                 IStream __RPC_FAR * This,
00625                 /* [out] */ STATSTG __RPC_FAR *pstatstg,
00626                 /* [in] */ uint32_t grfStatFlag);
00627 
00628                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *Clone )( 
00629                 IStream __RPC_FAR * This,
00630                 /* [out] */ IStream __RPC_FAR *__RPC_FAR *ppstm);
00631 
00632                 END_C_INTERFACE( IStream )
00633 #endif /* IStream */
00634 
00635 #ifdef __cplusplus
00636                 /* uuid {DF0B3D60-548F-101B-8E65-08002B2BD119} */
00637         class ISupportErrorInfo : public IUnknown  
00638         {
00639         public:
00640                 static const firtex::com::FX_IID iid;
00641 
00642                 virtual firtex::com::FX_HRESULT FX_STDMETHODCALLTYPE InterfaceSupportsErrorInfo( /* [in] */ FX_REFIID riid ) = 0;
00643         };
00644 #else
00645                 START_C_INTERFACE( ISupportErrorInfo )
00646                 FX_HRESULT ( FX_STDMETHODCALLTYPE __RPC_FAR *InterfaceSupportsErrorInfo )(
00647                 ISupportErrorInfo __RPC_FAR * This,
00648                 /* [in] */ FX_REFIID riid );
00649                 END_C_INTERFACE( ISupportErrorInfo )
00650 #endif /* ISupportErrorInfo */
00651 
00652 #ifdef __cplusplus
00653         }// namespace com 
00654 }; // namespace firtex 
00655 #endif
00656 
00657 #endif /* _COMINTERFACES_H_ */
00658 

http://www.firtex.org http://www.sourceforge.net/projects/firtex