Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kontrolka implementuje co najmniej jeden interfejs trwałości, aby obsługiwać trwałość stanu. Na przykład interfejs IPersistStreamInit obsługuje trwałość opartą na strumieniu stanu kontrolki. IPersistStreamInit zastępuje IPersistStream i dodaje metodę inicjowania, InitNew. Inne metody są takie same w obu interfejsach. IPersistStreamInit nie pochodzi z IPersistStream; obiekt obsługuje tylko jeden z dwóch interfejsów na podstawie tego, czy wymaga możliwości zainicjowania nowych wystąpień samego siebie.
Inne interfejsy trwałości oferowane przez kontrolkę to: IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker. Implementator kontrolek musi zdecydować, jakie rodzaje trwałości są najważniejsze i zaimplementować odpowiednie interfejsy trwałości. Implementator kontrolek decyduje również o tym, co należy zapisać. Na przykład kontrolka może zapisywać bieżące wartości właściwości lub jego lokalizacji i rozmiaru w kontenerze. Klient decyduje, który interfejs woli użyć.
Przed załadowaniem kontrolki ze stanu trwałego klient może sprawdzić flagę OLEMISC_SETCLIENTSITEFIRST, aby określić, czy kontrolka obsługuje pobieranie jej lokacji klienta i właściwości otoczenia przed załadowaniem stanu trwałego. Ta optymalizacja może zaoszczędzić czas podczas tworzenia wystąpienia kontrolki, ponieważ kontrolka jest wolna od ignorowania jego trwałych wartości, a nie ładowania ich tylko w celu zastąpienia ich przez właściwości otoczenia dostarczone przez klienta.
Kontrolka może również obsługiwać zapisywanie i przywracanie stanu w zestawie właściwości OLE, zestaw identyfikatorów i wartości w określonym formacie. Ta funkcja może być przydatna w przypadku kontenerów, takich jak Visual Basic, która zapisuje swoje programy w postaci tekstowej. Kontrolka, która chce obsługiwać tę funkcję, implementuje IDataObject::GetData i IDataObject::SetData, aby przekazać jej wartości właściwości do i z kontenera. Jest to zadanie kontenera, aby przekonwertować te informacje na tekst i zapisać je. Identyfikatory używane przez kontrolkę odpowiadają nazwom właściwości kontrolki i wartościom. Zobacz zestaw OLE CDK, aby uzyskać definicję tego zestawu właściwości.
Tematy pokrewne