Condividi tramite


Classe COleVariant

Incapsula il tipo di dati VARIANT .

Sintassi

class COleVariant : public tagVARIANT

Membri

Costruttori pubblici

Nome Descrizione
COleVariant::COleVariant Costruisce un oggetto COleVariant.

Metodi pubblici

Nome Descrizione
COleVariant::Attach Associa un valore VARIANT a un oggetto COleVariant.
COleVariant::ChangeType Modifica il tipo di variante di questo COleVariant oggetto.
COleVariant::Clear Cancella questo COleVariant oggetto.
COleVariant::D etach Scollega un valore VARIANT da un COleVariant oggetto e restituisce variant.
COleVariant::GetByteArrayFromVariantArray Recupera una matrice di byte da una matrice di varianti esistente.
COleVariant::SetString Imposta la stringa su un particolare tipo, in genere ANSI.

Operatori pubblici

Nome Descrizione
COleVariant::operator LPCVARIANT Converte un COleVariant valore in un oggetto LPCVARIANT.
COleVariant::operator LPVARIANT Converte un COleVariant oggetto in un oggetto LPVARIANT.
COleVariant::operator = Copia un COleVariant valore.
COleVariant::operator == Confronta due COleVariant valori.
COleVariant::operator <<, COleVariant::operator >> Restituisce un COleVariant valore a CArchive o CDumpContext e inserisce un COleVariant oggetto da CArchive.

Osservazioni:

Questo tipo di dati viene usato nell'automazione OLE. In particolare, la struttura DISPPARAMS contiene un puntatore a una matrice di strutture VARIANT. Una DISPPARAMS struttura viene usata per passare parametri a IDispatch::Invoke.

Nota

Questa classe è derivata dalla VARIANT struttura . Ciò significa che è possibile passare un oggetto COleVariant in un parametro che chiama un VARIANT oggetto e che i membri dati della VARIANT struttura sono membri dati accessibili di COleVariant.

Le due classi MFC correlate COleCurrency e COleDateTime incapsulano i tipi di dati variant CURRENCY ( VT_CY) e DATE ( VT_DATE). La COleVariant classe viene usata ampiamente nelle classi DAO. Vedere queste classi per l'utilizzo tipico di questa classe, ad esempio CDaoQueryDef e CDaoRecordset.

Per altre informazioni, vedere le voci VARIANT, CURRENCY, DISPPARAMS e IDispatch::Invoke in Windows SDK.

Per altre informazioni sulla COleVariant classe e sul relativo uso nell'automazione OLE, vedere "Passaggio di parametri in automazione OLE" nell'articolo Automazione.

Gerarchia di ereditarietà

tagVARIANT

COleVariant

Requisiti

Intestazione: afxdisp.h

COleVariant::Attach

Chiamare questa funzione per associare l'oggetto VARIANT specificato all'oggetto correnteCOleVariant.

void Attach(VARIANT& varSrc);

Parametri

varSrc
Oggetto esistente VARIANT da associare all'oggetto corrente COleVariant .

Osservazioni:

Questa funzione imposta varTYPE di varSrc su VT_EMPTY.

Per altre informazioni, vedere le voci VARIANT e VARENUM in Windows SDK.

COleVariant::COleVariant

Costruisce un oggetto COleVariant.

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

Parametri

varSrc
Oggetto o VARIANT esistente COleVariant da copiare nel nuovo COleVariant oggetto.

pSrc
Puntatore a un VARIANT oggetto che verrà copiato nel nuovo COleVariant oggetto.

lpszSrc
Stringa con terminazione Null da copiare nel nuovo COleVariant oggetto.

vtSrc
Oggetto VARTYPE per il nuovo COleVariant oggetto .

strSrc
Oggetto CString da copiare nel nuovo COleVariant oggetto .

nSrc, lSrc Valore numerico da copiare nel nuovo COleVariant oggetto.

vtSrc
Oggetto VARTYPE per il nuovo COleVariant oggetto .

curSrc
Oggetto COleCurrency da copiare nel nuovo COleVariant oggetto .

fltSrc, dblSrc
Un valore numerico da copiare nel nuovo oggetto COleVariant.

timeSrc
Oggetto COleDateTime da copiare nel nuovo COleVariant oggetto .

arrSrc
Oggetto CByteArray da copiare nel nuovo COleVariant oggetto .

lbSrc
Oggetto CLongBinary da copiare nel nuovo COleVariant oggetto .

pidl
Puntatore a una struttura ITEMIDLIST da copiare nel nuovo COleVariant oggetto.

Osservazioni:

Tutti questi costruttori creano nuovi COleVariant oggetti inizializzati sul valore specificato. Di seguito è riportata una breve descrizione di ognuno di questi costruttori.

  • COleVariant( ) Crea un oggetto vuoto COleVariant VT_EMPTY.

  • COleVariant( varSrc ) Copia un oggetto o COleVariant esistenteVARIANT. Il tipo variant viene mantenuto.

  • COleVariant( pSrc ) Copia un oggetto o COleVariant esistenteVARIANT. Il tipo variant viene mantenuto.

  • COleVariant( lpszSrc ) Copia una stringa nel nuovo oggetto, VT_BSTR (UNICODE).

  • COleVariant( lpszSrc , vtSrc ) Copia una stringa nel nuovo oggetto. Il parametro vtSrc deve essere VT_BSTR (UNICODE) o VT_BSTRT (ANSI).

  • COleVariant( strSrc ) Copia una stringa nel nuovo oggetto, VT_BSTR (UNICODE).

  • COleVariant( nSrc ) Copia un intero a 8 bit nel nuovo oggetto VT_UI1.

  • COleVariant( nSrc , vtSrc ) Copia un intero a 16 bit (o un valore booleano) nel nuovo oggetto. Il parametro vtSrc deve essere VT_I2 o VT_BOOL.

  • COleVariant( lSrc , vtSrc ) Copia un intero a 32 bit (o un valore SCODE) nel nuovo oggetto. Il parametro vtSrc deve essere VT_I4, VT_ERROR o VT_BOOL.

  • COleVariant( curSrc ) Copia un COleCurrency valore nel nuovo oggetto, VT_CY.

  • COleVariant( fltSrc ) Copia un valore a virgola mobile a 32 bit nel nuovo oggetto, VT_R4.

  • COleVariant( dblSrc ) Copia un valore a virgola mobile a 64 bit nel nuovo oggetto, VT_R8.

  • COleVariant( timeSrc ) Copia un COleDateTime valore nel nuovo oggetto VT_DATE.

  • COleVariant( arrSrc ) Copia un CByteArray oggetto nel nuovo oggetto VT_EMPTY.

  • COleVariant( lbSrc ) Copia un CLongBinary oggetto nel nuovo oggetto VT_EMPTY.

Per altre informazioni su SCODE, vedere Struttura dei codici di errore COM in Windows SDK.

COleVariant::ChangeType

Converte il tipo di valore variant in questo COleVariant oggetto.

void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);

Parametri

vartype
VARTYPE per questo COleVariant oggetto.

pSrc
Puntatore all'oggetto VARIANT da convertire. Se questo valore è NULL, questo COleVariant oggetto viene utilizzato come origine per la conversione.

Osservazioni:

Per altre informazioni, vedere le voci VARIANT, VARENUM e VariantChangeType in Windows SDK.

COleVariant::Clear

Cancella l'oggetto VARIANT.

void Clear();

Osservazioni:

In questo modo viene impostato il valore VARTYPE per questo oggetto su VT_EMPTY. Il COleVariant distruttore chiama questa funzione.

Per altre informazioni, vedere le VARIANTvoci , VARTYPE e VariantClear in Windows SDK.

COleVariant::D etach

Scollega l'oggetto VARIANT sottostante da questo COleVariant oggetto .

VARIANT Detach();

Osservazioni:

Questa funzione imposta varTYPE per questo COleVariant oggetto su VT_EMPTY.

Nota

Dopo aver chiamato Detach, è responsabilità del chiamante chiamare VariantClear sulla struttura risultante VARIANT .

Per altre informazioni, vedere le voci VARIANT, VARENUM e VariantClear in Windows SDK.

COleVariant::GetByteArrayFromVariantArray

Recupera una matrice di byte da una matrice di varianti esistente

void GetByteArrayFromVariantArray(CByteArray& bytes);

Parametri

bytes
Riferimento a un oggetto CByteArray esistente.

COleVariant::operator LPCVARIANT

Questo operatore di cast restituisce una VARIANT struttura il cui valore viene copiato da questo COleVariant oggetto.

operator LPCVARIANT() const;

Osservazioni:

COleVariant::operator LPVARIANT

Chiamare questo operatore di cast per accedere alla struttura sottostante VARIANT per questo COleVariant oggetto.

operator LPVARIANT();

Osservazioni:

Attenzione

La modifica del valore nella VARIANT struttura a cui accede il puntatore restituito da questa funzione modificherà il valore di questo COleVariant oggetto.

COleVariant::operator =

Questi operatori di assegnazione di overload copiano il valore di origine in questo COleVariant oggetto.

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

Osservazioni:

Di seguito è riportata una breve descrizione di ogni operatore:

  • operator =( varSrc ) Copia in questo oggetto un oggetto VARIANT o COleVariant un oggetto esistente.

  • operator =( pSrc ) Copia l'oggetto VARIANT accessibile da pSrc in questo oggetto.

  • operator =( lpszSrc ) Copia una stringa con terminazione Null in questo oggetto e imposta VARTYPE su VT_BSTR.

  • operator =( strSrc ) Copia un oggetto CString in questo oggetto e imposta VARTYPE su VT_BSTR.

  • operator =( nSrc ) Copia un valore intero a 8 o 16 bit in questo oggetto. Se nSrc è un valore a 8 bit, il valore VARTYPE di viene impostato su VT_UI1. Se nSrc è un valore a 16 bit e varTYPE di questo è VT_BOOL, viene mantenuto; in caso contrario, viene impostato su VT_I2.

  • operator =( lSrc ) Copia un valore intero a 32 bit in questo oggetto. Se il VARTYPE di questo è VT_ERROR, viene mantenuto; in caso contrario, è impostato su VT_I4.

  • operator =( curSrc ) Copia un oggetto COleCurrency in questo oggetto e imposta VARTYPE su VT_CY.

  • operator =( fltSrc ) Copia un valore a virgola mobile a 32 bit in questo oggetto e imposta VARTYPE su VT_R4.

  • operator =( dblSrc ) Copia un valore a virgola mobile a 64 bit in questo oggetto e imposta VARTYPE su VT_R8.

  • operator =( dateSrc ) Copia un oggetto COleDateTime in questo oggetto e imposta VARTYPE su VT_DATE.

  • operator =( arrSrc ) Copia un oggetto CByteArray in questo COleVariant oggetto.

  • operator =( lbSrc ) Copia un oggetto CLongBinary in questo COleVariant oggetto.

Per altre informazioni, vedere le voci VARIANT e VARENUM in Windows SDK.

COleVariant::operator ==

Questo operatore confronta due valori varianti e restituisce un valore diverso da zero se sono uguali; in caso contrario, 0.

BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;

COleVariant::operator <<, COleVariant::operator >>

Restituisce un COleVariant valore a CArchive o CdumpContext e inserisce un COleVariant oggetto da 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);

Osservazioni:

L'operatore COleVariant di inserimento (<<) supporta il dump diagnostico e l'archiviazione in un archivio. L'operatore di estrazione (>>) supporta il caricamento da un archivio.

COleVariant::SetString

Imposta la stringa su un tipo specifico.

void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);

Parametri

lpszSrc
Stringa con terminazione Null da copiare nel nuovo COleVariant oggetto.

VtSrc
VARTYPE per il nuovo COleVariant oggetto.

Osservazioni:

Il parametro vtSrc deve essere VT_BSTR (UNICODE) o VT_BSTRT (ANSI). SetString viene in genere usato per impostare stringhe su ANSI, poiché l'impostazione predefinita per il costruttore COleVariant::COleVariant con un parametro string o di un puntatore stringa e nessun valore VARTYPE è UNICODE.

Un recordset DAO in una compilazione non UNICODE prevede che le stringhe siano ANSI. Pertanto, per le funzioni DAO che usano COleVariant oggetti, se non si crea un recordset UNICODE, è necessario usare il formato COleVariant::COleVariant( lpszSrc , vtSrc ) del costruttore con vtSrc impostato su VT_BSTRT (ANSI) o usare SetString con vtSrc impostato su VT_BSTRT per creare stringhe ANSI. Ad esempio, le CDaoRecordset funzioni CDaoRecordset::Seek e CDaoRecordset::SetFieldValue usano COleVariant oggetti come parametri. Questi oggetti devono essere ANSI se il recordset DAO non è UNICODE.

Vedi anche

Grafico della gerarchia