IShellFolder::GetDisplayNameOf 方法 (shobjidl_core.h)
检索指定文件对象或子文件夹的显示名称。
语法
HRESULT GetDisplayNameOf(
[in] PCUITEMID_CHILD pidl,
[in] SHGDNF uFlags,
[out] STRRET *pName
);
参数
[in] pidl
类型: PCUITEMID_CHILD
PIDL,用于唯一标识相对于父文件夹的文件对象或子文件夹。
[in] uFlags
类型: SHGDNF
用于请求要返回的显示名称类型的标志。 有关可能值的列表,请参阅 SHGDNF 枚举类型。
[out] pName
类型: STRRET*
此方法返回时,包含指向要在其中返回显示名称的 STRRET 结构的指针。 此结构中返回的名称类型可以是请求的类型,但 Shell 文件夹可能返回不同的类型。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
调用方负责释放此函数分配的资源。
通常, pidl 只能引用父文件夹包含的项目。 PIDL 必须是单级,并且只包含一个 SHITEMID 结构,后跟一个终止零。 如果要检索距离父文件夹一个级别更深的项目的显示名称,请使用 SHBindToParent 与项的直接父文件夹绑定,然后将该项的单级 PIDL 传递到 IShellFolder::GetDisplayNameOf。
此外,如果在 uFlags 中设置了SHGDN_FORPARSING标志,并且未设置SHGDN_INFOLDER标志,则 pidl 可以在命名空间层次结构中父文件夹下方的任何级别引用对象。 一次, pidl 可以是相对于父文件夹的多级 PIDL,并且可以包含多个 SHITEMID 结构。 但是,这不再受支持, pidl 现在应仅引用单个子项。
从 pName 指向的结构中检索显示名称的最简单方法是将其传递给 StrRetToBuf 或 StrRetToStr。 这些函数采用 STRRET 结构并返回名称。 还可以检查结构的 uType 成员,并从相应的成员检索名称。
uFlags 中指定的标志是有关该名称的预期用法的提示。 它们不保证 IShellFolder 将返回请求的名称形式。 如果该表单不可用,可能会返回其他表单。 具体而言,无法保证 IShellFolder::P arseDisplayName 成功分析SHGDN_FORPARSING标志返回的名称。 还有一些标志组合可能会导致 GetDisplayNameOf/ParseDisplayName 往返不返回原始标识符列表。 这种情况是例外,但应检查确定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |
DLL | Shell32.dll (版本 4.0 或更高版本) |