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

📄 smplfsys.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
	~SMPLAsyncResponse();

	HX_RESULT AsyncReadDone(HX_RESULT result, IHXBuffer* pBuffer);
	HX_RESULT AsyncSeekDone(HX_RESULT result);

	CSimpleFileObject*  m_pSMPLFileObject;
    };

    friend class SMPLAsyncResponse;
    SMPLAsyncResponse*	    m_pAsyncFileResponse;
    IHXInterruptState*	    m_pInterruptState;
    IHXFileStatResponse*   m_pFileStatResponse;
    SeekReason		    m_eSeekReason;
    UINT32		    m_ulPreSeekPosition;
    BOOL		    m_bFileToBeClosed;

#endif

    CHXGenericCallback* m_pStackCallback;

#if defined(HELIX_FEATURE_PROGDOWN)
    enum
    {
        CallbackStateUnknown,
        CallbackStateSeek,
        CallbackStateRead
    };
    CProgressiveDownloadMonitor* m_pProgDownMon;
    UINT32                       m_ulCallbackState;
    BOOL                         RequireFullRead();
    HX_RESULT                    FinishDoReadWithCallback(UINT32 actual);
    HX_RESULT                    FinishDoReadWithoutCallback(UINT32 actual);
    BOOL                         m_bProgDownEnabled;
#endif /* #if defined(HELIX_FEATURE_PROGDOWN) */

public:
    CSimpleFileObject
    (
	CHXString& base_path, 
	CSimpleFileSystem*, 
	IUnknown*,
	UINT32 ulMaxRecursionLevel
    );
    ~CSimpleFileObject();

    /*
     *	IUnknown methods
     */
    STDMETHOD(QueryInterface)	(THIS_
    	    	    	    	REFIID riid,
    	    	    	    	void** ppvObj);

    STDMETHOD_(ULONG32,AddRef)	(THIS);

    STDMETHOD_(ULONG32,Release)	(THIS);

    /*
     *	IHXFileObject methods
     */

    /************************************************************************
     *	Method:
     *	    IHXFileObject::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,
				IHXFileResponse*   /*IN*/	pFileResponse);

    /************************************************************************
     *  Method:
     *      IHXFileObject::GetFilename
     *  Purpose:
     *      Returns the filename (without any path information) associated
     *      with a file object.
     */
    STDMETHOD(GetFilename)      (THIS_
				REF(const char*)    /*OUT*/  pFilename);

    /************************************************************************
     *	Method:
     *	    IHXFileObject::Close
     *	Purpose:
     *	    Closes the file resource and releases all resources associated
     *	    with the object.
     */
    STDMETHOD(Close)	    	(THIS);

    /************************************************************************
     *	Method:
     *	    IHXFileObject::Read
     *	Purpose:
     *	    Reads a buffer of data of the specified length from the file
     *	    and asynchronously returns it to the caller via the 
     *	    IHXFileResponse interface passed in to Init.
     */
    STDMETHOD(Read)		(THIS_
    	    	    	    	ULONG32	    	    ulCount);

    /************************************************************************
     *	Method:
     *	    IHXFileObject::Write
     *	Purpose:
     *	    Writes a buffer of data to the file and asynchronously notifies
     *	    the caller via the IHXFileResponse interface passed in to Init,
     *	    of the completeness of the operation.
     */
    STDMETHOD(Write)	    	(THIS_
    	    	    	    	IHXBuffer*	    pBuffer);

    /************************************************************************
     *	Method:
     *	    IHXFileObject::Seek
     *	Purpose:
     *	    Seeks to an offset in the file and asynchronously notifies
     *	    the caller via the IHXFileResponse interface passed in to Init,
     *	    of the completeness of the operation.
     */
    STDMETHOD(Seek)		(THIS_
    	    	    	    	 ULONG32	    ulOffset,
				 BOOL               bRelative);

    /************************************************************************
     *	Method:
     *	    IHXFileObject::Stat
     *	Purpose:
     *	    Collects information about the file that is returned to the
     *      caller in an IHXStat object
     */
    STDMETHOD(Stat)		(THIS_
				IHXFileStatResponse* pFileStatResponse);

    /************************************************************************
     *	Method:
     *	    IHXFileObject::Advise
     *	Purpose:
     *      To pass information to the File Object
     */
    STDMETHOD(Advise)	(THIS_
			ULONG32 ulInfo);

    /************************************************************************
     *	Method:
     *	    IHXDirHandler::InitDirHandler
     *	Purpose:
     *	    Associates a directory handler with the directory handler
     *	    response, it should notify of operation completness.
     */
    STDMETHOD(InitDirHandler)	(THIS_
				IHXDirHandlerResponse*    /*IN*/  pDirResponse);

    /************************************************************************
     *	Method:
     *	    IHXDirHandler::CloseDirHandler
     *	Purpose:
     *	    Closes the directory handler resource and releases all resources
     *	    associated with the object.
     */
    STDMETHOD(CloseDirHandler)	(THIS);

    /************************************************************************
     *	Method:
     *	    IHXDirHandler::MakeDir
     *	Purpose:
     *	    Create the directory
     */
    STDMETHOD(MakeDir)	(THIS);

    /************************************************************************
     *	Method:
     *	    IHXDirHandler::ReadDir
     *	Purpose:
     *	    Get a dump of the directory
     */
    STDMETHOD(ReadDir)	(THIS);

    /************************************************************************
     *	Method:
     *	    IHXGetFileFromSamePool::GetFileObjectFromPool
     *	Purpose:
     *      To get another FileObject from the same pool. 
     */
    STDMETHOD(GetFileObjectFromPool)	(THIS_
					 IHXGetFileFromSamePoolResponse*);

    // IHXFileExists interface
    /************************************************************************
     *	Method:
     *	    IHXFileExists::DoesExist
     *	Purpose:
     */
    STDMETHOD(DoesExist) (THIS_
			const char*		/*IN*/  pPath, 
			IHXFileExistsResponse* /*IN*/  pFileResponse);

    //IHXRequestHandler methods
    /************************************************************************
     *	Method:
     *	    IHXRequestHandler::SetRequest
     *	Purpose:
     *	    Associates an IHXRequest with an object
     */
    STDMETHOD(SetRequest)   	(THIS_
			    	IHXRequest*        /*IN*/  pRequest);

    /************************************************************************
     *	Method:
     *	    IHXRequestHandler::GetRequest
     *	Purpose:
     *	    Gets the IHXRequest object associated with an object
     */
    STDMETHOD(GetRequest)   	(THIS_
			    	REF(IHXRequest*)  /*OUT*/  pRequest);

    /************************************************************************
     *	Method:
     *	    IHXFileRename::Rename
     *	Purpose:
     *	    Renames the file to the new file name
     */
    STDMETHOD(Rename)			(THIS_
					const char* /*IN*/  pFilename);


    /************************************************************************
     *	Method:
     *	    IHXFileMove::Move
     *	Purpose:
     *	    Renames the file to the new file name
     */
    STDMETHOD(Move)			(THIS_
					const char* /*IN*/  pFilename);


    /************************************************************************
     *	Method:
     *	    IHXFileRemove::Remove
     *	Purpose:
     *	    Removes the file from the file system
     */
    STDMETHOD(Remove)			(THIS);


    /************************************************************************
     *	Method:
     *	    Private interface::_OpenFile
     *	Purpose:
     *	    This common method is used from Init() and GetFileObjectFromPool()
     */
    STDMETHOD(_OpenFile) (THIS_
			  ULONG32	    ulFlags);

    STDMETHOD_(UINT32,IsThreadSafe)(THIS);

#if defined(HELIX_FEATURE_PROGDOWN)
    // CProgressiveDownloadMonitorResponse methods
    STDMETHOD(ProgressiveCallback) (THIS);
#endif /* #if defined(HELIX_FEATURE_PROGDOWN) */

    // CSimpleFileObject methods
    static void StackCallback(void* pArg);
};

#endif // ndef _SMPLFSYS_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -