ultimatepp/uppdev/ShellIcons/main.cpp
cxl 3cd394812c Merge continued
git-svn-id: svn://ultimatepp.org/upp/trunk@10263 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2016-10-04 08:34:39 +00:00

35 lines
No EOL
838 B
C++

#include <CtrlLib/CtrlLib.h>
using namespace Upp;
Image GetShellIcon(int ii, bool large)
{
HICON hIcon = NULL;
const char *kpath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Icons";
Vector<String> s = Split(GetWinRegString(AsString(ii), kpath), ',');
String dll = "shell32.dll";
if(s.GetCount() == 2) {
dll = s[0];
ii = atoi(s[1]);
}
return Win32DllIcon(dll, ii, large);
}
struct App : TopWindow {
ArrayCtrl h;
App() {
Sizeable().Zoomable();
h.AddColumn("Icon no.");
h.AddColumn("Small icon").SetDisplay(CenteredImageDisplay());
h.AddColumn("Large icon").SetDisplay(CenteredImageDisplay());
h.SetLineCy(32);
for(int i = 0; i < 200; i++)
h.Add(i, GetShellIcon(i, false), GetShellIcon(i, true));
Add(h.SizePos());
}
};
GUI_APP_MAIN {
App().Run();
}