SHGetFolderLocation 函数 (shlobj_core.h)
已弃用。 检索文件夹的路径作为 ITEMIDLIST 结构。
语法
SHSTDAPI SHGetFolderLocation(
[in] HWND hwnd,
[in] int csidl,
[in] HANDLE hToken,
[in] DWORD dwFlags,
[out] PIDLIST_ABSOLUTE *ppidl
);
参数
[in] hwnd
类型:HWND
保留。
[in] csidl
类型: int
标识要定位的文件夹的 CSIDL 值。 特定系统上可能不存在与 CSIDL 关联的文件夹。
[in] hToken
类型: 句柄
可用于表示特定用户的 访问令牌 。 它通常设置为 NULL,但当存在多个用户被视为属于单个用户的文件夹时,可能需要它。 此类型最常用的文件夹是 “我的文档”。 当 hToken 为非 NULL 时,调用应用程序负责正确模拟。 它必须对特定用户具有适当的安全权限,并且用户的注册表配置单元当前必须装载。 有关访问控制问题的进一步讨论,请参阅访问控制。
为 hToken 参数分配值 -1 表示默认用户。 这允许 SHGetFolderLocation 的客户端查找文件夹位置 (,例如默认用户的桌面文件夹) 。 创建任何新用户帐户时,默认用户用户配置文件将重复,并包含特殊文件夹,例如 “我的文档” 和 “桌面”。 添加到“默认用户”文件夹的任何项目也会显示在任何新用户帐户中。
[in] dwFlags
类型:DWORD
[out] ppidl
类型: PIDLIST_ABSOLUTE*
指向项目标识符列表结构的指针的地址,该结构指定文件夹相对于桌面) 命名空间根目录 (的位置。 失败时,ppidl 参数设置为 NULL。 调用应用程序负责通过调用 ILFree 释放此资源。
返回值
类型: HRESULT
如果成功,则返回S_OK,否则返回错误值,包括:
返回代码 | 说明 |
---|---|
|
nFolder 中的 CSIDL 有效,但文件夹不存在。 |
|
nFolder 中的 CSIDL 无效。 |
注解
此函数是 SHGetSpecialFolderLocation 的超集,包含在早期版本的 Shell 中。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shlobj_core.h (包括 Shlobj.h) |
Library | Shell32.lib |
DLL | Shell32.dll (5.0 或更高版本) |