COleVariant-Klasse
Kapselt den Datentyp VARIANT .
Syntax
class COleVariant : public tagVARIANT
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
COleVariant::COleVariant | Erstellt ein COleVariant -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
COleVariant::Attach | Fügt einen VARIANT-Wert an eine COleVariant . |
COleVariant::ChangeType | Ändert den Variantentyp dieses COleVariant Objekts. |
COleVariant::Clear | Löscht dieses COleVariant Objekt. |
COleVariant::D etach | Trennt einen VARIANT-Wert von einem COleVariant und gibt den VARIANT-Wert zurück. |
COleVariant::GetByteArrayFromVariantArray | Ruft ein Bytearray aus einem vorhandenen Variantenarray ab. |
COleVariant::SetString | Legt die Zeichenfolge auf einen bestimmten Typ fest, in der Regel ANSI. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
COleVariant::operator LPCVARIANT | Wandelt einen COleVariant Wert in ein LPCVARIANT . |
COleVariant::operator LPVARIANT | Konvertiert ein COleVariant Objekt in ein LPVARIANT . |
COleVariant::operator = | Kopiert einen COleVariant Wert. |
COleVariant::operator == | Vergleicht zwei COleVariant Werte. |
COleVariant::operator << , COleVariant::operator >> |
Gibt einen COleVariant Wert an CArchive oder CDumpContext aus und gibt ein COleVariant Objekt ein CArchive . |
Hinweise
Dieser Datentyp wird in der OLE-Automatisierung verwendet. Insbesondere enthält die DISPPARAMS-Struktur einen Zeiger auf ein Array von VARIANT-Strukturen. Eine DISPPARAMS
Struktur wird verwendet, um Parameter an IDispatch::Invoke zu übergeben.
Hinweis
Diese Klasse wird von der VARIANT
Struktur abgeleitet. Dies bedeutet, dass Sie einen COleVariant
In-Parameter übergeben können, der für eine VARIANT
Und die Datenmember der VARIANT
Struktur zugängliche Datenmember sind COleVariant
.
Die beiden verwandten MFC-Klassen COleCurrency und COleDateTime kapseln die Variant-Datentypen CURRENCY ( VT_CY
) und DATE ( VT_DATE
). Die COleVariant
Klasse wird in den DAO-Klassen umfassend verwendet. Sehen Sie sich diese Klassen für die typische Verwendung dieser Klasse an, z . B. CDaoQueryDef und CDaoRecordset.
Weitere Informationen finden Sie unter den Einträgen VARIANT, CURRENCY, DISPPARAMS und IDispatch::Invoke im Windows SDK.
Weitere Informationen zur Klasse und deren Verwendung in der COleVariant
OLE-Automatisierung finden Sie unter "Übergeben von Parametern in der OLE-Automatisierung" im Artikel Automatisierung.
Vererbungshierarchie
tagVARIANT
COleVariant
Anforderungen
Header: afxdisp.h
COleVariant::Attach
Rufen Sie diese Funktion auf, um das angegebene VARIANT-Objekt an das aktuelle COleVariant
Objekt anzufügen.
void Attach(VARIANT& varSrc);
Parameter
varSrc
Ein vorhandenes VARIANT
Objekt, das an das aktuelle COleVariant
Objekt angefügt werden soll.
Hinweise
Diese Funktion legt den VARTYPE von varSrc auf VT_EMPTY fest.
Weitere Informationen finden Sie in den Einträgen VARIANT und VARENUM im Windows SDK.
COleVariant::COleVariant
Erstellt ein COleVariant
-Objekt.
COleVariant();
COleVariant(const VARIANT& varSrc);
COleVariant(const COleVariant& varSrc);
COleVariant(LPCVARIANT pSrc);
COleVariant(LPCTSTR lpszSrc);
COleVariant(LPCTSTR lpszSrc, VARTYPE vtSrc);
COleVariant(CString& strSrc);
COleVariant(BYTE nSrc);
COleVariant(short nSrc, VARTYPE vtSrc = VT_I2);
COleVariant(long lSrc,VARTYPE vtSrc = VT_I4);
COleVariant(const COleCurrency& curSrc);
COleVariant(float fltSrc);
COleVariant(double dblSrc);
COleVariant(const COleDateTime& timeSrc);
COleVariant(const CByteArray& arrSrc);
COleVariant(const CLongBinary& lbSrc);
COleVariant(LPCITEMIDLIST pidl);
Parameter
varSrc
Ein vorhandenes COleVariant
oder VARIANT
Objekt, das in das neue COleVariant
Objekt kopiert werden soll.
pSrc
Ein Zeiger auf ein VARIANT
Objekt, das in das neue COleVariant
Objekt kopiert wird.
lpszSrc
Eine mit Null beendete Zeichenfolge, die in das neue COleVariant
Objekt kopiert werden soll.
vtSrc
Das VARTYPE
für das neue COleVariant
Objekt.
strSrc
Ein CString-Objekt , das in das neue COleVariant
Objekt kopiert werden soll.
nSrc, lSrc A numerischer Wert, der in das neue COleVariant
Objekt kopiert werden soll.
vtSrc
Das VARTYPE
für das neue COleVariant
Objekt.
curSrc
Ein COleCurrency-Objekt , das in das neue COleVariant
Objekt kopiert werden soll.
fltSrc, dblSrc
Ein in das neue COleVariant
-Objekt zu kopierender numerischer Wert.
timeSrc
Ein COleDateTime-Objekt , das in das neue COleVariant
Objekt kopiert werden soll.
arrSrc
Ein CByteArray-Objekt , das in das neue COleVariant
Objekt kopiert werden soll.
lbSrc
Ein CLongBinary-Objekt , das in das neue COleVariant
Objekt kopiert werden soll.
pidl
Ein Zeiger auf eine ITEMIDLIST-Struktur , die in das neue COleVariant
Objekt kopiert werden soll.
Hinweise
All diese Konstruktoren erstellen neue COleVariant
Objekte, die für den angegebenen Wert initialisiert wurden. Eine kurze Beschreibung der einzelnen Konstruktoren folgt.
COleVariant( ) Erstellt ein leeres
COleVariant
Objekt, VT_EMPTY.COleVariant( varSrc ) Kopiert ein vorhandenes
VARIANT
oderCOleVariant
Objekt. Der Varianttyp wird beibehalten.COleVariant( pSrc ) Kopiert ein vorhandenes
VARIANT
oderCOleVariant
Objekt. Der Varianttyp wird beibehalten.COleVariant( lpszSrc ) Kopiert eine Zeichenfolge in das neue Objekt, VT_BSTR (UNICODE).
COleVariant( lpszSrc , vtSrc ) Kopiert eine Zeichenfolge in das neue Objekt. Der Parameter vtSrc muss VT_BSTR (UNICODE) oder VT_BSTRT (ANSI) sein.
COleVariant( strSrc ) Kopiert eine Zeichenfolge in das neue Objekt, VT_BSTR (UNICODE).
COleVariant( nSrc ) Kopiert eine 8-Bit-Ganzzahl in das neue Objekt, VT_UI1.
COleVariant( nSrc , vtSrc ) Kopiert eine 16-Bit-Ganzzahl (oder einen booleschen Wert) in das neue Objekt. Der Parameter vtSrc muss VT_I2 oder VT_BOOL sein.
COleVariant( lSrc , vtSrc ) Kopiert eine 32-Bit-Ganzzahl (oder SCODE-Wert) in das neue Objekt. Der Parameter vtSrc muss VT_I4, VT_ERROR oder VT_BOOL sein.
COleVariant( curSrc ) Kopiert einen
COleCurrency
Wert in das neue Objekt, VT_CY.COleVariant( fltSrc ) Kopiert einen 32-Bit-Gleitkommawert in das neue Objekt, VT_R4.
COleVariant( dblSrc ) Kopiert einen 64-Bit-Gleitkommawert in das neue Objekt, VT_R8.
COleVariant( timeSrc ) Kopiert einen
COleDateTime
Wert in das neue Objekt, VT_DATE.COleVariant( arrSrc ) Kopiert ein
CByteArray
Objekt in das neue Objekt, VT_EMPTY.COleVariant( lbSrc ) Kopiert ein
CLongBinary
Objekt in das neue Objekt, VT_EMPTY.
Weitere Informationen zu SCODE finden Sie unter Struktur der COM-Fehlercodes im Windows SDK.
COleVariant::ChangeType
Konvertiert den Typ des Variant-Werts in diesem COleVariant
Objekt.
void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);
Parameter
vartype
Der VARTYPE für dieses COleVariant
Objekt.
pSrc
Ein Zeiger auf das VARIANT-Objekt , das konvertiert werden soll. Wenn dieser Wert NULL ist, wird dieses COleVariant
Objekt als Quelle für die Konvertierung verwendet.
Hinweise
Weitere Informationen finden Sie in den Einträgen VARIANT, VARENUM und VariantChangeType im Windows SDK.
COleVariant::Clear
Löscht die VARIANT
.
void Clear();
Hinweise
Dadurch wird der VARTYPE für dieses Objekt auf VT_EMPTY festgelegt. Der COleVariant
Destruktor ruft diese Funktion auf.
Weitere Informationen finden Sie unter "VARTYPE" und "Einträge" im Windows SDK.For more information, see the VARIANT
, VARTYPE, and VariantClear
entries in the Windows SDK.
COleVariant::D etach
Trennt das zugrunde liegende VARIANT-Objekt von diesem COleVariant
Objekt.
VARIANT Detach();
Hinweise
Diese Funktion legt den VARTYPE für dieses COleVariant
Objekt auf VT_EMPTY fest.
Hinweis
Nach dem Aufruf Detach
liegt es in der Verantwortung des Aufrufers, die resultierende VARIANT
Struktur aufzurufenVariantClear
.
Weitere Informationen finden Sie in den Einträgen VARIANT, VARENUM und VariantClear im Windows SDK.
COleVariant::GetByteArrayFromVariantArray
Ruft ein Bytearray aus einem vorhandenen Variantenarray ab.
void GetByteArrayFromVariantArray(CByteArray& bytes);
Parameter
bytes
Ein Verweis auf ein vorhandenes CByteArray-Objekt .
COleVariant::operator LPCVARIANT
Dieser Umwandlungsoperator gibt eine VARIANT
Struktur zurück, deren Wert aus diesem COleVariant
Objekt kopiert wird.
operator LPCVARIANT() const;
Hinweise
COleVariant::operator LPVARIANT
Rufen Sie diesen Umwandlungsoperator auf, um auf die zugrunde liegende VARIANT
Struktur für dieses COleVariant
Objekt zuzugreifen.
operator LPVARIANT();
Hinweise
Achtung
Wenn Sie den Wert in der VARIANT
Struktur ändern, auf die der von dieser Funktion zurückgegebene Zeiger zugreift, wird der Wert dieses COleVariant
Objekts geändert.
COleVariant::operator =
Diese überladenen Zuordnungsoperatoren kopieren den Quellwert in dieses COleVariant
Objekt.
const COleVariant& operator=(const VARIANT& varSrc);
const COleVariant& operator=(LPCVARIANT pSrc);
const COleVariant& operator=(const COleVariant& varSrc);
const COleVariant& operator=(const LPCTSTR lpszSrc);
const COleVariant& operator=(const CString& strSrc);
const COleVariant& operator=(BYTE nSrc);
const COleVariant& operator=(short nSrc);
const COleVariant& operator=(long lSrc);
const COleVariant& operator=(const COleCurrency& curSrc);
const COleVariant& operator=(float fltSrc);
const COleVariant& operator=(double dblSrc);
const COleVariant& operator=(const COleDateTime& dateSrc);
const COleVariant& operator=(const CByteArray& arrSrc);
const COleVariant& operator=(const CLongBinary& lbSrc);
Hinweise
Eine kurze Beschreibung der einzelnen Operatoren folgt:
operator =( varSrc ) Kopiert ein vorhandenes VARIANT- oder
COleVariant
Objekt in dieses Objekt.operator =( pSrc ) Kopiert das VARIANT-Objekt, auf das von pSrc zugegriffen wird, in dieses Objekt.
operator =( lpszSrc ) Kopiert eine mit Null beendete Zeichenfolge in dieses Objekt und legt den VARTYPE auf VT_BSTR fest.
operator =( strSrc ) Kopiert ein CString-Objekt in dieses Objekt und legt den VARTYPE auf VT_BSTR fest.
operator =( nSrc ) Kopiert einen ganzzahligen 8- oder 16-Bit-Wert in dieses Objekt. Wenn nSrc ein 8-Bit-Wert ist, wird der VARTYPE dieser Eigenschaft auf VT_UI1 festgelegt. Wenn nSrc ein 16-Bit-Wert ist und der VARTYPE dieser Eigenschaft VT_BOOL ist, wird er beibehalten. Andernfalls wird er auf VT_I2 festgelegt.
operator =( lSrc ) Kopiert einen ganzzahligen 32-Bit-Wert in dieses Objekt. Wenn der VARTYPE davon VT_ERROR ist, wird er aufbewahrt; andernfalls ist sie auf VT_I4 festgelegt.
operator =( curSrc ) Kopiert ein COleCurrency-Objekt in dieses Objekt und legt den VARTYPE auf VT_CY fest.
operator =( fltSrc ) Kopiert einen 32-Bit-Gleitkommawert in dieses Objekt und legt den VARTYPE auf VT_R4 fest.
operator =( dblSrc ) Kopiert einen 64-Bit-Gleitkommawert in dieses Objekt und legt den VARTYPE auf VT_R8 fest.
operator =( dateSrc ) Kopiert ein COleDateTime-Objekt in dieses Objekt und legt den VARTYPE auf VT_DATE fest.
operator =( arrSrc ) Kopiert ein CByteArray-Objekt in dieses
COleVariant
Objekt.operator =( lbSrc ) Kopiert ein CLongBinary-Objekt in dieses
COleVariant
Objekt.
Weitere Informationen finden Sie in den Einträgen VARIANT und VARENUM im Windows SDK.
COleVariant::operator ==
Dieser Operator vergleicht zwei Variantenwerte und gibt ungleich Null zurück, wenn sie gleich sind. andernfalls 0.
BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;
COleVariant::operator <<
, COleVariant::operator >>
Gibt einen COleVariant
Wert an CArchive
oder CdumpContext
aus und gibt ein COleVariant
Objekt ein CArchive
.
friend CDumpContext& AFXAPI operator<<(
CDumpContext& dc,
OleVariant varSrc);
friend CArchive& AFXAPI operator<<(
CArchive& ar,
COleVariant varSrc);
friend CArchive& AFXAPI operator>>(
CArchive& ar,
COleVariant& varSrc);
Hinweise
Der COleVariant
Einfügeoperator unterstützt<< Diagnosedumping und -speicherung in einem Archiv. Der Extraktionsoperator (>>) unterstützt das Laden aus einem Archiv.
COleVariant::SetString
Legt die Zeichenfolge auf einen bestimmten Typ fest.
void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);
Parameter
lpszSrc
Eine mit Null beendete Zeichenfolge, die in das neue COleVariant
Objekt kopiert werden soll.
VtSrc
Der VARTYPE für das neue COleVariant
Objekt.
Hinweise
Der Parameter vtSrc muss VT_BSTR (UNICODE) oder VT_BSTRT (ANSI) sein. SetString
wird in der Regel verwendet, um Zeichenfolgen auf ANSI festzulegen, da der Standardwert für den COleVariant::COleVariant-Konstruktor mit einem Zeichenfolgen- oder Zeichenfolgenzeigerparameter und kein VARTYPE UNICODE ist.
Ein DAO-Recordset in einem Nicht-UNICODE-Build erwartet, dass Zeichenfolgen ANSI sind. Daher müssen Sie für DAO-Funktionen, die Objekte verwendenCOleVariant
, wenn Sie kein UNICODE-Recordset erstellen, die COleVariant::COleVariant( lpszSrc , vtSrc ) Form des Konstruktors mit vtSrc auf VT_BSTRT (ANSI) festgelegt oder SetString
mit vtSrc auf VT_BSTRT zum Erstellen von ANSI-Zeichenfolgen verwenden. Beispielsweise verwenden die CDaoRecordset
Funktionen CDaoRecordset::Seek und CDaoRecordset::SetFieldValue COleVariant
Objekte als Parameter. Diese Objekte müssen ANSI sein, wenn das DAO-Recordset nicht UNICODE ist.