📄 hxfiles.h
字号:
/************************************************************************ * Method: * IHXFastFileFactory2::Wrap * Purpose: * Return an instantiated wrapper around an existing (but * uninitialized) file object. * */ STDMETHOD(Wrap) (THIS_ REF(IUnknown*) /*OUT*/ pWrapper, IUnknown* /*IN*/ pFileObj, UINT32 /*IN*/ ulBlockSize, BOOL /*IN*/ bAlignReads, BOOL /*IN*/ bCacheStats, UINT32 /*IN*/ ulMaxBlockSize) PURE;};/**************************************************************************** * * Interface: * * IHXFilePlacementRead * * Purpose: * * Reads into the passed buffer * * IID_IHXFilePlacementRead * * {0000021D-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXFilePlacementRead, 0x0000021D, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXFilePlacementReadDECLARE_INTERFACE_(IHXFilePlacementRead, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXFilePlacementRead methods */ STDMETHOD(Read) (THIS_ ULONG32 ulAmount, ULONG32 ulOffset, char* pBuffer, BOOL bOffsetBuffer) PURE; STDMETHOD_(ULONG32,AlignmentBoundary) (THIS) PURE;};// $EndPrivate./**************************************************************************** * * Interface: * * IHXFastFileStats * * Purpose: * * Interface to allow file objects to request that at close they be * informed how many bytes have been "fast cached" on their behalf if any. * * ulFastFileBytesSaved is the number of bytes that would have been read * from the file object had FastFile not been in use (this includes some * lookahead * * ulFastFileBytesNeeded is the amount of data actually read by the file * system. * * IID_IHXFastFileStats: * * {0000021E-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXFastFileStats, 0x0000021E, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#define CLSID_IHXFastFileStats IID_IHXFastFileStats#undef INTERFACE#define INTERFACE IHXFastFileStatsDECLARE_INTERFACE_(IHXFastFileStats, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXFastFileStats methods */ STDMETHOD(UpdateFileObjectStats) (THIS_ UINT32 /*IN*/ ulFastFileBytesSaved, UINT32 /*IN*/ ulFastFileBytesNeeded) PURE;};// $Private:/**************************************************************************** * * Interface: * * IHXHTTPPostObject * * Purpose: * * Object that exports file control API * * IID_IHXHTTPPostObject: * * {00000112-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXHTTPPostObject, 0x00000112, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#define CLSID_IHXHTTPPostObject IID_IHXHTTPPostObject#undef INTERFACE#define INTERFACE IHXHTTPPostObjectDECLARE_INTERFACE_(IHXHTTPPostObject, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXHTTPPostObject methods */ /************************************************************************ * Method: * IHXHTTPPostObject::Init * Purpose: * Associates a file object with the file response object it should * notify of operation completness. This method should also check * for validity of the object (for example by opening it if it is * a local file). */ STDMETHOD(Init) (THIS_ ULONG32 /*IN*/ ulFlags, IHXHTTPPostResponse* /*IN*/ pFileResponse) PURE; /************************************************************************ * Method: * IHXHTTPPostObject::Close * Purpose: * Closes the file resource and releases all resources associated * with the object. */ STDMETHOD(Close) (THIS) PURE; /************************************************************************ * Method: * IHXHTTPPostObject::GetResponse * Purpose: * Tells the object to retreive any response data from the POST. * Calls IHXHTTPPostResponse with ResponseReady(IHXValues*). */ STDMETHOD(GetResponse) (THIS) PURE; /************************************************************************ * Method: * IHXHTTPPostObject::Post * Purpose: * Writes a buffer of data to the HTTP URL and asynchronously notifies * the caller via the IHXFileResponse interface passed in to Init, * of the completeness of the operation. */ STDMETHOD(Post) (THIS_ IHXBuffer* pBuffer) PURE; /************************************************************************ * Method: * IHXHTTPPostObject::SetSize * Purpose: * Set the total size of the Post(s) about to be made. */ STDMETHOD(SetSize) (THIS_ ULONG32 ulLength) PURE;};/**************************************************************************** * * Interface: * * IHXHTTPPostResponse * * Purpose: * * Object that exports file response API * * IID_IHXHTTPPostResponse: * * {00000113-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXHTTPPostResponse, 0x00000113, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXHTTPPostResponseDECLARE_INTERFACE_(IHXHTTPPostResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXHTTPPostResponse methods */ /************************************************************************ * Method: * IHXHTTPPostResponse::InitDone * Purpose: * Notification interface provided by users of the IHXHTTPPostObject * interface. This method is called by the IHXHTTPPostObject when the * initialization of the file is complete. If the file is not valid * for the file system, the status HXR_FAILED should be * returned. */ STDMETHOD(InitDone) (THIS_ HX_RESULT status) PURE; /************************************************************************ * Method: * IHXHTTPPostResponse::CloseDone * Purpose: * Notification interface provided by users of the IHXHTTPPostObject * interface. This method is called by the IHXHTTPPostObject when the * close of the file is complete. */ STDMETHOD(CloseDone) (THIS_ HX_RESULT status) PURE; /************************************************************************ * Method: * IHXHTTPPostResponse::ResponseReady * Purpose: * Notification interface provided by users of the IHXHTTPPostObject * interface. This method is called by the IHXHTTPPostObject when the * POST response data has been completely read. */ STDMETHOD(ResponseReady) (THIS_ HX_RESULT status, IHXBuffer* pContentBuffer) PURE; /************************************************************************ * Method: * IHXHTTPPostResponse::WriteDone * Purpose: * Notification interface provided by users of the IHXHTTPPostObject * interface. This method is called by the IHXHTTPPostObject when the * last write to the file is complete. */ STDMETHOD(PostDone) (THIS_ HX_RESULT status) PURE;};// $EndPrivate.// $Private:/**************************************************************************** * * Interface: * * IHXHTTPRedirect * * Purpose: * * Allows you to get redirect URL * * IID_IHXHTTPRedirect: * * {00002E00-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXHTTPRedirect, 0x21eae0b9, 0x2e0c, 0x4003, 0xbb, 0x79, 0xbc, 0x8c, 0xc5, 0x67, 0x2c, 0x2d);#undef INTERFACE#define INTERFACE IHXHTTPRedirectDECLARE_INTERFACE_(IHXHTTPRedirect, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXHTTPRedirect methods */ /************************************************************************ * Method: * IHXHTTPRedirect::Init * Purpose: * Initialize the response object */ STDMETHOD(Init) (THIS_ IHXHTTPRedirectResponse* pRedirectResponse) PURE; /************************************************************************ * Method: * IHXHTTPRedirect::SetResponseObject * Purpose: * Initialize the response object w/o calling Init */ STDMETHOD(SetResponseObject) (THIS_ IHXHTTPRedirectResponse* pRedirectResponse) PURE;};/**************************************************************************** * * Interface: * * IHXHTTPRedirectResponse * * Purpose: * * Allows you to get redirect URL * * IID_IHXHTTPRedirectResponse: * * {00002E01-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXHTTPRedirectResponse, 0x125a63b1, 0x669c, 0x42f9, 0xb1, 0xf9, 0x1b, 0x53, 0xe9, 0x95, 0x82, 0x95);#undef INTERFACE#define INTERFACE IHXHTTPRedirectResponseDECLARE_INTERFACE_(IHXHTTPRedirectResponse, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXHTTPRedirectResponse methods */ /************************************************************************ * Method: * IHXHTTPRedirectResponse::RedirectDone * Purpose: * return the redirect URL */ STDMETHOD(RedirectDone) (THIS_ IHXBuffer* pURL) PURE;};/**************************************************************************** * * Interface: * * IHXRM2Converter2 * * Purpose: * * Interface to RM1->RM2 merge/converter module. This is a new improved * interface which contains all of the functionality of the old one. * However, this one is asynchronous where necessary and takes standard * IHXFileObjects instead of pathnames for the required files. * * IHXRM2Converter * * {00002F00-0901-11D1-8B06-00A024406D59} */DEFINE_GUID(IID_IHXRM2Converter2, 0x00002F00, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#define CLSID_IRMARM2Converter2 IID_IHXRM2Converter2#undef INTERFACE#define INTERFACE IHXRM2Converter2DECLARE_INTERFACE_(IHXRM2Converter2, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXRM2Converter2 methods */ STDMETHOD(Init) (THIS_ IHXRM2Converter2Response* pResponse) PURE; // // AddStream takes a stream from an RM1 file and // adds it to the new RM2 multirate section // STDMETHOD(AddStream) (THIS_ const char* pFilename, IHXFileObject* pFileObject, UINT16 nStreamNumber, BOOL bTagAsBackwardCompatible) PURE; // // AddInterleavedStream takes a stream from an // RM1 file and adds it to the initial interleaved // backward compatibility section // STDMETHOD(AddInterleavedStream) (THIS_ const char* pFilename, IHXFileObject* pFileObject, UINT16 nStreamNumber) PURE; // // Add file slurps down all of the streams in // an RM1 file and adds them to the new RM2 // multirate section. // STDMETHOD(AddFile) (THIS_ const char* pFilename, IHXFileObject* pFileObject) PURE; // // SetTitle,Author,Copyright, and Comment // should all be pretty self explanatory... /
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -