Método IWbemObjectSink::Indicate (wbemcli.h)
O método Indicate é chamado por uma fonte para fornecer uma notificação. Normalmente, o WMI chama a implementação do cliente dessa interface depois que o cliente executa um dos métodos assíncronos de IWbemServices. Em outros casos, vários tipos de provedores chamam uma implementação exportada pelo WMI para fornecer eventos. Portanto, o código do cliente pode ter que implementar essa interface em alguns casos e usar a implementação de um componente diferente em outros casos.
Use essa interface e o método em conjunto com os métodos assíncronos da interface IWbemServices .
Clientes e provedores devem implementar essa interface para receber notificações ou executar os métodos assíncronos de IWbemServices. Para obter mais informações, confira Como chamar um método.
Sintaxe
HRESULT Indicate(
[in] long lObjectCount,
[in] IWbemClassObject **apObjArray
);
Parâmetros
[in] lObjectCount
Número de objetos na matriz de ponteiros a seguir.
[in] apObjArray
Matriz de ponteiros para interfaces IWbemClassObject . A memória da matriz em si é somente leitura e pertence ao chamador do método . Como esse é um parâmetro in, a implementação tem a opção de chamar IWbemClassObject::AddRef em qualquer ponteiro de objeto na matriz e mantê-lo antes de retornar se os objetos serão usados depois que o método tiver retornado, de acordo com as regras COM. Se os objetos forem usados apenas durante a chamada Indicate , você não precisará chamar AddRef em cada ponteiro de objeto.
Retornar valor
Esse método retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista o valor contido em um HRESULT.
Comentários
Ao implementar um coletor de assinatura de evento (IWbemObjectSink ou IWbemEventSink), não chame o WMI de dentro do método Indicate no objeto sink. Por exemplo, chamar IWbemServices::CancelAsyncCall de dentro de uma implementação de Indicate pode interferir no estado WMI. Para cancelar uma assinatura de evento, defina um sinalizador e chame o IWbemServices::CancelAsyncCall de outro thread ou objeto. Para implementações que não estejam relacionadas a um coletor de eventos, como recuperações de objeto, enumeração e consulta, você pode fazer uma chamada de volta para o WMI.
As implementações do coletor devem processar a notificação de evento dentro de 100 milissegundos, pois o thread do WMI que entrega a notificação de evento não pode executar outras tarefas até que o objeto coletor tenha concluído o processamento. Se a notificação exigir uma grande quantidade de processamento, o coletor poderá usar uma fila interna para outro thread para lidar com o processamento.
Quando um provedor de eventos chama Indicate para fornecer um evento, a chamada pode falhar com WBEM_E_SERVER_TOO_BUSY. O provedor pode optar por responder a essa mensagem disparando novamente o evento.
Requisitos
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | wbemcli.h (include Wbemidl.h) |
Biblioteca | Wbemuuid.lib |
DLL | Fastprox.dll |