我从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句柄无效或类型错误
我想知道是否有人知道为什么会这样?以及为什么有些图标可以访问而其他图标不可用。
由于
答案 0 :(得分:1)
为什么某些图标可以访问而其他图标不显示。
因为这些图标不属于Shell32.dll的公共合同。
你不应该依赖从Shell32.dll加载图标。雷蒙德陈解释了为什么,虽然我找不到这篇文章。