FirteX-高性能全文索引和检索平台API Documentation |
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