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. VARIANT
s 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à
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
, BYTE
short
, unsigned short
LONGLONG
long
ULONGLONG
, unsigned long
, o unsigned int
utilizzato per inizializzare l'oggetto .CComVariant
Il tipo dell'oggetto CComVariant
è VT_I4
, VT_UI1
VT_I2
, , VT_I4
, VT_I8
, VT_UI8
, VT_UI2
, VT_UI4
o 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 Clear
automaticamente .
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 VARIANT
s, 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
, BYTE
short
, long
, ULONGLONG
unsigned short
LONGLONG
, unsigned long
o unsigned int
da assegnare all'oggetto .CComVariant
Il tipo dell'oggetto CComVariant
è VT_I4
, VT_UI1
VT_I2
, , VT_I4
, VT_I8
, VT_UI8
, VT_UI2
, VT_UI4
o 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 , BSTR
int
o 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.