Caricamento icone da Shell32.dll: maniglia Win32 non è valido o è il tipo sbagliato

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

  •  09-09-2019
  •  | 
  •  

Domanda

io sono sempre alcune icone della Shell32.dll. Althought alcune delle icone non sembrano essere disponibili, e non riesco a capire perché.

Mi è toccato l'icona per il caricamento della libreria chiamando:

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

e quindi ottenere l'icona chiamando:

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

mando nell'indice icona della icona che sto ottenendo, che funziona bene per icpons come l'icona Apri cartella (indice 5) e l'icona di accesso (indice 45), ma quando provo ed ottengo le icone in corrispondenza dell'indice (71 , 73, 127, etc. etc.) ottengo la seguente eccezione: manico Win32 che è stato passato a icona non è valido o è il tipo sbagliato

Mi chiedevo se qualcuno sapeva perché questo stava accadendo? e perché alcune delle icone sono accessibili e gli altri non sembrano.

Grazie

È stato utile?

Soluzione

  

il motivo per cui alcune delle icone sono accessibili e gli altri non sembrano.

Perché le icone non sono parte del contratto pubblico di Shell32.dll.

Si consiglia di non fare affidamento su icone di carico da Shell32.dll comunque. Raymond Chen spiega perché, anche se non posso trovare l'articolo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top