Класс COleVariant
Инкапсулирует тип данных VARIANT .
Синтаксис
class COleVariant : public tagVARIANT
Участники
Открытые конструкторы
Имя | Описание |
---|---|
COleVariant::COleVariant | Формирует объект COleVariant . |
Открытые методы
Имя | Описание |
---|---|
COleVariant::Attach | Присоединяет VARIANT к объекту COleVariant . |
COleVariant::ChangeType | Изменяет тип варианта данного COleVariant объекта. |
COleVariant::Clear | Очищает данный объект COleVariant . |
COleVariant::D etach | Отсоединяет вариант VARIANT от объекта COleVariant и возвращает variant. |
COleVariant::GetByteArrayFromVariantArray | Извлекает массив байтов из существующего массива вариантов. |
COleVariant::SetString | Задает строку определенному типу, как правило, ANSI. |
Открытые операторы
Имя | Описание |
---|---|
COleVariant::operator LPCVARIANT | COleVariant Преобразует значение в значениеLPCVARIANT . |
COleVariant::operator LPVARIANT | COleVariant Преобразует объект в объектLPVARIANT . |
COleVariant::operator = | Копирует COleVariant значение. |
COleVariant::operator == | Сравнивает два COleVariant значения. |
COleVariant::operator << , COleVariant::operator >> |
COleVariant Выводит значение CArchive в объект или CDumpContext вводит его COleVariant изCArchive . |
Замечания
Этот тип данных используется в автоматизации OLE. В частности, структура DISPPARAMS содержит указатель на массив структур VARIANT. Структура DISPPARAMS
используется для передачи параметров в IDispatch::Invoke.
Примечание.
Этот класс является производным VARIANT
от структуры. Это означает, что вы можете передать COleVariant
параметр, вызывающий VARIANT
вызовы, и что члены VARIANT
данных структуры являются доступными COleVariant
элементами данных.
Два связанных класса MFC COleCurrency и COleDateTime инкапсулируют вариантные типы данных CURRENCY ( VT_CY
) и DATE ( VT_DATE
). Класс COleVariant
широко используется в классах DAO. См. эти классы для типичного использования этого класса, например CDaoQueryDef и CDaoRecordset.
Дополнительные сведения см. в записях VARIANT, CURRENCY, DISPPARAMS и IDispatch::Invoke в пакете SDK для Windows.
Дополнительные сведения о COleVariant
классе и его использовании в автоматизации OLE см. в статье "Передача параметров в OLE Automation".
Иерархия наследования
tagVARIANT
COleVariant
Требования
Заголовок: afxdisp.h
COleVariant::Attach
Вызовите эту функцию, чтобы подключить заданный объект VARIANT к текущему COleVariant
объекту.
void Attach(VARIANT& varSrc);
Параметры
varSrc
Существующий VARIANT
объект, присоединенный к текущему COleVariant
объекту.
Замечания
Эта функция задает для VARTYPE varSrc значение VT_EMPTY.
Дополнительные сведения см . в записях VARIANT и VARENUM в пакете SDK для Windows.
COleVariant::COleVariant
Формирует объект COleVariant
.
COleVariant();
COleVariant(const VARIANT& varSrc);
COleVariant(const COleVariant& varSrc);
COleVariant(LPCVARIANT pSrc);
COleVariant(LPCTSTR lpszSrc);
COleVariant(LPCTSTR lpszSrc, VARTYPE vtSrc);
COleVariant(CString& strSrc);
COleVariant(BYTE nSrc);
COleVariant(short nSrc, VARTYPE vtSrc = VT_I2);
COleVariant(long lSrc,VARTYPE vtSrc = VT_I4);
COleVariant(const COleCurrency& curSrc);
COleVariant(float fltSrc);
COleVariant(double dblSrc);
COleVariant(const COleDateTime& timeSrc);
COleVariant(const CByteArray& arrSrc);
COleVariant(const CLongBinary& lbSrc);
COleVariant(LPCITEMIDLIST pidl);
Параметры
varSrc
Существующий COleVariant
объект или VARIANT
объект, копируемый в новый COleVariant
объект.
pSrc
Указатель на VARIANT
объект, который будет скопирован в новый COleVariant
объект.
lpszSrc
Строка, завершающаяся значением NULL, копируется в новый COleVariant
объект.
vtSrc
Объект VARTYPE
для нового COleVariant
объекта.
strSrc
Объект CString, копируемый в новый COleVariant
объект.
nSrc, lSrc A числовое значение, копируемые в новый COleVariant
объект.
vtSrc
Объект VARTYPE
для нового COleVariant
объекта.
curSrc
Объект COleCurrency, копируемый в новый COleVariant
объект.
fltSrc, dblSrc
Числовое значение, которое необходимо скопировать в новый объект COleVariant
.
timeSrc
Объект COleDateTime, копируемый в новый COleVariant
объект.
arrSrc
Объект CByteArray, копируемый в новый COleVariant
объект.
lbSrc
Объект CLongBinary для копирования в новый COleVariant
объект.
pidl
Указатель на структуру ITEMIDLIST, скопированную в новый COleVariant
объект.
Замечания
Все эти конструкторы создают новые COleVariant
объекты, инициализированные в указанное значение. Краткое описание каждого из этих конструкторов следует.
COleVariant( ) создает пустой
COleVariant
объект, VT_EMPTY.COleVariant(varSrc) копирует существующий
VARIANT
илиCOleVariant
объект. Тип variant сохранен.COleVariant(pSrc) копирует существующий
VARIANT
илиCOleVariant
объект. Тип variant сохранен.COleVariant(lpszSrc) копирует строку в новый объект VT_BSTR (ЮНИКОД).
COleVariant(lpszSrc , vtSrc ) копирует строку в новый объект. Параметр vtSrc должен быть VT_BSTR (ЮНИКОД) или VT_BSTRT (ANSI).
COleVariant(strSrc) копирует строку в новый объект, VT_BSTR (ЮНИКОД).
COleVariant(nSrc) копирует 8-разрядное целое число в новый объект, VT_UI1.
COleVariant( nSrc , vtSrc ) копирует 16-разрядное целое число (или логическое значение) в новый объект. Параметр vtSrc должен быть VT_I2 или VT_BOOL.
COleVariant( lSrc , vtSrc ) копирует 32-разрядное целое число (или значение SCODE) в новый объект. Параметр vtSrc должен быть VT_I4, VT_ERROR или VT_BOOL.
COleVariant(curSrc) копирует
COleCurrency
значение в новый объект, VT_CY.COleVariant(fltSrc) копирует 32-разрядное значение с плавающей запятой в новый объект, VT_R4.
COleVariant(dblSrc) копирует 64-разрядное значение с плавающей запятой в новый объект, VT_R8.
COleVariant(timeSrc) копирует
COleDateTime
значение в новый объект, VT_DATE.COleVariant(arrSrc) копирует
CByteArray
объект в новый объект, VT_EMPTY.COleVariant(lbSrc) копирует
CLongBinary
объект в новый объект, VT_EMPTY.
Дополнительные сведения о SCODE см. в разделе "Структура кодов ошибок COM" в пакете SDK для Windows.
COleVariant::ChangeType
Преобразует тип значения variant в этом COleVariant
объекте.
void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);
Параметры
vartype
VARTYPE для этого COleVariant
объекта.
pSrc
Указатель на объект VARIANT для преобразования. Если это значение равно NULL, этот COleVariant
объект используется в качестве источника для преобразования.
Замечания
Дополнительные сведения см . в записях VARIANT, VARENUM и VariantChangeType в пакете SDK для Windows.
COleVariant::Clear
Очищает VARIANT
.
void Clear();
Замечания
При этом объект VARTYPE устанавливается на VT_EMPTY. Деструктор COleVariant
вызывает эту функцию.
Дополнительные сведения см. в разделе VARIANT
VARTYPE и VariantClear
записи в пакете SDK для Windows.
COleVariant::D etach
Отсоединяет базовый объект VARIANT от этого COleVariant
объекта.
VARIANT Detach();
Замечания
Эта функция задает varTYPE для этого COleVariant
объекта VT_EMPTY.
Примечание.
После вызова Detach
вызывающий объект несет ответственность за вызов VariantClear
результирующей VARIANT
структуры.
Дополнительные сведения см . в записях VARIANT, VARENUM и VariantClear в пакете SDK для Windows.
COleVariant::GetByteArrayFromVariantArray
Извлекает массив байтов из существующего массива вариантов
void GetByteArrayFromVariantArray(CByteArray& bytes);
Параметры
bytes
Ссылка на существующий объект CByteArray .
COleVariant::operator LPCVARIANT
Этот оператор приведения возвращает структуру VARIANT
, значение которой копируется из этого COleVariant
объекта.
operator LPCVARIANT() const;
Замечания
COleVariant::operator LPVARIANT
Вызовите этот оператор приведения, чтобы получить доступ к базовой VARIANT
структуре для этого COleVariant
объекта.
operator LPVARIANT();
Замечания
Внимание
Изменение значения в VARIANT
структуре, к которым обращается указатель, возвращаемый этой функцией, изменит значение этого COleVariant
объекта.
COleVariant::operator =
Эти перегруженные операторы назначения копируют исходное значение в этот COleVariant
объект.
const COleVariant& operator=(const VARIANT& varSrc);
const COleVariant& operator=(LPCVARIANT pSrc);
const COleVariant& operator=(const COleVariant& varSrc);
const COleVariant& operator=(const LPCTSTR lpszSrc);
const COleVariant& operator=(const CString& strSrc);
const COleVariant& operator=(BYTE nSrc);
const COleVariant& operator=(short nSrc);
const COleVariant& operator=(long lSrc);
const COleVariant& operator=(const COleCurrency& curSrc);
const COleVariant& operator=(float fltSrc);
const COleVariant& operator=(double dblSrc);
const COleVariant& operator=(const COleDateTime& dateSrc);
const COleVariant& operator=(const CByteArray& arrSrc);
const COleVariant& operator=(const CLongBinary& lbSrc);
Замечания
Краткое описание каждого оператора выглядит следующим образом:
оператор =( varSrc) копирует существующий VARIANT или
COleVariant
объект в этот объект.оператор =( pSrc) копирует объект VARIANT, к которым обращается pSrc в этот объект.
оператор =( lpszSrc) Копирует строку, завершаемую значением NULL, в этот объект, и задает varTYPE для VT_BSTR.
оператор =( strSrc) копирует объект CString в этот объект и задает varTYPE значение VT_BSTR.
оператор =( nSrc) копирует целочисленное значение 8- или 16-разрядного числа в этот объект. Если nSrc является 8-разрядным значением, varTYPE этого параметра имеет значение VT_UI1. Если nSrc является 16-разрядным значением, а VARTYPE этого VT_BOOL, он сохраняется; в противном случае он имеет значение VT_I2.
оператор =(lSrc) копирует 32-разрядное целочисленное значение в этот объект. Если тип VARTYPE этого VT_ERROR, он сохраняется; в противном случае для него задано значение VT_I4.
оператор =( curSrc) Копирует объект COleCurrency в этот объект и задает varTYPE в VT_CY.
оператор =( fltSrc) копирует 32-разрядное значение с плавающей запятой в этот объект и задает VARTYPE для VT_R4.
оператор =( dblSrc) Копирует 64-разрядное значение с плавающей запятой в этот объект и задает varTYPE значение VT_R8.
оператор =( dateSrc) копирует объект COleDateTime в этот объект и задает VARTYPE для VT_DATE.
оператор =( arrSrc) копирует объект CByteArray в этот
COleVariant
объект.оператор =( lbSrc) копирует объект CLongBinary в этот
COleVariant
объект.
Дополнительные сведения см . в записях VARIANT и VARENUM в пакете SDK для Windows.
COleVariant::operator ==
Этот оператор сравнивает два значения варианта и возвращает ненулевое значение, если они равны; в противном случае — 0.
BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;
COleVariant::operator <<
, COleVariant::operator >>
COleVariant
Выводит значение CArchive
в объект или CdumpContext
вводит его COleVariant
изCArchive
.
friend CDumpContext& AFXAPI operator<<(
CDumpContext& dc,
OleVariant varSrc);
friend CArchive& AFXAPI operator<<(
CArchive& ar,
COleVariant varSrc);
friend CArchive& AFXAPI operator>>(
CArchive& ar,
COleVariant& varSrc);
Замечания
Оператор COleVariant
вставки (<<) поддерживает дамп диагностики и хранение в архив. Оператор извлечения (>>) поддерживает загрузку из архива.
COleVariant::SetString
Задает строку определенному типу.
void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);
Параметры
lpszSrc
Строка, завершающаяся значением NULL, копируется в новый COleVariant
объект.
VtSrc
VARTYPE для нового COleVariant
объекта.
Замечания
Параметр vtSrc должен быть VT_BSTR (ЮНИКОД) или VT_BSTRT (ANSI). SetString
обычно используется для задания строк ANSI, так как по умолчанию для конструктора COleVariant::COleVariant с параметром строки или указателя строки, а VARTYPE не является ЮНИКОД.
Набор записей DAO в сборке, отличной от ЮНИКОДа, ожидает, что строки будут ANSI. Таким образом, для функций DAO, использующих COleVariant
объекты, если вы не создаете набор записей ЮНИКОД, необходимо использовать форму конструктора COleVariant::COleVariant(lpszSrc , vtSrc) конструктора с vtSrc, установленной для VT_BSTRT (ANSI) или использовать SetString
для vtSrc, установленной для VT_BSTRT, чтобы сделать строки ANSI. Например, CDaoRecordset
функции CDaoRecordset::Seek и CDaoRecordset::SetFieldValue используют COleVariant
объекты в качестве параметров. Эти объекты должны быть ANSI, если набор записей DAO не является ЮНИКОДом.