Condividi tramite


Classe CComVariant

Questa classe esegue il wrapping del VARIANT tipo, fornendo un membro che indica il tipo di dati archiviati.

Sintassi

class CComVariant : public tagVARIANT

Membri

Costruttori pubblici

Nome Descrizione
CComVariant::CComVariant Costruttore.
CComVariant::~CComVariant Distruttore.

Metodi pubblici

Nome Descrizione
CComVariant::Attach Associa un oggetto VARIANT all'oggetto CComVariant .
CComVariant::ChangeType Converte l'oggetto CComVariant in un nuovo tipo.
CComVariant::Clear Cancella l'oggetto CComVariant .
CComVariant::Copy Copia un oggetto VARIANT nell'oggetto CComVariant .
CComVariant::CopyTo Copia il contenuto dell'oggetto CComVariant .
CComVariant::Detach Scollega l'oggetto sottostante VARIANT dall'oggetto CComVariant .
CComVariant::GetSize Restituisce la dimensione in numero di byte del contenuto dell'oggetto CComVariant .
CComVariant::ReadFromStream Carica un oggetto VARIANT da un flusso.
CComVariant::SetByRef Inizializza l'oggetto CComVariant e imposta il vt membro su VT_BYREF.
CComVariant::WriteToStream Salva l'oggetto sottostante VARIANT in un flusso.

Operatori pubblici

Operatore Descrizione
CComVariant::operator < Indica se l'oggetto CComVariant è minore dell'oggetto specificato VARIANT.
CComVariant::operator > Indica se l'oggetto CComVariant è maggiore dell'oggetto specificato VARIANT.
CComVariant::operator != Indica se l'oggetto CComVariant non è uguale all'oggetto specificato VARIANT.
CComVariant::operator = Assegna un valore all'oggetto CComVariant .
CComVariant::operator == Indica se l'oggetto CComVariant è uguale all'oggetto specificato VARIANT.

Osservazioni:

CComVariant esegue il wrapping del VARIANT tipo e VARIANTARG , costituito da un'unione e da un membro che indica il tipo di dati archiviati nell'unione. VARIANTs vengono in genere usati in Automazione.

CComVariant deriva dal VARIANT tipo in modo che possa essere usato ovunque sia possibile usare un oggetto VARIANT . È possibile, ad esempio, utilizzare la V_VT macro per estrarre il tipo di un CComVariant oggetto o accedere direttamente al vt membro così come è possibile usare un oggetto VARIANT.

Gerarchia di ereditarietà

tagVARIANT
 └ CComVariant

Requisiti

Intestazione: atlcomcli.h

CComVariant::Attach

Cancella in modo sicuro il contenuto corrente dell'oggetto CComVariant , copia il contenuto di pSrc in questo oggetto, quindi imposta il tipo variant di pSrc su VT_EMPTY.

HRESULT Attach(VARIANT* pSrc);

Parametri

pSrc
[in] Punta all'oggetto VARIANT da associare all'oggetto .

Valore restituito

Un valore HRESULT standard.

Osservazioni:

La proprietà dei dati contenuti da pSrc viene trasferita all'oggetto CComVariant .

CComVariant::CComVariant

Ogni costruttore gestisce l'inizializzazione sicura dell'oggetto CComVariant chiamando la VariantInit funzione Win32 o impostando il valore e il tipo dell'oggetto in base ai parametri passati.

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

Parametri

varSrc
[in] Oggetto CComVariant o VARIANT utilizzato per inizializzare l'oggetto CComVariant . Il contenuto della variante di origine viene copiato nella destinazione senza conversione.

lpszSrc
[in] Stringa di caratteri utilizzata per inizializzare l'oggetto CComVariant . È possibile passare una stringa di caratteri Wide (Unicode) con terminazione zero alla LPCOLESTR versione del costruttore o una stringa ANSI alla LPCSTR versione. In entrambi i casi, la stringa viene convertita in un unicode BSTR allocato usando SysAllocString. Il tipo dell'oggetto CComVariant è VT_BSTR.

bSrc
[in] Oggetto bool utilizzato per inizializzare l'oggetto CComVariant . L'argomento bool viene convertito in un oggetto VARIANT_BOOL prima di essere archiviato. Il tipo dell'oggetto CComVariant è VT_BOOL.

nSrc
[in] Oggetto int, BYTEshort, unsigned shortLONGLONGlongULONGLONG, unsigned long, o unsigned int utilizzato per inizializzare l'oggetto .CComVariant Il tipo dell'oggetto CComVariant è VT_I4, VT_UI1VT_I2, , VT_I4, VT_I8, VT_UI8, VT_UI2, VT_UI4o VT_UI4, rispettivamente.

vtSrc
[in] Tipo della variante. Quando il primo parametro è int, i tipi validi sono VT_I4 e VT_INT. Quando il primo parametro è long, i tipi validi sono VT_I4 e VT_ERROR. Quando il primo parametro è double, i tipi validi sono VT_R8 e VT_DATE. Quando il primo parametro è unsigned int, i tipi validi sono VT_UI4 e VT_UINT.

fltSrc
[in] Oggetto float utilizzato per inizializzare l'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_R4.

dblSrc
[in] Oggetto double utilizzato per inizializzare l'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_R8.

cySrc
[in] Oggetto CY utilizzato per inizializzare l'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_CY.

pSrc
[in] Puntatore IDispatch o IUnknown utilizzato per inizializzare l'oggetto CComVariant . AddRef viene chiamato sul puntatore dell'interfaccia. Il tipo dell'oggetto CComVariant è VT_DISPATCH o VT_UNKNOWN, rispettivamente.

In alternativa, il SAFERRAY puntatore utilizzato per inizializzare l'oggetto CComVariant . Una copia di viene archiviata SAFEARRAY nell'oggetto CComVariant . Il tipo dell'oggetto CComVariant è una combinazione del tipo originale di SAFEARRAY e VT_ARRAY.

cSrc
[in] Oggetto char utilizzato per inizializzare l'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_I1.

bstrSrc
[in] Oggetto BSTR utilizzato per inizializzare l'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_BSTR.

Osservazioni:

Il distruttore gestisce la pulizia chiamando CComVariant::Clear.

CComVariant::~CComVariant

Distruttore.

~CComVariant() throw();

Osservazioni:

Questo metodo gestisce la pulizia chiamando CComVariant::Clear.

CComVariant::ChangeType

Converte l'oggetto CComVariant in un nuovo tipo.

HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);

Parametri

vtNew
[in] Nuovo tipo per l'oggetto CComVariant .

pSrc
[in] Puntatore all'oggetto il VARIANT cui valore viene convertito nel nuovo tipo. Il valore predefinito è NULL, ovvero l'oggetto CComVariant viene convertito sul posto.

Valore restituito

Un valore HRESULT standard.

Osservazioni:

Se si passa un valore per pSrc, ChangeType verrà usato VARIANT come origine per la conversione. In caso contrario, l'oggetto è l'origine CComVariant .

CComVariant::Clear

Cancella l'oggetto CComVariant chiamando la VariantClear funzione Win32.

HRESULT Clear();

Valore restituito

Un valore HRESULT standard.

Osservazioni:

Il distruttore chiama Clearautomaticamente .

CComVariant::Copy

Libera l'oggetto CComVariant e quindi lo assegna a una copia dell'oggetto specificato VARIANT.

HRESULT Copy(const VARIANT* pSrc);

Parametri

pSrc
[in] Puntatore all'oggetto VARIANT da copiare.

Valore restituito

Un valore HRESULT standard.

CComVariant::CopyTo

Copia il contenuto dell'oggetto CComVariant .

HRESULT CopyTo(BSTR* pstrDest);

Parametri

pstrDest
Punta a un BSTR oggetto che riceverà una copia del contenuto dell'oggetto CComVariant .

Valore restituito

Un valore HRESULT standard.

Osservazioni:

L'oggetto CComVariant deve essere di tipo VT_BSTR.

CComVariant::Detach

Scollega l'oggetto sottostante VARIANT dall'oggetto CComVariant e imposta il tipo dell'oggetto su VT_EMPTY.

HRESULT Detach(VARIANT* pDest);

Parametri

pDest
[out] Restituisce il valore sottostante VARIANT dell'oggetto .

Valore restituito

Un valore HRESULT standard.

Osservazioni:

Il contenuto dell'oggetto VARIANT a cui viene fatto pDest riferimento viene cancellato automaticamente prima di essere assegnato al valore e al tipo dell'oggetto chiamante CComVariant .

CComVariant::GetSize

Per simple-fixed size VARIANTs, questo metodo restituisce il sizeof valore per il tipo di dati sottostante più sizeof(VARTYPE).

ULONG GetSize() const;

Valore restituito

Dimensione in byte del contenuto corrente dell'oggetto CComVariant .

Osservazioni:

Se contiene un puntatore all'interfaccia VARIANT , GetSize esegue query per IPersistStream o IPersistStreamInit. In caso di esito positivo, il valore restituito è costituito dai 32 bit bassi del valore restituito da GetSizeMax più sizeof(CLSID) e sizeof(VARTYPE). Se il puntatore dell'interfaccia è NULL, GetSize restituisce sizeof(CLSID) più sizeof(VARTYPE). Se la dimensione totale è maggiore di ULONG_MAX, GetSize restituisce sizeof(VARTYPE), che indica un errore.

In tutti gli altri casi, un oggetto temporaneo VARIANT di tipo VT_BSTR viene temporaneo dall'oggetto corrente VARIANT. La lunghezza di questo BSTR valore viene calcolata come dimensione della lunghezza della stringa più la lunghezza della stringa stessa più le dimensioni del NULL carattere più sizeof(VARTYPE). Se non è possibile forzare l'oggetto VARIANT a un VARIANT di tipo VT_BSTR, GetSize restituisce sizeof(VARTYPE).

Le dimensioni restituite da questo metodo corrispondono al numero di byte utilizzati da CComVariant::WriteToStream in condizioni di esito positivo.

CComVariant::operator =

Assegna un valore e un tipo corrispondente all'oggetto CComVariant .

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

Parametri

varSrc
[in] Oggetto CComVariant o VARIANT da assegnare all'oggetto CComVariant . Il contenuto della variante di origine viene copiato nella destinazione senza conversione.

bstrSrc
[in] Oggetto BSTR da assegnare all'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_BSTR.

lpszSrc
[in] Stringa di caratteri da assegnare all'oggetto CComVariant . È possibile passare una stringa di caratteri Wide (Unicode) con terminazione zero alla LPCOLESTR versione dell'operatore o di una stringa ANSI alla LPCSTR versione. In entrambi i casi, la stringa viene convertita in un unicode BSTR allocato usando SysAllocString. Il tipo dell'oggetto CComVariant è VT_BSTR.

bSrc
[in] Oggetto bool da assegnare all'oggetto CComVariant . L'argomento bool viene convertito in un oggetto VARIANT_BOOL prima di essere archiviato. Il tipo dell'oggetto CComVariant è VT_BOOL.

nSrc
[in] Oggetto int, BYTEshort, long, ULONGLONGunsigned shortLONGLONG, unsigned longo unsigned int da assegnare all'oggetto .CComVariant Il tipo dell'oggetto CComVariant è VT_I4, VT_UI1VT_I2, , VT_I4, VT_I8, VT_UI8, VT_UI2, VT_UI4o VT_UI4, rispettivamente.

fltSrc
[in] Oggetto float da assegnare all'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_R4.

dblSrc
[in] Oggetto double da assegnare all'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_R8.

cySrc
[in] Oggetto CY da assegnare all'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_CY.

pSrc
[in] Puntatore IDispatch o IUnknown da assegnare all'oggetto CComVariant . AddRef viene chiamato sul puntatore dell'interfaccia. Il tipo dell'oggetto CComVariant è VT_DISPATCH o VT_UNKNOWN, rispettivamente.

In alternativa, un SAFEARRAY puntatore da assegnare all'oggetto CComVariant . Una copia di viene archiviata SAFEARRAY nell'oggetto CComVariant . Il tipo dell'oggetto CComVariant è una combinazione del tipo originale di SAFEARRAY e VT_ARRAY.

cSrc
[in] Carattere da assegnare all'oggetto CComVariant . Il tipo dell'oggetto CComVariant è VT_I1.

CComVariant::operator ==

Indica se l'oggetto CComVariant è uguale all'oggetto specificato VARIANT.

bool operator==(const VARIANT& varSrc) const throw();

Osservazioni:

Restituisce TRUE se il valore e il tipo di varSrc sono uguali rispettivamente al valore e al tipo dell'oggetto CComVariant . In caso contrario, FALSE. L'operatore usa le impostazioni locali predefinite dell'utente per eseguire il confronto.

L'operatore confronta solo il valore dei tipi varianti. Confronta stringhe, numeri interi e virgola mobile, ma non ma matrici o record.

CComVariant::operator !=

Indica se l'oggetto CComVariant non è uguale all'oggetto specificato VARIANT.

bool operator!=(const VARIANT& varSrc) const throw();

Osservazioni:

Restituisce TRUE se il valore o il tipo di varSrc non è uguale rispettivamente al valore o al tipo dell'oggetto CComVariant . In caso contrario, FALSE. L'operatore usa le impostazioni locali predefinite dell'utente per eseguire il confronto.

L'operatore confronta solo il valore dei tipi varianti. Confronta stringhe, numeri interi e virgola mobile, ma non ma matrici o record.

CComVariant::operator <

Indica se l'oggetto CComVariant è minore dell'oggetto specificato VARIANT.

bool operator<(const VARIANT& varSrc) const throw();

Osservazioni:

Restituisce TRUE se il valore dell'oggetto CComVariant è minore del valore di varSrc. In caso contrario, FALSE. L'operatore usa le impostazioni locali predefinite dell'utente per eseguire il confronto.

CComVariant::operator >

Indica se l'oggetto CComVariant è maggiore dell'oggetto specificato VARIANT.

bool operator>(const VARIANT& varSrc) const throw();

Osservazioni:

Restituisce TRUE se il valore dell'oggetto CComVariant è maggiore del valore di varSrc. In caso contrario, FALSE. L'operatore usa le impostazioni locali predefinite dell'utente per eseguire il confronto.

CComVariant::ReadFromStream

Imposta l'oggetto sottostante VARIANT sull'oggetto VARIANT contenuto nel flusso specificato.

HRESULT ReadFromStream(IStream* pStream);

Parametri

pStream
[in] Puntatore all'interfaccia IStream nel flusso contenente i dati.

Valore restituito

Un valore HRESULT standard.

Osservazioni:

ReadToStream richiede una chiamata precedente a WriteToStream.

CComVariant::SetByRef

Inizializza l'oggetto CComVariant e imposta il vt membro su VT_BYREF.

template < typename T >
void SetByRef(T* pT) throw();

Parametri

T
Tipo di VARIANT, ad esempio , BSTRinto char.

pT
Puntatore utilizzato per inizializzare l'oggetto CComVariant .

Osservazioni:

SetByRef è un modello di funzione che inizializza l'oggetto CComVariant sul puntatore pT e imposta il vt membro su VT_BYREF. Ad esempio:

CComVariant var;
int nData = 10;
var.SetByRef(&nData);   

CComVariant::WriteToStream

Salva l'oggetto sottostante VARIANT in un flusso.

HRESULT WriteToStream(IStream* pStream);

Parametri

pStream
[in] Puntatore all'interfaccia IStream in un flusso.

Valore restituito

Un valore HRESULT standard.

Vedi anche

Panoramica della classe