从Shell32.dll:Win32句柄加载图标无效或类型错误

时间:2009-06-04 08:12:08

标签: c# shell32

我从Shell32.dll获取了一些图标。虽然有些图标似乎不可用,但我无法理解为什么。

我通过调用以下方式加载库来获取图标:

[DllImport("kernel32.dll")]
static extern IntPtr LoadLibrary(string Library);

然后通过调用

获取图标
    [DllImport("User32.dll")]
public static extern IntPtr LoadImage(IntPtr ptr, int intId, uint intType, int iconWidth,  int iconHeight, int loadIcon);

我发送了我正在获取的图标的图标索引,适用于诸如打开文件夹图标(索引5)和登录图标(索引45)之类的icpons,但是当我尝试在索引处获取图标时(71) ,73,127等。)我得到以下例外: 传递给Icon的Win32句柄无效或类型错误

我想知道是否有人知道为什么会这样?以及为什么有些图标可以访问而其他图标不可用。

由于

1 个答案:

答案 0 :(得分:1)

  

为什么某些图标可以访问而其他图标不显示。

因为这些图标不属于Shell32.dll的公共合同。

你不应该依赖从Shell32.dll加载图标。雷蒙德陈解释了为什么,虽然我找不到这篇文章。