【发布时间】:2019-11-13 10:15:14
【问题描述】:
我想让一个文件夹图标看起来像这样
但我实际上让它看起来像这样
.
我的实现:
HICON GetSystemIcon(IShellFolder* folder, PCIDLIST_ABSOLUTE idpl) {
IExtractIcon* extract_icon;
folder->GetUIObjectOf(NULL, 1, &idpl, IID_IExtractIcon, NULL, (void**)&extract_icon);
wchar_t icon_file[MAX_PATH] = {0};
int icon_index = 0;
UINT flag = GIL_SIMULATEDOC;
extract_icon->GetIconLocation(GIL_FORSHELL, icon_file, MAX_PATH, &icon_index, &flag);
HICON small_icon = NULL;
HICON large_icon = NULL;
UINT size = MAKELONG(32, 32);
extract_icon->Extract(icon_file, icon_index, &large_icon, &small_icon, size);
}
我应该如何改变它?
【问题讨论】:
-
您只是在提取图标。您要设置图标。看docs.microsoft.com/en-us/windows/win32/shell/…
-
你要的接口是IShellItemImageFactory。
-
GIL_SIMULATEDOC 用于文件,而不是文件夹。