📄 hxfiles.h
字号:
* IHXFastFileFactory methods
*/
/************************************************************************
* Method:
* IHXFastFileFactory::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) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXFastFileFactory2
*
* Purpose:
*
* Interface to allow wrapping file objects with a buffer and block-sharing
* sceme. Query off the server class factory.
*
* IID_IHXFastFileFactory2:
*
* {0000021F-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXFastFileFactory2, 0x0000021F, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#define CLSID_IHXFastFileFactory2 IID_IHXFastFileFactory2
#undef INTERFACE
#define INTERFACE IHXFastFileFactory2
DECLARE_INTERFACE_(IHXFastFileFactory2, IUnknown)
{
/************************************************************************
* 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 IHXFilePlacementRead
DECLARE_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 IHXFastFileStats
DECLARE_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 IHXHTTPPostObject
DECLARE_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 IHXHTTPPostResponse
DECLARE_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 IHXHTTPRedirect
DECLARE_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 IHXHTTPRedirectResponse
DECLARE_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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -