⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hxfiles.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
     * 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 + -