Files
easy7zip/CPP/7zip/UI/FileManager/SysIconUtils.h
Igor Pavlov 173c07e166 4.59 beta
2016-05-28 00:15:56 +01:00

52 lines
1.0 KiB
C++
Executable File

// SysIconUtils.h
#ifndef __SYSICONUTILS_H
#define __SYSICONUTILS_H
#include "Common/MyString.h"
struct CExtIconPair
{
UString Ext;
int IconIndex;
UString TypeName;
};
inline bool operator==(const CExtIconPair &a1, const CExtIconPair &a2)
{
return (a1.Ext == a2.Ext);
}
inline bool operator<(const CExtIconPair &a1, const CExtIconPair &a2)
{
return (a1.Ext < a2.Ext);
}
class CExtToIconMap
{
int _dirIconIndex;
UString _dirTypeName;
int _noExtIconIndex;
UString _noExtTypeName;
CObjectVector<CExtIconPair> _map;
public:
CExtToIconMap(): _dirIconIndex(-1), _noExtIconIndex(-1) {}
void Clear()
{
_dirIconIndex = -1;
_noExtIconIndex = -1;
_map.Clear();
}
int GetIconIndex(UINT32 attributes, const UString &fileName, UString &typeName);
int GetIconIndex(UINT32 attributes, const UString &fileName);
};
DWORD_PTR GetRealIconIndex(LPCTSTR path, DWORD attributes, int &iconIndex);
#ifndef _UNICODE
DWORD_PTR GetRealIconIndex(LPCWSTR path, DWORD attributes, int &iconIndex);
#endif
int GetIconIndexForCSIDL(int csidl);
#endif