Partilhar via


Criando componentes enfileiráveis

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

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

Para especificar uma interface COM+ como enfileirável, siga os seguintes passos:

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

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

  3. Clique com o botão direito do rato na interface que pretende marcar como enfileirável e, em seguida, clique em Propriedades.

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

  5. Ative a caixa de seleção com a etiqueta em fila.

    Observação

    Se a caixa de seleção em espera estiver acinzentada, a interface não satisfaz as restrições de enfileiramento descritas acima.

     

  6. Clique 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 podem ser enfileiradas.

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

Criação de Filas de Componentes

Desenvolvimento de componentes em fila de espera