class CFileTextData : public IDataObject, IPersistFile , IOleItemContainer
{

    public:
        ULONG               m_RefCount ; 
        UINT				m_length ;
        LPSTR				m_cp ;
		WCHAR				m_wFileName [256] ;
		LPMONIKER			m_pFileMoniker ;
		DWORD				m_dwRegisterROT	;
        
    public:
     	
        CFileTextData ( ) ;
		CFileTextData (char *cp, int length) ;

        ~CFileTextData (void);

//IUnknown methods

        STDMETHODIMP	QueryInterface(REFIID, LPVOID FAR *);
        STDMETHODIMP_(ULONG)	AddRef(void);
        STDMETHODIMP_(ULONG)	Release(void);

//IDataObject methods
        
		STDMETHODIMP GetData (LPFORMATETC, LPSTGMEDIUM) ;
    	STDMETHODIMP GetDataHere (LPFORMATETC, LPSTGMEDIUM) ;
    	STDMETHODIMP QueryGetData (LPFORMATETC) ;
    	STDMETHODIMP GetCanonicalFormatEtc (LPFORMATETC, LPFORMATETC) ;
    	STDMETHODIMP SetData (LPFORMATETC, STGMEDIUM FAR *, BOOL) ;
    	STDMETHODIMP EnumFormatEtc (DWORD, LPENUMFORMATETC FAR*) ;

    	STDMETHODIMP DAdvise (FORMATETC FAR*, DWORD, LPADVISESINK, DWORD FAR*) ;
    	STDMETHODIMP DUnadvise  (DWORD) ;
    	STDMETHODIMP EnumDAdvise  (LPENUMSTATDATA FAR*);  

//IPersistFile methods

        STDMETHODIMP GetClassID(LPCLSID);
        STDMETHODIMP IsDirty(void) ;
        STDMETHODIMP Load(LPCOLESTR, DWORD) ;
        STDMETHODIMP Save(LPCOLESTR, BOOL) ;
        STDMETHODIMP SaveCompleted(LPCOLESTR) ;
        STDMETHODIMP GetCurFile(LPOLESTR FAR *) ;

//IOleItemContainer methods

        STDMETHODIMP ParseDisplayName(LPBC, LPOLESTR, ULONG *, LPMONIKER *);
        STDMETHODIMP EnumObjects(DWORD, LPENUMUNKNOWN *);
        STDMETHODIMP LockContainer(BOOL);
        STDMETHODIMP GetObject(LPOLESTR, DWORD, LPBINDCTX, REFIID, LPVOID*);
        STDMETHODIMP GetObjectStorage(LPOLESTR, LPBINDCTX, REFIID, LPVOID*);
        STDMETHODIMP IsRunning(LPOLESTR);


};
