2009-11-19 58 views
0

在Vista中默認的圖標列下:加載默認圖標殼牌

HKEY_CLASSES_ROOT \未知\的DefaultIcon

由於:

的%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}

回答

0

如果你只需要支持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); 
}