Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Třída
Poznámka:
Knihovna ATL (Active Template Library) se nadále podporuje. Už ale nepřidáme funkce ani aktualizujeme dokumentaci.
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 VARIANTVARIANTARG 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
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 VARIANT nebo CComVariant 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 LPCOLESTR ANSI můžete předat řetězec LPCSTR 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 , , CComVariantVT_I4VT_UI1VT_I2VT_I4VT_I8, , VT_UI8, nebo VT_UI2, v uvedeném pořadí.VT_UI4VT_UI4
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 IDispatchIUnknown 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, , shortlong, LONGLONG, ULONGLONGunsigned shortunsigned longnebo unsigned int být přiřazen k objektu.CComVariant Typ objektu je , , CComVariantVT_I4VT_UI1VT_I2VT_I4VT_I8, , VT_UI8, nebo VT_UI2, v uvedeném pořadí.VT_UI4VT_UI4
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 IUnknown nebo CComVariant 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 vtVT_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.