非推奨。CSIDL によって識別されるシステムフォルダに新しいパスを割り当てる。(Unicode)
SHSetFolderPathW csidl, hToken, dwFlags, pszPath
csidl : [int] 型: int パスを設定するフォルダを識別する CSIDL 値。物理フォルダのみが有効である。仮想フォルダを指定するとこの関数は失敗する。文字列が提供されたとおりにレジストリに書き込まれることを保証するには、CSIDL に CSIDL_FLAG_DONT_UNEXPAND 値を加える。CSIDL_FLAG_DONT_UNEXPAND フラグを含めない場合、パスの一部が %USERPROFILE% などの環境文字列に置き換えられる場合がある。 hToken : [intptr] 型: HANDLE 特定のユーザーを表すために使用できるアクセストークン。このパラメーターは通常 NULL に設定し、その場合、関数は現在のユーザーのフォルダインスタンスへのアクセスを試みる。ただし、複数ユーザーを持ち得るが単一ユーザーに属するものとして扱われるフォルダの場合は、hToken に値を割り当てる必要があるかもしれない。この種類の最も一般的に使用されるフォルダは Documents である。hToken が非 null の場合、呼び出し側アプリケーションは正しい偽装を行う責任がある。TOKEN_QUERY および TOKEN_IMPERSONATE を含む、特定のユーザーに対する適切なセキュリティ特権を持っている必要があり、ユーザーのレジストリハイブが現在マウントされている必要がある。アクセス制御の詳細については、Access Control を参照。 dwFlags : [int] 型: DWORD 予約済み。0 に設定する必要がある。 pszPath : [wstr] 型: LPCTSTR フォルダの新しいパスを格納する、長さ MAX_PATH の null 終端文字列へのポインター。この値を NULL にすることはできず、文字列の長さがゼロであってもならない。
(プラグイン / モジュール : shell32.dll)
非推奨。CSIDL によって識別されるシステムフォルダに新しいパスを割り当てる。(Unicode) [戻り値] 型: HRESULT 標準の HRESULT コードを返す。次のものを含む: (以下省略) [備考] 注 Windows Vista 以降、この関数は単に SHSetKnownFolderPath のラッパーとなった。CSIDL 値は対応する KNOWNFOLDERID に変換され、SHSetKnownFolderPath が呼び出される。新しいアプリケーションは、後方互換性のためにのみサポートされている古い CSIDL システムではなく、known folder システムを使用すべきである。SHSetFolderPath は Shell32.dll から名前ではエクスポートされていない。この関数を使うには、SHSetFolderPathA (ANSI 文字列用) は序数 231 で、SHSetFolderPathW (Unicode 文字列用) は序数 232 で GetProcAddress を呼び出して関数ポインターを取得する必要がある。フォルダ名には ANSI で表現できない Unicode 文字が含まれる可能性があるため、パスは Unicode 文字列で表現することを推奨する。 > [!NOTE] > shlobj_core.h ヘッダーは SHSetFolderPath を、UNICODE プリプロセッサ定数の定義に基づいてこの関数の ANSI 版または Unicode 版を自動的に選択するエイリアスとして定義している。エンコーディング中立なエイリアスとそうでないコードを混在して使用すると、コンパイルや実行時のエラーにつながる不一致が発生する場合がある。詳細は [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes) を参照。
| プラグイン / モジュール | 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 |