IObjectControl::Activate-Methode (comsvcs.h)

Ermöglicht es einem COM+-Objekt, eine kontextspezifische Initialisierung durchzuführen, wenn es aktiviert wird. Diese Methode wird von der COM+-Laufzeitumgebung aufgerufen, bevor andere Methoden für das Objekt aufgerufen werden.

Syntax

HRESULT Activate();

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL und S_OK zurückgeben.

Hinweise

Wenn ein Client ein COM+-Objekt aufruft, das noch nicht aktiv ist, aktiviert die COM+-Laufzeitumgebung das Objekt automatisch. Dies wird als Just-in-Time-Aktivierung bezeichnet. Für Komponenten, die IObjectControl als Schnittstelle unterstützen, ruft COM+ die Activate-Methode des Objekts auf, bevor der Methodenaufruf des Clients an das Objekt übergeben wird.

Alle kontextspezifischen Initialisierungsverfahren sollten in der Activate-Methode für Objekte implementiert werden, die IObjectControl verfügbar machen.

Beispielsweise können Sie die Activate-Methode verwenden, um einen Verweis auf den Kontext eines Objekts abzurufen und in einer Membervariablen zu speichern. Dann ist der Objektkontext für jede Methode verfügbar, die ihn erfordert, und Sie müssen nicht jedes Mal, wenn Sie ihn verwenden möchten, einen neuen abrufen. Nachdem Sie über einen Verweis auf den Kontext des Objekts verfügen, können Sie mit den IObjectControl-Methoden überprüfen, ob die Sicherheit aktiviert ist, ob das Objekt in einer Transaktion ausgeführt wird oder ob der Aufrufer eine bestimmte Rolle besitzt.

Wenn Sie das Wiederverwenden von Objekten aktivieren (indem Sie die CanBePooled-Methode zum Abfragen des Objekts implementieren), muss die Activate-Methode sowohl neu erstellte als auch wiederverwendete Objekte verarbeiten können. Wenn die Activate-Methode zurückgibt, sollte es keinen unterschied zwischen einem neuen Und einem wiederverwendeten Objekt geben.

COM+ verbietet ausdrücklich das Aufrufen eines Objekts, das IObjectControl verfügbar macht, bevor die Activate-Methode aufgerufen wird (wenn es sich in seinem Konstruktor befindet). Ein solcher Aufruf würde zu einem RPC_E_DISCONNECTED Fehler führen. Wenn ein Objekt beispielsweise während des Konstruktors einen Verweis auf sich selbst ausgibt und der Verweis vor dem Aufruf von Activate wieder in dieses Objekt aufruft, wird der nicht verbundene Fehler zurückgegeben.

Sie können auch die Activate-Methode verwenden, um einen Verweis auf die ISecurityProperty-Schnittstelle des Objekts abzurufen und die Sicherheits-ID des Erstellers des Objekts zu überprüfen, bevor Methoden aufgerufen werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile comsvcs.h

Weitere Informationen

IObjectControl