Compartilhar via


Criando componentes enfileiráveis

Um componente com pelo menos uma interface enfileirável é um componente enfileirável. Para que um componente seja chamado por uma fila, as interfaces devem ser marcadas como enfileiráveis e o componente deve ser instalado em um aplicativo em fila. No entanto, um componente enfileirável pode ser um componente de um aplicativo não enfileirado.

Uma interface enfileirável deve conter apenas parâmetros — sem parâmetros de saída e sem valores de retorno. Essas características são verificadas analisando as informações de tipo durante a instalação do componente. Se a interface não for enfileirável, a fila do aplicativo que contém o componente não poderá ser ativada.

Para especificar uma interface COM+ como enfileirável, use as seguintes etapas:

  1. Na árvore de console da ferramenta administrativa Serviços de Componentes, em Serviços de Componentes, abra a pasta Aplicativos COM+ associada ao computador que você deseja gerenciar.

  2. Abra a pasta Interfaces do componente do aplicativo COM+ que você deseja tornar enfileirável.

  3. Clique com o botão direito do mouse na interface que você deseja marcar como enfileirável e clique em Propriedades.

  4. Selecione a guia Enfileiramento na caixa de diálogo de propriedades.

  5. Ative a caixa de seleção rotulada como Enfileirado.

    Observação

    Se a caixa de seleção Enfileirado estiver esmaecida, a interface não satisfará as restrições enfileiráveis descritas acima.

     

  6. Clique em OK.

    Um componente enfileirável pode ser identificado como tal adicionando a macro de atributo QUEUEABLE à seção Interface do arquivo de origem IDL (Interface Definition Language) para todas as interfaces que são enfileiráveis.

    #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 ();
    }
    

Criando filas de componentes

Desenvolvendo componentes em fila