Função CoCreateActivity (comsvcs.h)

Cria uma atividade para realizar trabalho em lote síncrono ou assíncrono e que possa usar serviços COM+ sem a necessidade de criar um componente COM+.

Sintaxe

HRESULT CoCreateActivity(
  [in]  IUnknown *pIUnknown,
  [in]  REFIID   riid,
  [out] void     **ppObj
);

Parâmetros

[in] pIUnknown

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 na atividade criada por CoCreateActivity.

[in] riid

A ID da interface a ser retornada por meio do parâmetro ppObj . Esse parâmetro sempre deve ser IID_IServiceActivity para que um ponteiro para IServiceActivity seja retornado.

[out] ppObj

Um ponteiro para a interface de um objeto de atividade. O objeto de atividade é criado automaticamente pela chamada para CoCreateActivity.

Retornar valor

Esse método pode retornar os valores de retorno padrão E_INVALIDARG, E_OUTOFMEMORY e E_FAIL, bem como os valores a seguir.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.
CO_E_SXS_CONFIG
A configuração de assembly lado a lado do objeto CServiceConfig é inválida.
CO_E_THREADPOOL_CONFIG
A configuração do pool de threads do objeto CServiceConfig é inválida.
CO_E_TRACKER_CONFIG
A configuração do rastreador do objeto CServiceConfig é inválida.
COMADMIN_E_PARTITION_ACCESSDENIED
O chamador não tem permissões de acesso para a partição COM+.

Comentários

CoCreateActivity cria um objeto de atividade usado para enviar trabalho em lote para o sistema COM+. O contexto associado à atividade é completamente determinado pelo objeto CServiceConfig que é passado pelo parâmetro pIUnknown .

O CoCreateActivity permite que os aplicativos usem serviços COM+ em seu trabalho em lote sem a necessidade de criar um componente para usar esses serviços. Além de reduzir a sobrecarga por não exigir a criação de um componente, o uso do CoCreateActivity fornece um ambiente de runtime mais eficiente, pois permite que o ambiente dê suporte à configuração de serviço em todo o aplicativo sem a necessidade de acessar informações armazenadas no RegDB (banco de dados de registro COM+).

O trabalho em lote enviado por meio de CoCreateActivity pode ser síncrono ou assíncrono e pode ser executado em um STA (apartamento de thread único) ou no MTA (multithreaded apartment). O modelo de threading usado é determinado pela interface IServiceThreadPoolConfig do objeto CServiceConfig que é passado pelo parâmetro pIUnknown .

CoCreateActivity retorna um ponteiro para a interface IServiceActivity do objeto criado pela chamada para CoCreateActivity. Usando os métodos de IServiceActivity, você determina se o trabalho em lote é feito de forma síncrona ou assíncrona. O trabalho em lote em si é implementado por meio da interface IServiceCall .

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

Confira também

Serviços COM+ sem componentes

CServiceConfig

CoEnterServiceDomain

CoLeaveServiceDomain

IServiceActivity

Iservicecall