1*f6dc9357SAndroid Build Coastguard Worker // SysIconUtils.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_SYS_ICON_UTILS_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_SYS_ICON_UTILS_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyWindows.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker #include <CommCtrl.h> 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyString.h" 11*f6dc9357SAndroid Build Coastguard Worker 12*f6dc9357SAndroid Build Coastguard Worker struct CExtIconPair 13*f6dc9357SAndroid Build Coastguard Worker { 14*f6dc9357SAndroid Build Coastguard Worker UString Ext; 15*f6dc9357SAndroid Build Coastguard Worker int IconIndex; 16*f6dc9357SAndroid Build Coastguard Worker // UString TypeName; 17*f6dc9357SAndroid Build Coastguard Worker // int Compare(const CExtIconPair &a) const { return MyStringCompareNoCase(Ext, a.Ext); } 18*f6dc9357SAndroid Build Coastguard Worker }; 19*f6dc9357SAndroid Build Coastguard Worker 20*f6dc9357SAndroid Build Coastguard Worker struct CAttribIconPair 21*f6dc9357SAndroid Build Coastguard Worker { 22*f6dc9357SAndroid Build Coastguard Worker DWORD Attrib; 23*f6dc9357SAndroid Build Coastguard Worker int IconIndex; 24*f6dc9357SAndroid Build Coastguard Worker // UString TypeName; 25*f6dc9357SAndroid Build Coastguard Worker // int Compare(const CAttribIconPair &a) const { return Ext.Compare(a.Ext); } 26*f6dc9357SAndroid Build Coastguard Worker }; 27*f6dc9357SAndroid Build Coastguard Worker 28*f6dc9357SAndroid Build Coastguard Worker 29*f6dc9357SAndroid Build Coastguard Worker struct CExtToIconMap 30*f6dc9357SAndroid Build Coastguard Worker { 31*f6dc9357SAndroid Build Coastguard Worker CRecordVector<CAttribIconPair> _attribMap; 32*f6dc9357SAndroid Build Coastguard Worker CObjectVector<CExtIconPair> _extMap_Normal; 33*f6dc9357SAndroid Build Coastguard Worker CObjectVector<CExtIconPair> _extMap_Compressed; 34*f6dc9357SAndroid Build Coastguard Worker int SplitIconIndex; 35*f6dc9357SAndroid Build Coastguard Worker int SplitIconIndex_Defined; 36*f6dc9357SAndroid Build Coastguard Worker CExtToIconMapCExtToIconMap37*f6dc9357SAndroid Build Coastguard Worker CExtToIconMap(): SplitIconIndex_Defined(false) {} 38*f6dc9357SAndroid Build Coastguard Worker ClearCExtToIconMap39*f6dc9357SAndroid Build Coastguard Worker void Clear() 40*f6dc9357SAndroid Build Coastguard Worker { 41*f6dc9357SAndroid Build Coastguard Worker SplitIconIndex_Defined = false; 42*f6dc9357SAndroid Build Coastguard Worker _extMap_Normal.Clear(); 43*f6dc9357SAndroid Build Coastguard Worker _extMap_Compressed.Clear(); 44*f6dc9357SAndroid Build Coastguard Worker _attribMap.Clear(); 45*f6dc9357SAndroid Build Coastguard Worker } 46*f6dc9357SAndroid Build Coastguard Worker int GetIconIndex_DIR(DWORD attrib = FILE_ATTRIBUTE_DIRECTORY) 47*f6dc9357SAndroid Build Coastguard Worker { 48*f6dc9357SAndroid Build Coastguard Worker return GetIconIndex(attrib, L"__DIR__"); 49*f6dc9357SAndroid Build Coastguard Worker } 50*f6dc9357SAndroid Build Coastguard Worker int GetIconIndex(DWORD attrib, const wchar_t *fileName /* , UString *typeName */); 51*f6dc9357SAndroid Build Coastguard Worker }; 52*f6dc9357SAndroid Build Coastguard Worker 53*f6dc9357SAndroid Build Coastguard Worker extern CExtToIconMap g_Ext_to_Icon_Map; 54*f6dc9357SAndroid Build Coastguard Worker 55*f6dc9357SAndroid Build Coastguard Worker DWORD_PTR Shell_GetFileInfo_SysIconIndex_for_Path_attrib_iconIndexRef( 56*f6dc9357SAndroid Build Coastguard Worker CFSTR path, DWORD attrib, int &iconIndex); 57*f6dc9357SAndroid Build Coastguard Worker HRESULT Shell_GetFileInfo_SysIconIndex_for_Path_return_HRESULT( 58*f6dc9357SAndroid Build Coastguard Worker CFSTR path, DWORD attrib, Int32 *iconIndex); 59*f6dc9357SAndroid Build Coastguard Worker int Shell_GetFileInfo_SysIconIndex_for_Path(CFSTR path, DWORD attrib); 60*f6dc9357SAndroid Build Coastguard Worker 61*f6dc9357SAndroid Build Coastguard Worker int Shell_GetFileInfo_SysIconIndex_for_CSIDL(int csidl); 62*f6dc9357SAndroid Build Coastguard Worker 63*f6dc9357SAndroid Build Coastguard Worker HIMAGELIST Shell_Get_SysImageList_smallIcons(bool smallIcons); 64*f6dc9357SAndroid Build Coastguard Worker 65*f6dc9357SAndroid Build Coastguard Worker #endif 66