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进程中组合在一起。
应用程序还应使用此属性存储来设置这些重新启动属性,以便系统可以将应用程序返回到该状态。
- 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 或更高版本) |