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 VARIANT wartości . |
CComVariant::operator = |
Przypisuje wartość do CComVariant obiektu. |
CComVariant::operator == |
Wskazuje, czy CComVariant obiekt jest równy określonej VARIANT wartoś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. VARIANT
s 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
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_EMPTY
wartość .
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
, short
unsigned short
long
ULONGLONG
unsigned long
LONGLONG
lub unsigned int
używany do inicjowania CComVariant
obiektu. Typ obiektu to , , VT_UI1
VT_UI2
VT_I2
VT_UI4
VT_I4
VT_UI8
VT_I8
lub VT_UI4
, odpowiednio.VT_I4
CComVariant
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 VARIANT
obiektu .
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 VARIANT
ta 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 int
obiektu należy przypisać CComVariant
element , BYTE
, unsigned short
LONGLONG
long
ULONGLONG
short
unsigned long
lub .unsigned int
Typ obiektu to , , VT_UI1
VT_UI2
VT_I2
VT_UI4
VT_I4
VT_UI8
VT_I8
lub VT_UI4
, odpowiednio.VT_I4
CComVariant
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 VARIANT
wartoś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 VARIANT
wartoś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_BYREF
wartość . 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
.