SHGetFolderLocation

非推奨。フォルダのパスを ITEMIDLIST 構造体として取得する。

SHGetFolderLocation hwnd, csidl, hToken, dwFlags, ppidl

hwnd : [intptr] 型: HWND 予約済み。
csidl : [int] 型: int 取得するフォルダを識別する CSIDL 値。CSIDL に関連付けられたフォルダは、特定のシステムには存在しない場合がある。
hToken : [intptr] 型: HANDLE 特定のユーザーを表すために使用できるアクセストークン。通常は NULL に設定するが、単一ユーザーに属するものとして扱われる、複数ユーザーを持つフォルダの場合に必要となることがある。この種類の最も一般的に使用されるフォルダはマイ ドキュメントである。hToken が非 NULL の場合、呼び出し側アプリケーションは正しい偽装を行う責任がある。特定のユーザーに対する適切なセキュリティ特権を持っている必要があり、ユーザーのレジストリハイブが現在マウントされている必要がある。アクセス制御の詳細については、Access Control を参照。
dwFlags : [int] 型: DWORD
ppidl : [var] 型: PIDLIST_ABSOLUTE* 名前空間のルート (デスクトップ) を基準としたフォルダの場所を指定するアイテム識別子リスト構造体へのポインターのアドレス。失敗した場合、ppidl パラメーターは NULL に設定される。呼び出し側アプリケーションは、ILFree を呼び出してこのリソースを解放する責任がある。

(プラグイン / モジュール : shell32.dll)

解説

非推奨。フォルダのパスを ITEMIDLIST 構造体として取得する。

[戻り値]
型: HRESULT 成功した場合は S_OK を、それ以外の場合は次のいずれかを含むエラー値を返す。
(以下省略)

[備考]
注 Windows Vista 以降、この関数は単に SHGetKnownFolderIDList のラッパーとなった。CSIDL
値は対応する KNOWNFOLDERID に変換され、SHGetKnownFolderIDList
が呼び出される。新しいアプリケーションは、後方互換性のためにのみサポートされている古い CSIDL システムではなく、known
folder
システムを使用すべきである。SHGetFolderLocation、SHGetFolderPath、SHGetSpecialFolderLocation、および
SHGetSpecialFolderPath 関数は、Windows Vista
より前のシステムでフォルダのハンドルを取得するのに推奨される方法である。ExpandEnvironmentStrings
のように環境変数名を %VariableName%
の形式で直接使う関数は、信頼できない場合がある。この関数は、シェルの旧バージョンに含まれていた
SHGetSpecialFolderLocation の上位集合である。

情報

プラグイン / モジュールshell32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の shell32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_shell32_gen2.hs