Freigeben über


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 oder COleVariant Objekt. Der Varianttyp wird beibehalten.

  • COleVariant( pSrc ) Kopiert ein vorhandenes VARIANT oder COleVariant 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 Detachliegt 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.

Siehe auch

Hierarchiediagramm