known folder のパスを ITEMIDLIST 構造体として取得する。
SHGetKnownFolderIDList rfid, dwFlags, hToken, ppidl
rfid : [var] 型: REFKNOWNFOLDERID フォルダを識別する KNOWNFOLDERID への参照。known folder ID に関連付けられたフォルダは、特定のシステムには存在しない場合がある。 dwFlags : [int] 型: DWORD 特殊な取得オプションを指定するフラグ。この値は 0 でもよく、それ以外の場合は 1 つ以上の KNOWN_FOLDER_FLAG 値である。 hToken : [intptr] 型: HANDLE 特定のユーザーを表すために使用するアクセストークン。このパラメーターは通常 NULL に設定し、その場合、関数は現在のユーザーのフォルダインスタンスへのアクセスを試みる。ただし、複数ユーザーを持ち得るが単一ユーザーに属するものとして扱われるフォルダの場合は、hToken に値を割り当てる必要があるかもしれない。この種類の最も一般的に使用されるフォルダは Documents である。hToken が非 null の場合、呼び出し側アプリケーションは正しい偽装を行う責任がある。TOKEN_QUERY および TOKEN_IMPERSONATE を含む、特定のユーザーに対する適切なセキュリティ特権を持っている必要があり、ユーザーのレジストリハイブが現在マウントされている必要がある。アクセス制御の詳細については、Access Control を参照。hToken パラメーターに -1 を指定すると、Default User を表す。これにより SHGetKnownFolderIDList のクライアントが Default User の Desktop フォルダなどのフォルダの場所を見つけられるようになる。Default User のユーザープロファイルは、新しいユーザーアカウントが作成されるたびに複製され、Documents や Desktop などの特殊フォルダを含む。Default User フォルダに追加した項目は、新しいユーザーアカウントすべてにも表示される。Default User フォルダへのアクセスには管理者特権が必要であることに注意。 ppidl : [var] 型: PIDLIST_ABSOLUTE* このメソッドが返るときに、フォルダの PIDL へのポインターを格納する。このパラメーターは初期化されていない状態で渡される。呼び出し側は、不要になった時点で ILFree を呼び出して返された PIDL を解放する責任がある。
(プラグイン / モジュール : shell32.dll)
known folder のパスを ITEMIDLIST 構造体として取得する。 [戻り値] 型: HRESULT 成功した場合は S_OK を、それ以外の場合は次のいずれかを含むエラー値を返す。 (以下省略) [備考] この関数は SHGetFolderLocation を置き換える。古い関数は今や単に SHGetKnownFolderIDList のラッパーである。この関数を呼び出す側は少なくとも User 特権を持っている必要がある。Documents フォルダなど、いくつかの known folder はユーザーごとである。各ユーザーは Documents フォルダに対して異なるパスを持つ。hToken が NULL の場合、API は現在のユーザーのフォルダインスタンスへのアクセスを試みる。hToken が有効なユーザートークンの場合、API はそのトークンを使ってユーザーを偽装し、そのユーザーのフォルダインスタンスへのアクセスを試みる。
| プラグイン / モジュール | shell32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の shell32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_shell32_gen2.hs |