Container: Client-Element-Zustände

In diesem Artikel werden die verschiedenen Zustände erläutert, die ein Clientelement in seiner Lebensdauer durchläuft.

Ein Clientelement durchläuft mehrere Zustände, während es erstellt, aktiviert, geändert und gespeichert wird. Jedes Mal, wenn sich der Status des Elements ändert, ruft das Framework COleClientItem::OnChange mit der OLE_CHANGED_STATE-Benachrichtigung auf. Der zweite Parameter ist ein Wert aus der COleClientItem::ItemState Enumeration. Folgende Werte sind möglich:

  • COleClientItem::emptyState

  • COleClientItem::loadedState

  • COleClientItem::openState

  • COleClientItem::activeState

  • COleClientItem::activeUIState

Im leeren Zustand ist ein Clientelement noch nicht vollständig ein Element. Der Arbeitsspeicher wurde dafür zugewiesen, wurde aber noch nicht mit den Daten des OLE-Elements initialisiert. Dies ist der Zustand, in dem sich ein Clientelement befindet, wenn es über einen Aufruf new erstellt wurde, aber noch nicht den zweiten Schritt der typischen zweistufigen Erstellung durchlaufen hat.

Im zweiten Schritt durch einen Aufruf oder COleClientItem::CreateFromFile eine andere CreateFromxxxx-Funktion wird das Element vollständig erstellt. Die OLE-Daten (aus einer Datei oder einer anderen Quelle, z. B. der Zwischenablage), wurden dem COleClientItemabgeleiteten Objekt zugeordnet. Jetzt befindet sich das Element im geladenen Zustand.

Wenn ein Element nicht im Dokument des Containers, sondern im Fenster des Servers geöffnet wurde, befindet es sich im Zustand "Geöffnet" (oder vollständig geöffnet). In diesem Zustand wird normalerweise eine Querlupfung über die Darstellung des Elements im Containerfenster gezeichnet, um anzugeben, dass das Element an anderer Stelle aktiv ist.

Wenn ein Element aktiviert wurde, wird es in der Regel nur kurz durch den aktiven Zustand übergeben. Anschließend wird der aktive Zustand der Benutzeroberfläche eingegeben, in dem der Server seine Menüs, Symbolleisten und andere Benutzeroberflächenkomponenten mit denen des Containers zusammengeführt hat. Das Vorhandensein dieser Benutzeroberflächenkomponenten unterscheidet den aktiven Ui-Zustand vom aktiven Zustand. Andernfalls ähnelt der aktive Zustand der Benutzeroberfläche dem aktiven Zustand der Benutzeroberfläche. Wenn der Server "Rückgängig" unterstützt, muss der Server die Rückgängig-Statusinformationen des OLE-Elements beibehalten, bis er den geladenen oder geöffneten Zustand erreicht.

Siehe auch

Container
Aktivierung
Container: Client-Element-Benachrichtigungen
Tracker
CRectTracker-Klasse