Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Clase
Esta clase encapsula el tipo VARIANT, proporcionando un miembro que indica el tipo de los datos almacenados.
Sintaxis
class CComVariant : public tagVARIANT
Miembros
Constructores públicos
| Nombre | Descripción |
|---|---|
CComVariant::CComVariant |
Constructor . |
CComVariant::~CComVariant |
El destructor . |
Métodos públicos
| Nombre | Descripción |
|---|---|
CComVariant::Attach |
Adjunta un elemento VARIANT al objeto CComVariant. |
CComVariant::ChangeType |
Convierte el objeto CComVariant en un nuevo tipo. |
CComVariant::Clear |
Borra el objeto CComVariant. |
CComVariant::Copy |
Copia un elemento VARIANT en el objeto CComVariant. |
CComVariant::CopyTo |
Copia el contenido del objeto CComVariant. |
CComVariant::Detach |
Desasocia el elemento VARIANT subyacente del objeto CComVariant. |
CComVariant::GetSize |
Devuelve el tamaño, en número de bytes, del contenido del objeto CComVariant. |
CComVariant::ReadFromStream |
Carga un VARIANT objeto desde una secuencia. |
CComVariant::SetByRef |
Inicializa el objeto CComVariant y establece el miembro vt en VT_BYREF. |
CComVariant::WriteToStream |
Guarda el elemento VARIANT subyacente en una secuencia. |
Operadores públicos
| Operator | Descripción |
|---|---|
CComVariant::operator < |
Indica si el objeto CComVariant es menor que el elemento VARIANT especificado. |
CComVariant::operator > |
Indica si el objeto CComVariant es mayor que el elemento VARIANT especificado. |
CComVariant::operator != |
Indica si el objeto CComVariant no es igual al elemento VARIANT especificado. |
CComVariant::operator = |
Asigna un valor al objeto CComVariant. |
CComVariant::operator == |
Indica si el objeto CComVariant es igual al elemento VARIANT especificado. |
Comentarios
CComVariant encapsula el elemento VARIANT y el tipo VARIANTARG, que consta de una unión y un miembro que indica el tipo de los datos almacenados en la unión. Los elementos VARIANT normalmente se usan en la automatización.
CComVariant deriva del tipo VARIANT para que se pueda usar dondequiera que se pueda usar VARIANT. Por ejemplo, puede usar la macro V_VT para extraer el tipo de un objeto CComVariant o puede acceder al miembro vt directamente igual que puede con un elemento VARIANT.
Jerarquía de herencia
Requisitos
Encabezado: atlcomcli.h
CComVariant::Attach
Borra de forma segura el contenido actual del objeto CComVariant, copia el contenido de pSrc en este objeto y, a continuación, establece el tipo variant de pSrc en VT_EMPTY.
HRESULT Attach(VARIANT* pSrc);
Parámetros
pSrc
[in] Apunta al elemento VARIANT que se va a adjuntar al objeto.
Valor devuelto
Un valor HRESULT estándar.
Comentarios
La propiedad de los datos contenidos por pSrc se transfiere al objeto CComVariant.
CComVariant::CComVariant
Cada constructor controla la inicialización segura del objeto CComVariant llamando a la función VariantInit de Win32 o estableciendo el valor y el tipo del objeto según los parámetros pasados.
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);
Parámetros
varSrc
[in] Elemento CComVariant o VARIANT utilizado para inicializar el objeto CComVariant. El contenido del elemento variant de origen se copia en el destino sin conversión.
lpszSrc
[in] Cadena de caracteres utilizada para inicializar el objeto CComVariant. Puede pasar una cadena de caracteres anchos (Unicode) terminada en cero a la versión LPCOLESTR del constructor o una cadena ANSI a la versión LPCSTR. En cualquier caso, la cadena se convierte en un elemento Unicode BSTR asignado mediante SysAllocString. El tipo del objeto CComVariant es VT_BSTR.
bSrc
[in] Valor de tipo bool utilizado para inicializar el objeto CComVariant. El argumento bool se convierte en un elemento VARIANT_BOOL antes de almacenarse. El tipo del objeto CComVariant es VT_BOOL.
nSrc
[in] Elemento int, BYTE, short, long, LONGLONG, ULONGLONG, unsigned short, unsigned long o unsigned int utilizado para inicializar el objeto CComVariant. El tipo del objeto CComVariant es VT_I4, VT_UI1, VT_I2, VT_I4, VT_I8, VT_UI8, VT_UI2, VT_UI4 o VT_UI4, respectivamente.
vtSrc
[in] Tipo del elemento variant. Cuando el primer parámetro es int, los tipos válidos son VT_I4 y VT_INT. Cuando el primer parámetro es long, los tipos válidos son VT_I4 y VT_ERROR. Cuando el primer parámetro es double, los tipos válidos son VT_R8 y VT_DATE. Cuando el primer parámetro es unsigned int, los tipos válidos son VT_UI4 y VT_UINT.
fltSrc
[in] Valor de tipo float utilizado para inicializar el objeto CComVariant. El tipo del objeto CComVariant es VT_R4.
dblSrc
[in] Valor de tipo double utilizado para inicializar el objeto CComVariant. El tipo del objeto CComVariant es VT_R8.
cySrc
[in] Valor de tipo CY utilizado para inicializar el objeto CComVariant. El tipo del objeto CComVariant es VT_CY.
pSrc
[in] Puntero IDispatch o IUnknown utilizado para inicializar el objeto CComVariant. Se llama a AddRef en el puntero de interfaz. El tipo del objeto CComVariant es VT_DISPATCH o VT_UNKNOWN, respectivamente.
O bien, el puntero SAFERRAY utilizado para inicializar el objeto CComVariant. Se almacena una copia del objeto SAFEARRAY en el objeto CComVariant. El tipo del objeto CComVariant es una combinación del tipo original de SAFEARRAY y VT_ARRAY.
cSrc
[in] Valor de tipo char utilizado para inicializar el objeto CComVariant. El tipo del objeto CComVariant es VT_I1.
bstrSrc
[in] Valor de tipo BSTR utilizado para inicializar el objeto CComVariant. El tipo del objeto CComVariant es VT_BSTR.
Comentarios
El destructor administra la limpieza mediante una llamada a CComVariant::Clear.
CComVariant::~CComVariant
El destructor .
~CComVariant() throw();
Comentarios
Este método administra la limpieza mediante una llamada a CComVariant::Clear.
CComVariant::ChangeType
Convierte el objeto CComVariant en un nuevo tipo.
HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);
Parámetros
vtNew
[in] Nuevo tipo del objeto CComVariant.
pSrc
[in] Puntero al elemento VARIANT cuyo valor se convierte en el nuevo tipo. El valor predeterminado es NULL, lo que significa que el objeto CComVariant se convierte de forma local.
Valor devuelto
Un valor HRESULT estándar.
Comentarios
Si pasa un valor para pSrc, ChangeType usará este elemento VARIANT como origen para la conversión. De lo contrario, el objeto CComVariant es el origen.
CComVariant::Clear
Borra el objeto CComVariant mediante una llamada a la función VariantClear de Win32.
HRESULT Clear();
Valor devuelto
Un valor HRESULT estándar.
Comentarios
El destructor llama automáticamente a Clear.
CComVariant::Copy
Libera el objeto CComVariant y, a continuación, le asigna una copia del elemento VARIANT especificado.
HRESULT Copy(const VARIANT* pSrc);
Parámetros
pSrc
[in] Puntero al elemento VARIANT que se va a copiar.
Valor devuelto
Un valor HRESULT estándar.
CComVariant::CopyTo
Copia el contenido del objeto CComVariant.
HRESULT CopyTo(BSTR* pstrDest);
Parámetros
pstrDest
Apunta a un elemento BSTR que recibirá una copia del contenido del objeto CComVariant.
Valor devuelto
Un valor HRESULT estándar.
Comentarios
El objeto CComVariant debe ser de tipo VT_BSTR.
CComVariant::Detach
Desasocia el elemento VARIANT subyacente del objeto CComVariant y establece el tipo del objeto en VT_EMPTY.
HRESULT Detach(VARIANT* pDest);
Parámetros
pDest
[out] Devuelve el valor del elemento VARIANT subyacente del objeto.
Valor devuelto
Un valor HRESULT estándar.
Comentarios
El contenido del elemento VARIANT al que hace referencia pDest se borra automáticamente antes de asignar el valor y el tipo del objeto CComVariant que realiza la llamada.
CComVariant::GetSize
Para elementos VARIANT de tamaño fijo simple, este método devuelve el valor sizeof del tipo de datos subyacente más sizeof(VARTYPE).
ULONG GetSize() const;
Valor devuelto
Tamaño en bytes del contenido actual del objeto CComVariant.
Comentarios
Si el elemento VARIANT contiene un puntero de interfaz, GetSize consulta IPersistStream o IPersistStreamInit. Si se ejecuta correctamente, el valor devuelto es el orden bajo de 32 bits del valor devuelto por GetSizeMax más sizeof(CLSID) y sizeof(VARTYPE). Si el puntero de interfaz es NULL, GetSize devuelve sizeof(CLSID) más sizeof(VARTYPE). Si el tamaño total es mayor que ULONG_MAX, GetSize devuelve sizeof(VARTYPE), lo que indica un error.
En todos los demás casos, se fuerza un elemento VARIANT temporal de tipo VT_BSTR a partir del elemento VARIANT actual. La longitud de este elemento BSTR se calcula como el tamaño de la longitud de la cadena más la longitud de la propia cadena más el tamaño del carácter NULL más sizeof(VARTYPE). VARIANT Si no se puede coercirse en un VARIANT de tipo VT_BSTR, GetSize devuelve sizeof(VARTYPE).
El tamaño devuelto por este método coincide con el número de bytes usados por CComVariant::WriteToStream en condiciones correctas.
CComVariant::operator =
Asigna un valor y el tipo correspondiente al objeto 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();
Parámetros
varSrc
[in] Objeto CComVariant o elemento VARIANT que se va a asignar al objeto CComVariant. El contenido del elemento variant de origen se copia en el destino sin conversión.
bstrSrc
[in] Elemento BSTR que se va a asignar al objeto CComVariant. El tipo del objeto CComVariant es VT_BSTR.
lpszSrc
[in] Cadena de caracteres que se va a asignar al objeto CComVariant. Puede pasar una cadena de caracteres anchos (Unicode) terminada en cero a la versión LPCOLESTR del operador o una cadena ANSI a la versión LPCSTR. En cualquier caso, la cadena se convierte en un elemento Unicode BSTR asignado mediante SysAllocString. El tipo del objeto CComVariant es VT_BSTR.
bSrc
[in] Elemento bool que se va a asignar al objeto CComVariant. El argumento bool se convierte en un elemento VARIANT_BOOL antes de almacenarse. El tipo del objeto CComVariant es VT_BOOL.
nSrc
[in] Elemento int, BYTE, short, long, LONGLONG, ULONGLONG, unsigned short, unsigned long o unsigned int que se va a asignar al objeto CComVariant. El tipo del objeto CComVariant es VT_I4, VT_UI1, VT_I2, VT_I4, VT_I8, VT_UI8, VT_UI2, VT_UI4 o VT_UI4, respectivamente.
fltSrc
[in] Elemento float que se va a asignar al objeto CComVariant. El tipo del objeto CComVariant es VT_R4.
dblSrc
[in] Elemento double que se va a asignar al objeto CComVariant. El tipo del objeto CComVariant es VT_R8.
cySrc
[in] Elemento CY que se va a asignar al objeto CComVariant. El tipo del objeto CComVariant es VT_CY.
pSrc
[in] Puntero IDispatch o IUnknown que se va a asignar al objeto CComVariant. Se llama a AddRef en el puntero de interfaz. El tipo del objeto CComVariant es VT_DISPATCH o VT_UNKNOWN, respectivamente.
O bien, un puntero SAFEARRAY que se va a asignar al objeto CComVariant. Se almacena una copia del objeto SAFEARRAY en el objeto CComVariant. El tipo del objeto CComVariant es una combinación del tipo original de SAFEARRAY y VT_ARRAY.
cSrc
[in] Carácter que se va a asignar al objeto CComVariant. El tipo del objeto CComVariant es VT_I1.
CComVariant::operator ==
Indica si el objeto CComVariant es igual al elemento VARIANT especificado.
bool operator==(const VARIANT& varSrc) const throw();
Comentarios
Devuelve TRUE si el valor y el tipo de varSrc son iguales al valor y al tipo, respectivamente, del objeto CComVariant. En caso contrario, es FALSE. El operador usa la configuración regional predeterminada del usuario para realizar la comparación.
El operador compara solo el valor de los tipos variant. Compara cadenas, enteros y números de punto flotante, pero no matrices ni registros.
CComVariant::operator !=
Indica si el objeto CComVariant no es igual al elemento VARIANT especificado.
bool operator!=(const VARIANT& varSrc) const throw();
Comentarios
Devuelve TRUE si el valor o el tipo de varSrc no son iguales al valor o al tipo, respectivamente, del objeto CComVariant. En caso contrario, es FALSE. El operador usa la configuración regional predeterminada del usuario para realizar la comparación.
El operador compara solo el valor de los tipos variant. Compara cadenas, enteros y números de punto flotante, pero no matrices ni registros.
CComVariant::operator <
Indica si el objeto CComVariant es menor que el elemento VARIANT especificado.
bool operator<(const VARIANT& varSrc) const throw();
Comentarios
Devuelve TRUE si el valor del objeto CComVariant es menor que el valor de varSrc. En caso contrario, es FALSE. El operador usa la configuración regional predeterminada del usuario para realizar la comparación.
CComVariant::operator >
Indica si el objeto CComVariant es mayor que el elemento VARIANT especificado.
bool operator>(const VARIANT& varSrc) const throw();
Comentarios
Devuelve TRUE si el valor del objeto CComVariant es mayor que el valor de varSrc. En caso contrario, es FALSE. El operador usa la configuración regional predeterminada del usuario para realizar la comparación.
CComVariant::ReadFromStream
Establece el elemento VARIANT subyacente en el elemento VARIANT contenido en la secuencia especificada.
HRESULT ReadFromStream(IStream* pStream);
Parámetros
pStream
[in] Puntero a la interfaz IStream de la secuencia que contiene los datos.
Valor devuelto
Un valor HRESULT estándar.
Comentarios
ReadToStream requiere una llamada anterior a WriteToStream.
CComVariant::SetByRef
Inicializa el objeto CComVariant y establece el miembro vt en VT_BYREF.
template < typename T >
void SetByRef(T* pT) throw();
Parámetros
T
Tipo del elemento VARIANT, por ejemplo, BSTR, int o char.
pT
Puntero utilizado para inicializar el objeto CComVariant.
Comentarios
SetByRef es una plantilla de función que inicializa el objeto CComVariant en el puntero pT y establece el miembro vt en VT_BYREF. Por ejemplo:
CComVariant var;
int nData = 10;
var.SetByRef(&nData);
CComVariant::WriteToStream
Guarda el elemento VARIANT subyacente en una secuencia.
HRESULT WriteToStream(IStream* pStream);
Parámetros
pStream
[in] Puntero a la interfaz IStream de una secuencia.
Valor devuelto
Un valor HRESULT estándar.