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 版或更新版本) |