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) |