Compartilhar via


Função CoIncrementMTAUsage (combaseapi.h)

Mantém o suporte ao MTA ativo quando nenhum thread do MTA está em execução.

Sintaxe

HRESULT CoIncrementMTAUsage(
  [out] CO_MTA_USAGE_COOKIE *pCookie
);

Parâmetros

[out] pCookie

Endereço de uma variável PVOID que recebe o cookie para a função CoDecrementMTAUsage ou NULL se a chamada falhar.

Retornar valor

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

A função CoIncrementMTAUsage permite que os clientes criem trabalhos de MTA e aguardem a conclusão deles antes de sair do processo.

A função CoIncrementMTAUsage garante que o sistema não libere recursos relacionados ao suporte ao MTA, mesmo que a contagem de threads do MTA vá para 0.

Em caso de êxito, chame o CoDecrementMTAUsage apenas uma vez. Em caso de falha, não chame a função CoDecrementMTAUsage .

Não chame CoIncrementMTAUsage durante o desligamento do processo ou dentro de dllmain. Você pode chamar CoIncrementMTAUsage antes da chamada para iniciar o processo de desligamento.

Você pode chamar CoIncrementMTAUsage de um thread e CoDecrementMTAUsage de outro, desde que um cookie retornado anteriormente por CoIncrementMTAUsage seja passado para CoDecrementMTAUsage.

CoIncrementMTAUsage criará o MTA, se o MTA ainda não existir. CoIncrementMTAUsage coloca o thread atual no MTA, se o thread atual ainda não estiver em um apartment

Você pode usar CoIncrementMTAUsage quando:

  • Você deseja que um servidor mantenha o MTA ativo mesmo quando todos os threads de trabalho estiverem ociosos.
  • Sua implementação de API exige que o COM seja inicializado, mas não tem informações sobre se o thread atual já está em um apartment e não precisa do thread atual para entrar em um apartamento específico.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho combaseapi.h
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

CoDecrementMTAUsage