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 に設定されますが、常に設定されるとは限りません。 複数のユーザーを持つことができますが、1 人のユーザーに属するフォルダーに対して hToken に値を割り当てる必要がある場合があります。 この種類の最も一般的に使用されるフォルダーは 、マイ ドキュメントです。
[in] dwFlags
型: DWORD
返されるパスがフォルダーの実際のパスか、既定のパスかを指定します。 この値は、 CSIDL 値に関連付けられているフォルダーがユーザーによって移動または名前変更される場合に使用されます。
SHGFP_TYPE_CURRENT
フォルダーの現在のパスを返します。
SHGFP_TYPE_DEFAULT
フォルダーの既定のパスを返します。
[in] pszSubDir
型: LPCTSTR
フォルダーのパスに追加するサブパスへのポインター。 これは、長さMAX_PATHの null で終わる文字列です。 新しいディレクトリを作成していない場合、これは既存のサブディレクトリである必要があります。または、関数からエラーが返されます。 サブパスを追加しない場合、この値は NULL にすることができます。
[out] pszPath
種類: LPTSTR
この関数が戻るとき、この値はディレクトリ パスと追加されたサブパスを指します。 これは、長さMAX_PATHの null で終わる文字列です。 関数がエラー コードを返す場合、この文字列は空です。
戻り値
種類: HRESULT
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
解説
注意
shlobj_core.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SHGetFolderPathAndSubDir を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | shlobj_core.h (Shlobj.h、Shlobj_core.h を含む) |
Library | Shell32.lib |
[DLL] | Shell32.dll (バージョン 5.60 以降) |