Classe CPropExchange

Supporta l'implementazione di persistenza per i controlli OLE.

Sintassi

class AFX_NOVTABLE CPropExchange

Membri

Metodi pubblici

Nome Descrizione
CPropExchange::ExchangeBlobProp Scambia una proprietà BLOB (Binary Large Object).
CPropExchange::ExchangeFontProp Scambia una proprietà del tipo di carattere.
CPropExchange::ExchangePersistentProp Scambia una proprietà tra un controllo e un file.
CPropExchange::ExchangePropProp Scambia proprietà di qualsiasi tipo predefinito.
CPropExchange::ExchangeVersion Scambia il numero di versione di un controllo OLE.
CPropExchange::GetVersion Recupera il numero di versione di un controllo OLE.
CPropExchange::IsAsynchronous Determina se gli scambi di proprietà vengono eseguiti in modo asincrono.
CPropExchange::IsLoading Indica se le proprietà vengono caricate nel controllo o salvate da esso.

Osservazioni:

CPropExchange non dispone di una classe di base.

Stabilisce il contesto e la direzione di uno scambio di proprietà.

La persistenza è lo scambio delle informazioni sullo stato del controllo, in genere rappresentate dalle relative proprietà, tra il controllo stesso e un supporto.

Il framework costruisce un oggetto derivato da CPropExchange quando riceve una notifica che indica che le proprietà di un controllo OLE devono essere caricate da o archiviate in una risorsa di archiviazione permanente.

Il framework passa un puntatore a questo CPropExchange oggetto alla funzione del DoPropExchange controllo. Se è stata usata una procedura guidata per creare i file di avvio per il controllo, la funzione del DoPropExchange controllo chiama COleControl::DoPropExchange. La versione della classe base scambia le proprietà azionarie del controllo; si modifica la versione della classe derivata per scambiare le proprietà aggiunte al controllo.

CPropExchange può essere utilizzato per serializzare le proprietà di un controllo o inizializzare le proprietà di un controllo al caricamento o alla creazione di un controllo. Le ExchangeProp funzioni membro e ExchangeFontProp di sono in grado di CPropExchange archiviare le proprietà in e caricarle da supporti diversi.

Per altre informazioni sull'uso CPropExchangedi , vedere l'articolo Controlli ActiveX MFC: Pagine delle proprietà.

Gerarchia di ereditarietà

CPropExchange

Requisiti

Intestazione: afxctl.h

CPropExchange::ExchangeBlobProp

Serializza una proprietà che archivia dati BLOB (Binary Large Object).

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

Parametri

pszPropName
Nome della proprietà in fase di scambio.

phBlob
Puntatore a una variabile che punta alla posizione in cui è archiviata la proprietà (la variabile è in genere un membro della classe).

hBlobDefault
Valore predefinito per la proprietà .

Valore restituito

Diverso da zero se lo scambio ha avuto esito positivo; 0 in caso di esito negativo.

Osservazioni:

Il valore della proprietà viene letto o scritto in, in base alle esigenze, alla variabile a cui fa riferimento phBlob. Se viene specificato hBlobDefault , verrà usato come valore predefinito della proprietà. Questo valore viene utilizzato se, per qualsiasi motivo, la serializzazione del controllo non riesce.

Le funzioni CArchivePropExchange::ExchangeBlobProp, CResetPropExchange::ExchangeBlobPrope CPropsetPropExchange::ExchangeBlobProp e eseguono l'override di questa funzione virtuale pura.

CPropExchange::ExchangeFontProp

Scambia una proprietà del tipo di carattere tra un supporto di archiviazione e il controllo .

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

Parametri

pszPropName
Nome della proprietà in fase di scambio.

Carattere
Riferimento a un oggetto CFontHolder che contiene la proprietà font.

pFontDesc
Puntatore a una struttura FONTDESC contenente valori per inizializzare lo stato predefinito della proprietà del tipo di carattere quando pFontDispAmbient è NULL.

pFontDispAmbient
Puntatore all'interfaccia IFontDisp di un tipo di carattere da utilizzare per inizializzare lo stato predefinito della proprietà del tipo di carattere.

Valore restituito

Diverso da zero se lo scambio ha avuto esito positivo; 0 in caso di esito negativo.

Osservazioni:

Se la proprietà del tipo di carattere viene caricata dal supporto al controllo, le caratteristiche del tipo di carattere vengono recuperate dal supporto e l'oggetto a cui fa riferimento il CFontHolder tipo di carattere viene inizializzato. Se la proprietà del tipo di carattere viene archiviata, le caratteristiche dell'oggetto carattere vengono scritte nel supporto.

Le funzioni CArchivePropExchange::ExchangeFontProp, CResetPropExchange::ExchangeFontPrope CPropsetPropExchange::ExchangeFontProp e eseguono l'override di questa funzione virtuale pura.

CPropExchange::ExchangePersistentProp

Scambia una proprietà tra il controllo e un file.

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

Parametri

pszPropName
Nome della proprietà in fase di scambio.

ppUnk
Puntatore a una variabile contenente un puntatore all'interfaccia della IUnknown proprietà (questa variabile è in genere un membro della classe).

Iid
ID interfaccia dell'interfaccia nella proprietà che verrà utilizzata dal controllo.

pUnkDefault
Valore predefinito per la proprietà .

Valore restituito

Diverso da zero se lo scambio ha avuto esito positivo; 0 in caso di esito negativo.

Osservazioni:

Se la proprietà viene caricata dal file al controllo, la proprietà viene creata e inizializzata dal file. Se la proprietà viene archiviata, il relativo valore viene scritto nel file.

Le funzioni CArchivePropExchange::ExchangePersistentProp, CResetPropExchange::ExchangePersistentPrope CPropsetPropExchange::ExchangePersistentProp e eseguono l'override di questa funzione virtuale pura.

CPropExchange::ExchangePropProp

Scambia una proprietà tra un supporto di archiviazione e il controllo .

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

Parametri

pszPropName
Nome della proprietà in fase di scambio.

vtProp
Simbolo che specifica il tipo della proprietà in fase di scambio. I valori possibili sono:

Simbolo Tipo di proprietà
VT_I2 short
VT_I4 long
VT_BOOL BOOL
VT_BSTR CString
VT_CY CY
VT_R4 float
VT_R8 double

pvProp
Puntatore al valore della proprietà.

pvDefault
Puntatore a un valore predefinito per la proprietà .

Valore restituito

Diverso da zero se lo scambio ha avuto esito positivo; 0 in caso di esito negativo.

Osservazioni:

Se la proprietà viene caricata dal supporto al controllo, il valore della proprietà viene recuperato dal supporto e archiviato nell'oggetto a cui punta pvProp. Se la proprietà viene archiviata nel supporto, il valore dell'oggetto a cui punta pvProp viene scritto nel supporto.

Le funzioni CArchivePropExchange::ExchangeProp, CResetPropExchange::ExchangePrope CPropsetPropExchange::ExchangeProp e eseguono l'override di questa funzione virtuale pura.

CPropExchange::ExchangeVersion

Chiamato dal framework per gestire la persistenza di un numero di versione.

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

Parametri

dwVersionLoaded
Riferimento a una variabile in cui verrà archiviato il numero di versione dei dati persistenti caricati.

dwVersionDefault
Numero di versione corrente del controllo.

bConvert
Indica se convertire i dati persistenti nella versione corrente o mantenerli nella stessa versione caricata.

Valore restituito

Diverso da zero se la funzione ha avuto esito positivo; 0 in caso contrario.

CPropExchange::GetVersion

Chiamare questa funzione per recuperare il numero di versione del controllo.

DWORD GetVersion();

Valore restituito

Numero di versione del controllo.

CPropExchange::IsAsynchronous

Determina se gli scambi di proprietà vengono eseguiti in modo asincrono.

BOOL IsAsynchronous();

Valore restituito

Restituisce TRUE se le proprietà vengono scambiate in modo asincrono; in caso contrario, FAL edizione Standard.

CPropExchange::IsLoading

Chiamare questa funzione per determinare se le proprietà vengono caricate nel controllo o salvate.

BOOL IsLoading();

Valore restituito

Diverso da zero se vengono caricate le proprietà; in caso contrario, 0.

Vedi anche

Grafico della gerarchia
COleControl::D oPropExchange