Méthode IShellIcon ::GetIconOf (shobjidl_core.h)
Obtient une icône pour un objet à l’intérieur d’un dossier spécifique.
Syntaxe
HRESULT GetIconOf(
PCUITEMID_CHILD pidl,
UINT flags,
int *pIconIndex
);
Paramètres
pidl
Type : LPCITEMIDLIST
Adresse de la structure ITEMIDLIST qui spécifie l’emplacement relatif du dossier.
flags
Type : UINT
Indicateurs spécifiant le mode d’affichage de l’icône. Ce paramètre peut être égal à zéro ou à l’une des valeurs suivantes.
GIL_FORSHELL
L’icône doit être affichée dans un dossier Shell.
GIL_OPENICON
L’icône doit être à l’état ouvert si les images à état ouvert et à état fermé sont disponibles. Si cet indicateur n’est pas spécifié, l’icône doit être à l’état fermé. Cet indicateur est généralement utilisé pour les objets de dossier.
pIconIndex
Type : LPINT
Adresse de l’index de l’icône dans la liste d’images système. Les index de liste d’images standard suivants peuvent être retournés.
0
Document (page vide, non associée)
1
Document (avec des données sur la page)
2
Application (l’extension de nom de fichier doit être .exe, .com ou .bat)
3
Dossier (brut)
4
Dossier (ouvert)
Valeur retournée
Type : HRESULT
Renvoie S_OK si lpIconIndex contient l’index de liste d’images système correct ou S_FALSE si une icône ne peut pas être obtenue pour cet objet.
Remarques
Si vous ne parvenez pas à récupérer une icône pour cet objet à l’aide de GetIconOf, utilisez la méthode GetUIObjectOf pour récupérer un objet qui prend en charge la méthode Extract .
IShellIcon ::GetIconOf échoue si CoInitialize n’est pas appelé en premier.
Remarque concernant l’appel d’applications
L’index retourné provient de la liste d’images système.Remarque à l’attention des implémenteurs
Si l’index d’icône utilisé n’est pas l’une des images standard répertoriées, il incombe à l’implémenteur d’ajouter l’image à la liste d’images système, puis de placer l’index dans le paramètre lpIconIndex . Pour éviter que la liste d’images système ne s’agrandisse trop, chaque image ne doit être ajoutée qu’une seule fois.Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shobjidl_core.h (inclure Shobjidl.h) |
DLL | Shell32.dll (version 4.0 ou ultérieure) |