//////////////////////////////////////////////////////////////////////// // // CExtractIcon // // IExtractIcon implementation // //////////////////////////////////////////////////////////////////////// #ifndef _INC_CEXTICON_H #define _INC_CEXTICON_H class CExtractIcon : public IExtractIconA, public IExtractIconW { public: // *** IUnknown methods *** HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject); ULONG STDMETHODCALLTYPE AddRef(void); ULONG STDMETHODCALLTYPE Release(void); // *** IExtractIconA methods *** HRESULT STDMETHODCALLTYPE GetIconLocation(UINT uFlags,LPSTR szIconFile,UINT cchMax,int FAR *piIndex,UINT FAR *pwFlags); HRESULT STDMETHODCALLTYPE Extract(LPCSTR pszFile,UINT nIconIndex,HICON FAR *phiconLarge,HICON FAR *phiconSmall,UINT nIcons); #ifndef WIN16 // WIN16FF // *** IExtractIconW methods *** HRESULT STDMETHODCALLTYPE GetIconLocation(UINT uFlags,LPWSTR szIconFile,UINT cchMax,int FAR *piIndex,UINT FAR *pwFlags); HRESULT STDMETHODCALLTYPE Extract(LPCWSTR pszFile,UINT nIconIndex,HICON FAR *phiconLarge,HICON FAR *phiconSmall,UINT nIcons); #endif // !WIN16 CExtractIcon(int iIcon, int iIconOpen, UINT uFlags, LPSTR szModule); ~CExtractIcon(); private: UINT m_cRef; int m_iIcon; int m_iIconOpen; UINT m_uFlags; char m_szModule[MAX_PATH]; }; #endif // _INC_CEXTICON_H