Udostępnij za pośrednictwem


Klasa CComVariant

Ta klasa opakowuje VARIANT typ, podając element członkowski wskazujący typ przechowywanych danych.

Składnia

class CComVariant : public tagVARIANT

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CComVariant::CComVariant Konstruktor.
CComVariant::~CComVariant Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CComVariant::Attach Dołącza obiekt VARIANT do CComVariant obiektu .
CComVariant::ChangeType Konwertuje CComVariant obiekt na nowy typ.
CComVariant::Clear Czyści CComVariant obiekt.
CComVariant::Copy Kopiuje obiekt VARIANT do CComVariant obiektu.
CComVariant::CopyTo Kopiuje zawartość CComVariant obiektu.
CComVariant::Detach Odłącza element bazowy VARIANT od CComVariant obiektu .
CComVariant::GetSize Zwraca rozmiar w liczbie bajtów zawartości CComVariant obiektu.
CComVariant::ReadFromStream Ładuje element VARIANT ze strumienia.
CComVariant::SetByRef Inicjuje CComVariant obiekt i ustawia element vt członkowski na VT_BYREF.
CComVariant::WriteToStream Zapisuje źródło VARIANT w strumieniu.

Operatory publiczne

Operator opis
CComVariant::operator < Wskazuje, CComVariant czy obiekt jest mniejszy niż określony VARIANT.
CComVariant::operator > Wskazuje, czy CComVariant obiekt jest większy niż określony VARIANT.
CComVariant::operator != Wskazuje, czy CComVariant obiekt nie jest równy określonej VARIANTwartości .
CComVariant::operator = Przypisuje wartość do CComVariant obiektu.
CComVariant::operator == Wskazuje, czy CComVariant obiekt jest równy określonej VARIANTwartości .

Uwagi

CComVariant Opakowuje VARIANT typ i VARIANTARG , który składa się z unii i elementu członkowskiego wskazującego typ danych przechowywanych w unii. VARIANTs są zwykle używane w usłudze Automation.

CComVariant pochodzi z VARIANT typu , aby można było go używać wszędzie tam, gdzie VARIANT można użyć. Możesz na przykład użyć makra V_VT , aby wyodrębnić typ elementu CComVariant lub uzyskać bezpośredni dostęp do vt elementu członkowskiego, tak jak w przypadku elementu VARIANT.

Hierarchia dziedziczenia

tagVARIANT
 └ CComVariant

Wymagania

Nagłówek: atlcomcli.h

CComVariant::Attach

Bezpiecznie czyści bieżącą zawartość CComVariant obiektu, kopiuje zawartość pSrc do tego obiektu, a następnie ustawia typ wariantu pSrc na VT_EMPTYwartość .

HRESULT Attach(VARIANT* pSrc);

Parametry

pSrc
[in] Wskazuje element VARIANT , który ma zostać dołączony do obiektu.

Wartość zwracana

Wartość standardowa HRESULT .

Uwagi

Własność danych przechowywanych przez pSrc obiekt jest przekazywana CComVariant do obiektu.

CComVariant::CComVariant

Każdy konstruktor obsługuje bezpieczną inicjację CComVariant obiektu przez wywołanie VariantInit funkcji Win32 lub ustawienie wartości i typu obiektu zgodnie z przekazanymi parametrami.

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);

Parametry

varSrc
[in] Obiekt CComVariant lub VARIANT używany do inicjowania CComVariant obiektu. Zawartość wariantu źródłowego jest kopiowana do miejsca docelowego bez konwersji.

lpszSrc
[in] Ciąg znaków używany do inicjowania CComVariant obiektu. Możesz przekazać ciąg znaków o szerokości zerowej (Unicode) do LPCOLESTR wersji konstruktora lub ciągu ANSI do LPCSTR wersji. W obu przypadkach ciąg jest konwertowany na przydzielony unicode BSTR przy użyciu polecenia SysAllocString. Typ CComVariant obiektu to VT_BSTR.

bSrc
[in] Element bool używany do inicjowania CComVariant obiektu. bool Argument jest konwertowany na element VARIANT_BOOL przed zapisaniem. Typ CComVariant obiektu to VT_BOOL.

nSrc
[in] Element int, BYTE, shortunsigned shortlongULONGLONGunsigned longLONGLONGlub unsigned int używany do inicjowania CComVariant obiektu. Typ obiektu to , , VT_UI1VT_UI2VT_I2VT_UI4VT_I4VT_UI8VT_I8lub VT_UI4, odpowiednio.VT_I4CComVariant

vtSrc
[in] Typ wariantu. Gdy pierwszy parametr to int, prawidłowe typy to VT_I4 i VT_INT. Gdy pierwszy parametr to long, prawidłowe typy to VT_I4 i VT_ERROR. Gdy pierwszy parametr to double, prawidłowe typy to VT_R8 i VT_DATE. Gdy pierwszy parametr to unsigned int, prawidłowe typy to VT_UI4 i VT_UINT.

fltSrc
[in] Element float używany do inicjowania CComVariant obiektu. Typ CComVariant obiektu to VT_R4.

dblSrc
[in] Element double używany do inicjowania CComVariant obiektu. Typ CComVariant obiektu to VT_R8.

cySrc
[in] Element CY używany do inicjowania CComVariant obiektu. Typ CComVariant obiektu to VT_CY.

pSrc
[in] Wskaźnik IDispatch lub IUnknown używany do inicjowania CComVariant obiektu. AddRef element jest wywoływany w wskaźniku interfejsu. Typ CComVariant obiektu to VT_DISPATCH lub VT_UNKNOWN, odpowiednio.

SAFERRAY Lub wskaźnik używany do inicjowania CComVariant obiektu. Kopia obiektu SAFEARRAY jest przechowywana w CComVariant obiekcie. Typ CComVariant obiektu jest kombinacją oryginalnego typu obiektu SAFEARRAY i VT_ARRAY.

cSrc
[in] Element char używany do inicjowania CComVariant obiektu. Typ CComVariant obiektu to VT_I1.

bstrSrc
[in] Element BSTR używany do inicjowania CComVariant obiektu. Typ CComVariant obiektu to VT_BSTR.

Uwagi

Destruktor zarządza oczyszczaniem, wywołując polecenie CComVariant::Clear.

CComVariant::~CComVariant

Destruktora.

~CComVariant() throw();

Uwagi

Ta metoda zarządza czyszczeniem przez wywołanie metody CComVariant::Clear.

CComVariant::ChangeType

Konwertuje CComVariant obiekt na nowy typ.

HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);

Parametry

vtNew
[in] Nowy typ CComVariant obiektu.

pSrc
[in] Wskaźnik do VARIANT którego wartość jest konwertowana na nowy typ. Wartość domyślna to NULL, co oznacza, że CComVariant obiekt jest konwertowany na miejsce.

Wartość zwracana

Wartość standardowa HRESULT .

Uwagi

Jeśli przekażesz wartość parametru pSrc, ChangeType użyje go VARIANT jako źródła konwersji. CComVariant W przeciwnym razie obiekt jest źródłem.

CComVariant::Clear

Czyści CComVariant obiekt, wywołując VariantClear funkcję Win32.

HRESULT Clear();

Wartość zwracana

Wartość standardowa HRESULT .

Uwagi

Destruktor automatycznie wywołuje metodę Clear.

CComVariant::Copy

CComVariant Zwalnia obiekt, a następnie przypisuje mu kopię określonego VARIANTobiektu .

HRESULT Copy(const VARIANT* pSrc);

Parametry

pSrc
[in] Wskaźnik do VARIANT skopiowania.

Wartość zwracana

Wartość standardowa HRESULT .

CComVariant::CopyTo

Kopiuje zawartość CComVariant obiektu.

HRESULT CopyTo(BSTR* pstrDest);

Parametry

pstrDest
Wskazuje obiekt BSTR , który otrzyma kopię zawartości CComVariant obiektu.

Wartość zwracana

Wartość standardowa HRESULT .

Uwagi

Obiekt CComVariant musi być typu VT_BSTR.

CComVariant::Detach

Odłącza element bazowy VARIANT od CComVariant obiektu i ustawia typ obiektu na VT_EMPTY.

HRESULT Detach(VARIANT* pDest);

Parametry

pDest
[out] Zwraca podstawową VARIANT wartość obiektu.

Wartość zwracana

Wartość standardowa HRESULT .

Uwagi

Zawartość przywoływanego obiektu VARIANT pDest jest automatycznie czyszczone przed przypisaniem wartości i typu obiektu wywołującego CComVariant .

CComVariant::GetSize

W przypadku prostego rozmiaru o stałym rozmiarze VARIANTta metoda zwraca sizeof wartość dla bazowego typu danych oraz sizeof(VARTYPE).

ULONG GetSize() const;

Wartość zwracana

Rozmiar w bajtach bieżącej CComVariant zawartości obiektu.

Uwagi

Jeśli element VARIANT zawiera wskaźnik interfejsu, GetSize wykonuje zapytania dotyczące IPersistStream elementu lub IPersistStreamInit. Jeśli operacja powiedzie się, zwracana wartość to 32 bity o niskiej kolejności wartości zwracanej przez GetSizeMax znak plus sizeof(CLSID) i sizeof(VARTYPE). Jeśli wskaźnik interfejsu to NULL, GetSize zwraca sizeof(CLSID) wartość plus sizeof(VARTYPE). Jeśli całkowity rozmiar jest większy niż ULONG_MAX, GetSize zwraca wartość sizeof(VARTYPE), która wskazuje błąd.

We wszystkich innych przypadkach tymczasowy VARIANT typ VT_BSTR jest coerced z bieżącego VARIANT. Długość tego BSTR parametru jest obliczana jako rozmiar długości ciągu oraz długość samego ciągu oraz rozmiar NULL znaku plus sizeof(VARTYPE). Jeśli nie można połączyć elementu VARIANT z typem VARIANT VT_BSTR, GetSize zwraca wartość sizeof(VARTYPE).

Rozmiar zwracany przez tę metodę jest zgodny z liczbą bajtów używanych przez CComVariant::WriteToStream pomyślne warunki.

CComVariant::operator =

Przypisuje wartość i odpowiadający mu typ do CComVariant obiektu.

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();

Parametry

varSrc
[in] Element CComVariant lub VARIANT do przypisania do CComVariant obiektu. Zawartość wariantu źródłowego jest kopiowana do miejsca docelowego bez konwersji.

bstrSrc
[in] Element BSTR , który ma zostać przypisany do CComVariant obiektu. Typ CComVariant obiektu to VT_BSTR.

lpszSrc
[in] Ciąg znaków, który ma zostać przypisany do CComVariant obiektu. Możesz przekazać ciąg znaków o szerokości zerowej (Unicode) do LPCOLESTR wersji operatora lub ciągu ANSI do LPCSTR wersji. W obu przypadkach ciąg jest konwertowany na przydzielony unicode BSTR przy użyciu polecenia SysAllocString. Typ CComVariant obiektu to VT_BSTR.

bSrc
[in] Element bool , który ma zostać przypisany do CComVariant obiektu. bool Argument jest konwertowany na element VARIANT_BOOL przed zapisaniem. Typ CComVariant obiektu to VT_BOOL.

nSrc
[in] Do intobiektu należy przypisać CComVariant element , BYTE, unsigned shortLONGLONGlongULONGLONGshortunsigned longlub .unsigned int Typ obiektu to , , VT_UI1VT_UI2VT_I2VT_UI4VT_I4VT_UI8VT_I8lub VT_UI4, odpowiednio.VT_I4CComVariant

fltSrc
[in] Element float , który ma zostać przypisany do CComVariant obiektu. Typ CComVariant obiektu to VT_R4.

dblSrc
[in] Element double , który ma zostać przypisany do CComVariant obiektu. Typ CComVariant obiektu to VT_R8.

cySrc
[in] Element CY , który ma zostać przypisany do CComVariant obiektu. Typ CComVariant obiektu to VT_CY.

pSrc
[in] Wskaźnik IDispatch lub IUnknown , który ma zostać przypisany do CComVariant obiektu. AddRef element jest wywoływany w wskaźniku interfejsu. Typ CComVariant obiektu to VT_DISPATCH lub VT_UNKNOWN, odpowiednio.

Lub wskaźnik, SAFEARRAY który ma zostać przypisany do CComVariant obiektu. Kopia obiektu SAFEARRAY jest przechowywana w CComVariant obiekcie. Typ CComVariant obiektu jest kombinacją oryginalnego typu obiektu SAFEARRAY i VT_ARRAY.

cSrc
[in] Znak, który ma zostać przypisany do CComVariant obiektu. Typ CComVariant obiektu to VT_I1.

CComVariant::operator ==

Wskazuje, czy CComVariant obiekt jest równy określonej VARIANTwartości .

bool operator==(const VARIANT& varSrc) const throw();

Uwagi

Zwraca TRUE wartość, jeśli wartość i typ varSrc są równe odpowiednio CComVariant wartości i typu obiektu. W przeciwnym razie wartość FALSE. Operator używa domyślnych ustawień regionalnych użytkownika do wykonania porównania.

Operator porównuje tylko wartość typów wariantów. Porównuje ciągi, liczby całkowite i zmiennoprzecinkowe, ale nie tablice ani rekordy.

CComVariant::operator !=

Wskazuje, czy CComVariant obiekt nie jest równy określonej VARIANTwartości .

bool operator!=(const VARIANT& varSrc) const throw();

Uwagi

Zwraca wartość TRUE , jeśli wartość lub typ varSrc obiektu nie jest równa wartości lub typu, odpowiednio, CComVariant obiektu. W przeciwnym razie wartość FALSE. Operator używa domyślnych ustawień regionalnych użytkownika do wykonania porównania.

Operator porównuje tylko wartość typów wariantów. Porównuje ciągi, liczby całkowite i zmiennoprzecinkowe, ale nie tablice ani rekordy.

CComVariant::operator <

Wskazuje, CComVariant czy obiekt jest mniejszy niż określony VARIANT.

bool operator<(const VARIANT& varSrc) const throw();

Uwagi

Zwraca TRUE wartość, jeśli wartość CComVariant obiektu jest mniejsza niż wartość .varSrc W przeciwnym razie wartość FALSE. Operator używa domyślnych ustawień regionalnych użytkownika do wykonania porównania.

CComVariant::operator >

Wskazuje, czy CComVariant obiekt jest większy niż określony VARIANT.

bool operator>(const VARIANT& varSrc) const throw();

Uwagi

Zwraca TRUE wartość , jeśli wartość CComVariant obiektu jest większa niż wartość varSrc. W przeciwnym razie wartość FALSE. Operator używa domyślnych ustawień regionalnych użytkownika do wykonania porównania.

CComVariant::ReadFromStream

Ustawia element bazowy VARIANT na VARIANT element zawarty w określonym strumieniu.

HRESULT ReadFromStream(IStream* pStream);

Parametry

pStream
[in] Wskaźnik do interfejsu IStream w strumieniu zawierającym dane.

Wartość zwracana

Wartość standardowa HRESULT .

Uwagi

ReadToStream wymaga poprzedniego wywołania metody WriteToStream.

CComVariant::SetByRef

Inicjuje CComVariant obiekt i ustawia element vt członkowski na VT_BYREF.

template < typename T >
void SetByRef(T* pT) throw();

Parametry

T
Typ VARIANT, na przykład BSTR, int, lub char.

pT
Wskaźnik używany do inicjowania CComVariant obiektu.

Uwagi

SetByRef to szablon funkcji, który inicjuje CComVariant obiekt do wskaźnika pT i ustawia element członkowski vt na VT_BYREFwartość . Na przykład:

CComVariant var;
int nData = 10;
var.SetByRef(&nData);   

CComVariant::WriteToStream

Zapisuje źródło VARIANT w strumieniu.

HRESULT WriteToStream(IStream* pStream);

Parametry

pStream
[in] Wskaźnik do interfejsu IStream w strumieniu.

Wartość zwracana

Wartość standardowa HRESULT .

Zobacz też

Omówienie klasy