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 CPropExchange
finden 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::ExchangeBlobProp
und 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::ExchangeFontProp
und 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::ExchangePersistentProp
und 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::ExchangeProp
und 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.