Share via


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,這些視窗都會在主要進程下分組在一起。

應用程式也應該使用這個屬性存放區來設定這些重新開機屬性,讓系統可以將應用程式傳回該狀態。

規格需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 shellapi.h
程式庫 Shell32.lib
Dll Shell32.dll (6.1 版或更新版本)

另請參閱

應用程式使用者模型識別碼 (AppUserModelIDs)