Partager via


Fonction CoCreateActivity (comsvcs.h)

Crée une activité, pour exécuter un travail en traitement par lots de type synchrone ou asynchrone, pouvant utiliser des services COM+ sans créer obligatoirement un composant COM+.

Syntaxe

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

Paramètres

[in] pIUnknown

Pointeur vers l’interface IUnknown de l’objet, créé à partir de la classe CServiceConfig , qui contient les informations de configuration des services à utiliser dans l’activité créée par CoCreateActivity.

[in] riid

ID de l’interface à retourner via le paramètre ppObj . Ce paramètre doit toujours être IID_IServiceActivity afin qu’un pointeur vers IServiceActivity soit retourné.

[out] ppObj

Pointeur vers l’interface d’un objet d’activité. L’objet d’activité est créé automatiquement par l’appel à CoCreateActivity.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_INVALIDARG, E_OUTOFMEMORY et E_FAIL, ainsi que les valeurs suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée.
CO_E_SXS_CONFIG
La configuration de l’assembly côte à côte de l’objet CServiceConfig n’est pas valide.
CO_E_THREADPOOL_CONFIG
La configuration du pool de threads de l’objet CServiceConfig n’est pas valide.
CO_E_TRACKER_CONFIG
La configuration du suivi de l’objet CServiceConfig n’est pas valide.
COMADMIN_E_PARTITION_ACCESSDENIED
L’appelant ne dispose pas d’autorisations d’accès pour la partition COM+.

Remarques

CoCreateActivity crée un objet d’activité qui est utilisé pour envoyer le travail par lots au système COM+. Le contexte associé à l’activité est entièrement déterminé par l’objet CServiceConfig transmis via le paramètre pIUnknown .

CoCreateActivity permet aux applications d’utiliser les services COM+ dans leur travail par lots sans avoir besoin de créer un composant pour utiliser ces services. En plus de réduire la surcharge en ne nécessitant pas la création d’un composant, l’utilisation de CoCreateActivity offre un environnement d’exécution plus efficace, car elle permet à l’environnement de prendre en charge la configuration du service à l’échelle de l’application sans avoir à accéder aux informations stockées dans la base de données d’inscription COM+ (RegDB).

Le travail par lot envoyé via CoCreateActivity peut être synchrone ou asynchrone et peut s’exécuter dans un appartement à thread unique (STA) ou dans l’appartement multithread (MTA). Le modèle de thread utilisé est déterminé par l’interface IServiceThreadPoolConfig de l’objet CServiceConfig transmis via le paramètre pIUnknown .

CoCreateActivity retourne un pointeur vers l’interface IServiceActivity de l’objet créé par l’appel à CoCreateActivity. En utilisant les méthodes d’IServiceActivity, vous déterminez si le travail par lots est effectué de manière synchrone ou asynchrone. Le travail par lots lui-même est implémenté via l’interface IServiceCall .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête comsvcs.h
Bibliothèque ComSvcs.lib
DLL ComSvcs.dll

Voir aussi

Services COM+ sans composants

CServiceConfig

CoEnterServiceDomain

CoLeaveServiceDomain

IServiceActivity

IServiceCall