Interfaz IWbemObjectSink (wbemcli.h)
La interfaz IWbemObjectSink crea una interfaz de receptor que puede recibir todos los tipos de notificaciones dentro del modelo de programación de WMI. Los clientes deben implementar esta interfaz para recibir los resultados de los métodos asincrónicos de IWbemServices y tipos específicos de notificaciones de eventos. Los proveedores usan, pero no implementan, esta interfaz para proporcionar eventos y objetos a WMI.
Normalmente, los proveedores llaman a una implementación que proporciona WMI. En estos casos, llame a Indicate para proporcionar objetos al servicio de WMI. Después, llame a SetStatus para indicar el final de la secuencia de notificación. También puede llamar a SetStatus para indicar errores cuando el receptor no tiene ningún objeto.
Al programar clientes asincrónicos de WMI, el usuario proporciona la implementación. WMI llama a los métodos para entregar objetos y establecer el estado del resultado.
Herencia
La interfaz IWbemObjectSink hereda de la interfaz IUnknown . IWbemObjectSink también tiene estos tipos de miembros:
Métodos
La interfaz IWbemObjectSink tiene estos métodos.
IWbemObjectSink::Indicate Lo llama un origen para proporcionar una notificación. |
IWbemObjectSink::SetStatus Los orígenes llaman a este método para indicar el final de una secuencia de notificación o para enviar otros códigos de estado al receptor. |
Comentarios
Al implementar un receptor de suscripción de eventos (IWbemObjectSink o IWbemEventSink), no llame a WMI desde los métodos Indicate o SetStatus en el objeto receptor. Por ejemplo, llamar a IWbemServices::CancelAsyncCall para cancelar el receptor desde una implementación de Indicate puede interferir con el estado de WMI. Para cancelar una suscripción de evento, establezca una marca y llame a IWbemServices::CancelAsyncCall desde otro subproceso u objeto. En el caso de las implementaciones que no están relacionadas con un receptor de eventos, como las recuperaciones de objetos, enumeraciones y consultas, puede volver a llamar a WMI.
Las implementaciones del receptor deben procesar la notificación de eventos en 100 ms porque el subproceso WMI que entrega la notificación de eventos no puede realizar otro trabajo hasta que el objeto receptor haya completado el procesamiento. Si la notificación requiere una gran cantidad de procesamiento, el receptor puede usar una cola interna para otro subproceso a fin de controlar el procesamiento.
Ejemplos
El ejemplo de código siguiente es una implementación sencilla de un receptor de objetos. Este ejemplo se puede usar con IWbemServices::ExecQueryAsync o IWbemServices::CreateInstanceEnumAsync para recibir las instancias devueltas:
C++ |
---|
|
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | wbemcli.h (include Wbemidl.h) |
Consulte también
Realización de una llamada asincrónica con C++