CPropExchange, classe

Prend en charge l'implémentation de la persistance de vos contrôles OLE.

Syntaxe

class AFX_NOVTABLE CPropExchange

Membres

Méthodes publiques

Nom Description
CPropExchange ::ExchangeBlobProp Échange une propriété BLOB (Binary Large Object).
CPropExchange ::ExchangeFontProp Échange une propriété de police.
CPropExchange ::ExchangePersistentProp Échange une propriété entre un contrôle et un fichier.
CPropExchange ::ExchangeProp Échange les propriétés de n’importe quel type intégré.
CPropExchange ::ExchangeVersion Échange le numéro de version d’un contrôle OLE.
CPropExchange ::GetVersion Récupère le numéro de version d’un contrôle OLE.
CPropExchange ::IsAsynchronous Détermine si les échanges de propriétés sont effectués de façon asynchrone.
CPropExchange ::IsLoading Indique si les propriétés sont chargées dans le contrôle ou enregistrées à partir de celui-ci.

Notes

CPropExchange n’a pas de classe de base.

Établit le contexte et la direction d’un échange de propriétés.

La persistance est l’échange des informations d’état du contrôle, généralement représentées par ses propriétés, entre le contrôle lui-même et un support.

L’infrastructure construit un objet dérivé du CPropExchange moment où il est averti que les propriétés d’un contrôle OLE doivent être chargées à partir ou stockées vers un stockage persistant.

L’infrastructure transmet un pointeur vers cet CPropExchange objet vers la fonction de DoPropExchange votre contrôle. Si vous avez utilisé un Assistant pour créer les fichiers de démarrage de votre contrôle, la fonction de DoPropExchange votre contrôle appelle COleControl::DoPropExchange. La version de la classe de base échange les propriétés boursières du contrôle ; vous modifiez la version de votre classe dérivée pour échanger des propriétés que vous avez ajoutées à votre contrôle.

CPropExchange peut être utilisé pour sérialiser les propriétés d’un contrôle ou initialiser les propriétés d’un contrôle lors de la charge ou de la création d’un contrôle. Les ExchangeProp fonctions membres et ExchangeFontProp les fonctions de membres sont en mesure de CPropExchange stocker les propriétés et de les charger à partir de différents supports.

Pour plus d’informations sur l’utilisation CPropExchange, consultez l’article MFC ActiveX Controls : Property Pages.

Hiérarchie d'héritage

CPropExchange

Spécifications

En-tête : afxctl.h

CPropExchange ::ExchangeBlobProp

Sérialise une propriété qui stocke les données blob (binary large object).

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

Paramètres

pszPropName
Nom de la propriété en cours d’échange.

phBlob
Pointeur vers une variable pointant vers l’emplacement où la propriété est stockée (la variable est généralement membre de votre classe).

hBlobDefault
Valeur par défaut de la propriété.

Valeur de retour

Différent de zéro si l’échange a réussi ; 0 en cas d’échec.

Notes

La valeur de la propriété est lue ou écrite dans, le cas échéant, la variable référencée par phBlob. Si hBlobDefault est spécifié, il sera utilisé comme valeur par défaut de la propriété. Cette valeur est utilisée si, pour une raison quelconque, la sérialisation du contrôle échoue.

Les fonctions CArchivePropExchange::ExchangeBlobProp, CResetPropExchange::ExchangeBlobPropet CPropsetPropExchange::ExchangeBlobProp remplacent cette fonction virtuelle pure.

CPropExchange ::ExchangeFontProp

Échange une propriété de police entre un support de stockage et le contrôle.

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

Paramètres

pszPropName
Nom de la propriété en cours d’échange.

police
Référence à un objet CFontHolder qui contient la propriété de police.

pFontDesc
Pointeur vers une structure FONTDESC contenant des valeurs pour initialiser l’état par défaut de la propriété de police lorsque pFontDispAmbient a la valeur NULL.

pFontDispAmbient
Pointeur vers l’interface IFontDisp d’une police à utiliser pour initialiser l’état par défaut de la propriété de police.

Valeur de retour

Différent de zéro si l’échange a réussi ; 0 en cas d’échec.

Notes

Si la propriété de police est chargée du support vers le contrôle, les caractéristiques de la police sont récupérées à partir du support et l’objet CFontHolder référencé par la police est initialisé avec eux. Si la propriété de police est stockée, les caractéristiques de l’objet de police sont écrites sur le support.

Les fonctions CArchivePropExchange::ExchangeFontProp, CResetPropExchange::ExchangeFontPropet CPropsetPropExchange::ExchangeFontProp remplacent cette fonction virtuelle pure.

CPropExchange ::ExchangePersistentProp

Échange une propriété entre le contrôle et un fichier.

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

Paramètres

pszPropName
Nom de la propriété en cours d’échange.

ppUnk
Pointeur vers une variable contenant un pointeur vers l’interface de IUnknown la propriété (cette variable est généralement membre de votre classe).

iid
ID d’interface de l’interface sur la propriété que le contrôle utilisera.

pUnkDefault
Valeur par défaut de la propriété.

Valeur de retour

Différent de zéro si l’échange a réussi ; 0 en cas d’échec.

Notes

Si la propriété est chargée du fichier vers le contrôle, la propriété est créée et initialisée à partir du fichier. Si la propriété est stockée, sa valeur est écrite dans le fichier.

Les fonctions CArchivePropExchange::ExchangePersistentProp, CResetPropExchange::ExchangePersistentPropet CPropsetPropExchange::ExchangePersistentProp remplacent cette fonction virtuelle pure.

CPropExchange ::ExchangeProp

Échange une propriété entre un support de stockage et le contrôle.

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

Paramètres

pszPropName
Nom de la propriété en cours d’échange.

vtProp
Symbole spécifiant le type de la propriété en cours d’échange. Les valeurs possibles sont les suivantes :

Symbole Type de propriété
VT_I2 short
VT_I4 long
VT_BOOL BOOL
VT_BSTR CString
VT_CY CY
VT_R4 float
VT_R8 double

pvProp
Pointeur vers la valeur de la propriété.

pvDefault
Pointeur vers une valeur par défaut pour la propriété.

Valeur de retour

Différent de zéro si l’échange a réussi ; 0 en cas d’échec.

Notes

Si la propriété est chargée du support vers le contrôle, la valeur de la propriété est récupérée à partir du support et stockée dans l’objet pointé par pvProp. Si la propriété est stockée sur le support, la valeur de l’objet pointé par pvProp est écrite sur le support.

Les fonctions CArchivePropExchange::ExchangeProp, CResetPropExchange::ExchangePropet CPropsetPropExchange::ExchangeProp remplacent cette fonction virtuelle pure.

CPropExchange ::ExchangeVersion

Appelé par l’infrastructure pour gérer la persistance d’un numéro de version.

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

Paramètres

dwVersionLoaded
Référence à une variable dans laquelle le numéro de version des données persistantes chargées sera stocké.

dwVersionDefault
Numéro de version actuel du contrôle.

bConvert
Indique s’il faut convertir des données persistantes vers la version actuelle ou la conserver à la même version chargée.

Valeur de retour

Différent de zéro si la fonction a réussi ; Sinon, 0.

CPropExchange ::GetVersion

Appelez cette fonction pour récupérer le numéro de version du contrôle.

DWORD GetVersion();

Valeur de retour

Numéro de version du contrôle.

CPropExchange ::IsAsynchronous

Détermine si les échanges de propriétés sont effectués de façon asynchrone.

BOOL IsAsynchronous();

Valeur de retour

Retourne TRUE si les propriétés sont échangées de manière asynchrone, sinon FALSE.

CPropExchange ::IsLoading

Appelez cette fonction pour déterminer si les propriétés sont chargées dans le contrôle ou enregistrées à partir de celui-ci.

BOOL IsLoading();

Valeur de retour

Différent de zéro si les propriétés sont chargées ; sinon 0.

Voir aussi

Graphique hiérarchique
COleControl ::D oPropExchange