Freigeben über


CComVariant-Klasse

Diese Klasse umschließt den VARIANT Typ und stellt ein Element bereit, das den Typ der gespeicherten Daten angibt.

Syntax

class CComVariant : public tagVARIANT

Member

Öffentliche Konstruktoren

Name Beschreibung
CComVariant::CComVariant Der Konstruktor.
CComVariant::~CComVariant Der Destruktor.

Öffentliche Methoden

Name Beschreibung
CComVariant::Attach Fügt ein Objekt VARIANT CComVariant an.
CComVariant::ChangeType Konvertiert das CComVariant Objekt in einen neuen Typ.
CComVariant::Clear Löscht das CComVariant Objekt.
CComVariant::Copy Kopiert ein VARIANT Objekt in das CComVariant Objekt.
CComVariant::CopyTo Kopiert den Inhalt des CComVariant Objekts.
CComVariant::Detach Trennt den zugrunde liegenden VARIANT vom CComVariant Objekt.
CComVariant::GetSize Gibt die Größe der Anzahl der Bytes des Inhalts des CComVariant Objekts zurück.
CComVariant::ReadFromStream Lädt einen VARIANT Datenstrom.
CComVariant::SetByRef Initialisiert das CComVariant Objekt und legt das vt Element auf VT_BYREF.
CComVariant::WriteToStream Speichert den zugrunde liegenden VARIANT Datenstrom.

Öffentliche Operatoren

Operator Beschreibung
CComVariant::operator < Gibt an, ob das CComVariant Objekt kleiner als die angegebene VARIANTist.
CComVariant::operator > Gibt an, ob das CComVariant Objekt größer als die angegebene VARIANTist.
CComVariant::operator != Gibt an, ob das CComVariant Objekt nicht dem angegebenen VARIANTentspricht.
CComVariant::operator = Weist dem CComVariant Objekt einen Wert zu.
CComVariant::operator == Gibt an, ob das CComVariant Objekt dem angegebenen VARIANTentspricht.

Hinweise

CComVariant umschließt den VARIANT Und-Typ VARIANTARG , der aus einer Union und einem Mitglied besteht, das den Typ der in der Union gespeicherten Daten angibt. VARIANTs werden in der Regel in der Automatisierung verwendet.

CComVariant wird vom Typ abgeleitet VARIANT , damit er überall verwendet werden kann, wo eine VARIANT verwendet werden kann. Sie können z. B. das V_VT Makro verwenden, um den Typ eines Elements CComVariant zu extrahieren, oder Sie können direkt auf das vt Element zugreifen, genau wie bei einem VARIANT.

Vererbungshierarchie

tagVARIANT
 └ CComVariant

Anforderungen

Header: atlcomcli.h

CComVariant::Attach

Löscht den aktuellen Inhalt des CComVariant Objekts sicher, kopiert den Inhalt in pSrc dieses Objekt und legt dann den Variantentyp auf pSrc VT_EMPTY.

HRESULT Attach(VARIANT* pSrc);

Parameter

pSrc
[in] Verweist auf das VARIANT Objekt, das an das Objekt angefügt werden soll.

Rückgabewert

Ein Standard HRESULT -Wert.

Hinweise

Der Besitz der gespeicherten pSrc Daten wird an das CComVariant Objekt übertragen.

CComVariant::CComVariant

Jeder Konstruktor behandelt die sichere Initialisierung des CComVariant Objekts durch Aufrufen der VariantInit Win32-Funktion oder durch Festlegen des Werts und Typs des Objekts gemäß den übergebenen Parametern.

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

Parameter

varSrc
[in] The CComVariant or VARIANT used to initialize the CComVariant object. Der Inhalt der Quellvariante wird ohne Konvertierung in das Ziel kopiert.

lpszSrc
[in] Die zum Initialisieren des CComVariant Objekts verwendete Zeichenfolge. Sie können eine Zeichenfolge ohne Ende (Unicode) an die LPCOLESTR Version des Konstruktors oder eine ANSI-Zeichenfolge an die LPCSTR Version übergeben. In beiden Fällen wird die Zeichenfolge in einen unicode-zugewiesenen SysAllocStringUnicode-Code BSTR konvertiert. Der Typ des CComVariant Objekts ist VT_BSTR.

bSrc
[in] Die bool zum Initialisieren des CComVariant Objekts verwendete Eigenschaft. Das bool Argument wird vor dem Speichern in ein VARIANT_BOOL Argument konvertiert. Der Typ des CComVariant Objekts ist VT_BOOL.

nSrc
[in] The int, BYTE, , short, long, LONGLONG, ULONGLONG, unsigned short, , unsigned longoder unsigned int used to initialize the CComVariant object. Der Typ des Objekts ist VT_I4, , VT_UI1, VT_I2VT_I4, VT_I8, , VT_UI8, VT_UI2, VT_UI4, oder VT_UI4, bzwCComVariant. .

vtSrc
[in] Der Typ der Variante. Wenn der erste Parameter lautet int, sind VT_I4 gültige Typen und VT_INT. Wenn der erste Parameter lautet long, sind VT_I4 gültige Typen und VT_ERROR. Wenn der erste Parameter lautet double, sind VT_R8 gültige Typen und VT_DATE. Wenn der erste Parameter lautet unsigned int, sind VT_UI4 gültige Typen und VT_UINT.

fltSrc
[in] Die float zum Initialisieren des CComVariant Objekts verwendete Eigenschaft. Der Typ des CComVariant Objekts ist VT_R4.

dblSrc
[in] Die double zum Initialisieren des CComVariant Objekts verwendete Eigenschaft. Der Typ des CComVariant Objekts ist VT_R8.

cySrc
[in] Die CY zum Initialisieren des CComVariant Objekts verwendete Eigenschaft. Der Typ des CComVariant Objekts ist VT_CY.

pSrc
[in] Der IDispatch zum Initialisieren des CComVariant Objekts verwendete Zeiger.IUnknown AddRef wird auf dem Schnittstellenzeiger aufgerufen. Der Typ des CComVariant Objekts ist VT_DISPATCH bzw VT_UNKNOWN.

Oder der Zeiger, der SAFERRAY zum Initialisieren des CComVariant Objekts verwendet wird. Eine Kopie der SAFEARRAY Datei wird im CComVariant Objekt gespeichert. Der Typ des CComVariant Objekts ist eine Kombination aus dem ursprünglichen Typ des SAFEARRAY Und VT_ARRAY.

cSrc
[in] Die char zum Initialisieren des CComVariant Objekts verwendete Eigenschaft. Der Typ des CComVariant Objekts ist VT_I1.

bstrSrc
[in] Die BSTR zum Initialisieren des CComVariant Objekts verwendete Eigenschaft. Der Typ des CComVariant Objekts ist VT_BSTR.

Hinweise

Der Destruktor verwaltet die Bereinigung durch Aufrufen CComVariant::Clear.

CComVariant::~CComVariant

Der Destruktor.

~CComVariant() throw();

Hinweise

Diese Methode verwaltet die Bereinigung durch Aufrufen CComVariant::Clear.

CComVariant::ChangeType

Konvertiert das CComVariant Objekt in einen neuen Typ.

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

Parameter

vtNew
[in] Der neue Typ für das CComVariant Objekt.

pSrc
[in] Ein Zeiger auf den VARIANT Wert, dessen Wert in den neuen Typ konvertiert wird. Der Standardwert lautet NULL, d. h., das CComVariant Objekt wird direkt konvertiert.

Rückgabewert

Ein Standard HRESULT -Wert.

Hinweise

Wenn Sie einen Wert für pSrcdie Konvertierung übergeben, ChangeType wird dies VARIANT als Quelle für die Konvertierung verwendet. Andernfalls ist das CComVariant Objekt die Quelle.

CComVariant::Clear

Löscht das CComVariant Objekt, indem die VariantClear Win32-Funktion aufgerufen wird.

HRESULT Clear();

Rückgabewert

Ein Standard HRESULT -Wert.

Hinweise

Der Destruktor ruft automatisch auf Clear.

CComVariant::Copy

Gibt das CComVariant Objekt frei und weist es dann einer Kopie der angegebenen VARIANTzu.

HRESULT Copy(const VARIANT* pSrc);

Parameter

pSrc
[in] Ein Zeiger auf den VARIANT zu kopierenden Zeiger.

Rückgabewert

Ein Standard HRESULT -Wert.

CComVariant::CopyTo

Kopiert den Inhalt des CComVariant Objekts.

HRESULT CopyTo(BSTR* pstrDest);

Parameter

pstrDest
Verweist auf eine BSTR Kopie des Inhalts des CComVariant Objekts.

Rückgabewert

Ein Standard HRESULT -Wert.

Hinweise

Das CComVariant Objekt muss vom Typ VT_BSTRsein.

CComVariant::Detach

Trennt die zugrunde liegende VARIANT vom CComVariant Objekt und legt den Typ des Objekts auf VT_EMPTY.

HRESULT Detach(VARIANT* pDest);

Parameter

pDest
[out] Gibt den zugrunde liegenden VARIANT Wert des Objekts zurück.

Rückgabewert

Ein Standard HRESULT -Wert.

Hinweise

Der Inhalt des VARIANT Verweises pDest durch wird automatisch gelöscht, bevor dem Wert und typ des aufrufenden CComVariant Objekts zugewiesen wird.

CComVariant::GetSize

Für einfache feste Größe VARIANTgibt diese Methode den sizeof Wert für den zugrunde liegenden Datentyp plus sizeof(VARTYPE)zurück.

ULONG GetSize() const;

Rückgabewert

Die Größe in Byte des aktuellen Inhalts des CComVariant Objekts.

Hinweise

Wenn das VARIANT Element einen Schnittstellenzeiger enthält, GetSize werden Abfragen für IPersistStream oder IPersistStreamInit. Wenn der Rückgabewert erfolgreich verläuft, handelt es sich bei dem Rückgabewert um 32 Bit mit niedriger Reihenfolge, die von GetSizeMax Plus- und sizeof(VARTYPE)32-Bits sizeof(CLSID) zurückgegeben werden. Wenn der Schnittstellenzeiger istNULL, GetSize wird Pluszeichen sizeof(VARTYPE)zurückgegebensizeof(CLSID). Wenn die Gesamtgröße größer als ULONG_MAXist, GetSize wird sizeof(VARTYPE)ein Fehler zurückgegeben.

In allen anderen Fällen wird ein temporärer VARIANT Typ VT_BSTR aus dem aktuellen VARIANT. Die Länge dieser BSTR Zeichenfolge wird als Größe der Länge der Zeichenfolge plus der Länge der Zeichenfolge selbst und der Größe des NULL Zeichens plus sizeof(VARTYPE)berechnet. Wenn der VARIANT Wert nicht in einen VARIANT Typ umgewandelt werden kann, wird der Wert VT_BSTRGetSize zurückgegebensizeof(VARTYPE).

Die von dieser Methode zurückgegebene Größe entspricht der Anzahl der Bytes, die CComVariant::WriteToStream unter erfolgreichen Bedingungen verwendet werden.

CComVariant::operator =

Weist dem CComVariant Objekt einen Wert und einen entsprechenden Typ zu.

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

Parameter

varSrc
[in] Der CComVariant oder VARIANT der dem CComVariant Objekt zugewiesen werden soll. Der Inhalt der Quellvariante wird ohne Konvertierung in das Ziel kopiert.

bstrSrc
[in] Der BSTR dem Objekt zugewiesen CComVariant werden soll. Der Typ des CComVariant Objekts ist VT_BSTR.

lpszSrc
[in] Die Zeichenfolge, die dem CComVariant Objekt zugewiesen werden soll. Sie können eine durch Null beendete breite (Unicode)-Zeichenfolge an die LPCOLESTR Version des Operators oder eine ANSI-Zeichenfolge an die LPCSTR Version übergeben. In beiden Fällen wird die Zeichenfolge in einen unicode-zugewiesenen SysAllocStringUnicode-Code BSTR konvertiert. Der Typ des CComVariant Objekts ist VT_BSTR.

bSrc
[in] Der bool dem Objekt zugewiesen CComVariant werden soll. Das bool Argument wird vor dem Speichern in ein VARIANT_BOOL Argument konvertiert. Der Typ des CComVariant Objekts ist VT_BOOL.

nSrc
[in] The int, , BYTE, short, long, LONGLONG, ULONGLONG, , unsigned short, , or unsigned longunsigned int to be assigned to the CComVariant object. Der Typ des Objekts ist VT_I4, , VT_UI1, VT_I2VT_I4, VT_I8, , VT_UI8, VT_UI2, VT_UI4, oder VT_UI4, bzwCComVariant. .

fltSrc
[in] Der float dem Objekt zugewiesen CComVariant werden soll. Der Typ des CComVariant Objekts ist VT_R4.

dblSrc
[in] Der double dem Objekt zugewiesen CComVariant werden soll. Der Typ des CComVariant Objekts ist VT_R8.

cySrc
[in] Der CY dem Objekt zugewiesen CComVariant werden soll. Der Typ des CComVariant Objekts ist VT_CY.

pSrc
[in] IUnknown Der IDispatch oder der Zeiger, der dem CComVariant Objekt zugewiesen werden soll. AddRef wird auf dem Schnittstellenzeiger aufgerufen. Der Typ des CComVariant Objekts ist VT_DISPATCH bzw VT_UNKNOWN.

Oder ein SAFEARRAY Zeiger, der dem CComVariant Objekt zugewiesen werden soll. Eine Kopie der SAFEARRAY Datei wird im CComVariant Objekt gespeichert. Der Typ des CComVariant Objekts ist eine Kombination aus dem ursprünglichen Typ des SAFEARRAY Und VT_ARRAY.

cSrc
[in] Das Zeichen, das dem CComVariant Objekt zugewiesen werden soll. Der Typ des CComVariant Objekts ist VT_I1.

CComVariant::operator ==

Gibt an, ob das CComVariant Objekt dem angegebenen VARIANTentspricht.

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

Hinweise

Gibt zurück TRUE , wenn der Wert und typ des varSrc Objekts gleich dem Wert und Typ des CComVariant Objekts sind. Andernfalls FALSE. Der Operator verwendet das Standardgebietsschema des Benutzers, um den Vergleich durchzuführen.

Der Operator vergleicht nur den Wert der Variantentypen. Sie vergleicht Zeichenfolgen, ganze Zahlen und Gleitkommapunkte, jedoch keine Arrays oder Datensätze.

CComVariant::operator !=

Gibt an, ob das CComVariant Objekt nicht dem angegebenen VARIANTentspricht.

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

Hinweise

Gibt zurück TRUE , wenn der Wert oder Typ des varSrc Objekts nicht dem Wert oder Typ des CComVariant Objekts entspricht. Andernfalls FALSE. Der Operator verwendet das Standardgebietsschema des Benutzers, um den Vergleich durchzuführen.

Der Operator vergleicht nur den Wert der Variantentypen. Sie vergleicht Zeichenfolgen, ganze Zahlen und Gleitkommapunkte, jedoch keine Arrays oder Datensätze.

CComVariant::operator <

Gibt an, ob das CComVariant Objekt kleiner als die angegebene VARIANTist.

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

Hinweise

Gibt zurück TRUE , wenn der Wert des CComVariant Objekts kleiner als der Wert von varSrcist. Andernfalls FALSE. Der Operator verwendet das Standardgebietsschema des Benutzers, um den Vergleich durchzuführen.

CComVariant::operator >

Gibt an, ob das CComVariant Objekt größer als die angegebene VARIANTist.

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

Hinweise

Gibt zurück TRUE , wenn der Wert des CComVariant Objekts größer als der Wert von varSrcist. Andernfalls FALSE. Der Operator verwendet das Standardgebietsschema des Benutzers, um den Vergleich durchzuführen.

CComVariant::ReadFromStream

Legt den zugrunde liegenden VARIANT Wert auf den VARIANT im angegebenen Datenstrom enthaltenen Fest.

HRESULT ReadFromStream(IStream* pStream);

Parameter

pStream
[in] Ein Zeiger auf die IStream Schnittstelle im Datenstrom, der die Daten enthält.

Rückgabewert

Ein Standard HRESULT -Wert.

Hinweise

ReadToStream erfordert einen vorherigen Aufruf von WriteToStream.

CComVariant::SetByRef

Initialisiert das CComVariant Objekt und legt das vt Element auf VT_BYREF.

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

Parameter

T
Der Typ von VARIANT, z. B BSTR. , , intoder char.

pT
Der Zum Initialisieren des CComVariant Objekts verwendete Zeiger.

Hinweise

SetByRef ist eine Funktionsvorlage, die das CComVariant Objekt auf den Zeiger pT initialisiert und das vt Element auf VT_BYREF. Zum Beispiel:

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

CComVariant::WriteToStream

Speichert den zugrunde liegenden VARIANT Datenstrom.

HRESULT WriteToStream(IStream* pStream);

Parameter

pStream
[in] Ein Zeiger auf die IStream Schnittstelle in einem Datenstrom.

Rückgabewert

Ein Standard HRESULT -Wert.

Siehe auch

Klassenübersicht