SHGetFolderLocation 関数 (shlobj_core.h)

非推奨になりました。 フォルダーのパスを ITEMIDLIST 構造体として取得します。

構文

SHSTDAPI SHGetFolderLocation(
  [in]  HWND             hwnd,
  [in]  int              csidl,
  [in]  HANDLE           hToken,
  [in]  DWORD            dwFlags,
  [out] PIDLIST_ABSOLUTE *ppidl
);

パラメーター

[in] hwnd

型: HWND

予約済み。

[in] csidl

型: int

配置するフォルダーを識別する CSIDL 値。 CSIDLs に関連付けられているフォルダーが特定のシステムに存在しない可能性があります。

[in] hToken

型: HANDLE

特定のユーザーを表すために使用できる アクセス トークン 。 通常は NULL に設定されますが、1 人のユーザーに属するフォルダーに対して複数のユーザーが存在する場合に必要になる場合があります。 この種類の最も一般的に使用されるフォルダーは 、マイ ドキュメントですhToken が NULL 以外の場合、呼び出し元のアプリケーションは正しい偽装を担当します。 特定のユーザーに適切なセキュリティ特権が必要であり、ユーザーのレジストリ ハイブが現在マウントされている必要があります。 アクセス制御の問題の詳細については、「Access Control」を参照してください。

hToken パラメーターに -1 の値を割り当てると、既定のユーザーが示されます。 これにより、 SHGetFolderLocation のクライアントは、既定のユーザーのフォルダーの場所 (デスクトップ フォルダーなど) を検索できます。 既定のユーザー ユーザー プロファイルは、新しいユーザー アカウントが作成されると複製され、 個人用ドキュメントデスクトップなどの特別なフォルダーが含まれます。 [既定のユーザー] フォルダーに追加されたすべての項目は、新しいユーザー アカウントにも表示されます。

[in] dwFlags

型: DWORD

[out] ppidl

種類: PIDLIST_ABSOLUTE*

名前空間 (デスクトップ) のルートに対するフォルダーの場所を指定するアイテム識別子リスト構造へのポインターのアドレス。 失敗した場合、 ppidl パラメーターは NULL に設定されます。 呼び出し元のアプリケーションは、 ILFree を呼び出してこのリソースを解放する役割を担います。

戻り値

種類: HRESULT

成功した場合はS_OKを返し、それ以外の場合は次のようなエラー値を返します。

リターン コード 説明
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
nFolderCSIDL は有効ですが、フォルダーは存在しません。
E_INVALIDARG
nFolderCSIDL が無効です。

注釈

メモ Windows Vista の時点では、この関数は SHGetKnownFolderIDList のラッパーにすぎません。 CSIDL 値は関連する KNOWNFOLDERID に変換され、 SHGetKnownFolderIDList が呼び出されます。 新しいアプリケーションでは、旧バージョンの CSIDL システムではなく、既知のフォルダー システムを使用する必要があります。これは、下位互換性のためにのみサポートされています。
 
SHGetFolderLocationSHGetFolderPathSHGetSpecialFolderLocationおよび SHGetSpecialFolderPath 関数は、Windows Vista より前のシステム上のフォルダーへのハンドルを取得する推奨される方法です。 環境変数名を直接使用する ExpandEnvironmentStrings などの関数 (%VariableName%) は信頼できない場合があります。

この関数は、以前のバージョンのシェルに含まれる SHGetSpecialFolderLocation のスーパーセットです。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shlobj_core.h (Shlobj.h を含む)
Library Shell32.lib
[DLL] Shell32.dll (バージョン 5.0 以降)

こちらもご覧ください

IKnownFolder::GetIDList