Shell32.dllからアイコンをロードする:Win32のハンドルが有効ではありませんか、間違ったタイプであります

StackOverflow https://stackoverflow.com/questions/949196

  •  09-09-2019
  •  | 
  •  

質問

私はのShell32.dllからいくつかのアイコンを取得しています。アイコンの一部Althought利用可能であることが表示されません、と私は理由を理解することはできません。

私は呼び出すことで、ライブラリをロードすることによって、アイコンを取得しています:

[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、などなど)私は、次の例外を取得: アイコンに渡されたWin32のハンドルが有効ではありませんか、間違ったタイプです。

これが起こった理由を誰もが知っていた場合は、

私は思っていましたか?そしてなぜ、アイコンの一部がアクセス可能であり、他はありません表示されます。

おかげ

役に立ちましたか?

解決

  

なぜアイコンの一部がアクセス可能であり、他はありません表示されます。

アイコンがのShell32.dllの公共契約の一部ではないので。

あなたはとにかくのShell32.dllからロードアイコンに頼るべきではありません。レイモンド・チェンは、私は記事を見つけることができませんが、理由を説明する。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top