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 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shlwapi.h
Library Shlwapi.lib
DLL Shlwapi.dll (5.0 或更高版本)