Класс 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
можно использовать для сериализации свойств элемента управления или инициализации свойств элемента управления при загрузке или создании элемента управления. ExchangeProp
ExchangeFontProp
Функции-члены 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::ExchangeBlobProp
CPropsetPropExchange::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::ExchangeFontProp
CPropsetPropExchange::ExchangeFontProp
переопределение этой чистой виртуальной функции.
CPropExchange::ExchangePersistentProp
Обмен свойством между элементом управления и файлом.
virtual BOOL ExchangePersistentProp(
LPCTSTR pszPropName,
LPUNKNOWN* ppUnk,
REFIID iid,
LPUNKNOWN pUnkDefault) = 0;
Параметры
pszPropName
Имя обмена свойством.
ppUnk
Указатель на переменную, содержащую указатель на интерфейс свойства IUnknown
(эта переменная обычно является членом класса).
iid
Идентификатор интерфейса в свойстве, которое будет использоваться элементом управления.
pUnkDefault
Значение по умолчанию для свойства.
Возвращаемое значение
Ненулевое значение, если обмен был успешным; 0, если неудачно.
Замечания
Если свойство загружается из файла в элемент управления, это свойство создается и инициализируется из файла. Если свойство хранится, его значение записывается в файл.
Функции CArchivePropExchange::ExchangePersistentProp
и CResetPropExchange::ExchangePersistentProp
CPropsetPropExchange::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::ExchangeProp
CPropsetPropExchange::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.