CoEnterServiceDomain-Funktion (comsvcs.h)
Wird verwendet, um Code einzugeben, der dann COM+-Dienste verwenden kann.
Syntax
HRESULT CoEnterServiceDomain(
[in] IUnknown *pConfigObject
);
Parameter
[in] pConfigObject
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 des eingeschlossenen Codes verwendet werden sollen.
Rückgabewert
Diese Methode kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY und E_FAIL sowie die folgenden Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
Die parallele Assemblykonfiguration des CServiceConfig-Objekts ist ungültig. |
|
Die Threadpoolkonfiguration des CServiceConfig-Objekts ist ungültig. Das Thread-Apartmentmodell kann nicht durch Aufrufen von CoEnterServiceDomain neu konfiguriert werden. |
|
Die Nachverfolgungskonfiguration des CServiceConfig-Objekts ist ungültig. |
|
Der Aufrufer verfügt nicht über Zugriffsberechtigungen für die COM+-Partition. |
Hinweise
Code, der zwischen Aufrufen von CoEnterServiceDomain und CoLeaveServiceDomain eingeschlossen ist, wird in einem eigenen Kontext ausgeführt und verhält sich so, als wäre es eine Methode, die für ein im Kontext erstelltes Objekt aufgerufen wird. CoEnterServiceDomain kann nicht zu einem anderen Apartmentmodell wechseln, sodass der eingeschlossene Code in der Wohnung des Aufrufers und im Thread des Aufrufers ausgeführt wird. Es ist ein Fehler, beim Aufrufen von CoEnterServiceDomain zu versuchen, das Apartmentmodell über das CServiceConfig-Objekt zu ändern.
CoEnterServiceDomain erstellt zunächst einen Kontext, der gemäß der Angabe durch das CServiceConfig-Objekt konfiguriert wird, das als pConfigObject-Parameter übergeben wird. Richtlinien auf Client- und Serverseite werden dann ausgelöst, als ob ein Methodenaufruf stattgefunden hätte. Der neue Kontext wird dann in einen Kontextstapel gepusht und wird zum aktuellen Kontext.
Aufgrund ihres effizienten Entwurfs und weil kein Threadmarshalling erforderlich ist, ist die Verwendung von CoEnterServiceDomain und CoLeaveServiceDomain im Vergleich zu einem äquivalenten Methodenaufruf deutlich geringer.
CoEnterServiceDomain und CoLeaveServiceDomain sind besonders nützlich in Anwendungen, die diese Funktionen verwenden können, um auf COM+-Dienste zuzugreifen, ohne dafür eine Komponente erstellen zu müssen.
Die Paare CoEnterServiceDomain und CoLeaveServiceDomain können geschachtelt werden.
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 |