1// SysIconUtils.h 2 3#ifndef ZIP7_INC_SYS_ICON_UTILS_H 4#define ZIP7_INC_SYS_ICON_UTILS_H 5 6#include "../../../Common/MyWindows.h" 7 8#include <CommCtrl.h> 9 10#include "../../../Common/MyString.h" 11 12struct CExtIconPair 13{ 14 UString Ext; 15 int IconIndex; 16 // UString TypeName; 17 18 // int Compare(const CExtIconPair &a) const { return MyStringCompareNoCase(Ext, a.Ext); } 19}; 20 21struct CAttribIconPair 22{ 23 DWORD Attrib; 24 int IconIndex; 25 // UString TypeName; 26 27 // int Compare(const CAttribIconPair &a) const { return Ext.Compare(a.Ext); } 28}; 29 30class CExtToIconMap 31{ 32public: 33 CRecordVector<CAttribIconPair> _attribMap; 34 CObjectVector<CExtIconPair> _extMap; 35 int SplitIconIndex; 36 int SplitIconIndex_Defined; 37 38 CExtToIconMap(): SplitIconIndex_Defined(false) {} 39 40 void Clear() 41 { 42 SplitIconIndex_Defined = false; 43 _extMap.Clear(); 44 _attribMap.Clear(); 45 } 46 int GetIconIndex(DWORD attrib, const wchar_t *fileName /* , UString *typeName */); 47 // int GetIconIndex(DWORD attrib, const UString &fileName); 48}; 49 50DWORD_PTR GetRealIconIndex(CFSTR path, DWORD attrib, int &iconIndex); 51int GetIconIndexForCSIDL(int csidl); 52 53HIMAGELIST GetSysImageList(bool smallIcons); 54 55#endif 56