IWbemObjectSink::Indicate 方法 (wbemcli.h)
指示 方法由源调用以提供通知。 通常,WMI 在客户端执行 IWbemServices 的其中一个异步方法后调用此接口的客户端实现。 在其他情况下,各种类型的提供程序调用 WMI 导出的实现来传递事件。 因此,在某些情况下,客户端代码可能必须实现此接口,并在其他情况下使用不同的组件的实现。
将此接口和方法与 IWbemServices 接口的异步方法结合使用。
客户端和提供程序必须实现此接口才能接收通知或执行 IWbemServices 的异步方法。 有关详细信息,请参阅调用方法。
语法
HRESULT Indicate(
[in] long lObjectCount,
[in] IWbemClassObject **apObjArray
);
参数
[in] lObjectCount
以下指针数组中的对象数。
[in] apObjArray
指向 IWbemClassObject 接口的指针数组。 数组内存本身是只读的,由方法的调用方拥有。 由于这是一个 in 参数,因此实现可以选择对数组中的任何对象指针调用 IWbemClassObject::AddRef ,并在返回之前将其保存,前提是在方法返回后将使用这些对象(根据 COM 规则)。 如果对象仅用于 指示 调用的持续时间,则无需在每个对象指针上调用 AddRef 。
返回值
此方法返回指示方法调用状态的 HRESULT。 以下列表列出了 HRESULT 中包含的值。
注解
(IWbemObjectSink 或 IWbemEventSink) 实现事件订阅接收器时,请勿从接收器对象的 Indicate 方法中调用 WMI。 例如,从指示的实现中调用 IWbemServices::CancelAsyncCall 可能会干扰 WMI 状态。 若要取消事件订阅,请设置一个标志,并从另一线程或对象调用 IWbemServices::CancelAsyncCall。 对于对象、枚举和查询检索等与事件接收器无关的实现,可以回调到 WMI。
接收器实现应在 100 MSEC 内处理事件通知,因为在接收器对象完成处理之前,传递事件通知的 WMI 线程无法执行其他工作。 如果通知需要大量处理,接收器可使用另一个线程的内部队列来进行处理。
当事件提供程序调用 指示 来提供事件时,调用可能会失败并 出现WBEM_E_SERVER_TOO_BUSY。 提供程序可以选择通过重新触发 事件来响应此消息。
要求
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | wbemcli.h (包括 Wbemidl.h) |
Library | Wbemuuid.lib |
DLL | Fastprox.dll |