Funzione CoCreateActivity (comsvcs.h)

Crea un'attività per eseguire operazioni batch sincrone e asincrone che possono utilizzare i servizi COM+ senza che sia necessario creare un componente COM+.

Sintassi

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

Parametri

[in] pIUnknown

Puntatore all'interfaccia IUnknown dell'oggetto, creata dalla classe CServiceConfig , che contiene le informazioni di configurazione per i servizi da usare all'interno dell'attività creata da CoCreateActivity.

[in] riid

ID dell'interfaccia da restituire tramite il parametro ppObj . Questo parametro deve essere sempre IID_IServiceActivity in modo che venga restituito un puntatore a IServiceActivity .

[out] ppObj

Puntatore all'interfaccia di un oggetto activity. L'oggetto activity viene creato automaticamente dalla chiamata a CoCreateActivity.

Valore restituito

Questo metodo può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY e E_FAIL, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.
CO_E_SXS_CONFIG
La configurazione dell'assembly side-by-side dell'oggetto CServiceConfig non è valida.
CO_E_THREADPOOL_CONFIG
La configurazione del pool di thread dell'oggetto CServiceConfig non è valida.
CO_E_TRACKER_CONFIG
La configurazione del tracker dell'oggetto CServiceConfig non è valida.
COMADMIN_E_PARTITION_ACCESSDENIED
Il chiamante non dispone delle autorizzazioni di accesso per la partizione COM+.

Commenti

CoCreateActivity crea un oggetto attività usato per inviare il lavoro batch al sistema COM+. Il contesto associato all'attività è completamente determinato dall'oggetto CServiceConfig passato tramite il parametro pIUnknown .

CoCreateActivity consente alle applicazioni di usare i servizi COM+ nel proprio batch senza dover creare un componente per usare tali servizi. Oltre a ridurre il sovraccarico non richiedendo la creazione di un componente, l'uso di CoCreateActivity fornisce un ambiente di runtime più efficiente perché consente all'ambiente di supportare la configurazione del servizio a livello di applicazione senza dover accedere alle informazioni archiviate nel database di registrazione COM+ (RegDB).

Il lavoro batch inviato tramite CoCreateActivity può essere sincrono o asincrono e può essere eseguito in un appartamento a thread singolo (STA) o nell'appartamento multithreaded (MTA). Il modello di threading usato viene determinato dall'interfaccia IServiceThreadPoolConfig dell'oggetto CServiceConfig passato tramite il parametro pIUnknown .

CoCreateActivity restituisce un puntatore all'interfaccia IServiceActivity dell'oggetto creato dalla chiamata a CoCreateActivity. Usando i metodi di IServiceActivity, si determina se il lavoro batch viene eseguito in modo sincrono o asincrono. Il lavoro batch stesso viene implementato tramite l'interfaccia IServiceCall .

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione comsvcs.h
Libreria ComSvcs.lib
DLL ComSvcs.dll

Vedi anche

Servizi COM+ senza componenti

CServiceConfig

CoEnterServiceDomain

CoLeaveServiceDomain

IServiceActivity

IServiceCall