Cargando iconos de Shell32.dll: Win32 mango no es válido o no es el tipo incorrecto

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

  •  09-09-2019
  •  | 
  •  

Pregunta

Me estoy haciendo algunos iconos de la Shell32.dll. Aunque incluya algunos de los iconos no parece estar disponible, y no puedo entender por qué.

Me estoy haciendo el icono mediante la carga de la biblioteca llamando a:

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

y luego conseguir el icono llamando a:

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

envío en el índice de icono del icono que estoy recibiendo, que funciona bien para icpons tal como el icono Abrir carpeta (índice 5) y el icono de inicio de sesión (índice 45) pero cuando intento y consigo iconos en el índice (71 , 73, 127, etc, etc) me sale el siguiente excepción: manija de Win32 que se ha pasado del icono no es válido o no es el tipo incorrecto

Me preguntaba si alguien sabía qué estaba pasando esto? y por qué algunos de los iconos son accesibles y otros no aparecen.

Gracias

¿Fue útil?

Solución

  

¿Por qué algunos de los iconos son accesibles y otros no aparecen.

Debido a que los iconos no son parte del contrato público de Shell32.dll.

No se debe confiar en los iconos de carga de Shell32.dll de todos modos. Raymond Chen explica por qué, aunque no puedo encontrar el artículo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top