CIDA 结构 (shlobj_core.h)

CFSTR_SHELLIDLIST 剪贴板格式一起使用,将指针传输到项标识符列表 (PIDL) 一个或多个 Shell 命名空间对象。

语法

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

成员

cidl

类型: UINT

正在传输的 PIDL 数,不包括父文件夹。

aoffset[1]

类型: UINT[1]

相对于此结构的开头的偏移量数组。 数组包含 cidl+1 元素。 aoffset 的第一个元素包含父文件夹的完全限定 PIDL 的偏移量。 如果此 PIDL 为空,则父文件夹为桌面。 数组的每个剩余元素都包含一个要传输的 PIDL 的偏移量。 所有这些 PIDL 都相对于父文件夹的 PIDL。

注解

若要使用此结构检索特定的 PIDL,请将 PIDL 的 aoffset 值添加到结构的地址。 以下两个宏可用于从 结构中检索 PIDL。 第一个 检索父文件夹的 PIDL。 第二个函数检索由其从零开始的索引指定的 PIDL。

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

这些宏返回的值是指向 ITEMIDLIST 结构的指针。 由于这些结构的长度各不相同,因此必须通过分析结构来确定结构的末尾。 有关 PIDL 和 ITEMIDLIST 结构的进一步讨论,请参阅 NameSpace

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 shlobj_core.h (包括 Shlobj.h)