icônes de chargement de Shell32.dll: poignée Win32 est pas valide ou est le mauvais type

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

  •  09-09-2019
  •  | 
  •  

Question

Je reçois des icônes de la Shell32.dll. Althought certaines des icônes ne semblent pas être disponibles, et je ne comprends pas pourquoi.

Je reçois l'icône en chargeant la bibliothèque en appelant:

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

puis obtenir l'icône en appelant:

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

J'envoie dans l'index de l'icône de l'icône que je reçois, ce qui fonctionne très bien pour icpons tels que l'icône de dossier ouvert (index 5) et l'icône de connexion (index 45), mais quand j'essayer d'obtenir des icônes à l'index (71 , je reçois l'exception suivante 73, 127, etc., etc.): poignée Win32 qui a été passé à Icône est pas valide ou est le mauvais type

Je me demandais si quelqu'un savait pourquoi cela se passait? et pourquoi certaines des icônes sont accessibles et d'autres apparaissent pas.

Merci

Était-ce utile?

La solution

  

pourquoi certaines des icônes sont accessibles et d'autres apparaissent pas.

Parce que les icônes ne font pas partie du marché public de Shell32.dll.

Vous ne devez pas compter sur les icônes de chargement de Shell32.dll de toute façon. Raymond Chen explique pourquoi, bien que je ne trouve pas l'article.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top