特定のウィンドウのプロパティのコレクションを表すオブジェクトを取得し、それらのプロパティをクエリしたり設定したりできるようにする。
SHGetPropertyStoreForWindow hwnd, riid, ppv
hwnd : [intptr] 型: HWND プロパティを取得するウィンドウへのハンドル。 riid : [var] 型: REFIID ppv 経由で取得するプロパティストアオブジェクトの IID への参照。これは通常 IID_IPropertyStore である。 ppv : [var] 型: void** この関数が返るときに、riid で要求されたインターフェイスポインターを格納する。これは通常 IPropertyStore である。
(プラグイン / モジュール : shell32.dll)
特定のウィンドウのプロパティのコレクションを表すオブジェクトを取得し、それらのプロパティをクエリしたり設定したりできるようにする。 [戻り値] 型: HRESULT この関数が成功した場合は S_OK を返す。失敗した場合は HRESULT エラーコードを返す。 [備考] アプリケーションは、System.AppUserModel.ID プロパティに明示的な Application User Model ID (AppUserModelID) を設定するために、この関数を使用してウィンドウのプロパティストアにアクセスできる。ウィンドウのプロパティはウィンドウを閉じる前に削除する必要がある。これを行わないと、それらのプロパティが使用しているリソースがシステムに返却されない。プロパティを削除するには PROPVARIANT 型の VT_EMPTY に設定する。ppv 経由で取得したオブジェクトに対して IPropertyStore::SetValue を呼び出すと、プロパティと値はただちにウィンドウに格納される。したがって IPropertyStore::Commit を呼び出す必要はない。呼び出してもエラーは発生しないが効果はない。アプリケーションは、アプリケーションのタスクバーグループ化やジャンプリストの内容を制御するために、個々のウィンドウに AppUserModelID を設定する。たとえばスイートアプリケーションは、サブ機能ごとに異なるタスクバーボタンを提供し、そのサブ機能に関連するウィンドウをそのボタンの下にグループ化したい場合がある。ウィンドウレベルの AppUserModelID がない場合、それらのウィンドウはすべてメインプロセスの下にグループ化される。アプリケーションは、システムがアプリケーションをその状態に戻せるようにするためにも、このプロパティストアを使用してこれらの再起動プロパティを設定すべきである。 (以下省略)
| プラグイン / モジュール | 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 |