Creación de componentes que se pueden poner en cola
Un componente con al menos una interfaz que se puede poner en cola es un componente que se puede poner en cola. Para que una cola invoque un componente, las interfaces deben marcarse como en cola y el componente debe instalarse en una aplicación en cola. Sin embargo, un componente que se puede poner en cola puede ser un componente de una aplicación no está en cola.
Una interfaz que se puede poner en cola solo debe contener parámetros de entrada, sin parámetros de salida ni valores devueltos. Estas características se comprueban mediante el análisis de la información de tipo durante la instalación del componente. Si la interfaz no se puede poner en cola, no se puede activar la cola de la aplicación que contiene el componente.
Para especificar una interfaz COM+ como en cola, siga estos pasos:
En el árbol de consola de la herramienta administrativa Servicios de componentes, en Servicios de componentes, abra la carpeta Aplicaciones COM+ asociada al equipo que desea administrar.
Abra la carpeta Interfaces del componente de la aplicación COM+ que desea que se pueda poner en cola.
Haga clic con el botón derecho en la interfaz que desea marcar como en cola y, a continuación, haga clic en Propiedades.
En el cuadro de diálogo de propiedades, seleccione la pestaña Poniendo en cola.
Active la casilla etiquetada En cola.
Nota:
Si la casilla En cola está atenuada, la interfaz no satisface las restricciones que se pueden poner en cola descritas anteriormente.
Haga clic en Aceptar.
Un componente que se puede poner en cola se puede identificar como tal añadiendo la macro de atributo QUEUEABLE a la sección Interfaz del archivo de origen del lenguaje de definición de interfaz (IDL) para todas las interfaces que se pueden poner en cola.
#include "mtxattr.h" [ object, dual, uuid(), helpstring(IShiphip"), QUEUEABLE ] interface IShip:IDispatch{ [propput, id(1)] HRESULT CustomerId ([in] long CustId); [propput, id(2)] HRESULT OrderId ([in] long OrderID); [id(3)] HRESULT LineItem ([in] long Qty); [id(4)] HRESULT Process (); }
Temas relacionados