Structure de l’ACDI (shlobj_core.h)

Utilisé avec le CFSTR_SHELLIDLIST format du Presse-papiers pour transférer le pointeur vers une liste d’identificateurs d’élément (PIDL) d’un ou de plusieurs objets d’espace de noms Shell.

Syntaxe

typedef struct _IDA {
  UINT cidl;
  UINT aoffset[1];
} CIDA, *LPIDA;

Membres

cidl

Type : UINT

Nombre de FICHIERS PIDL transférés, sans compter le dossier parent.

aoffset[1]

Type : UINT[1]

Tableau de décalages, par rapport au début de cette structure. Le tableau contient des éléments cidl+1. Le premier élément d’aoffset contient un décalage vers le PIDL complet d’un dossier parent. Si ce PIDL est vide, le dossier parent est le bureau. Chacun des éléments restants du tableau contient un décalage vers l’un des PIDL à transférer. Tous ces PIDL sont relatifs au PIDL du dossier parent.

Remarques

Pour utiliser cette structure pour récupérer un PIDL particulier, ajoutez la valeur aoffset du PIDL à l’adresse de la structure. Les deux macros suivantes peuvent être utilisées pour récupérer des PIDL à partir de la structure. Le premier récupère le PIDL du dossier parent. Le second récupère un PIDL, spécifié par son index de base zéro.

#define HIDA_GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])
#define HIDA_GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])

La valeur retournée par ces macros est un pointeur vers la structure ITEMIDLIST . Étant donné que ces structures varient en longueur, vous devez déterminer la fin de la structure en l’analysant. Pour plus d’informations sur les PIDL et la structure ITEMIDLIST, consultez NameSpace.

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]
En-tête shlobj_core.h (inclure Shlobj.h)