Freigeben über


Ausdauer

Ein Steuerelement implementiert eine oder mehrere mehrere Persistenzschnittstellen, um das Persistenz des Zustands zu unterstützen. Beispielsweise unterstützt die IPersistStreamInit Schnittstelle streambasierte Persistenz des Zustands des Steuerelements. IPersistStreamInit ist ein Ersatz für IPersistStream und fügt eine Initialisierungsmethode hinzu, InitNew. Die anderen Methoden sind in beiden Schnittstellen identisch. IPersistStreamInit wird nicht von IPersistStreamabgeleitet; ein Objekt unterstützt nur eine der beiden Schnittstellen, je nachdem, ob es die Möglichkeit erfordert, neue Instanzen von sich selbst zu initialisieren.

Weitere Persistenzschnittstellen, die ein Steuerelement bieten kann, sind: IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker. Der Steuerelementimplementierer muss entscheiden, welche Arten von Persistenz am wichtigsten sind, und die entsprechenden Persistenzschnittstellen implementieren. Der Steuerelementimplementierer entscheidet auch, was gespeichert werden soll. Beispielsweise kann ein Steuerelement die aktuellen Werte seiner Eigenschaften oder seine Position und Größe innerhalb des Containers speichern. Der Client entscheidet, welche Schnittstelle verwendet werden soll.

Vor dem Laden eines Steuerelements aus dem persistenten Zustand kann ein Client das OLEMISC_SETCLIENTSITEFIRST Flag überprüfen, um zu ermitteln, ob das Steuerelement das Abrufen seiner Clientwebsite- und Umgebungseigenschaften unterstützt, bevor er seinen persistenten Zustand lädt. Diese Optimierung kann Zeit sparen, wenn ein Steuerelement instanziiert wird, da das Steuerelement dann frei ist, seine persistenten Werte zu ignorieren, anstatt sie nur zu laden, um sie durch Umgebungseigenschaften außer Kraft zu setzen, die vom Client bereitgestellt werden.

Ein Steuerelement kann auch das Speichern und Wiederherstellen des Zustands in einem OLE-Eigenschaftensatz, einer Gruppe von Bezeichnern und Werten in einem angegebenen Format unterstützen. Dieses Feature kann bei Containern wie Visual Basic nützlich sein, die seine Programme in textbezogener Form speichert. Ein Steuerelement, das dieses Feature unterstützen möchte, implementiert IDataObject::GetData und IDataObject::SetData-, um seine Eigenschaftswerte an bzw. vom Container zu übergeben. Es ist der Auftrag des Containers, diese Informationen in Text zu konvertieren und zu speichern. Die vom Steuerelement verwendeten Bezeichner entsprechen den Eigenschaftennamen und den Werten des Steuerelements. Die Definition dieses Eigenschaftensatzes finden Sie im OLE CDK.

ActiveX-Steuerelemente