Função CoEnterServiceDomain (comsvcs.h)
Usado para inserir código que pode usar serviços COM+.
Sintaxe
HRESULT CoEnterServiceDomain(
[in] IUnknown *pConfigObject
);
Parâmetros
[in] pConfigObject
Um ponteiro para a interface IUnknown do objeto, criado a partir da classe CServiceConfig , que contém as informações de configuração para os serviços a serem usados dentro do código incluído.
Retornar valor
Esse método pode retornar os valores retornados padrão E_INVALIDARG, E_OUTOFMEMORY e E_FAIL, bem como os valores a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi concluído com sucesso. |
|
A configuração de assembly lado a lado do objeto CServiceConfig é inválida. |
|
A configuração do pool de threads do objeto CServiceConfig é inválida. O modelo de thread apartment não pode ser reconfigurado chamando CoEnterServiceDomain. |
|
A configuração do rastreador do objeto CServiceConfig é inválida. |
|
O chamador não tem permissões de acesso para a partição COM+. |
Comentários
O código entre chamadas para CoEnterServiceDomain e CoLeaveServiceDomain é executado em seu próprio contexto e se comporta como se fosse um método chamado em um objeto criado dentro do contexto. CoEnterServiceDomain não pode alternar para um modelo de apartamento diferente, portanto, o código fechado é executado no apartamento do chamador e no thread do chamador. É um erro tentar alterar o modelo de apartment por meio do objeto CServiceConfig ao chamar CoEnterServiceDomain.
CoEnterServiceDomain primeiro cria um contexto configurado conforme especificado pelo objeto CServiceConfig que é passado como o parâmetro pConfigObject . As políticas nos lados do cliente e do servidor são disparadas como se uma chamada de método tivesse ocorrido. O novo contexto é então enviado por push para uma pilha de contexto e se torna o contexto atual.
Devido ao seu design eficiente e porque nenhum marshaling de thread está envolvido, o uso de CoEnterServiceDomain e CoLeaveServiceDomain envolve uma sobrecarga significativamente reduzida em comparação com uma chamada de método equivalente.
CoEnterServiceDomain e CoLeaveServiceDomain são particularmente úteis em aplicativos, que podem usar essas funções para acessar serviços COM+ sem a necessidade de criar um componente para fazer isso.
Os pares CoEnterServiceDomain e CoLeaveServiceDomain podem ser aninhados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | comsvcs.h |
Biblioteca | ComSvcs.lib |
DLL | ComSvcs.dll |