Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Примечание.
Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Инкапсулирует тип данных 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 не является ЮНИКОДом.