Compartir vía


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.

Consulte también

Gráfico de jerarquías