Freigeben über


CoCreateActivity-Funktion (comsvcs.h)

Erstellt eine Aktivität für die synchrone oder asynchrone Batchverarbeitung, die COM+-Dienste verwenden kann, ohne dass eine COM+-Komponente erstellt werden muss.

Syntax

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

Parameter

[in] pIUnknown

Ein Zeiger auf die IUnknown-Schnittstelle des Objekts, das aus der CServiceConfig-Klasse erstellt wurde und die Konfigurationsinformationen für die Dienste enthält, die innerhalb der von CoCreateActivity erstellten Aktivität verwendet werden sollen.

[in] riid

Die ID der Schnittstelle, die über den ppObj-Parameter zurückgegeben werden soll. Dieser Parameter sollte immer IID_IServiceActivity werden, damit ein Zeiger auf IServiceActivity zurückgegeben wird.

[out] ppObj

Ein Zeiger auf die Schnittstelle eines Aktivitätsobjekts. Das Aktivitätsobjekt wird automatisch durch den Aufruf von CoCreateActivity erstellt.

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY und E_FAIL sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
CO_E_SXS_CONFIG
Die parallele Assemblykonfiguration des CServiceConfig-Objekts ist ungültig.
CO_E_THREADPOOL_CONFIG
Die Threadpoolkonfiguration des CServiceConfig-Objekts ist ungültig.
CO_E_TRACKER_CONFIG
Die Trackerkonfiguration des CServiceConfig-Objekts ist ungültig.
COMADMIN_E_PARTITION_ACCESSDENIED
Der Aufrufer verfügt nicht über Zugriffsberechtigungen für die COM+-Partition.

Hinweise

CoCreateActivity erstellt ein Aktivitätsobjekt, das verwendet wird, um Batcharbeit an das COM+-System zu übermitteln. Der der Aktivität zugeordnete Kontext wird vollständig durch das CServiceConfig-Objekt bestimmt, das über den pIUnknown-Parameter übergeben wird.

Mit CoCreateActivity können Anwendungen COM+-Dienste in ihren Batchvorgängen verwenden, ohne eine Komponente erstellen zu müssen, um diese Dienste zu verwenden. Zusätzlich zum Reduzieren des Mehraufwands, da die Erstellung einer Komponente nicht erforderlich ist, bietet die Verwendung von CoCreateActivity eine effizientere Laufzeitumgebung, da die Umgebung die anwendungsweite Dienstkonfiguration unterstützen kann, ohne auf Informationen zugreifen zu müssen, die in der COM+-Registrierungsdatenbank (RegDB) gespeichert sind.

Die Batcharbeit, die über CoCreateActivity übermittelt wird, kann entweder synchron oder asynchron sein und kann entweder in einem Singlethreaded Apartment (STA) oder im Multithreaded Apartment (MTA) ausgeführt werden. Das verwendete Threadingmodell wird durch die IServiceThreadPoolConfig-Schnittstelle des CServiceConfig-Objekts bestimmt, das über den pIUnknown-Parameter übergeben wird.

CoCreateActivity gibt einen Zeiger auf die IServiceActivity-Schnittstelle des Objekts zurück, das durch den Aufruf von CoCreateActivity erstellt wird. Mithilfe der Methoden von IServiceActivity bestimmen Sie, ob die Batcharbeit synchron oder asynchron erfolgt. Die Batcharbeit selbst wird über die IServiceCall-Schnittstelle implementiert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile comsvcs.h
Bibliothek ComSvcs.lib
DLL ComSvcs.dll

Weitere Informationen

COM+-Dienste ohne Komponenten

CServiceConfig

CoEnterServiceDomain

CoLeaveServiceDomain

IServiceActivity

IServiceCall