CPropExchange-Klasse

Unterstützt die Implementierung der Dauerhaftigkeit für die OLE-Steuerelemente.

Syntax

class AFX_NOVTABLE CPropExchange

Member

Öffentliche Methoden

Name Beschreibung
CPropExchange::ExchangeBlobProp Austauscht eine blob-Eigenschaft (Binary Large Object).
CPropExchange::ExchangeFontProp Tauscht eine Schriftarteigenschaft aus.
CPropExchange::ExchangePersistentProp Austausch einer Eigenschaft zwischen einem Steuerelement und einer Datei.
CPropExchange::ExchangeProp Austausch von Eigenschaften eines integrierten Typs.
CPropExchange::ExchangeVersion Austauscht die Versionsnummer eines OLE-Steuerelements.
CPropExchange::GetVersion Ruft die Versionsnummer eines OLE-Steuerelements ab.
CPropExchange::IsAsynchronous Bestimmt, ob der Eigenschaftenaustausch asynchron durchgeführt wird.
CPropExchange::IsLoading Gibt an, ob Eigenschaften in das Steuerelement geladen oder daraus gespeichert werden.

Hinweise

CPropExchange besitzt keine Basisklasse.

Richtet den Kontext und die Richtung eines Eigenschaftenaustauschs ein.

Persistenz ist der Austausch der Zustandsinformationen des Steuerelements, die in der Regel durch seine Eigenschaften dargestellt werden, zwischen dem Steuerelement selbst und einem Medium.

Das Framework erstellt ein Objekt, das von CPropExchange dem abgeleitet wird, wenn es benachrichtigt wird, dass die Eigenschaften eines OLE-Steuerelements aus dem permanenten Speicher geladen oder gespeichert werden sollen.

Das Framework übergibt einen Zeiger auf dieses CPropExchange Objekt an die Funktion des Steuerelements DoPropExchange . Wenn Sie einen Assistenten zum Erstellen der Startdateien für Ihr Steuerelement verwendet haben, ruft die Funktion des Steuerelements DoPropExchange auf COleControl::DoPropExchange. Die Basisklasse tauscht die Aktieneigenschaften des Steuerelements aus; Sie ändern die Version Ihrer abgeleiteten Klasse so, dass Eigenschaften ausgetauscht werden, die Sie ihrem Steuerelement hinzugefügt haben.

CPropExchange kann verwendet werden, um die Eigenschaften eines Steuerelements zu serialisieren oder die Eigenschaften eines Steuerelements beim Laden oder Erstellen eines Steuerelements zu initialisieren. Die ExchangeProp Funktionen und ExchangeFontProp Member der CPropExchange Funktionen sind in der Lage, Eigenschaften zu speichern und aus verschiedenen Medien zu laden.

Weitere Informationen zur Verwendung CPropExchangefinden Sie im Artikel MFC ActiveX Controls: Property Pages.

Vererbungshierarchie

CPropExchange

Anforderungen

Kopfzeile: afxctl.h

CPropExchange::ExchangeBlobProp

Serialisiert eine Eigenschaft, die BLOB-Daten (Binary Large Object) speichert.

virtual BOOL ExchangeBlobProp(
    LPCTSTR pszPropName,
    HGLOBAL* phBlob,
    HGLOBAL hBlobDefault = NULL) = 0;

Parameter

pszPropName
Der Name des ausgetauschten Eigentums.

phBlob
Zeiger auf eine Variable, die auf den Speicherort der Eigenschaft zeigt (Variable ist in der Regel ein Element Ihrer Klasse).

hBlobDefault
Standardwert für die Eigenschaft.

Rückgabewert

Nonzero, wenn der Austausch erfolgreich war; 0, wenn dies nicht erfolgreich ist.

Hinweise

Der Wert der Eigenschaft wird je nach Bedarf von phBlob gelesen oder in die Variable geschrieben, auf die verwiesen wird. Wenn hBlobDefault angegeben wird, wird sie als Standardwert der Eigenschaft verwendet. Dieser Wert wird verwendet, wenn aus irgendeinem Grund die Serialisierung des Steuerelements fehlschlägt.

Die Funktionen CArchivePropExchange::ExchangeBlobProp, CResetPropExchange::ExchangeBlobPropund CPropsetPropExchange::ExchangeBlobProp überschreiben diese reine virtuelle Funktion.

CPropExchange::ExchangeFontProp

Austauscht eine Schriftarteigenschaft zwischen einem Speichermedium und dem Steuerelement.

virtual BOOL ExchangeFontProp(
    LPCTSTR pszPropName,
    CFontHolder& font,
    const FONTDESC* pFontDesc,
    LPFONTDISP pFontDispAmbient) = 0;

Parameter

pszPropName
Der Name des ausgetauschten Eigentums.

Schriftart
Ein Verweis auf ein CFontHolder -Objekt, das die Schriftarteigenschaft enthält.

pFontDesc
Ein Zeiger auf eine FONTDESC-Struktur , die Werte zum Initialisieren des Standardzustands der Schriftarteigenschaft enthält, wenn pFontDispAmbient NULL ist.

pFontDispAmbient
Ein Zeiger auf die IFontDisp Schnittstelle einer Schriftart, die zum Initialisieren des Standardzustands der Schriftarteigenschaft verwendet werden soll.

Rückgabewert

Nonzero, wenn der Austausch erfolgreich war; 0, wenn dies nicht erfolgreich ist.

Hinweise

Wenn die Schriftarteigenschaft vom Medium in das Steuerelement geladen wird, werden die Eigenschaften der Schriftart aus dem Medium abgerufen, und das Objekt, auf das CFontHolder von der Schriftart verwiesen wird, wird mit ihnen initialisiert. Wenn die Schriftarteigenschaft gespeichert wird, werden die Merkmale des Schriftartobjekts in das Medium geschrieben.

Die Funktionen CArchivePropExchange::ExchangeFontProp, CResetPropExchange::ExchangeFontPropund CPropsetPropExchange::ExchangeFontProp überschreiben diese reine virtuelle Funktion.

CPropExchange::ExchangePersistentProp

Austausch einer Eigenschaft zwischen dem Steuerelement und einer Datei.

virtual BOOL ExchangePersistentProp(
    LPCTSTR pszPropName,
    LPUNKNOWN* ppUnk,
    REFIID iid,
    LPUNKNOWN pUnkDefault) = 0;

Parameter

pszPropName
Der Name des ausgetauschten Eigentums.

ppUnk
Ein Zeiger auf eine Variable, die einen Zeiger auf die Schnittstelle der Eigenschaft IUnknown enthält (diese Variable ist in der Regel ein Element Ihrer Klasse).

iid
Schnittstellen-ID der Schnittstelle für die Eigenschaft, die vom Steuerelement verwendet wird.

pUnkDefault
Standardwert für die Eigenschaft.

Rückgabewert

Nonzero, wenn der Austausch erfolgreich war; 0, wenn dies nicht erfolgreich ist.

Hinweise

Wenn die Eigenschaft aus der Datei in das Steuerelement geladen wird, wird die Eigenschaft erstellt und aus der Datei initialisiert. Wenn die Eigenschaft gespeichert wird, wird der Wert in die Datei geschrieben.

Die Funktionen CArchivePropExchange::ExchangePersistentProp, CResetPropExchange::ExchangePersistentPropund CPropsetPropExchange::ExchangePersistentProp überschreiben diese reine virtuelle Funktion.

CPropExchange::ExchangeProp

Wechselt eine Eigenschaft zwischen einem Speichermedium und dem Steuerelement.

virtual BOOL ExchangeProp(
    LPCTSTR pszPropName,
    VARTYPE vtProp,
    void* pvProp,
    const void* pvDefault = NULL) = 0 ;

Parameter

pszPropName
Der Name des ausgetauschten Eigentums.

vtProp
Ein Symbol, das den Typ der ausgetauschten Eigenschaft angibt. Dabei sind folgende Werte möglich:

Symbol Eigenschaftstyp
VT_I2 short
VT_I4 long
VT_BOOL BOOL
VT_BSTR CString
VT_CY CY
VT_R4 float
VT_R8 double

pvProp
Ein Zeiger auf den Wert der Eigenschaft.

pvDefault
Zeigen Sie auf einen Standardwert für die Eigenschaft.

Rückgabewert

Nonzero, wenn der Austausch erfolgreich war; 0, wenn dies nicht erfolgreich ist.

Hinweise

Wenn die Eigenschaft vom Medium in das Steuerelement geladen wird, wird der Wert der Eigenschaft aus dem Medium abgerufen und im Objekt gespeichert, auf das von pvProp verwiesen wird. Wenn die Eigenschaft auf dem Medium gespeichert wird, wird der Wert des Objekts, auf das pvProp verweist, in das Medium geschrieben.

Die Funktionen CArchivePropExchange::ExchangeProp, CResetPropExchange::ExchangePropund CPropsetPropExchange::ExchangeProp überschreiben diese reine virtuelle Funktion.

CPropExchange::ExchangeVersion

Vom Framework aufgerufen, um die Persistenz einer Versionsnummer zu behandeln.

virtual BOOL ExchangeVersion(
    DWORD& dwVersionLoaded,
    DWORD dwVersionDefault,
    BOOL bConvert);

Parameter

dwVersionLoaded
Verweisen Sie auf eine Variable, in der die Versionsnummer der geladenen persistenten Daten gespeichert wird.

dwVersionDefault
Die aktuelle Versionsnummer des Steuerelements.

bConvert
Gibt an, ob persistente Daten in die aktuelle Version konvertiert oder in derselben Version beibehalten werden sollen, die geladen wurde.

Rückgabewert

Nonzero, wenn die Funktion erfolgreich war; 0 andernfalls.

CPropExchange::GetVersion

Rufen Sie diese Funktion auf, um die Versionsnummer des Steuerelements abzurufen.

DWORD GetVersion();

Rückgabewert

Die Versionsnummer des Steuerelements.

CPropExchange::IsAsynchronous

Bestimmt, ob der Eigenschaftenaustausch asynchron durchgeführt wird.

BOOL IsAsynchronous();

Rückgabewert

Gibt TRUE zurück, wenn Eigenschaften asynchron ausgetauscht werden, andernfalls FALSE.

CPropExchange::IsLoading

Rufen Sie diese Funktion auf, um zu bestimmen, ob Eigenschaften in das Steuerelement geladen oder daraus gespeichert werden.

BOOL IsLoading();

Rückgabewert

Nonzero, wenn Eigenschaften geladen werden; andernfalls 0.

Siehe auch

Hierarchiediagramm
COleControl::D oPropExchange