Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
ExtractIcon.h
Package: adfview_src.zip [view]
Upload User: hy_wanghao
Upload Date: 2007-01-08
Package Size: 279k
Code Size: 2k
Category:
Shell api
Development Platform:
Visual C++
- #if !defined(AFX_EXTRACTICON_H__20001226_57EC_56A4_0219_0080AD509054__INCLUDED_)
- #define AFX_EXTRACTICON_H__20001226_57EC_56A4_0219_0080AD509054__INCLUDED_
- #pragma once
- //////////////////////////////////////////////////////////////////////////////
- // CExtractIcon
- template< class T >
- class ATL_NO_VTABLE CExtractIcon :
- public CComObjectRootEx<CComSingleThreadModel>,
- public IExtractIcon
- {
- public:
- DECLARE_NOT_AGGREGATABLE(CExtractIcon)
- BEGIN_COM_MAP(CExtractIcon)
- COM_INTERFACE_ENTRY_IID(IID_IExtractIcon,IExtractIcon)
- END_COM_MAP()
- CPidl m_pPidl;
- HRESULT _Init(LPCITEMIDLIST pidl)
- {
- m_pPidl.Copy(CPidl::_GetLastItem(pidl));
- return S_OK;
- }
- // IExtractIcon
- STDMETHOD(GetIconLocation)(UINT uFlags,
- LPTSTR /*szIconFile*/,
- UINT /*cchMax*/,
- LPINT piIndex,
- LPUINT puFlags)
- {
- ATLASSERT(piIndex);
- ATLASSERT(puFlags);
- if( m_pPidl.IsEmpty() ) return E_FAIL;
- T *pData = reinterpret_cast<T *>((LPITEMIDLIST)m_pPidl);
- if( pData!=NULL ) {
- switch( pData->type ) {
- case PT_FOLDER:
- *piIndex = (uFlags & GIL_OPENICON)==0 ? ICON_INDEX_FOLDER : ICON_INDEX_FOLDER_OPEN;
- *puFlags = GIL_NOTFILENAME;
- break;
- default:
- *piIndex = ICON_INDEX_FILE;
- *puFlags = GIL_NOTFILENAME;
- break;
- }
- }
- return S_OK;
- }
- STDMETHOD(Extract)(LPCTSTR /*pstrName*/,
- UINT nIconIndex,
- HICON *phiconLarge,
- HICON *phiconSmall,
- UINT /*nIconSize*/)
- {
- ATLASSERT(phiconLarge);
- ATLASSERT(phiconSmall);
- *phiconLarge = ImageList_GetIcon(_Module.m_ImageLists.m_hImageListLarge, nIconIndex, ILD_TRANSPARENT);
- *phiconSmall = ImageList_GetIcon(_Module.m_ImageLists.m_hImageListSmall, nIconIndex, ILD_TRANSPARENT);
- return S_OK;
- };
- };
- #endif // !defined(AFX_EXTRACTICON_H__20001226_57EC_56A4_0219_0080AD509054__INCLUDED_)