Partager via


CoIncrementMTAUsage, fonction (combaseapi.h)

Maintient la prise en charge MTA active lorsqu’aucun thread MTA n’est en cours d’exécution.

Syntaxe

HRESULT CoIncrementMTAUsage(
  [out] CO_MTA_USAGE_COOKIE *pCookie
);

Paramètres

[out] pCookie

Adresse d’une variable PVOID qui reçoit le cookie pour la fonction CoDecrementMTAUsage , ou NULL si l’appel échoue.

Valeur retournée

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

La fonction CoIncrementMTAUsage permet aux clients de créer des workers MTA et d’attendre leur achèvement avant de quitter le processus.

La fonction CoIncrementMTAUsage garantit que le système ne libère pas de ressources liées à la prise en charge de MTA, même si le nombre de threads MTA passe à 0.

En cas de réussite, appelez le CoDecrementMTAUsage une seule fois. En cas d’échec, n’appelez pas la fonction CoDecrementMTAUsage .

N’appelez pas CoIncrementMTAUsage pendant l’arrêt du processus ou à l’intérieur de dllmain. Vous pouvez appeler CoIncrementMTAUsage avant l’appel pour démarrer le processus d’arrêt.

Vous pouvez appeler CoIncrementMTAUsage à partir d’un thread et CoDecrementMTAUsage à partir d’un autre tant qu’un cookie précédemment retourné par CoIncrementMTAUsage est passé à CoDecrementMTAUsage.

CoIncrementMTAUsage crée le MTA, si le MTA n’existe pas déjà. CoIncrementMTAUsage place le thread actuel dans le MTA, si le thread actuel n’est pas déjà dans un appartement

Vous pouvez utiliser CoIncrementMTAUsage dans les cas suivants :

  • Vous souhaitez qu’un serveur conserve le MTA actif même lorsque tous les threads de travail sont inactifs.
  • L’implémentation de votre API nécessite l’initialisation de COM, mais elle ne dispose d’aucune information indiquant si le thread actuel se trouve déjà dans un appartement et n’a pas besoin du thread actuel pour accéder à un appartement particulier.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête combaseapi.h
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

CoDecrementMTAUsage