Clase COleVariant
Encapsula el tipo de datos VARIANT .
Sintaxis
class COleVariant : public tagVARIANT
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
COleVariant::COleVariant | Construye un objeto COleVariant . |
Métodos públicos
Nombre | Descripción |
---|---|
COleVariant::Attach | Asocia un valor VARIANT a COleVariant . |
COleVariant::ChangeType | Cambia el tipo variant de este objeto COleVariant . |
COleVariant::Clear | Borra este COleVariant objeto. |
COleVariant::Detach | Desasocia un valor VARIANT de COleVariant y devuelve el valor VARIANT. |
COleVariant::GetByteArrayFromVariantArray | Recupera una matriz de bytes de una matriz de tipo variant existente. |
COleVariant::SetString | Establece la cadena en un tipo determinado, normalmente ANSI. |
Operadores públicos
Nombre | Descripción |
---|---|
COleVariant::operator LPCVARIANT | Convierte un valor COleVariant en LPCVARIANT . |
COleVariant::operator LPVARIANT | Convierte un objeto COleVariant en LPVARIANT . |
COleVariant::operator = | Copia un valor COleVariant . |
COleVariant::operator == | Compara dos valores COleVariant . |
COleVariant::operator << , COleVariant::operator >> |
Genera un valor COleVariant en CArchive o CDumpContext y toma como entrada un objeto COleVariant de CArchive . |
Comentarios
Este tipo de datos se usa en la automatización OLE. Específicamente, la estructura DISPPARAMS contiene un puntero a una matriz de estructuras VARIANT. Se usa una estructura DISPPARAMS
para pasar parámetros a IDispatch::Invoke.
Nota:
Esta clase se deriva de la estructura VARIANT
. lo que significa que puede pasar un elemento COleVariant
en un parámetro que reclama un elemento VARIANT
y que los miembros de datos de la estructura VARIANT
son miembros de datos accesibles de COleVariant
.
Las dos clases de MFC relacionadas, COleCurrency y COleDateTime, encapsulan los tipos de datos variant CURRENCY (VT_CY
) y DATE (VT_DATE
). La clase COleVariant
se usa ampliamente en las clases DAO; consulte estas clases para ver el uso típico de esta clase, por ejemplo CDaoQueryDef y CDaoRecordset.
Para obtener más información, consulte las entradas VARIANT, CURRENCY, DISPPARAMS e IDispatch::Invoke en Windows SDK.
Para obtener más información sobre la clase COleVariant
y su uso en la automatización OLE, consulte "Paso de parámetros en la automatización OLE" en el artículo Automatización.
Jerarquía de herencia
tagVARIANT
COleVariant
Requisitos
Encabezado: afxdisp.h
COleVariant::Attach
Llame a esta función para adjuntar el objeto VARIANT especificado al objeto COleVariant
actual.
void Attach(VARIANT& varSrc);
Parámetros
varSrc
Objeto VARIANT
existente que se va a adjuntar al objeto COleVariant
actual.
Comentarios
Esta función establece el elemento VARTYPE de varSrc en VT_EMPTY.
Para obtener más información, consulte las entradas VARIANT y VARENUM en Windows SDK.
COleVariant::COleVariant
Construye un objeto 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);
Parámetros
varSrc
Objeto COleVariant
o VARIANT
existente que se va a copiar en el nuevo objeto COleVariant
.
pSrc
Puntero a un objeto VARIANT
que se va a copiar en el nuevo objeto COleVariant
.
lpszSrc
Cadena terminada en null que se va a copiar en el nuevo objeto COleVariant
.
vtSrc
Elemento VARTYPE
del nuevo objeto COleVariant
.
strSrc
Objeto CString que se va a copiar en el nuevo objeto COleVariant
.
nSrc, lSrc Valor numérico que se va a copiar en el nuevo objeto COleVariant
.
vtSrc
Elemento VARTYPE
del nuevo objeto COleVariant
.
curSrc
Objeto COleCurrency que se va a copiar en el nuevo objeto COleVariant
.
fltSrc, dblSrc
Un valor numérico que se va a copiar en el nuevo objeto COleVariant
.
timeSrc
Objeto COleDateTime que se va a copiar en el nuevo objeto COleVariant
.
arrSrc
Objeto CByteArray que se va a copiar en el nuevo objeto COleVariant
.
lbSrc
Objeto CLongBinary que se va a copiar en el nuevo objeto COleVariant
.
pidl
Puntero a una estructura ITEMIDLIST que se va a copiar en el nuevo COleVariant
objeto.
Comentarios
Todos estos constructores crean objetos COleVariant
nuevos inicializados en el valor especificado. A continuación, se muestra una breve descripción de cada uno de estos constructores.
COleVariant( ) Crea un objeto
COleVariant
vacío, VT_EMPTY.COleVariant( varSrc ) Copia un objeto o
COleVariant
existenteVARIANT
. El tipo variant se conserva.COleVariant( pSrc ) Copia un objeto o
COleVariant
existenteVARIANT
. El tipo variant se conserva.COleVariant( lpszSrc ) Copia una cadena en el nuevo objeto, VT_BSTR (UNICODE).
COleVariant( lpszSrc , vtSrc ) Copia una cadena en el nuevo objeto. El parámetro vtSrc debe ser VT_BSTR (UNICODE) o VT_BSTRT (ANSI).
COleVariant( strSrc ) Copia una cadena en el nuevo objeto, VT_BSTR (UNICODE).
COleVariant( nSrc ) Copia un entero de 8 bits en el nuevo objeto, VT_UI1.
COleVariant( nSrc , vtSrc ) Copia un entero de 16 bits (o valor booleano) en el nuevo objeto. El parámetro vtSrc debe ser VT_I2 o VT_BOOL.
COleVariant( lSrc , vtSrc ) Copia un entero de 32 bits (o valor SCODE) en el nuevo objeto. El parámetro vtSrc debe ser VT_I4, VT_ERROR o VT_BOOL.
COleVariant( curSrc ) Copia un
COleCurrency
valor en el nuevo objeto, VT_CY.COleVariant( fltSrc ) Copia un valor de punto flotante de 32 bits en el nuevo objeto, VT_R4.
COleVariant( dblSrc ) Copia un valor de punto flotante de 64 bits en el nuevo objeto, VT_R8.
COleVariant( timeSrc ) Copia un
COleDateTime
valor en el nuevo objeto, VT_DATE.COleVariant( arrSrc ) Copia un
CByteArray
objeto en el nuevo objeto, VT_EMPTY.COleVariant( lbSrc ) Copia un
CLongBinary
objeto en el nuevo objeto, VT_EMPTY.
Para más información sobre SCODE, consulte Estructura de códigos de error de COM en Windows SDK.
COleVariant::ChangeType
Convierte el tipo de valor variant en este objeto COleVariant
.
void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);
Parámetros
vartype
Elemento VARTYPE de este objeto COleVariant
.
pSrc
Puntero al objeto VARIANT que se va a convertir. Si este valor es NULL, este objeto COleVariant
se usa como origen para la conversión.
Comentarios
Para obtener más información, consulte las entradas VARIANT, VARENUM y VariantChangeType en Windows SDK.
COleVariant::Clear
Borra el objeto VARIANT
.
void Clear();
Comentarios
Esto establece el elemento VARTYPE de este objeto en VT_EMPTY. El destructor de COleVariant
llama a esta función.
Para obtener más información, consulte las entradas VARIANT
, VARTYPE y VariantClear
en Windows SDK.
COleVariant::Detach
Desasocia el objeto VARIANT subyacente de este objeto COleVariant
.
VARIANT Detach();
Comentarios
Esta función establece el elemento VARTYPE de este objeto COleVariant
en VT_EMPTY.
Nota:
Después de llamar a Detach
, es responsabilidad del autor de la llamada llamar a VariantClear
en la estructura VARIANT
resultante.
Para obtener más información, consulte las entradas VARIANT, VARENUM y VariantClear en Windows SDK.
COleVariant::GetByteArrayFromVariantArray
Recupera una matriz de bytes de una matriz de tipo variant existente.
void GetByteArrayFromVariantArray(CByteArray& bytes);
Parámetros
bytes
Referencia a un objeto CByteArray existente.
COleVariant::operator LPCVARIANT
El operador de conversión devuelve una estructura VARIANT
cuyo valor se ha copiado de este objeto COleVariant
.
operator LPCVARIANT() const;
Comentarios
COleVariant::operator LPVARIANT
Llame a este operador de conversión para acceder a la estructura VARIANT
subyacente de este objeto COleVariant
.
operator LPVARIANT();
Comentarios
Precaución
Cambiar el valor de la estructura VARIANT
, a la que accede el puntero devuelto por esta función, cambiará el valor de este objeto COleVariant
.
COleVariant::operator =
Estos operadores de asignación sobrecargados copian el valor de origen en este objeto COleVariant
.
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);
Comentarios
A continuación, se muestra una breve descripción de cada operador:
operator =( varSrc ) Copia un variant o
COleVariant
un objeto existente en este objeto.operator =( pSrc ) Copia el objeto VARIANT al que accede pSrc en este objeto.
operator =( lpszSrc ) Copia una cadena terminada en null en este objeto y establece el VARTYPE en VT_BSTR.
operator =( strSrc ) Copia un objeto CString en este objeto y establece varTYPE en VT_BSTR.
operator =( nSrc ) Copia un valor entero de 8 o 16 bits en este objeto. Si nSrc es un valor de 8 bits, el elemento VARTYPE de este objeto se establece en VT_UI1. Si nSrc es un valor de 16 bits y el elemento VARTYPE de este objeto es VT_BOOL, se mantiene; de lo contrario, se establece en VT_I2.
operator =( lSrc ) Copia un valor entero de 32 bits en este objeto. Si el elemento VARTYPE de este objeto es VT_ERROR, se mantiene; de lo contrario, se establece en VT_I4.
operator =( curSrc ) Copia un objeto COleCurrency en este objeto y establece varTYPE en VT_CY.
operator =( fltSrc ) Copia un valor de punto flotante de 32 bits en este objeto y establece varTYPE en VT_R4.
operator =( dblSrc ) Copia un valor de punto flotante de 64 bits en este objeto y establece varTYPE en VT_R8.
operator =( dateSrc ) Copia un objeto COleDateTime en este objeto y establece el VARTYPE en VT_DATE.
operator =( arrSrc ) Copia un objeto CByteArray en este
COleVariant
objeto.operator =( lbSrc ) Copia un objeto CLongBinary en este
COleVariant
objeto.
Para obtener más información, consulte las entradas VARIANT y VARENUM en Windows SDK.
COleVariant::operator ==
Este operador compara dos valores variant y devuelve un valor distinto de cero si son iguales; de lo contrario, 0.
BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;
COleVariant::operator <<
, COleVariant::operator >>
Genera un valor COleVariant
en CArchive
o CdumpContext
y toma como entrada un objeto COleVariant
de 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);
Comentarios
El operador de inserción (<<) de COleVariant
admite el volcado de diagnóstico y el almacenamiento en un archivo. El operador de extracción (>>) admite la carga desde un archivo.
COleVariant::SetString
Establece la cadena en un tipo determinado.
void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);
Parámetros
lpszSrc
Cadena terminada en null que se va a copiar en el nuevo objeto COleVariant
.
VtSrc
Elemento VARTYPE del nuevo objeto COleVariant
.
Comentarios
El parámetro vtSrc debe ser VT_BSTR (UNICODE) o VT_BSTRT (ANSI). SetString
se usa normalmente para establecer cadenas en ANSI, ya que el valor predeterminado del constructor COleVariant::COleVariant con un parámetro de puntero de cadena o una cadena y sin VARTYPE es UNICODE.
Un conjunto de registros DAO en una construcción que no sea UNICODE espera que las cadenas sean ANSI. Por lo tanto, para las funciones DAO que usan COleVariant
objetos, si no va a crear un conjunto de registros UNICODE, debe usar el formato COleVariant::COleVariant( lpszSrc , vtSrc ) de constructor con vtSrc establecido en VT_BSTRT (ANSI) o usar SetString
con vtSrc establecido en VT_BSTRT para crear cadenas ANSI. Por ejemplo, las funciones de CDaoRecordset
CDaoRecordset::Seek y CDaoRecordset::SetFieldValue usan objetos COleVariant
como parámetros. Estos objetos deben ser ANSI si el conjunto de registros DAO no es UNICODE.