Funzione CoEnterServiceDomain (comsvcs.h)

Usato per immettere il codice che può quindi usare i servizi COM+.

Sintassi

HRESULT CoEnterServiceDomain(
  [in] IUnknown *pConfigObject
);

Parametri

[in] pConfigObject

Puntatore all'interfaccia IUnknown dell'oggetto, creato dalla classe CServiceConfig , che contiene le informazioni di configurazione per i servizi da usare all'interno del codice racchiuso.

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. Il modello apartment del thread non può essere riconfigurato chiamando CoEnterServiceDomain.
CO_E_TRACKER_CONFIG
La configurazione dello strumento di rilevamento dell'oggetto CServiceConfig non è valida.
COMADMIN_E_PARTITION_ACCESSDENIED
Il chiamante non dispone delle autorizzazioni di accesso per la partizione COM+.

Commenti

Il codice racchiuso tra le chiamate a CoEnterServiceDomain e CoLeaveServiceDomain viene eseguito nel proprio contesto e si comporta come se fosse un metodo chiamato su un oggetto creato all'interno del contesto. CoEnterServiceDomain non può passare a un modello apartment diverso, quindi il codice racchiuso viene eseguito nell'apartment del chiamante e nel thread del chiamante. Si tratta di un errore per provare a modificare il modello apartment tramite l'oggetto CServiceConfig quando si chiama CoEnterServiceDomain.

CoEnterServiceDomain crea innanzitutto un contesto configurato come specificato dall'oggetto CServiceConfig passato come parametro pConfigObject . I criteri sui lati client e server vengono quindi attivati come se si fosse verificata una chiamata al metodo. Il nuovo contesto viene quindi inserito in uno stack di contesto e diventa il contesto corrente.

A causa della progettazione efficiente e perché non è coinvolto alcun marshalling di thread, l'uso di CoEnterServiceDomain e CoLeaveServiceDomain comporta un sovraccarico significativamente ridotto rispetto a una chiamata al metodo equivalente.

CoEnterServiceDomain e CoLeaveServiceDomain sono particolarmente utili nelle applicazioni, che possono usare queste funzioni per accedere ai servizi COM+ senza dover creare un componente per farlo.

È possibile annidare le coppie CoEnterServiceDomain e CoLeaveServiceDomain .

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

CoCreateActivity

CoLeaveServiceDomain