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) 设置显式应用程序用户模型 ID

在关闭窗口之前,必须删除窗口的属性。 如果未执行此操作,则这些属性使用的资源不会返回到系统。 通过将属性设置为 PROPVARIANT 类型VT_EMPTY将其删除。

对通过 ppv 检索的对象上的 IPropertyStore::SetValue 进行调用时,属性和值将立即存储在窗口中。 因此,无需调用 IPropertyStore::Commit 。 如果调用它,则不会发生错误,但它不起作用。

应用程序在单个窗口上设置 AppUserModelID,以控制应用程序的任务栏分组和跳转列表内容。 例如,套件应用程序可能希望为其每个子功能提供不同的任务栏按钮,与该子功能相关的窗口在该按钮下分组。 如果没有窗口级 AppUserModelID,这些窗口将在main进程中组合在一起。

应用程序还应使用此属性存储来设置这些重新启动属性,以便系统可以将应用程序返回到该状态。

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 shellapi.h
Library Shell32.lib
DLL Shell32.dll (版本 6.1 或更高版本)

另请参阅

应用程序用户模型 ID (AppUserModelIDs)