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 VARIANT ist. |
CComVariant::operator > |
Gibt an, ob das CComVariant Objekt größer als die angegebene VARIANT ist. |
CComVariant::operator != |
Gibt an, ob das CComVariant Objekt nicht dem angegebenen VARIANT entspricht. |
CComVariant::operator = |
Weist dem CComVariant Objekt einen Wert zu. |
CComVariant::operator == |
Gibt an, ob das CComVariant Objekt dem angegebenen VARIANT entspricht. |
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. VARIANT
s 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
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 SysAllocString
Unicode-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 long
oder unsigned int
used to initialize the CComVariant
object. Der Typ des Objekts ist VT_I4
, , VT_UI1
, VT_I2
VT_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 pSrc
die 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 VARIANT
zu.
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_BSTR
sein.
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 VARIANT
gibt 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_MAX
ist, 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_BSTR
GetSize
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 SysAllocString
Unicode-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 long
unsigned int
to be assigned to the CComVariant
object. Der Typ des Objekts ist VT_I4
, , VT_UI1
, VT_I2
VT_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 VARIANT
entspricht.
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 VARIANT
entspricht.
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 VARIANT
ist.
bool operator<(const VARIANT& varSrc) const throw();
Hinweise
Gibt zurück TRUE
, wenn der Wert des CComVariant
Objekts kleiner als der Wert von varSrc
ist. 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 VARIANT
ist.
bool operator>(const VARIANT& varSrc) const throw();
Hinweise
Gibt zurück TRUE
, wenn der Wert des CComVariant
Objekts größer als der Wert von varSrc
ist. 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
. , , int
oder 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.