加载 Shell 的默认图标

发布于 2024-08-12 05:23:03 字数 482 浏览 3 评论 0原文

Vista 中的默认图标列于:

HKEY_CLASSES_ROOT \ Unknown \ DefaultIcon

As:

%SystemRoot%\System32\shell32.dll,0

我想在 C++ 中加载该图标的 48x48 版本。我已经尝试过:

hIcon = (HICON)::LoadImage(hmShell32, MAKEINTRESOURCE(0), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);

但是我返回了 NULL hIcon,当我调用 ::GetLastError() 时,它返回: ERROR_RESOURCE_TYPE_NOT_FOUND

如何从 Shell32.dll 加载默认图标?

提前致谢, 韦恩·沃尔特·贝里

{6230289B-5BEE-409e-932A-2F01FA407A92}

The default icon in Vista is listed under:

HKEY_CLASSES_ROOT \ Unknown \ DefaultIcon

As:

%SystemRoot%\System32\shell32.dll,0

I want to load a 48x48 version of that Icon in C++. I have tried:

hIcon = (HICON)::LoadImage(hmShell32, MAKEINTRESOURCE(0), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);

However I get back a NULL hIcon and when I call ::GetLastError() it returns: ERROR_RESOURCE_TYPE_NOT_FOUND

How do I load the default icon out of Shell32.dll?

Thanks in advance,
Wayne Walter Berry

{6230289B-5BEE-409e-932A-2F01FA407A92}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

歌枕肩 2024-08-19 05:23:03

如果您只需要支持 Vista/7 那么这应该可以工作。

SHSTOCKICONINFO iconInfo;
iconInfo.cbSize = sizeof(iconInfo);
if(SUCCEEDED(SHGetStockIconInfo(SIID_DOCNOASSOC, SHGSI_ICONLOCATION, &iconInfo)))
{       
    wcex.hIcon = (HICON)::LoadImage(LoadLibrary(iconInfo.szPath), MAKEINTRESOURCE(-iconInfo.iIcon), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);
}

If you only have to support Vista/7 then this should work.

SHSTOCKICONINFO iconInfo;
iconInfo.cbSize = sizeof(iconInfo);
if(SUCCEEDED(SHGetStockIconInfo(SIID_DOCNOASSOC, SHGSI_ICONLOCATION, &iconInfo)))
{       
    wcex.hIcon = (HICON)::LoadImage(LoadLibrary(iconInfo.szPath), MAKEINTRESOURCE(-iconInfo.iIcon), IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文