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 VARIANT
voci , 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.