Класс CPropExchange

Поддерживает реализацию сохранения элементов управления OLE.

Синтаксис

class AFX_NOVTABLE CPropExchange

Участники

Открытые методы

Имя Описание
CPropExchange::ExchangeBlobProp Обмен свойством больших двоичных объектов (BLOB).
CPropExchange::ExchangeFontProp Обмен свойством шрифта.
CPropExchange::ExchangePersistentProp Обмен свойством между элементом управления и файлом.
CPropExchange::ExchangeProp Обмен свойствами любого встроенного типа.
CPropExchange::ExchangeVersion Обмен номером версии элемента управления OLE.
CPropExchange::GetVersion Извлекает номер версии элемента управления OLE.
CPropExchange::IsAsynchronous Определяет, выполняются ли обмены свойствами асинхронно.
CPropExchange::IsLoading Указывает, загружаются ли свойства в элемент управления или сохраняются из него.

Замечания

CPropExchange не имеет базового класса.

Устанавливает контекст и направление обмена свойствами.

Сохраняемость — это обмен сведениями о состоянии элемента управления, обычно представленными его свойствами, между самим элементом управления и средой.

Платформа создает объект, производный от CPropExchange уведомления о том, что свойства элемента управления OLE должны быть загружены из или сохранены в постоянное хранилище.

Платформа передает указатель на этот CPropExchange объект функции элемента управления DoPropExchange . Если вы использовали мастер для создания начальных файлов для элемента управления, вызов функции COleControl::DoPropExchangeэлемента управленияDoPropExchange. Версия базового класса обменивается свойствами акций элемента управления; Вы изменяете версию производного класса для обмена свойствами, добавленными в элемент управления.

CPropExchange можно использовать для сериализации свойств элемента управления или инициализации свойств элемента управления при загрузке или создании элемента управления. ExchangePropExchangeFontProp Функции-члены CPropExchange могут хранить свойства и загружать их из разных носителей.

Дополнительные сведения об использовании CPropExchangeсм. в статье MFC ActiveX Controls: Property Pages.

Иерархия наследования

CPropExchange

Требования

Заголовок: afxctl.h

CPropExchange::ExchangeBlobProp

Сериализует свойство, которое хранит данные двоичного большого объекта (BLOB).

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

Параметры

pszPropName
Имя обмена свойством.

phBlob
Указатель на переменную, указывающую на место хранения свойства (переменная обычно является членом класса).

hBlobDefault
Значение по умолчанию для свойства.

Возвращаемое значение

Ненулевое значение, если обмен был успешным; 0, если неудачно.

Замечания

Значение свойства считывается из или записывается в переменную, на которую ссылается phBlob. Если указан hBlobDefault , он будет использоваться в качестве значения по умолчанию свойства. Это значение используется, если по какой-либо причине сериализация элемента управления завершается ошибкой.

Функции CArchivePropExchange::ExchangeBlobPropи CResetPropExchange::ExchangeBlobPropCPropsetPropExchange::ExchangeBlobProp переопределение этой чистой виртуальной функции.

CPropExchange::ExchangeFontProp

Обмен свойством шрифта между средой хранения и элементом управления.

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

Параметры

pszPropName
Имя обмена свойством.

Шрифта
Ссылка на объект CFontHolder , содержащий свойство шрифта.

pFontDesc
Указатель на структуру FONTDESC , содержащую значения для инициализации состояния шрифта по умолчанию, когда pFontDispAmbient имеет значение NULL.

pFontDispAmbient
Указатель на IFontDisp интерфейс шрифта, который будет использоваться для инициализации состояния шрифта по умолчанию свойства шрифта.

Возвращаемое значение

Ненулевое значение, если обмен был успешным; 0, если неудачно.

Замечания

Если свойство шрифта загружается из среды в элемент управления, характеристики шрифта извлекаются из среды, а CFontHolder объект, на который ссылается шрифт , инициализируется с ними. Если свойство шрифта хранится, характеристики в объекте шрифта записываются в носитель.

Функции CArchivePropExchange::ExchangeFontPropи CResetPropExchange::ExchangeFontPropCPropsetPropExchange::ExchangeFontProp переопределение этой чистой виртуальной функции.

CPropExchange::ExchangePersistentProp

Обмен свойством между элементом управления и файлом.

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

Параметры

pszPropName
Имя обмена свойством.

ppUnk
Указатель на переменную, содержащую указатель на интерфейс свойства IUnknown (эта переменная обычно является членом класса).

Iid
Идентификатор интерфейса в свойстве, которое будет использоваться элементом управления.

pUnkDefault
Значение по умолчанию для свойства.

Возвращаемое значение

Ненулевое значение, если обмен был успешным; 0, если неудачно.

Замечания

Если свойство загружается из файла в элемент управления, это свойство создается и инициализируется из файла. Если свойство хранится, его значение записывается в файл.

Функции CArchivePropExchange::ExchangePersistentPropи CResetPropExchange::ExchangePersistentPropCPropsetPropExchange::ExchangePersistentProp переопределение этой чистой виртуальной функции.

CPropExchange::ExchangeProp

Обмен свойством между средой хранения и элементом управления.

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

Параметры

pszPropName
Имя обмена свойством.

vtProp
Символ, указывающий тип обмена свойством. Возможны следующие значения:

Символ Вид имущества
VT_I2 short
VT_I4 long
VT_BOOL. BOOL
VT_BSTR CString
VT_CY CY
VT_R4 float
VT_R8 double

pvProp
Указатель на значение свойства.

pvDefault
Указатель на значение по умолчанию для свойства.

Возвращаемое значение

Ненулевое значение, если обмен был успешным; 0, если неудачно.

Замечания

Если свойство загружается из среды в элемент управления, значение свойства извлекается из среды и сохраняется в объекте, на который указывает pvProp. Если свойство хранится в среде, значение объекта, на которое указывает pvProp , записывается в среду.

Функции CArchivePropExchange::ExchangePropи CResetPropExchange::ExchangePropCPropsetPropExchange::ExchangeProp переопределение этой чистой виртуальной функции.

CPropExchange::ExchangeVersion

Вызывается платформой для обработки сохраняемости номера версии.

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

Параметры

dwVersionLoaded
Ссылка на переменную, в которой будет храниться номер версии загружаемых постоянных данных.

dwVersionDefault
Текущий номер версии элемента управления.

bConvert
Указывает, следует ли преобразовать постоянные данные в текущую версию или сохранить ее в той же версии, которая была загружена.

Возвращаемое значение

Ненулевое значение, если функция выполнена успешно; 0 в противном случае.

CPropExchange::GetVersion

Вызовите эту функцию, чтобы получить номер версии элемента управления.

DWORD GetVersion();

Возвращаемое значение

Номер версии элемента управления.

CPropExchange::IsAsynchronous

Определяет, выполняются ли обмены свойствами асинхронно.

BOOL IsAsynchronous();

Возвращаемое значение

Возвращает значение TRUE, если свойства обмениваются асинхронно, в противном случае — FALSE.

CPropExchange::IsLoading

Вызовите эту функцию, чтобы определить, загружаются ли свойства в элемент управления или сохраняются из него.

BOOL IsLoading();

Возвращаемое значение

Ненулевое значение, если загружаются свойства; в противном случае — 0.

См. также

Диаграмма иерархии
COleControl::DoPropExchange