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 屬性中設定明確的應用程式使用者模型識別碼 (AppUserModelID ) 。
視窗關閉之前,必須先移除視窗的屬性。 如果未這麼做,這些屬性所使用的資源不會傳回給系統。 屬性會藉由將屬性設定為 PROPVARIANT 類型VT_EMPTY來移除。
呼叫透過ppv擷取的物件上的IPropertyStore::SetValue時,屬性和值會立即儲存在視窗上。 因此,不需要呼叫 IPropertyStore::Commit 。 呼叫時不會發生任何錯誤,但沒有任何作用。
應用程式會在個別視窗上設定 AppUserModelID,以控制應用程式的工作列群組和跳躍清單內容。 例如,套件應用程式可能會想要為每個子功能提供不同的工作列按鈕,以及與該按鈕下分組之子功能相關的視窗。 如果沒有視窗層級的 AppUserModelID,這些視窗都會在主要進程下分組在一起。
應用程式也應該使用這個屬性存放區來設定這些重新開機屬性,讓系統可以將應用程式傳回該狀態。
- System.AppUserModel.RelaunchCommand
- System.AppUserModel.RelaunchDisplayNameResource
- System.AppUserModel.RelaunchIconResource
規格需求
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shellapi.h |
程式庫 | Shell32.lib |
Dll | Shell32.dll (6.1 版或更新版本) |