IFunctionDiscovery::AddInstance 方法 (functiondiscoveryapi.h)
[函数发现可用于“要求”部分中指定的操作系统。 它在后续版本中可能已更改或不可用。]
创建或修改函数实例。
语法
HRESULT AddInstance(
[in] SystemVisibilityFlags enumSystemVisibility,
[in] const WCHAR *pszCategory,
[in] const WCHAR *pszSubCategory,
[in] const WCHAR *pszCategoryIdentity,
[out] IFunctionInstance **ppIFunctionInstance
);
参数
[in] enumSystemVisibility
一个 SystemVisibilityFlags 值,该值指定创建的函数实例是系统范围内可见还是仅对当前用户可见。
[in] pszCategory
创建的函数实例的类别。 请参阅 类别定义。
[in] pszSubCategory
创建的函数实例的子类别。 请参阅 子类别定义。 此字符串的最大长度为MAX_PATH。
[in] pszCategoryIdentity
提供程序实例标识符字符串。 此字符串从 GetProviderInstanceID 返回。
[out] ppIFunctionInstance
指向接收函数实例的 IFunctionInstance 接口指针的指针。
返回值
可能的返回值包括但不限于以下值。
返回代码/值 | 说明 |
---|---|
|
该方法已成功完成。 |
|
enumSystemVisibility、pszCategory 或 pszCategoryIdentity 的值无效。 |
|
方法无法分配执行此操作所需的内存。 |
|
用户没有足够的访问权限来执行请求的操作。 |
|
提供程序不支持直接使用 AddInstance 方法添加函数实例。 |
|
pszCategory 或 pszSubCategory 的值未知。 |
|
指定的参数无效。 当 pszSubCategory 字符串的长度超过 MAX_PATH 时,将返回此错误。 |
备注
此方法临时为指定的类别和子类别创建新的函数实例。 实现类别的提供程序负责使用 IFunctionDiscoveryProviderFactory::CreateInstance 方法保留与新创建的函数实例关联的元数据。
如果函数实例的关联属性存储区没有任何值,则不会将其写入注册表。 使用 IFunctionInstance::OpenPropertyStore 方法检查属性存储值。
如果指定类别和子类别的函数实例已存在,则会覆盖现有注册表项。 AddInstance 方法返回S_OK。 函数发现更改通知过程调用调用应用程序的 IFunctionDiscoveryNotification::OnUpdate 方法,并将 enumQueryUpdateAction 设置为 QUA_CHANGE。
若要使用注册表提供程序 (管理员或 Power User 访问) 添加或删除函数实例,需要具有更改 HKEY_LOCAL_MACHINE\SYSTEM 注册表项的访问权限。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | functiondiscoveryapi.h |
DLL | FunDisc.dll |
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈