Share via


CComVariant klas

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse verpakt het VARIANT type, waarbij een lid wordt opgegeven dat het type gegevens bevat dat is opgeslagen.

Syntaxis

class CComVariant : public tagVARIANT

Leden

Openbare constructors

Naam Description
CComVariant::CComVariant De constructor.
CComVariant::~CComVariant De destructor.

Openbare methoden

Naam Description
CComVariant::Attach Hiermee wordt een VARIANT aan het CComVariant object gekoppeld.
CComVariant::ChangeType Converteert het CComVariant object naar een nieuw type.
CComVariant::Clear Hiermee wist u het CComVariant object.
CComVariant::Copy Hiermee kopieert u een VARIANT naar het CComVariant object.
CComVariant::CopyTo Hiermee kopieert u de inhoud van het CComVariant object.
CComVariant::Detach De onderliggende waarde VARIANT van het CComVariant object loskoppelen.
CComVariant::GetSize Retourneert de grootte in het aantal bytes van de inhoud van het CComVariant object.
CComVariant::ReadFromStream Laadt een VARIANT stroom.
CComVariant::SetByRef Initialiseert het CComVariant object en stelt het vt lid in op VT_BYREF.
CComVariant::WriteToStream Slaat de onderliggende VARIANT gegevens op in een stream.

Openbare operators

Operator Description
CComVariant::operator < Geeft aan of het CComVariant object kleiner is dan het opgegeven VARIANTobject.
CComVariant::operator > Geeft aan of het CComVariant object groter is dan de opgegeven VARIANT.
CComVariant::operator != Geeft aan of het CComVariant object niet gelijk is aan de opgegeven VARIANT.
CComVariant::operator = Hiermee wordt een waarde aan het CComVariant object toegewezen.
CComVariant::operator == Geeft aan of het CComVariant object gelijk is aan de opgegeven VARIANT.

Opmerkingen

CComVariant verpakt het VARIANT en VARIANTARG type, dat bestaat uit een vereniging en een lid dat het type aangeeft van de gegevens die zijn opgeslagen in de samenvoeging. VARIANTs worden doorgaans gebruikt in Automation.

CComVariant is afgeleid van het VARIANT type, zodat het kan worden gebruikt waar een VARIANT kan worden gebruikt. U kunt bijvoorbeeld de V_VT macro gebruiken om het type van een CComVariant te extraheren of u hebt rechtstreeks toegang tot het vt lid, net zoals u dat kunt met een VARIANT.

Overnamehiërarchie

tagVARIANT
 └ CComVariant

Requirements

Rubriek:atlcomcli.h

CComVariant::Attach

Hiermee wist u de huidige inhoud van het CComVariant object veilig, kopieert u de inhoud naar pSrc dit object en stelt u vervolgens het varianttype in pSrc op VT_EMPTY.

HRESULT Attach(VARIANT* pSrc);

Parameterwaarden

pSrc
[in] Verwijst naar het VARIANT object dat aan het object moet worden gekoppeld.

Retourwaarde

Een standaardwaarde HRESULT .

Opmerkingen

Het eigendom van de gegevens die worden pSrc bewaard, wordt overgedragen aan het CComVariant object.

CComVariant::CComVariant

Elke constructor verwerkt de veilige initialisatie van het CComVariant object door de Win32-functie aan te roepen of door de VariantInit waarde en het type van het object in te stellen op basis van de doorgegeven parameters.

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

Parameterwaarden

varSrc
[in] Het CComVariant object wordt geïnitialiseerd of VARIANT gebruikt om het CComVariant object te initialiseren. De inhoud van de bronvariant wordt zonder conversie gekopieerd naar het doel.

lpszSrc
[in] De tekenreeks die wordt gebruikt om het CComVariant object te initialiseren. U kunt een tekenreeks met een tekenreeks met nul (Unicode) doorgeven aan de LPCOLESTR versie van de constructor of een ANSI-tekenreeks aan de LPCSTR versie. In beide gevallen wordt de tekenreeks geconverteerd naar een Unicode-toewijzing BSTR met behulp van SysAllocString. Het type van het CComVariant object is VT_BSTR.

bSrc
[in] Het bool object wordt geïnitialiseerd CComVariant . Het bool argument wordt geconverteerd naar een VARIANT_BOOL voordat het wordt opgeslagen. Het type van het CComVariant object is VT_BOOL.

nSrc
[in] Het intobject , BYTE, , shortlong, , LONGLONG, ULONGLONG, , , unsigned shortof unsigned longunsigned int wordt gebruikt om het CComVariant object te initialiseren. Het type object CComVariant is respectievelijk , , VT_UI1, VT_I2, VT_I4VT_I8, VT_UI8, VT_UI2, , VT_UI4of VT_UI4, .VT_I4

vtSrc
[in] Het type variant. Wanneer de eerste parameter is int, zijn geldige typen en VT_I4VT_INT. Wanneer de eerste parameter is long, zijn geldige typen en VT_I4VT_ERROR. Wanneer de eerste parameter is double, zijn geldige typen en VT_R8VT_DATE. Wanneer de eerste parameter is unsigned int, zijn geldige typen en VT_UI4VT_UINT.

fltSrc
[in] Het float object wordt geïnitialiseerd CComVariant . Het type van het CComVariant object is VT_R4.

dblSrc
[in] Het double object wordt geïnitialiseerd CComVariant . Het type van het CComVariant object is VT_R8.

cySrc
[in] Het CY object wordt geïnitialiseerd CComVariant . Het type van het CComVariant object is VT_CY.

pSrc
[in] De IDispatch aanwijzer IUnknown die wordt gebruikt om het CComVariant object te initialiseren. AddRef wordt aangeroepen op de interfacepointer. Het type object CComVariant is VT_DISPATCH of VT_UNKNOWNrespectievelijk.

Of de SAFERRAY aanwijzer die wordt gebruikt om het CComVariant object te initialiseren. Er wordt een kopie van het SAFEARRAYCComVariant object opgeslagen. Het type van het CComVariant object is een combinatie van het oorspronkelijke type en SAFEARRAYVT_ARRAY.

cSrc
[in] Het char object wordt geïnitialiseerd CComVariant . Het type van het CComVariant object is VT_I1.

bstrSrc
[in] Het BSTR object wordt geïnitialiseerd CComVariant . Het type van het CComVariant object is VT_BSTR.

Opmerkingen

De destructor beheert opschonen door aan te roepen CComVariant::Clear.

CComVariant::~CComVariant

De destructor.

~CComVariant() throw();

Opmerkingen

Met deze methode wordt opschoning beheerd door aan te roepen CComVariant::Clear.

CComVariant::ChangeType

Converteert het CComVariant object naar een nieuw type.

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

Parameterwaarden

vtNew
[in] Het nieuwe type voor het CComVariant object.

pSrc
[in] Een aanwijzer naar de waarde waarvan de VARIANT waarde wordt geconverteerd naar het nieuwe type. De standaardwaarde is NULL, wat betekent dat het CComVariant object op zijn plaats wordt geconverteerd.

Retourwaarde

Een standaardwaarde HRESULT .

Opmerkingen

Als u een waarde doorgeeft voor pSrc, ChangeType wordt deze VARIANT gebruikt als de bron voor de conversie. Anders is het CComVariant object de bron.

CComVariant::Clear

Hiermee wist u het CComVariant object door de VariantClear Win32-functie aan te roepen.

HRESULT Clear();

Retourwaarde

Een standaardwaarde HRESULT .

Opmerkingen

De destructor roept Clearautomatisch aan.

CComVariant::Copy

Hiermee wordt het CComVariant object vrijgemaakt en vervolgens een kopie van het opgegeven VARIANTobject toegewezen.

HRESULT Copy(const VARIANT* pSrc);

Parameterwaarden

pSrc
[in] Een aanwijzer naar de VARIANT te kopiëren aanwijzer.

Retourwaarde

Een standaardwaarde HRESULT .

CComVariant::CopyTo

Hiermee kopieert u de inhoud van het CComVariant object.

HRESULT CopyTo(BSTR* pstrDest);

Parameterwaarden

pstrDest
Verwijst naar een BSTR object dat een kopie van de inhoud van het CComVariant object ontvangt.

Retourwaarde

Een standaardwaarde HRESULT .

Opmerkingen

Het CComVariant object moet van het type VT_BSTRzijn.

CComVariant::Detach

Loskoppelt de onderliggende waarde VARIANT van het CComVariant object en stelt het objecttype in op VT_EMPTY.

HRESULT Detach(VARIANT* pDest);

Parameterwaarden

pDest
[uit] Retourneert de onderliggende VARIANT waarde van het object.

Retourwaarde

Een standaardwaarde HRESULT .

Opmerkingen

De inhoud van de VARIANT waarnaar wordt verwezen pDest , wordt automatisch gewist voordat de waarde en het type van het aanroepende CComVariant object worden toegewezen.

CComVariant::GetSize

Voor eenvoudige vaste grootten VARIANTretourneert deze methode de sizeof waarde voor het onderliggende gegevenstype plus sizeof(VARTYPE).

ULONG GetSize() const;

Retourwaarde

De grootte in bytes van de huidige inhoud van het CComVariant object.

Opmerkingen

Als het VARIANT een interfaceaanwijzer bevat, GetSize voert u query's uit voor IPersistStream of IPersistStreamInit. Als dit lukt, is de retourwaarde de lage volgorde van 32 bits van de waarde die wordt geretourneerd door GetSizeMax plus sizeof(CLSID) en sizeof(VARTYPE). Als de interfacepointer isNULL, GetSize wordt plus sizeof(VARTYPE)geretourneerdsizeof(CLSID). Als de totale grootte groter is dan ULONG_MAX, GetSize retourneert sizeof(VARTYPE), wat een fout aangeeft.

In alle andere gevallen wordt een tijdelijk VARIANT type VT_BSTR afgetrokken van de huidige VARIANT. De lengte hiervan BSTR wordt berekend als de grootte van de lengte van de tekenreeks plus de lengte van de tekenreeks zelf plus de grootte van het NULL teken plus sizeof(VARTYPE). Als de VARIANT waarde niet kan worden afgetrokken van een VARIANT type VT_BSTR, GetSize retourneert sizeof(VARTYPE)u .

De grootte die door deze methode wordt geretourneerd, komt overeen met het aantal bytes dat wordt gebruikt onder CComVariant::WriteToStream geslaagde omstandigheden.

CComVariant::operator =

Hiermee wijst u een waarde en het bijbehorende type toe aan het CComVariant object.

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

Parameterwaarden

varSrc
[in] De CComVariant of VARIANT moet worden toegewezen aan het CComVariant object. De inhoud van de bronvariant wordt zonder conversie gekopieerd naar het doel.

bstrSrc
[in] De BSTR te toewijzen aan het CComVariant object. Het type van het CComVariant object is VT_BSTR.

lpszSrc
[in] De tekenreeks die moet worden toegewezen aan het CComVariant object. U kunt een tekenreeks met nul-beëindigen (Unicode) doorgeven aan de LPCOLESTR versie van de operator of een ANSI-tekenreeks aan de LPCSTR versie. In beide gevallen wordt de tekenreeks geconverteerd naar een Unicode-toewijzing BSTR met behulp van SysAllocString. Het type van het CComVariant object is VT_BSTR.

bSrc
[in] De bool te toewijzen aan het CComVariant object. Het bool argument wordt geconverteerd naar een VARIANT_BOOL voordat het wordt opgeslagen. Het type van het CComVariant object is VT_BOOL.

nSrc
[in] De int, BYTE, , longshort, , LONGLONG, , ULONGLONG, , unsigned shortof unsigned longunsigned int worden toegewezen aan het CComVariant object. Het type object CComVariant is respectievelijk , , VT_UI1, VT_I2, VT_I4VT_I8, VT_UI8, VT_UI2, , VT_UI4of VT_UI4, .VT_I4

fltSrc
[in] De float te toewijzen aan het CComVariant object. Het type van het CComVariant object is VT_R4.

dblSrc
[in] De double te toewijzen aan het CComVariant object. Het type van het CComVariant object is VT_R8.

cySrc
[in] De CY te toewijzen aan het CComVariant object. Het type van het CComVariant object is VT_CY.

pSrc
[in] De IDispatch aanwijzer IUnknown die aan het CComVariant object moet worden toegewezen. AddRef wordt aangeroepen op de interfacepointer. Het type object CComVariant is VT_DISPATCH of VT_UNKNOWNrespectievelijk.

Of een SAFEARRAY aanwijzer die moet worden toegewezen aan het CComVariant object. Er wordt een kopie van het SAFEARRAYCComVariant object opgeslagen. Het type van het CComVariant object is een combinatie van het oorspronkelijke type en SAFEARRAYVT_ARRAY.

cSrc
[in] Het teken dat moet worden toegewezen aan het CComVariant object. Het type van het CComVariant object is VT_I1.

CComVariant::operator ==

Geeft aan of het CComVariant object gelijk is aan de opgegeven VARIANT.

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

Opmerkingen

Retourneert TRUE als de waarde en het type varSrc gelijk zijn aan respectievelijk de waarde en het type van het CComVariant object. Anders FALSE. De operator gebruikt de standaardlandinstelling van de gebruiker om de vergelijking uit te voeren.

De operator vergelijkt alleen de waarde van de varianttypen. Hiermee worden tekenreeksen, gehele getallen en drijvende komma's vergeleken, maar niet matrices of records.

CComVariant::operator !=

Geeft aan of het CComVariant object niet gelijk is aan de opgegeven VARIANT.

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

Opmerkingen

Retourneert TRUE of de waarde of het type varSrc niet gelijk is aan respectievelijk de waarde of het type van het CComVariant object. Anders FALSE. De operator gebruikt de standaardlandinstelling van de gebruiker om de vergelijking uit te voeren.

De operator vergelijkt alleen de waarde van de varianttypen. Hiermee worden tekenreeksen, gehele getallen en drijvende komma's vergeleken, maar niet matrices of records.

CComVariant::operator <

Geeft aan of het CComVariant object kleiner is dan het opgegeven VARIANTobject.

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

Opmerkingen

Retourneert TRUE als de waarde van het CComVariant object kleiner is dan de waarde van varSrc. Anders FALSE. De operator gebruikt de standaardlandinstelling van de gebruiker om de vergelijking uit te voeren.

CComVariant::operator >

Geeft aan of het CComVariant object groter is dan de opgegeven VARIANT.

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

Opmerkingen

Retourneert TRUE als de waarde van het CComVariant object groter is dan de waarde van varSrc. Anders FALSE. De operator gebruikt de standaardlandinstelling van de gebruiker om de vergelijking uit te voeren.

CComVariant::ReadFromStream

Hiermee stelt u de onderliggende waarde VARIANT in op de VARIANT opgegeven stroom.

HRESULT ReadFromStream(IStream* pStream);

Parameterwaarden

pStream
[in] Een aanwijzer naar de IStream interface op de stream die de gegevens bevat.

Retourwaarde

Een standaardwaarde HRESULT .

Opmerkingen

ReadToStream vereist een eerdere aanroep naar WriteToStream.

CComVariant::SetByRef

Initialiseert het CComVariant object en stelt het vt lid in op VT_BYREF.

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

Parameterwaarden

T
Het type VARIANT, bijvoorbeeld BSTR, of intchar.

pT
De aanwijzer die wordt gebruikt om het CComVariant object te initialiseren.

Opmerkingen

SetByRef is een functiesjabloon waarmee het CComVariant object wordt geïnitialiseerd op de aanwijzer pT en het vt lid wordt ingesteld op VT_BYREF. Voorbeeld:

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

CComVariant::WriteToStream

Slaat de onderliggende VARIANT gegevens op in een stream.

HRESULT WriteToStream(IStream* pStream);

Parameterwaarden

pStream
[in] Een aanwijzer naar de IStream interface in een stream.

Retourwaarde

Een standaardwaarde HRESULT .

Zie ook

Overzicht van klassen