次の方法で共有


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 を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー shlobj_core.h (Shlobj.h、Shlobj_core.h を含む)
ライブラリ Shell32.lib
DLL Shell32.dll (バージョン 5.60 以降)

関連項目

SHGetFolderPath を する