SHGetPropertyStoreForWindow 関数 (shellapi.h)
特定のウィンドウのプロパティのコレクションを表す オブジェクトを取得します。これにより、それらのプロパティのクエリまたは設定が可能になります。
構文
SHSTDAPI SHGetPropertyStoreForWindow(
[in] HWND hwnd,
[in] REFIID riid,
[out] void **ppv
);
パラメーター
[in] hwnd
型: HWND
プロパティが取得されるウィンドウへのハンドル。
[in] riid
種類: REFIID
ppv を介して取得するプロパティ ストア オブジェクトの IID への参照。 通常、これはIID_IPropertyStoreです。
[out] ppv
型: void**
この関数が戻るとき、 には 、riid で要求されたインターフェイス ポインターが含まれます。 これは通常 、IPropertyStore です。
戻り値
種類: HRESULT
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
解説
アプリケーションは、この関数を使用してウィンドウのプロパティ ストアへのアクセスを取得し、 System.AppUserModel.ID プロパティに明示的なアプリケーション ユーザー モデル ID (AppUserModelID) を設定できるようにします。
ウィンドウを閉じる前に、ウィンドウのプロパティを削除する必要があります。 この操作を行わないと、これらのプロパティで使用されるリソースはシステムに返されません。 プロパティは、 PROPVARIANT 型VT_EMPTYに設定することで削除されます。
ppv を介して取得されたオブジェクトで IPropertyStore::SetValue を呼び出すと、プロパティと値がウィンドウにすぐに格納されます。 そのため、 IPropertyStore::Commit の呼び出しは必要ありません。 呼び出された場合はエラーは発生しませんが、影響はありません。
アプリケーションは、アプリケーションのタスク バーのグループ化とジャンプ リストの内容を制御するために、個々のウィンドウに AppUserModelIDs を設定します。 たとえば、スイート アプリケーションでは、サブFeature ごとに異なるタスク バー ボタンを提供し、そのサブ構造に関連するウィンドウをそのボタンの下にグループ化することができます。 ウィンドウ レベルの AppUserModelID がない場合、これらのウィンドウはすべて、メイン プロセスの下でグループ化されます。
アプリケーションでは、このプロパティ ストアを使用してこれらの再起動プロパティを設定して、システムがアプリケーションをその状態に戻すことができるようにする必要もあります。
- System.AppUserModel.RelaunchCommand
- System.AppUserModel.RelaunchDisplayNameResource
- System.AppUserModel.RelaunchIconResource
要件
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shellapi.h |
Library | Shell32.lib |
[DLL] | Shell32.dll (バージョン 6.1 以降) |