SHGetFolderPathAndSubDirA 函式 (shlobj_core.h)

取得資料夾的路徑,並附加使用者提供的子資料夾路徑。

語法

HRESULT SHGetFolderPathAndSubDirA(
  [in]  HWND   hwnd,
  [in]  int    csidl,
  [in]  HANDLE hToken,
  [in]  DWORD  dwFlags,
  [in]  LPCSTR pszSubDir,
  [out] LPSTR  pszPath
);

參數

[in] hwnd

類型: HWND

保留的。

[in] csidl

類型: int

CSIDL值,識別要擷取其路徑的資料夾。 只有實際資料夾有效。 如果指定了虛擬資料夾,此函式會失敗。 您可以使用 SHGetFolderPathAndSubDir 來強制建立資料夾,方法是結合資料夾的 CSIDL 與 CSIDL_FLAG_CREATE。

[in] hToken

類型: HANDLE

代表特定使用者的 存取權杖 。 對於早于 Windows 2000 的系統,請將此值設定為 Null。 對於較新的系統, hToken 通常不一定設定為 Null。 針對可以有多個使用者但被視為屬於單一使用者的資料夾,您可能需要將值指派給 hToken 。 此類型最常使用的資料夾是 我的檔

[in] dwFlags

類型: DWORD

指定要傳回的路徑是否為資料夾的實際路徑或預設路徑。 如果使用者可能會移動或重新命名與 CSIDL 值相關聯的資料夾,則會使用此值。

SHGFP_TYPE_CURRENT

傳回資料夾的目前路徑。

SHGFP_TYPE_DEFAULT

傳回資料夾的預設路徑。

[in] pszSubDir

類型: LPCTSTR

要附加至資料夾路徑之子路徑的指標。 這是長度為 null 的字串,MAX_PATH。 如果您未建立新的目錄,這必須是現有的子目錄,否則函式會傳回錯誤。 如果未附加任何子路徑,這個值可以是 Null

[out] pszPath

類型: LPTSTR

當此函式傳回時,這個值會指向目錄路徑和附加的子路徑。 這是長度為 null 的字串,MAX_PATH。 當函式傳回錯誤碼時,這個字串是空的。

傳回值

類型: HRESULT

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

注意

shlobj_core.h 標頭會根據 UNICODE 預處理器常數的定義,將 SHGetFolderPathAndSubDir 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 shlobj_core.h (包含 Shlobj.h、Shlobj_core.h)
程式庫 Shell32.lib
Dll Shell32.dll (5.60 版或更新版本)

另請參閱

SHGetFolderPath