Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
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.
Abra a pasta Interfaces do componente do aplicativo COM+ que você deseja tornar enfileirável.
Clique com o botão direito do rato na interface que pretende marcar como enfileirável e, em seguida, clique em Propriedades.
Selecione a guia Enfileiramento na caixa de diálogo de propriedades.
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.
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 (); }
Tópicos relacionados