The Indicate method is called by a source to provide a notification. Typically, WMI calls the client implementation of this interface after the client executes one of the asynchronous methods of IWbemServices. In other cases, various types of providers call an implementation exported by WMI to deliver events. Therefore, client code may have to implement this interface in some cases, and use a different component's implementation in other cases.
Use this interface and method in conjunction with the asynchronous methods of the IWbemServices interface.
HRESULT Indicate( long lObjectCount, IWbemClassObject **apObjArray );
Number of objects in the following array of pointers.
Array of pointers to IWbemClassObject interfaces. The array memory itself is read-only, and is owned by the caller of the method. Because this is an in parameter, the implementation has the option of calling IWbemClassObject::AddRef on any object pointer in the array and holding it before returning if the objects will be used after the method has returned, in accordance with COM rules. If the objects are only used for the duration of the Indicate call, then you do not need to call AddRef on each object pointer.
This method returns an HRESULT that indicates the status of the method call. The following list lists the value contained within an HRESULT.
When implementing an event subscription sink (IWbemObjectSink or IWbemEventSink), do not call into WMI from within the Indicate method on the sink object. For example, calling IWbemServices::CancelAsyncCall from within an implementation of Indicate can interfere with the WMI state. To cancel an event subscription, set a flag and call IWbemServices::CancelAsyncCall from another thread or object. For implementations that are not related to an event sink, such as object, enum, and query retrievals, you can call back into WMI.
Sink implementations should process the event notification within 100 MSEC because the WMI thread that delivers the event notification cannot do other work until the sink object has completed processing. If the notification requires a large amount of processing, the sink can use an internal queue for another thread to handle the processing.
When an event provider calls Indicate to provide an event, the call can fail with WBEM_E_SERVER_TOO_BUSY. The provider can choose to respond to this message by re-firing the event.
|Minimum supported client||Windows Vista|
|Minimum supported server||Windows Server 2008|
|Header||wbemcli.h (include Wbemidl.h)|