Udostępnij za pośrednictwem


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::ExchangeBlobPropi 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::ExchangeFontPropi 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::ExchangePersistentPropi 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::ExchangePropi 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.

Zobacz też

Wykres hierarchii
COleControl::D oPropExchange