xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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