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::ExchangeBlobProp
et 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::ExchangeFontProp
et 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::ExchangePersistentProp
et 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::ExchangeProp
et 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.