Estrutura CIDA (shlobj_core.h)

Usado com o formato de área de transferência CFSTR_SHELLIDLIST para transferir o ponteiro para uma lista de identificadores de item (PIDL) de um ou mais objetos de namespace do Shell.

Sintaxe

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

Membros

cidl

Tipo: UINT

O número de PIDLs que estão sendo transferidos, não incluindo a pasta pai.

aoffset[1]

Tipo: UINT[1]

Uma matriz de deslocamentos, em relação ao início dessa estrutura. A matriz contém elementos cidl+1. O primeiro elemento de aoffset contém um deslocamento para o PIDL totalmente qualificado de uma pasta pai. Se esse PIDL estiver vazio, a pasta pai será a área de trabalho. Cada um dos elementos restantes da matriz contém um deslocamento para um dos PIDLs a serem transferidos. Todos esses PIDLs são relativos ao PIDL da pasta pai.

Comentários

Para usar essa estrutura para recuperar um PIDL específico, adicione o valor aoffset do PIDL ao endereço da estrutura. As duas macros a seguir podem ser usadas para recuperar PIDLs da estrutura. O primeiro recupera o PIDL da pasta pai. O segundo recupera um PIDL, especificado por seu índice baseado em zero.

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

O valor retornado por essas macros é um ponteiro para a estrutura ITEMIDLIST . Como essas estruturas variam de comprimento, você deve determinar o final da estrutura analisando-a. Consulte NameSpace para obter mais discussões sobre PIDLs e a estrutura ITEMIDLIST .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho shlobj_core.h (inclua Shlobj.h)