Sdílet prostřednictvím


Třída CComVariant

Tato třída zabalí VARIANT typ, který poskytuje člen označující typ uložených dat.

Syntaxe

class CComVariant : public tagVARIANT

Členové

Veřejné konstruktory

Název Popis
CComVariant::CComVariant Konstruktor
CComVariant::~CComVariant Destruktor.

Veřejné metody

Název Popis
CComVariant::Attach Připojí objektVARIANT.CComVariant
CComVariant::ChangeType CComVariant Převede objekt na nový typ.
CComVariant::Clear Vymaže CComVariant objekt.
CComVariant::Copy VARIANT Zkopíruje objektCComVariant.
CComVariant::CopyTo Zkopíruje obsah objektu CComVariant .
CComVariant::Detach Odpojte základní objekt VARIANT od objektu CComVariant .
CComVariant::GetSize Vrátí velikost v počtu bajtů obsahu objektu CComVariant .
CComVariant::ReadFromStream Načte VARIANT z datového proudu.
CComVariant::SetByRef Inicializuje CComVariant objekt a nastaví vt člen na VT_BYREF.
CComVariant::WriteToStream Uloží podkladový VARIANT datový proud.

Veřejné operátory

Operátor Popis
CComVariant::operator < Určuje, zda CComVariant je objekt menší než zadaný VARIANT.
CComVariant::operator > Určuje, zda CComVariant je objekt větší než zadaný VARIANT.
CComVariant::operator != Určuje, zda se CComVariant objekt nerovná zadanému VARIANT.
CComVariant::operator = Přiřadí objektu CComVariant hodnotu.
CComVariant::operator == Určuje, zda se CComVariant objekt rovná zadanému VARIANT.

Poznámky

CComVariant zabalí a VARIANT VARIANTARG typ, který se skládá ze sjednocení a členu označujícího typ dat uložených ve sjednocení. VARIANTs se obvykle používají ve službě Automation.

CComVariant odvozuje od VARIANT typu, aby bylo možné jej použít všude, kde VARIANT lze použít. Makro můžete například použít V_VT k extrahování typu nebo k členu CComVariant můžete přistupovat vt přímo stejně jako s .VARIANT

Hierarchie dědičnosti

tagVARIANT
 └ CComVariant

Požadavky

Záhlaví: atlcomcli.h

CComVariant::Attach

Bezpečně vymaže aktuální obsah objektu CComVariant , zkopíruje obsah pSrc do tohoto objektu a pak nastaví typ varianty pSrc na VT_EMPTY.

HRESULT Attach(VARIANT* pSrc);

Parametry

pSrc
[v] Odkazuje na VARIANT objekt, který má být připojen k objektu.

Vrácená hodnota

Standardní HRESULT hodnota.

Poznámky

Vlastnictví dat uložených pSrc v objektu je přeneseno do objektu CComVariant .

CComVariant::CComVariant

Každý konstruktor zpracovává bezpečnou inicializaci CComVariant objektu voláním VariantInit funkce Win32 nebo nastavením hodnoty a typu objektu podle předaných parametrů.

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
[v] Objekt CComVariant se inicializuje CComVariant nebo VARIANT používá. Obsah zdrojové varianty se zkopíruje do cíle bez převodu.

lpszSrc
[v] Znakový řetězec použitý k inicializaci objektu CComVariant . Do verze konstruktoru nebo řetězce LPCSTR ANSI můžete předat řetězec LPCOLESTR znaků s nulovým ukončením (Unicode). V obou případech se řetězec převede na znak Unicode BSTR přidělený pomocí SysAllocString. Typ objektu CComVariant je VT_BSTR.

bSrc
[v] Slouží bool k inicializaci objektu CComVariant . Argument bool se převede na před uložením VARIANT_BOOL . Typ objektu CComVariant je VT_BOOL.

nSrc
[v] Objekt int, BYTE, short, long, LONGLONG, ULONGLONG, unsigned shortunsigned long, nebo unsigned int použitý k inicializaci objektuCComVariant. Typ objektu je , , VT_I8VT_I4VT_I2VT_UI2VT_UI1VT_UI8, , VT_UI4, nebo VT_UI4, v uvedeném pořadí.VT_I4CComVariant

vtSrc
[v] Typ varianty. Při prvním parametru intjsou VT_I4 platné typy a VT_INT. Při prvním parametru longjsou VT_I4 platné typy a VT_ERROR. Při prvním parametru doublejsou VT_R8 platné typy a VT_DATE. Při prvním parametru unsigned intjsou VT_UI4 platné typy a VT_UINT.

fltSrc
[v] Slouží float k inicializaci objektu CComVariant . Typ objektu CComVariant je VT_R4.

dblSrc
[v] Slouží double k inicializaci objektu CComVariant . Typ objektu CComVariant je VT_R8.

cySrc
[v] Slouží CY k inicializaci objektu CComVariant . Typ objektu CComVariant je VT_CY.

pSrc
[v] Nebo IDispatch IUnknown ukazatel použitý k inicializaci objektu CComVariant . AddRef je volána na ukazatel rozhraní. Typ objektu CComVariant je VT_DISPATCH nebo VT_UNKNOWN, v uvedeném pořadí.

SAFERRAY Nebo ukazatel použitý k inicializaci objektuCComVariant. Kopie objektu SAFEARRAY je uložená CComVariant . Typ objektu CComVariant je kombinací původního SAFEARRAY typu a VT_ARRAY.

cSrc
[v] Slouží char k inicializaci objektu CComVariant . Typ objektu CComVariant je VT_I1.

bstrSrc
[v] Slouží BSTR k inicializaci objektu CComVariant . Typ objektu CComVariant je VT_BSTR.

Poznámky

Destruktor spravuje vyčištění voláním CComVariant::Clear.

CComVariant::~CComVariant

Destruktor.

~CComVariant() throw();

Poznámky

Tato metoda spravuje vyčištění voláním CComVariant::Clear.

CComVariant::ChangeType

CComVariant Převede objekt na nový typ.

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

Parametry

vtNew
[v] Nový typ objektu CComVariant .

pSrc
[v] Ukazatel na VARIANT hodnotu, jejíž hodnota je převedena na nový typ. Výchozí hodnota je NULL, což znamená, že CComVariant objekt je převeden na místě.

Vrácená hodnota

Standardní HRESULT hodnota.

Poznámky

Pokud předáte hodnotu pro pSrc, ChangeType použije se jako VARIANT zdroj pro převod. CComVariant V opačném případě je objekt zdrojem.

CComVariant::Clear

Vymaže CComVariant objekt voláním VariantClear funkce Win32.

HRESULT Clear();

Vrácená hodnota

Standardní HRESULT hodnota.

Poznámky

Destruktor automaticky volá Clear.

CComVariant::Copy

CComVariant Uvolní objekt a pak mu přiřadí kopii zadaného VARIANTobjektu .

HRESULT Copy(const VARIANT* pSrc);

Parametry

pSrc
[v] Ukazatel na zkopírování VARIANT .

Vrácená hodnota

Standardní HRESULT hodnota.

CComVariant::CopyTo

Zkopíruje obsah objektu CComVariant .

HRESULT CopyTo(BSTR* pstrDest);

Parametry

pstrDest
Odkazuje na objekt BSTR , který obdrží kopii obsahu objektu CComVariant .

Vrácená hodnota

Standardní HRESULT hodnota.

Poznámky

Objekt CComVariant musí být typu VT_BSTR.

CComVariant::Detach

Odpojte základní objekt VARIANT od objektu CComVariant a nastaví typ objektu na VT_EMPTY.

HRESULT Detach(VARIANT* pDest);

Parametry

pDest
[ven] Vrátí základní VARIANT hodnotu objektu.

Vrácená hodnota

Standardní HRESULT hodnota.

Poznámky

VARIANT Obsah odkazovaného pDest objektu se před přiřazením hodnoty a typu volajícího CComVariant objektu automaticky vymaže.

CComVariant::GetSize

U jednoduchých pevných velikostí VARIANTvrátí tato metoda sizeof hodnotu základního datového typu plus sizeof(VARTYPE).

ULONG GetSize() const;

Vrácená hodnota

Velikost v bajtech aktuálního obsahu objektu CComVariant .

Poznámky

VARIANT Pokud obsahuje ukazatel rozhraní, GetSize dotazy na IPersistStream nebo IPersistStreamInit. V případě úspěchu je návratová hodnota 32 bitů hodnoty vrácená GetSizeMax 32 bity plus sizeof(CLSID) a sizeof(VARTYPE). Pokud je NULLukazatel rozhraní , GetSize vrátí plus sizeof(CLSID) sizeof(VARTYPE). Pokud je celková velikost větší než ULONG_MAX, GetSize vrátí , sizeof(VARTYPE)což značí chybu.

Ve všech ostatních případech je dočasný VARIANT typ VT_BSTR přetěžován z aktuálního VARIANT. Délka je BSTR vypočítána jako velikost délky řetězce plus délka samotného řetězce plus velikost znaku plus velikost znaku NULL plus sizeof(VARTYPE). VARIANT Pokud nelze převést na VARIANT typ VT_BSTR, GetSize vrátí hodnotu sizeof(VARTYPE).

Velikost vrácená touto metodou odpovídá počtu bajtů používaných CComVariant::WriteToStream za úspěšných podmínek.

CComVariant::operator =

Přiřadí objektu hodnotu a odpovídající typ 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();

Parametry

varSrc
[v] Objekt CComVariant nebo VARIANT k ho CComVariant má být přiřazen. Obsah zdrojové varianty se zkopíruje do cíle bez převodu.

bstrSrc
[v] Objekt BSTR má být přiřazen CComVariant . Typ objektu CComVariant je VT_BSTR.

lpszSrc
[v] Řetězec znaků, který má být přiřazen k objektu CComVariant . Řetězec znaků LPCOLESTR s nulovým ukončením (Unicode) můžete předat verzi operátoru nebo řetězci LPCSTR ANSI verzi. V obou případech se řetězec převede na znak Unicode BSTR přidělený pomocí SysAllocString. Typ objektu CComVariant je VT_BSTR.

bSrc
[v] Objekt bool má být přiřazen CComVariant . Argument bool se převede na před uložením VARIANT_BOOL . Typ objektu CComVariant je VT_BOOL.

nSrc
[v] Objekt int, BYTE, , longshort, LONGLONG, ULONGLONGunsigned shortunsigned longnebo unsigned int být přiřazen k objektu.CComVariant Typ objektu je , , VT_I8VT_I4VT_I2VT_UI2VT_UI1VT_UI8, , VT_UI4, nebo VT_UI4, v uvedeném pořadí.VT_I4CComVariant

fltSrc
[v] Objekt float má být přiřazen CComVariant . Typ objektu CComVariant je VT_R4.

dblSrc
[v] Objekt double má být přiřazen CComVariant . Typ objektu CComVariant je VT_R8.

cySrc
[v] Objekt CY má být přiřazen CComVariant . Typ objektu CComVariant je VT_CY.

pSrc
[v] Objekt IDispatch má být přiřazen CComVariant nebo IUnknown ukazatel. AddRef je volána na ukazatel rozhraní. Typ objektu CComVariant je VT_DISPATCH nebo VT_UNKNOWN, v uvedeném pořadí.

Nebo ukazatel, SAFEARRAY který se má přiřadit k objektu CComVariant . Kopie objektu SAFEARRAY je uložená CComVariant . Typ objektu CComVariant je kombinací původního SAFEARRAY typu a VT_ARRAY.

cSrc
[v] Znak, který se má přiřadit k objektu CComVariant . Typ objektu CComVariant je VT_I1.

CComVariant::operator ==

Určuje, zda se CComVariant objekt rovná zadanému VARIANT.

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

Poznámky

Vrátí TRUE , pokud hodnota a typ varSrc jsou rovny hodnotě a typu objektu CComVariant . V opačném případě hodnota FALSE. Operátor používá k porovnání výchozí národní prostředí uživatele.

Operátor porovnává pouze hodnotu typů variant. Porovnává řetězce, celá čísla a plovoucí desetinná místa, ale ne matice nebo záznamy.

CComVariant::operator !=

Určuje, zda se CComVariant objekt nerovná zadanému VARIANT.

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

Poznámky

Vrátí TRUE , pokud hodnota nebo typ varSrc není rovna hodnotě nebo typu objektu CComVariant . V opačném případě hodnota FALSE. Operátor používá k porovnání výchozí národní prostředí uživatele.

Operátor porovnává pouze hodnotu typů variant. Porovnává řetězce, celá čísla a plovoucí desetinná místa, ale ne matice nebo záznamy.

CComVariant::operator <

Určuje, zda CComVariant je objekt menší než zadaný VARIANT.

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

Poznámky

Vrátí TRUE , pokud je hodnota objektu CComVariant menší než hodnota varSrc. V opačném případě hodnota FALSE. Operátor používá k porovnání výchozí národní prostředí uživatele.

CComVariant::operator >

Určuje, zda CComVariant je objekt větší než zadaný VARIANT.

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

Poznámky

Vrátí TRUE , pokud je hodnota objektu CComVariant větší než hodnota varSrc. V opačném případě hodnota FALSE. Operátor používá k porovnání výchozí národní prostředí uživatele.

CComVariant::ReadFromStream

Nastaví podklad VARIANT na obsaženou VARIANT v zadaném datovém proudu.

HRESULT ReadFromStream(IStream* pStream);

Parametry

pStream
[v] Ukazatel na IStream rozhraní datového proudu obsahujícího data.

Vrácená hodnota

Standardní HRESULT hodnota.

Poznámky

ReadToStream vyžaduje předchozí volání WriteToStream.

CComVariant::SetByRef

Inicializuje CComVariant objekt a nastaví vt člen na VT_BYREF.

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

Parametry

T
Typ VARIANT, například BSTR, , intnebo char.

pT
Ukazatel použitý k inicializaci objektu CComVariant .

Poznámky

SetByRef je šablona funkce, která inicializuje CComVariant objekt na ukazatel pT a nastaví člen na vt VT_BYREF. Příklad:

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

CComVariant::WriteToStream

Uloží podkladový VARIANT datový proud.

HRESULT WriteToStream(IStream* pStream);

Parametry

pStream
[v] Ukazatel na IStream rozhraní ve streamu.

Vrácená hodnota

Standardní HRESULT hodnota.

Viz také

Přehled třídy