SHGetKnownFolderItem

known folder を表す IShellItem オブジェクトを取得する。

SHGetKnownFolderItem rfid, flags, hToken, riid, ppv

rfid : [var] 型: REFKNOWNFOLDERID 項目を含むフォルダを識別する GUID である KNOWNFOLDERID への参照。
flags : [int] 型: KNOWN_FOLDER_FLAG known folder の IShellItem の取得時に使用される特殊なオプションを指定するフラグ。この値は KF_FLAG_DEFAULT でもよく、それ以外の場合は 1 つ以上の KNOWN_FOLDER_FLAG 値である。
hToken : [intptr] 型: HANDLE 特定のユーザーを表すために使用するアクセストークン。このパラメーターは通常 NULL に設定し、その場合、関数は現在のユーザーのフォルダインスタンスへのアクセスを試みる。ただし、複数ユーザーを持ち得るが単一ユーザーに属するものとして扱われるフォルダの場合は、hToken に値を割り当てる必要があるかもしれない。この種類の最も一般的に使用されるフォルダは Documents である。
riid : [var] 型: REFIID 項目を表すインターフェイスの IID への参照。通常は IID_IShellItem または IID_IShellItem2。
ppv : [var] 型: void** このメソッドが返るときに、riid で要求されたインターフェイスポインターを格納する。

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

解説

known folder を表す IShellItem オブジェクトを取得する。

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

[備考]
この関数の呼び出し側は管理者特権を持っている必要がある。public な known folder
に対してこの関数を呼び出すには、呼び出し側は管理者特権を持っている必要がある。ユーザーごとの known folder に対しては
User 特権だけが必要である。Documents フォルダなど、known folder のいくつかはユーザーごとである。各ユーザーは
Documents フォルダに対して異なるパスを持つ。hToken が NULL の場合、API
は呼び出し側アプリケーションのフォルダインスタンス (現在のユーザーのもの) へのアクセスを試みる。hToken
が有効なユーザートークンの場合、API はそのトークンを使ってユーザーを偽装し、そのユーザーのインスタンスへのアクセスを試みる。この関数は
KF_CATEGORY_FIXED および KF_CATEGORY_VIRTUAL
型のフォルダに対しては呼び出すことができない。KF_CATEGORY_COMMON
型のフォルダに対してこの関数を呼び出すには、呼び出し側アプリケーションが昇格された特権で実行されている必要がある。

情報

プラグイン / モジュール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