www.pudn.com > FileMemView.rar > FMemView.h
// FMemView.h : Declaration of the CFMemView #ifndef __FMEMVIEW_H_ #define __FMEMVIEW_H_ #include "resource.h" // main symbols ///////////////////////////////////////////////////////////////////////////// // CFMemView class ATL_NO_VTABLE CFMemView : public CComObjectRootEx, public CComCoClass , public IDispatchImpl { public: CFMemView() { m_bShare = TRUE; m_hFile = NULL; // 文件句柄 m_hMap = NULL; // 内存映射文件句柄 m_lpvFile = NULL; m_nFsize = 0; //文件大小 m_dOffset = 0; } DECLARE_REGISTRY_RESOURCEID(IDR_FMEMVIEW) DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CFMemView) COM_INTERFACE_ENTRY(IFMemView) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP() // IFMemView public: long FindPosofRow(long row); STDMETHOD(Save)(); STDMETHOD(Write)(/*[in]*/byte* pAarry,/*[in]*/long nSize); STDMETHOD(Read)(/*[in]*/byte* pAarry,/*[in]*/long nSize); STDMETHOD(RemoveLine)(); STDMETHOD(RemoveLineAt)(/*[in]*/long row); void SetOffset(DWORD nOffSize); void SetSize(DWORD nsize); DWORD GetOffset(); DWORD GetSize(); STDMETHOD(ReadLine)(/*[in]*/unsigned char* pAarry); STDMETHOD(WriteLine)(/*[in]*/unsigned char* pAarry); STDMETHOD(GetFileSize)(/*[out,retval]*/long *nSize); STDMETHOD(DetachMapFile)(); STDMETHOD(CreateMap)(/*[in]*/BSTR fileName,/*[in]*/long bflag, /*[out,retval]*/VARIANT_BOOL *pval); bool m_bShare; HANDLE m_hFile; // 文件句柄 HANDLE m_hMap; // 内存映射文件句柄 LPVOID m_lpvFile; // 文件数据的头指针 byte* m_pData; //用于操作文件的指针 DWORD m_nFsize; //文件的大小,用于写的时候APPEND DWORD m_dOffset; //文件指针的偏移,用于读文件时使用 }; #endif //__FMEMVIEW_H_