SHRegGetPathW 函数 (shlwapi.h)

从注册表中检索文件路径,根据需要扩展环境变量。

语法

LSTATUS SHRegGetPathW(
  [in]  HKEY    hKey,
  [in]  LPCWSTR pcszSubKey,
  [in]  LPCWSTR pcszValue,
  [out] LPWSTR  pszPath,
        DWORD   dwFlags
);

参数

[in] hKey

类型:HKEY

当前打开的密钥或注册表项的句柄。

[in] pcszSubKey

类型:LPCTSTR

指向包含子项名称的以 null 结尾的字符串的指针。

[in] pcszValue

类型:LPCTSTR

指向以 null 结尾的字符串的指针,该字符串包含保存未展开的路径字符串的值的名称。

[out] pszPath

类型:LPTSTR

用于保存扩展路径的缓冲区。 应将此缓冲区的大小设置为 MAX_PATH,以确保它足够大以容纳返回的字符串。

dwFlags

类型:DWORD

保留。

返回值

类型:LSTATUS

如果成功,则返回 ERROR_SUCCESS;否则返回 Windows 错误代码。

言论

指定的注册表值的数据类型必须是 REG_EXPAND_SZREG_SZ。 如果它具有 REG_EXPAND_SZ 类型,注册表字符串中的任何环境变量都将使用 ExpandEnvironmentStrings展开。 如果具有 REG_SZ 数据类型,则不会扩展环境变量,pszPath 指向的字符串将与注册表中的字符串相同。

以下环境字符串将替换为其等效路径。

环境字符串 文件夹
%USERPROFILE% 当前用户的配置文件文件夹
%ALLUSERSPROFILE% “所有用户”配置文件文件夹
%ProgramFiles% Program Files 文件夹
%SystemRoot% 系统根文件夹
%SystemDrive% 系统驱动器号
 
注意 %USERPROFILE% 相对于用户进行呼叫。 如果用户正在从服务中模拟,则此函数不起作用。
 

注意

shlwapi.h 标头将 SHRegGetPath 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional、Windows XP [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 shlwapi.h
Shlwapi.lib
DLL Shlwapi.dll (版本 5.0 或更高版本)