Klasa CPropExchange
Obsługuje implementację trwałości kontrolek OLE.
Składnia
class AFX_NOVTABLE CPropExchange
Elementy członkowskie
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CPropExchange::ExchangeBlobProp | Wymienia właściwość dużego obiektu binarnego (BLOB). |
CPropExchange::ExchangeFontProp | Wymienia właściwość czcionki. |
CPropExchange::ExchangePersistentProp | Wymienia właściwość między kontrolką a plikiem. |
CPropExchange::ExchangeProp | Wymienia właściwości dowolnego typu wbudowanego. |
CPropExchange::ExchangeVersion | Wymienia numer wersji kontrolki OLE. |
CPropExchange::GetVersion | Pobiera numer wersji kontrolki OLE. |
CPropExchange::IsAsynchronous | Określa, czy wymiany właściwości są wykonywane asynchronicznie. |
CPropExchange::IsLoading | Wskazuje, czy właściwości są ładowane do kontrolki, czy zapisywane z niej. |
Uwagi
CPropExchange
nie ma klasy bazowej.
Ustanawia kontekst i kierunek wymiany właściwości.
Trwałość to wymiana informacji o stanie kontrolki, zwykle reprezentowanych przez jej właściwości, między samą kontrolką a medium.
Struktura konstruuje obiekt pochodzący z CPropExchange
, gdy zostanie powiadomiony, że właściwości kontrolki OLE mają być ładowane z magazynu trwałego lub przechowywane w magazynie trwałym.
Struktura przekazuje wskaźnik do tego CPropExchange
obiektu do funkcji kontrolki DoPropExchange
. Jeśli użyto kreatora do utworzenia plików początkowych dla kontrolki, funkcja kontrolki DoPropExchange
wywołuje funkcję COleControl::DoPropExchange
. Wersja klasy bazowej wymienia właściwości akcji kontrolki; zmodyfikujesz wersję klasy pochodnej, aby wymienić właściwości dodane do kontrolki.
CPropExchange
Może służyć do serializacji właściwości kontrolki lub inicjowania właściwości kontrolki podczas ładowania lub tworzenia kontrolki. Funkcje ExchangeProp
CPropExchange
składowe i ExchangeFontProp
są w stanie przechowywać właściwości i ładować je z różnych nośników.
Aby uzyskać więcej informacji na temat korzystania z programu CPropExchange
, zobacz artykuł MFC ActiveX Controls: Property Pages (Kontrolki ActiveX MFC: strony właściwości).
Hierarchia dziedziczenia
CPropExchange
Wymagania
Nagłówek: afxctl.h
CPropExchange::ExchangeBlobProp
Serializuje właściwość, która przechowuje dane binarne dużego obiektu (BLOB).
virtual BOOL ExchangeBlobProp(
LPCTSTR pszPropName,
HGLOBAL* phBlob,
HGLOBAL hBlobDefault = NULL) = 0;
Parametry
pszPropName
Nazwa wymienianej właściwości.
phBlob
Wskaźnik do zmiennej wskazującej, gdzie jest przechowywana właściwość (zmienna jest zazwyczaj elementem członkowskim klasy).
hBlobDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Wartość właściwości jest odczytywana lub zapisywana w odpowiednich przypadkach do zmiennej, do których odwołuje się phBlob. Jeśli parametr hBlobDefault zostanie określony, zostanie on użyty jako wartość domyślna właściwości. Ta wartość jest używana, jeśli z jakiegokolwiek powodu serializacja kontrolki zakończy się niepowodzeniem.
Funkcje CArchivePropExchange::ExchangeBlobProp
, CResetPropExchange::ExchangeBlobProp
i CPropsetPropExchange::ExchangeBlobProp
zastępują tę czystą funkcję wirtualną.
CPropExchange::ExchangeFontProp
Wymienia właściwość czcionki między nośnikiem magazynu a kontrolką.
virtual BOOL ExchangeFontProp(
LPCTSTR pszPropName,
CFontHolder& font,
const FONTDESC* pFontDesc,
LPFONTDISP pFontDispAmbient) = 0;
Parametry
pszPropName
Nazwa wymienianej właściwości.
czcionka
Odwołanie do obiektu CFontHolder zawierającego właściwość czcionki.
pFontDesc
Wskaźnik do struktury FONTDESC zawierającej wartości inicjowania domyślnego stanu właściwości czcionki, gdy pFontDispAmbient ma wartość NULL.
pFontDispAmbient
Wskaźnik do IFontDisp
interfejsu czcionki, który ma być używany do inicjowania domyślnego stanu właściwości czcionki.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Jeśli właściwość czcionki jest ładowana z nośnika do kontrolki, właściwości czcionki są pobierane z nośnika, a CFontHolder
obiekt, do których odwołuje się czcionka, jest inicjowany z nimi. Jeśli właściwość czcionki jest przechowywana, cechy obiektu czcionki są zapisywane na nośniku.
Funkcje CArchivePropExchange::ExchangeFontProp
, CResetPropExchange::ExchangeFontProp
i CPropsetPropExchange::ExchangeFontProp
zastępują tę czystą funkcję wirtualną.
CPropExchange::ExchangePersistentProp
Wymienia właściwość między kontrolką a plikiem.
virtual BOOL ExchangePersistentProp(
LPCTSTR pszPropName,
LPUNKNOWN* ppUnk,
REFIID iid,
LPUNKNOWN pUnkDefault) = 0;
Parametry
pszPropName
Nazwa wymienianej właściwości.
ppUnk
Wskaźnik do zmiennej zawierającej wskaźnik do interfejsu właściwości IUnknown
(ta zmienna jest zazwyczaj elementem członkowskim klasy).
identyfikator iid
Identyfikator interfejsu we właściwości używanej przez kontrolkę.
pUnkDefault
Wartość domyślna właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Jeśli właściwość jest ładowana z pliku do kontrolki, właściwość zostanie utworzona i zainicjowana z pliku. Jeśli właściwość jest przechowywana, jego wartość jest zapisywana w pliku.
Funkcje CArchivePropExchange::ExchangePersistentProp
, CResetPropExchange::ExchangePersistentProp
i CPropsetPropExchange::ExchangePersistentProp
zastępują tę czystą funkcję wirtualną.
CPropExchange::ExchangeProp
Wymienia właściwość między nośnikiem magazynu a kontrolką.
virtual BOOL ExchangeProp(
LPCTSTR pszPropName,
VARTYPE vtProp,
void* pvProp,
const void* pvDefault = NULL) = 0 ;
Parametry
pszPropName
Nazwa wymienianej właściwości.
vtProp
Symbol określający typ wymienianej właściwości. Dopuszczalne wartości:
Symbol | Typ właściwości |
---|---|
VT_I2 | short |
VT_I4 | long |
VT_BOOL | BOOL |
VT_BSTR | CString |
VT_CY | CY |
VT_R4 | float |
VT_R8 | double |
pvProp
Wskaźnik do wartości właściwości.
pvDefault
Wskaźnik na wartość domyślną właściwości.
Wartość zwracana
Nonzero, jeśli wymiana zakończyła się pomyślnie; 0, jeśli nie powiedzie się.
Uwagi
Jeśli właściwość jest ładowana z nośnika do kontrolki, wartość właściwości jest pobierana z nośnika i przechowywana w obiekcie wskazywanym przez pvProp. Jeśli właściwość jest przechowywana na nośniku, wartość obiektu wskazywanego przez pvProp jest zapisywana na nośniku.
Funkcje CArchivePropExchange::ExchangeProp
, CResetPropExchange::ExchangeProp
i CPropsetPropExchange::ExchangeProp
zastępują tę czystą funkcję wirtualną.
CPropExchange::ExchangeVersion
Wywoływana przez platformę w celu obsługi trwałości numeru wersji.
virtual BOOL ExchangeVersion(
DWORD& dwVersionLoaded,
DWORD dwVersionDefault,
BOOL bConvert);
Parametry
dwVersionLoaded
Odwołanie do zmiennej, w której będzie przechowywany numer wersji ładowanych danych trwałych.
dwVersionDefault
Bieżący numer wersji kontrolki.
bConvert
Wskazuje, czy przekonwertować trwałe dane na bieżącą wersję, czy zachować je w tej samej wersji, która została załadowana.
Wartość zwracana
Nonzero, jeśli funkcja powiodła się; 0 w przeciwnym razie.
CPropExchange::GetVersion
Wywołaj tę funkcję, aby pobrać numer wersji kontrolki.
DWORD GetVersion();
Wartość zwracana
Numer wersji kontrolki.
CPropExchange::IsAsynchronous
Określa, czy wymiany właściwości są wykonywane asynchronicznie.
BOOL IsAsynchronous();
Wartość zwracana
Zwraca wartość TRUE, jeśli właściwości są wymieniane asynchronicznie, w przeciwnym razie wartość FALSE.
CPropExchange::IsLoading
Wywołaj tę funkcję, aby określić, czy właściwości są ładowane do kontrolki, czy zapisywane z niej.
BOOL IsLoading();
Wartość zwracana
Niezerowe, jeśli właściwości są ładowane; w przeciwnym razie 0.