Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Этот класс упаковывает VARIANT тип, предоставляя элемент, указывающий тип хранимых данных.
Синтаксис
class CComVariant : public tagVARIANT
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
CComVariant::CComVariant |
Конструктор. |
CComVariant::~CComVariant |
Деструктор |
Открытые методы
| Имя | Описание |
|---|---|
CComVariant::Attach |
Присоединяет объект VARIANT к объекту CComVariant . |
CComVariant::ChangeType |
Преобразует объект в CComVariant новый тип. |
CComVariant::Clear |
Очищает CComVariant объект. |
CComVariant::Copy |
Копирует объект VARIANT CComVariant . |
CComVariant::CopyTo |
Копирует содержимое CComVariant объекта. |
CComVariant::Detach |
Отсоединяет базовый VARIANT CComVariant объект от объекта. |
CComVariant::GetSize |
Возвращает размер в количестве байтов содержимого CComVariant объекта. |
CComVariant::ReadFromStream |
Загружается VARIANT из потока. |
CComVariant::SetByRef |
Инициализирует CComVariant объект и задает vt для элемента значение VT_BYREF. |
CComVariant::WriteToStream |
Сохраняет базовый VARIANT объект в потоке. |
Общедоступные операторы
| Operator | Description |
|---|---|
CComVariant::operator < |
Указывает, меньше ли CComVariant объект, чем указанный VARIANT. |
CComVariant::operator > |
Указывает, превышает ли CComVariant объект указанный VARIANT. |
CComVariant::operator != |
Указывает, не равен ли CComVariant объект указанному VARIANTобъекту. |
CComVariant::operator = |
Присваивает объекту CComVariant значение. |
CComVariant::operator == |
Указывает, равен ли CComVariant объект указанному VARIANTобъекту. |
Замечания
CComVariantVARIANT выполняет оболочку и VARIANTARG тип, состоящий из объединения и члена, указывающего тип данных, хранящихся в союзе. VARIANTобычно используются в службе автоматизации.
CComVariant является производным от VARIANT типа, чтобы его можно было использовать везде VARIANT , где можно использовать. Например, можно использовать V_VT макрос для извлечения типа элемента CComVariant или получить доступ к vt элементу напрямую так же, как и с VARIANTпомощью.
Иерархия наследования
Требования
Заголовок: atlcomcli.h
CComVariant::Attach
Безопасно очищает текущее содержимое объекта, копирует содержимое CComVariant pSrc этого объекта, а затем задает тип pSrc VT_EMPTYварианта.
HRESULT Attach(VARIANT* pSrc);
Параметры
pSrc
[in] Указывает на VARIANT присоединение к объекту.
Возвращаемое значение
Стандартное значение HRESULT .
Замечания
Владение данными, удерживаемыми, pSrc передается объекту CComVariant .
CComVariant::CComVariant
Каждый конструктор обрабатывает безопасную инициализацию CComVariant объекта путем вызова VariantInit функции Win32 или задания значения и типа объекта в соответствии с переданными параметрами.
CComVariant() throw();
CComVariant(const CComVariant& varSrc);
CComVariant(const VARIANT& varSrc);
CComVariant(LPCOLESTR lpszSrc);
CComVariant(LPCSTR lpszSrc);
CComVariant(bool bSrc);
CComVariant(BYTE nSrc) throw();
CComVariant(int nSrc, VARTYPE vtSrc = VT_I4) throw();
CComVariant(unsigned int nSrc, VARTYPE vtSrc = VT_UI4) throw();
CComVariant(shor nSrc) throw();
CComVariant(unsigned short nSrc) throw();
CComVariant(long nSrc, VARTYPE vtSrc = VT_I4) throw();
CComVariant(unsigned long nSrc) throw();
CComVariant(LONGLONG nSrc) throw();
CComVariant(ULONGLONG nSrc) throw();
CComVariant(float fltSrc) throw();
CComVariant(double dblSrc, VARTYPE vtSrc = VT_R8) throw();
CComVariant(CY cySrc) throw();
CComVariant(IDispatch* pSrc) throw();
CComVariant(IUnknown* pSrc) throw();
CComVariant(const SAFEARRAY* pSrc);
CComVariant(char cSrc) throw();
CComVariant(const CComBSTR& bstrSrc);
Параметры
varSrc
[in] Объект CComVariant или VARIANT используется для инициализации CComVariant объекта. Содержимое исходного варианта копируется в место назначения без преобразования.
lpszSrc
[in] Символьная строка, используемая для инициализации CComVariant объекта. В версию конструктора или в LPCSTR версию anSI можно передать строку LPCOLESTR символов с нуля (Юникод). В любом случае строка преобразуется в выделенный Юникод BSTR с помощью SysAllocString. Тип CComVariant объекта .VT_BSTR
bSrc
[in] Используется bool для инициализации CComVariant объекта. Аргумент bool преобразуется в объект VARIANT_BOOL перед сохранением. Тип CComVariant объекта .VT_BOOL
nSrc
[in] int, BYTE, ULONGLONGlongshortunsigned shortunsigned longLONGLONGили unsigned int используется для инициализации CComVariant объекта. Тип CComVariant объекта : VT_I4, VT_UI1, VT_UI8VT_I2VT_I8VT_UI2VT_I4, , VT_UI4или VT_UI4соответственно.
vtSrc
[in] Тип варианта. Если первый параметр имеет intзначение, допустимые типы и VT_INTVT_I4 . Если первый параметр имеет longзначение, допустимые типы и VT_ERRORVT_I4 . Если первый параметр имеет doubleзначение, допустимые типы и VT_DATEVT_R8 . Если первый параметр имеет unsigned intзначение, допустимые типы и VT_UINTVT_UI4 .
fltSrc
[in] Используется float для инициализации CComVariant объекта. Тип CComVariant объекта .VT_R4
dblSrc
[in] Используется double для инициализации CComVariant объекта. Тип CComVariant объекта .VT_R8
cySrc
[in] Используется CY для инициализации CComVariant объекта. Тип CComVariant объекта .VT_CY
pSrc
[in] Указатель IDispatch , IUnknown используемый для инициализации CComVariant объекта. AddRef вызывается на указателе интерфейса. Тип CComVariant объекта или VT_DISPATCH VT_UNKNOWNсоответственно.
Или указатель, используемый SAFERRAY для инициализации CComVariant объекта. Копия объекта SAFEARRAY хранится.CComVariant Тип CComVariant объекта — это сочетание исходного SAFEARRAY типа и VT_ARRAY.
cSrc
[in] Используется char для инициализации CComVariant объекта. Тип CComVariant объекта .VT_I1
bstrSrc
[in] Используется BSTR для инициализации CComVariant объекта. Тип CComVariant объекта .VT_BSTR
Замечания
Деструктор управляет очисткой путем вызова CComVariant::Clear.
CComVariant::~CComVariant
Деструктор
~CComVariant() throw();
Замечания
Этот метод управляет очисткой путем вызова CComVariant::Clear.
CComVariant::ChangeType
Преобразует объект в CComVariant новый тип.
HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);
Параметры
vtNew
[in] Новый тип объекта CComVariant .
pSrc
[in] Указатель на VARIANT значение, значение которого преобразуется в новый тип. Значение по умолчанию — это NULLозначает, что CComVariant объект преобразуется на месте.
Возвращаемое значение
Стандартное значение HRESULT .
Замечания
Если вы передаете значение для pSrc, ChangeType будет использоваться в VARIANT качестве источника для преобразования. CComVariant В противном случае объект является источником.
CComVariant::Clear
Очищает CComVariant объект, вызывая VariantClear функцию Win32.
HRESULT Clear();
Возвращаемое значение
Стандартное значение HRESULT .
Замечания
Деструктор автоматически вызывает Clear.
CComVariant::Copy
CComVariant Освобождает объект, а затем назначает ему копию указанного VARIANTобъекта.
HRESULT Copy(const VARIANT* pSrc);
Параметры
pSrc
[in] Указатель на копируемый VARIANT объект.
Возвращаемое значение
Стандартное значение HRESULT .
CComVariant::CopyTo
Копирует содержимое CComVariant объекта.
HRESULT CopyTo(BSTR* pstrDest);
Параметры
pstrDest
Указывает на объект BSTR , который получит копию содержимого CComVariant объекта.
Возвращаемое значение
Стандартное значение HRESULT .
Замечания
Объект CComVariant должен иметь тип VT_BSTR.
CComVariant::Detach
Отсоединяет базовый VARIANT CComVariant объект от объекта и задает для объекта тип VT_EMPTY.
HRESULT Detach(VARIANT* pDest);
Параметры
pDest
[out] Возвращает базовое VARIANT значение объекта.
Возвращаемое значение
Стандартное значение HRESULT .
Замечания
VARIANT Содержимое, на которое pDest ссылается ссылка, автоматически очищается перед назначением значения и типа вызывающего CComVariant объекта.
CComVariant::GetSize
Для простых фиксированных размеров VARIANTэтот метод возвращает sizeof значение базового типа данных плюс sizeof(VARTYPE).
ULONG GetSize() const;
Возвращаемое значение
Размер в байтах текущего содержимого CComVariant объекта.
Замечания
Если содержит VARIANT указатель интерфейса, GetSize запросы или IPersistStream IPersistStreamInit. При успешном выполнении возвращаемое значение — это 32 бита 32 бита значения, возвращаемого плюсом GetSizeMax sizeof(CLSID) и sizeof(VARTYPE). Если указатель интерфейса имеет значение NULL, GetSize возвращается sizeof(CLSID) плюс sizeof(VARTYPE). Если общий размер больше ULONG_MAX, GetSize возвращает значение sizeof(VARTYPE), указывающее на ошибку.
Во всех остальных случаях временный VARIANT тип VT_BSTR принудимся к текущему VARIANT. Длина этого BSTR вычисляется как размер длины строки плюс длина самой строки, а также размер символа NULL плюс sizeof(VARTYPE). VARIANT Если не удается принуть к VARIANT типуVT_BSTR, GetSize возвращаетсяsizeof(VARTYPE).
Размер, возвращаемый этим методом, соответствует количеству байтов, используемых CComVariant::WriteToStream в условиях успешного выполнения.
CComVariant::operator =
Назначает значение и соответствующий тип объекту CComVariant .
CComVariant& operator=(const CComVariant& varSrc);
CComVariant& operator=(const VARIANT& varSrc);
CComVariant& operator=(const CComBSTR& bstrSrc);
CComVariant& operator=(LPCOLESTR lpszSrc);
CComVariant& operator=(LPCSTR lpszSrc);
CComVariant& operator=(bool bSrc);
CComVariant& operator=(BYTE nSrc) throw();
CComVariant& operator=int nSrc) throw();
CComVariant& operator=(unsigned int nSrc) throw();
CComVariant& operator=(short nSrc) throw();
CComVariant& operator=(unsigned short nSrc) throw();
CComVariant& operator=(long nSrc) throw();
CComVariant& operator=(unsigned long nSrc) throw();
CComVariant& operator=(LONGLONG nSrc) throw();
CComVariant& operator=(ULONGLONG nSrc) throw();
CComVariant& operator=(float fltSrc) throw();
CComVariant& operator=(double dblSrc) throw();
CComVariant& operator=(CY cySrc) throw();
CComVariant& operator=(IDispatch* pSrc) throw();
CComVariant& operator=(IUnknown* pSrc) throw();
CComVariant& operator=(const SAFEARRAY* pSrc);
CComVariant& operator=(char cSrc) throw();
Параметры
varSrc
[in] Объекту CComVariant или VARIANT его назначению CComVariant . Содержимое исходного варианта копируется в место назначения без преобразования.
bstrSrc
[in] Присвоение BSTR объекту CComVariant . Тип CComVariant объекта .VT_BSTR
lpszSrc
[in] Символьная строка, назначенная объекту CComVariant . В версию оператора или строки LPCSTR ANSI в версию можно передать строку символов с нуля (ЮникодLPCOLESTR). В любом случае строка преобразуется в выделенный Юникод BSTR с помощью SysAllocString. Тип CComVariant объекта .VT_BSTR
bSrc
[in] Присвоение bool объекту CComVariant . Аргумент bool преобразуется в объект VARIANT_BOOL перед сохранением. Тип CComVariant объекта .VT_BOOL
nSrc
[in] int, , BYTE, shortunsigned shortlongULONGLONGunsigned longLONGLONG, или unsigned int присваиваться объекту.CComVariant Тип CComVariant объекта : VT_I4, VT_UI1, VT_UI8VT_I2VT_I8VT_UI2VT_I4, , VT_UI4или VT_UI4соответственно.
fltSrc
[in] Присвоение float объекту CComVariant . Тип CComVariant объекта .VT_R4
dblSrc
[in] Присвоение double объекту CComVariant . Тип CComVariant объекта .VT_R8
cySrc
[in] Присвоение CY объекту CComVariant . Тип CComVariant объекта .VT_CY
pSrc
[in] IUnknown УказательIDispatch, назначенный объектуCComVariant. AddRef вызывается на указателе интерфейса. Тип CComVariant объекта или VT_DISPATCH VT_UNKNOWNсоответственно.
Или указатель SAFEARRAY , назначаемый объекту CComVariant . Копия объекта SAFEARRAY хранится.CComVariant Тип CComVariant объекта — это сочетание исходного SAFEARRAY типа и VT_ARRAY.
cSrc
[in] Объекту присваивается CComVariant char. Тип CComVariant объекта .VT_I1
CComVariant::operator ==
Указывает, равен ли CComVariant объект указанному VARIANTобъекту.
bool operator==(const VARIANT& varSrc) const throw();
Замечания
Возвращает, TRUE если значение и тип varSrc равны значению и типу соответственно CComVariant объекта. В противном случае — FALSE. Оператор использует языковой стандарт пользователя по умолчанию для сравнения.
Оператор сравнивает только значение типов вариантов. Он сравнивает строки, целые числа и с плавающей запятой, но не массивы или записи.
CComVariant::operator !=
Указывает, не равен ли CComVariant объект указанному VARIANTобъекту.
bool operator!=(const VARIANT& varSrc) const throw();
Замечания
Возвращает, TRUE если значение или тип varSrc объекта не равно значению или типу CComVariant соответственно. В противном случае — FALSE. Оператор использует языковой стандарт пользователя по умолчанию для сравнения.
Оператор сравнивает только значение типов вариантов. Он сравнивает строки, целые числа и с плавающей запятой, но не массивы или записи.
CComVariant::operator <
Указывает, меньше ли CComVariant объект, чем указанный VARIANT.
bool operator<(const VARIANT& varSrc) const throw();
Замечания
Возвращает, TRUE если значение CComVariant объекта меньше значения varSrc. В противном случае — FALSE. Оператор использует языковой стандарт пользователя по умолчанию для сравнения.
CComVariant::operator >
Указывает, превышает ли CComVariant объект указанный VARIANT.
bool operator>(const VARIANT& varSrc) const throw();
Замечания
Возвращает, TRUE если значение CComVariant объекта больше значения varSrc. В противном случае — FALSE. Оператор использует языковой стандарт пользователя по умолчанию для сравнения.
CComVariant::ReadFromStream
Задает базовый VARIANT VARIANT объект, содержащийся в указанном потоке.
HRESULT ReadFromStream(IStream* pStream);
Параметры
pStream
[in] Указатель на IStream интерфейс в потоке, содержащий данные.
Возвращаемое значение
Стандартное значение HRESULT .
Замечания
ReadToStream требует предыдущего вызова WriteToStream.
CComVariant::SetByRef
Инициализирует CComVariant объект и задает vt для элемента значение VT_BYREF.
template < typename T >
void SetByRef(T* pT) throw();
Параметры
T
Тип VARIANT, например, BSTRintили char.
pT
Указатель, используемый для инициализации CComVariant объекта.
Замечания
SetByRef— это шаблон функции, который инициализирует CComVariant объект указателем pT и задает для элемента значение VT_BYREFvt . Например:
CComVariant var;
int nData = 10;
var.SetByRef(&nData);
CComVariant::WriteToStream
Сохраняет базовый VARIANT объект в потоке.
HRESULT WriteToStream(IStream* pStream);
Параметры
pStream
[in] Указатель на IStream интерфейс в потоке.
Возвращаемое значение
Стандартное значение HRESULT .