次の方法で共有


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 以降)

関連項目

SHGetFolderPath