Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Classe
Essa classe encapsula o tipo VARIANT, fornecendo um membro que indica o tipo de dados armazenados.
Sintaxe
class CComVariant : public tagVARIANT
Membros
Construtores públicos
| Nome | Descrição |
|---|---|
CComVariant::CComVariant |
O construtor . |
CComVariant::~CComVariant |
O destruidor. |
Métodos públicos
| Nome | Descrição |
|---|---|
CComVariant::Attach |
Anexa um VARIANT ao objeto CComVariant. |
CComVariant::ChangeType |
Converte o objeto CComVariant em um novo tipo. |
CComVariant::Clear |
Limpa o objeto CComVariant. |
CComVariant::Copy |
Copia um VARIANT para o objeto CComVariant. |
CComVariant::CopyTo |
Copia o conteúdo do objeto CComVariant. |
CComVariant::Detach |
Desanexa o VARIANT subjacente do objeto CComVariant. |
CComVariant::GetSize |
Retorna o tamanho em número de bytes do conteúdo do objeto CComVariant. |
CComVariant::ReadFromStream |
Carrega um VARIANT de um fluxo. |
CComVariant::SetByRef |
Inicializa o objeto CComVariant e define o membro vt como VT_BYREF. |
CComVariant::WriteToStream |
Salva o VARIANT subjacente em um fluxo. |
Operadores públicos
| Operador | Descrição |
|---|---|
CComVariant::operator < |
Indica se o objeto CComVariant é menor que o VARIANT especificado. |
CComVariant::operator > |
Indica se o objeto CComVariant é maior que o VARIANT especificado. |
CComVariant::operator != |
Indica se o objeto CComVariant não é igual ao VARIANT. |
CComVariant::operator = |
Atribui um valor ao objeto CComVariant. |
CComVariant::operator == |
Indica se o objeto CComVariant é igual ao VARIANT. |
Comentários
CComVariant encapsula o tipo VARIANT e VARIANTARG, que consiste em uma união e um membro que indica o tipo dos dados armazenados na união. VARIANTs são normalmente usados na Automação.
CComVariant deriva do VARIANT tipo para que ele possa ser usado onde quer que um VARIANT possa ser usado. Você pode, por exemplo, usar a macro V_VT para extrair o tipo de um CComVariant ou você pode acessar o membro vt diretamente da mesma forma que puder com um VARIANT.
Hierarquia de herança
Requisitos
Cabeçalho: atlcomcli.h
CComVariant::Attach
Limpa com segurança o conteúdo atual do objeto CComVariant, copia o conteúdo de pSrc nesse objeto e define o tipo de variante de pSrc como VT_EMPTY.
HRESULT Attach(VARIANT* pSrc);
Parâmetros
pSrc
[in] Aponta para o VARIANT a ser anexado ao objeto.
Valor retornado
Um valor HRESULT padrão.
Comentários
A propriedade dos dados mantidos pelo pSrc objeto é transferida para o objeto CComVariant.
CComVariant::CComVariant
Cada construtor manipula a inicialização segura do objeto CComVariant chamando a função Win32 VariantInit ou definindo o valor e o tipo do objeto de acordo com os parâmetros passados.
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] O CComVariant ou o VARIANT usado para inicializar o objeto CComVariant. O conteúdo da variante de origem é copiado para o destino sem conversão.
lpszSrc
[in] A cadeia de caracteres usada para inicializar o objeto CComVariant. Você pode passar uma cadeia de caracteres ampla (Unicode) terminada em zero para a versão LPCOLESTR do constructor ou uma cadeia de caracteres ANSI para a versão LPCSTR. Em ambos os casos, a cadeia de caracteres é convertida em um BSTR Unicode alocado usando SysAllocString. O tipo do objeto CComVariant é VT_BSTR.
bSrc
[in] O bool usado para inicializar o objeto CComVariant. O argumento bool é convertido em um VARIANT_BOOL antes de ser armazenado. O tipo do objeto CComVariant é VT_BOOL.
nSrc
[in] O int, BYTE, short, long, LONGLONG, ULONGLONG, unsigned short, unsigned long ou unsigned int usado para inicializar o objeto CComVariant. O tipo do objeto CComVariant é VT_I4, VT_UI1, VT_I2, VT_I4, VT_I8, VT_UI8, VT_UI2, VT_UI4 ou VT_UI4, respectivamente.
vtSrc
[in] O tipo da variante. Quando o primeiro parâmetro é int, os tipos válidos são VT_I4 e VT_INT. Quando o primeiro parâmetro é long, os tipos válidos são VT_I4 e VT_ERROR. Quando o primeiro parâmetro é double, os tipos válidos são VT_R8 e VT_DATE. Quando o primeiro parâmetro é unsigned int, os tipos válidos são VT_UI4 e VT_UINT.
fltSrc
[in] O float usado para inicializar o objeto CComVariant. O tipo do objeto CComVariant é VT_R4.
dblSrc
[in] O double usado para inicializar o objeto CComVariant. O tipo do objeto CComVariant é VT_R8.
cySrc
[in] O CY usado para inicializar o objeto CComVariant. O tipo do objeto CComVariant é VT_CY.
pSrc
[in] O ponteiro IDispatch ou IUnknown usado para inicializar o objeto CComVariant. AddRef é chamado no ponteiro da interface. O tipo do objeto CComVariant é VT_DISPATCH ou VT_UNKNOWN, respectivamente.
Ou o ponteiro SAFERRAY usado para inicializar o objeto CComVariant. Uma cópia do SAFEARRAY objeto é armazenada no objeto CComVariant. O tipo do objeto CComVariant é uma combinação do tipo original do SAFEARRAY e VT_ARRAY.
cSrc
[in] O char usado para inicializar o objeto CComVariant. O tipo do objeto CComVariant é VT_I1.
bstrSrc
[in] O BSTR usado para inicializar o objeto CComVariant. O tipo do objeto CComVariant é VT_BSTR.
Comentários
O destruidor gerencia a limpeza chamando CComVariant::Clear.
CComVariant::~CComVariant
O destruidor.
~CComVariant() throw();
Comentários
Esse método gerencia a limpeza chamando CComVariant::Clear.
CComVariant::ChangeType
Converte o objeto CComVariant em um novo tipo.
HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);
Parâmetros
vtNew
[in] O novo tipo para o objeto CComVariant.
pSrc
[in] Um ponteiro para o VARIANT cujo valor é convertido no novo tipo. O valor padrão é NULL, o que significa que o CComVariant objeto é convertido no local.
Valor retornado
Um valor HRESULT padrão.
Comentários
Se você passar um valor para pSrc, ChangeType usará isso VARIANT como a origem da conversão. Caso contrário, o CComVariant objeto é a origem.
CComVariant::Clear
Limpa o objeto CComVariant ao chamar a função Win32 VariantClear.
HRESULT Clear();
Valor retornado
Um valor HRESULT padrão.
Comentários
O destruidor chama Clear automaticamente .
CComVariant::Copy
Libera o CComVariant objeto e, em seguida, atribui-lhe uma cópia do especificado VARIANT.
HRESULT Copy(const VARIANT* pSrc);
Parâmetros
pSrc
[in] Um ponteiro a VARIANT ser copiado.
Valor retornado
Um valor HRESULT padrão.
CComVariant::CopyTo
Copia o conteúdo do objeto CComVariant.
HRESULT CopyTo(BSTR* pstrDest);
Parâmetros
pstrDest
Aponta para um BSTR que receberá uma cópia do conteúdo do objeto CComVariant.
Valor retornado
Um valor HRESULT padrão.
Comentários
O objeto CComVariant deve ser do tipo VT_BSTR.
CComVariant::Detach
Desanexa o subjacente VARIANT do objeto CComVariant e define o tipo do objeto como VT_EMPTY.
HRESULT Detach(VARIANT* pDest);
Parâmetros
pDest
[out] Retorna o valor subjacente VARIANT do objeto.
Valor retornado
Um valor HRESULT padrão.
Comentários
O conteúdo do VARIANT referenciado por pDest é desmarcado automaticamente antes de receber o valor e o tipo do objeto de chamada CComVariant.
CComVariant::GetSize
Para tamanhos VARIANTsimples fixos, esse método retorna o sizeof valor para o tipo de dados subjacente mais sizeof(VARTYPE).
ULONG GetSize() const;
Valor retornado
O tamanho em bytes do conteúdo atual do objeto CComVariant.
Comentários
Se VARIANT contiver um ponteiro de interface, GetSize consulta para IPersistStream ou IPersistStreamInit. Se tiver êxito, o valor retornado será os 32 bits de ordem baixa do valor retornado por GetSizeMax mais sizeof(CLSID) e sizeof(VARTYPE). Se o ponteiro da interface for NULL, GetSize retornará sizeof(CLSID) mais sizeof(VARTYPE). Se o tamanho total for maior que ULONG_MAX, GetSize retornará sizeof(VARTYPE), o que indicará um erro.
Em todos os outros casos, um tipo temporário VARIANTVT_BSTR é coagido do atual VARIANT. O comprimento disso BSTR é calculado como o tamanho do comprimento da cadeia de caracteres mais o comprimento da cadeia de caracteres em si mais o tamanho do caractere NULL mais sizeof(VARTYPE). Se o VARIANT não puder ser forçado a um VARIANT do tipo VT_BSTR, GetSize retornará sizeof(VARTYPE).
O tamanho retornado por esse método corresponde ao número de bytes usados em CComVariant::WriteToStream condições bem-sucedidas.
CComVariant::operator =
Atribui um valor e um tipo correspondente ao CComVariant objeto.
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] O CComVariant ou o VARIANT a ser atribuído ao objeto CComVariant. O conteúdo da variante de origem é copiado para o destino sem conversão.
bstrSrc
[in] O BSTR a ser atribuído ao objeto CComVariant. O tipo do objeto CComVariant é VT_BSTR.
lpszSrc
[in] A cadeia de caracteres a ser atribuída ao objeto CComVariant. Você pode passar uma cadeia de caracteres ampla (Unicode) terminada em zero para a versão LPCOLESTR do operador ou uma cadeia de caracteres ANSI para a versão LPCSTR. Em ambos os casos, a cadeia de caracteres é convertida em um BSTR Unicode alocado usando SysAllocString. O tipo do objeto CComVariant é VT_BSTR.
bSrc
[in] O bool a ser atribuído ao objeto CComVariant. O argumento bool é convertido em um VARIANT_BOOL antes de ser armazenado. O tipo do objeto CComVariant é VT_BOOL.
nSrc
[in] O int, BYTE, short, long, LONGLONG, ULONGLONG, unsigned short, unsigned long ou unsigned int a ser atribuído ao objeto CComVariant. O tipo do objeto CComVariant é VT_I4, VT_UI1, VT_I2, VT_I4, VT_I8, VT_UI8, VT_UI2, VT_UI4 ou VT_UI4, respectivamente.
fltSrc
[in] O float a ser atribuído ao objeto CComVariant. O tipo do objeto CComVariant é VT_R4.
dblSrc
[in] O double a ser atribuído ao objeto CComVariant. O tipo do objeto CComVariant é VT_R8.
cySrc
[in] O CY a ser atribuído ao objeto CComVariant. O tipo do objeto CComVariant é VT_CY.
pSrc
[in] O ponteiro IDispatch ou o IUnknown a ser atribuído ao objeto CComVariant. AddRef é chamado no ponteiro da interface. O tipo do objeto CComVariant é VT_DISPATCH ou VT_UNKNOWN, respectivamente.
Ou um ponteiro SAFEARRAY a ser atribuído ao objeto CComVariant. Uma cópia do SAFEARRAY objeto é armazenada no objeto CComVariant. O tipo do objeto CComVariant é uma combinação do tipo original do SAFEARRAY e VT_ARRAY.
cSrc
[in] O char a ser atribuído ao objeto CComVariant. O tipo do objeto CComVariant é VT_I1.
CComVariant::operator ==
Indica se o objeto CComVariant é igual ao VARIANT.
bool operator==(const VARIANT& varSrc) const throw();
Comentários
Retorna TRUE se o valor e o tipo de varSrc forem iguais ao valor e ao tipo, respectivamente, do objeto CComVariant. Caso contrário, FALSE. O operador usa a localidade padrão do usuário para executar a comparação.
O operador compara somente o valor dos tipos de variante. Ele compara cadeias de caracteres, inteiros e pontos flutuantes, mas não matrizes ou registros.
CComVariant::operator !=
Indica se o objeto CComVariant não é igual ao VARIANT.
bool operator!=(const VARIANT& varSrc) const throw();
Comentários
Retorna TRUE se o valor e o tipo de varSrc não forem iguais ao valor e ao tipo, respectivamente, do objeto CComVariant. Caso contrário, FALSE. O operador usa a localidade padrão do usuário para executar a comparação.
O operador compara somente o valor dos tipos de variante. Ele compara cadeias de caracteres, inteiros e pontos flutuantes, mas não matrizes ou registros.
CComVariant::operator <
Indica se o objeto CComVariant é menor que o VARIANT especificado.
bool operator<(const VARIANT& varSrc) const throw();
Comentários
Retorna TRUE se o valor do objeto CComVariant for menor que o valor de varSrc. Caso contrário, FALSE. O operador usa a localidade padrão do usuário para executar a comparação.
CComVariant::operator >
Indica se o objeto CComVariant é maior que o VARIANT especificado.
bool operator>(const VARIANT& varSrc) const throw();
Comentários
Retorna TRUE se o valor do objeto CComVariant for maior que o valor de varSrc. Caso contrário, FALSE. O operador usa a localidade padrão do usuário para executar a comparação.
CComVariant::ReadFromStream
Define o subjacente VARIANT como o VARIANT contido no fluxo especificado.
HRESULT ReadFromStream(IStream* pStream);
Parâmetros
pStream
[in] Um ponteiro para a interface IStream no fluxo que contém os dados.
Valor retornado
Um valor HRESULT padrão.
Comentários
ReadToStream requer uma chamada anterior para WriteToStream.
CComVariant::SetByRef
Inicializa o objeto CComVariant e define o membro vt como VT_BYREF.
template < typename T >
void SetByRef(T* pT) throw();
Parâmetros
T
O tipo de VARIANT, por exemplo, BSTRou int char.
pT
O ponteiro usado para inicializar o objeto CComVariant.
Comentários
SetByRef é um modelo de função que inicializa o CComVariant objeto para o ponteiro pT e define o vt membro como VT_BYREF. Por exemplo:
CComVariant var;
int nData = 10;
var.SetByRef(&nData);
CComVariant::WriteToStream
Salva o VARIANT subjacente em um fluxo.
HRESULT WriteToStream(IStream* pStream);
Parâmetros
pStream
[in] Um ponteiro para a IStream interface em um fluxo.
Valor retornado
Um valor HRESULT padrão.