SHRegGetPathA 函式 (shlwapi.h)

從登錄擷取檔案路徑,視需要展開環境變數。

語法

LSTATUS SHRegGetPathA(
  [in]  HKEY   hKey,
  [in]  LPCSTR pcszSubKey,
  [in]  LPCSTR pcszValue,
  [out] LPSTR  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 [僅限桌面應用程式]
目標平台 Windows
標頭 shlwapi.h
程式庫 Shlwapi.lib
Dll Shlwapi.dll (5.0 版或更新版本)