Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Инкапсулирует тип данных 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 вызывает эту функцию.
Дополнительные сведения см. в разделе VARIANTVARTYPE и 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);
Параметры
Байт
Ссылка на существующий объект 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), установленной для VT_BSTRT, чтобы сделать строки ANSI. Например, CDaoRecordset функции CDaoRecordset::Seek и CDaoRecordset::SetFieldValue используют COleVariant объекты в качестве параметров. Эти объекты должны быть ANSI, если набор записей DAO не является ЮНИКОДом.