#ifndef _DOCFILE_H #define _DOCFILE_H class CDocFileThumb : public IExtractImage, public IPersistFile, public CComObjectRoot, public CComCoClass< CDocFileThumb,&CLSID_DocfileThumbnailHandler > { public: CDocFileThumb(); ~CDocFileThumb(); BEGIN_COM_MAP( CDocFileThumb ) COM_INTERFACE_ENTRY( IExtractImage ) COM_INTERFACE_ENTRY( IPersistFile ) END_COM_MAP( ) DECLARE_REGISTRY( CDocFileThumb, _T("Shell.ThumbnailExtract.Docfile.1"), _T("Shell.ThumbnailExtract.DocFile.1"), IDS_DOCTHUMBEXTRACT_DESC, THREADFLAGS_APARTMENT); DECLARE_NOT_AGGREGATABLE( CDocFileThumb ); // IExtractThumbnail STDMETHOD (GetLocation) ( LPWSTR pszPathBuffer, DWORD cch, DWORD * pdwPriority, const SIZE * prgSize, DWORD dwRecClrDepth, DWORD *pdwFlags ); STDMETHOD (Extract)( HBITMAP * phBmpThumbnail); // IPersistFile STDMETHOD (GetClassID)(CLSID * pCLSID ); STDMETHOD (IsDirty)(void); STDMETHOD (Load)(LPCOLESTR pszFileName, DWORD dwMode); STDMETHOD (Save)(LPCOLESTR pszFileName, BOOL fRemember); STDMETHOD (SaveCompleted)(LPCOLESTR pszFileName); STDMETHOD (GetCurFile)(LPOLESTR * ppszFileName); protected: LPWSTR m_pszPath; SIZE m_rgSize; DWORD m_dwRecClrDepth; BITBOOL m_fOrigSize : 1; }; #endif