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í. VARIANT
s 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
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 short
unsigned long
, nebo unsigned int
použitý k inicializaci objektuCComVariant
. Typ objektu je , , VT_I8
VT_I4
VT_I2
VT_UI2
VT_UI1
VT_UI8
, , VT_UI4
, nebo VT_UI4
, v uvedeném pořadí.VT_I4
CComVariant
vtSrc
[v] Typ varianty. Při prvním parametru int
jsou VT_I4
platné typy a VT_INT
. Při prvním parametru long
jsou VT_I4
platné typy a VT_ERROR
. Při prvním parametru double
jsou VT_R8
platné typy a VT_DATE
. Při prvním parametru unsigned int
jsou 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 VARIANT
objektu .
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í VARIANT
vrá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 NULL
ukazatel 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
, , long
short
, LONGLONG
, ULONGLONG
unsigned short
unsigned long
nebo unsigned int
být přiřazen k objektu.CComVariant
Typ objektu je , , VT_I8
VT_I4
VT_I2
VT_UI2
VT_UI1
VT_UI8
, , VT_UI4
, nebo VT_UI4
, v uvedeném pořadí.VT_I4
CComVariant
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
, , int
nebo 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.