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 |