Share via


ObjectControl::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 ObjectControl 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 ObjectControl 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 die ObjectContext-Methoden verwenden, um zu ü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 in der Lage sein, neu erstellte Objekte sowie wiederverwendete Objekte zu verarbeiten. 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 ObjectControl 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.

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

ObjectControl