Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta classe envolve o VARIANT tipo, fornecendo um membro que indica o tipo de dados armazenados.
Sintaxe
class CComVariant : public tagVARIANT
Membros
Construtores públicos
| Nome | Description |
|---|---|
CComVariant::CComVariant |
O construtor. |
CComVariant::~CComVariant |
O destruidor. |
Métodos públicos
| Nome | Description |
|---|---|
CComVariant::Attach |
Fixa um a VARIANT no CComVariant objeto. |
CComVariant::ChangeType |
Converte o CComVariant objeto para um novo tipo. |
CComVariant::Clear |
Limpa o CComVariant objeto. |
CComVariant::Copy |
Copia a VARIANT do CComVariant objeto. |
CComVariant::CopyTo |
Copia o conteúdo do CComVariant objeto. |
CComVariant::Detach |
Desliga o subjacente VARIANT do CComVariant objeto. |
CComVariant::GetSize |
Devolve o tamanho em número de bytes do conteúdo do CComVariant objeto. |
CComVariant::ReadFromStream |
Carrega a VARIANT partir de um riacho. |
CComVariant::SetByRef |
Inicializa o CComVariant objeto e define o vt membro para VT_BYREF. |
CComVariant::WriteToStream |
Guarda o subjacente VARIANT num fluxo. |
Operadores públicos
| Operador | Description |
|---|---|
CComVariant::operator < |
Indica se o CComVariant objeto é menor do que o especificado VARIANT. |
CComVariant::operator > |
Indica se o CComVariant objeto é maior do que o especificado VARIANT. |
CComVariant::operator != |
Indica se o CComVariant objeto não é igual ao especificado VARIANT. |
CComVariant::operator = |
Atribui um valor ao CComVariant objeto. |
CComVariant::operator == |
Indica se o CComVariant objeto é igual ao especificado VARIANT. |
Observações
CComVariant envolve o VARIANT tipo e VARIANTARG , que consiste numa união e um membro indicando o tipo de dados armazenados na união.
VARIANTs são tipicamente usados em Automação.
CComVariant deriva do VARIANT tipo, pelo que pode ser usado onde quer que a VARIANT possa ser utilizado. Podes, por exemplo, usar a V_VT macro para extrair o tipo de a CComVariant ou podes aceder diretamente ao vt membro, tal como podes com um VARIANT.
Hierarquia de herança
Requerimentos
Cabeçalho:atlcomcli.h
CComVariant::Attach
Limpa com segurança o conteúdo atual do CComVariant objeto, copia o conteúdo de pSrc para este objeto, depois define o tipo variante de pSrc para VT_EMPTY.
HRESULT Attach(VARIANT* pSrc);
Parâmetros
pSrc
[dentro] Aponta para o VARIANT a ser ligado ao objeto.
Valor de retorno
Um valor padrão HRESULT .
Observações
A propriedade dos dados detidos por pSrc é transferida para o CComVariant objeto.
CComVariant::CComVariant
Cada construtor trata da inicialização segura do CComVariant objeto chamando a VariantInit função Win32 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
[dentro] O CComVariant ou VARIANT usado para inicializar o CComVariant objeto. O conteúdo da variante de origem é copiado para o destino sem conversão.
lpszSrc
[dentro] A cadeia de caracteres usada para inicializar o CComVariant objeto. Pode passar uma cadeia de caracteres com terminação zero (Unicode) para a LPCOLESTR versão do construtor ou uma cadeia ANSI para a LPCSTR versão. Em qualquer dos casos, a cadeia é convertida para um Unicode BSTR alocado usando SysAllocString. O tipo do CComVariant objeto é VT_BSTR.
bSrc
[dentro] Eles bool são usados para inicializar o CComVariant objeto. O bool argumento é convertido em a VARIANT_BOOL antes de ser armazenado. O tipo do CComVariant objeto é VT_BOOL.
nSrc
[dentro] O , , , , , , , , unsigned long, , ou unsigned int usado para inicializar o CComVariant objeto. unsigned shortULONGLONGLONGLONGlongshortBYTEint O tipo do CComVariant objeto é VT_I4, VT_UI1, VT_I2, VT_I4, VT_I8VT_UI8, VT_UI2, VT_UI4, , ou VT_UI4, respetivamente.
vtSrc
[dentro] O tipo da variante. Quando o primeiro parâmetro é int, tipos válidos são VT_I4 e VT_INT. Quando o primeiro parâmetro é long, tipos válidos são VT_I4 e VT_ERROR. Quando o primeiro parâmetro é double, tipos válidos são VT_R8 e VT_DATE. Quando o primeiro parâmetro é unsigned int, tipos válidos são VT_UI4 e VT_UINT.
fltSrc
[dentro] Eles float são usados para inicializar o CComVariant objeto. O tipo do CComVariant objeto é VT_R4.
dblSrc
[dentro] Eles double são usados para inicializar o CComVariant objeto. O tipo do CComVariant objeto é VT_R8.
cySrc
[dentro] Eles CY são usados para inicializar o CComVariant objeto. O tipo do CComVariant objeto é VT_CY.
pSrc
[dentro] O IDispatch ponteiro ou IUnknown usado para inicializar o CComVariant objeto.
AddRef é chamado no ponteiro de interface. O tipo do CComVariant objeto é VT_DISPATCH ou VT_UNKNOWN, respetivamente.
Ou, o SAFERRAY ponteiro usado para inicializar o CComVariant objeto. Uma cópia do SAFEARRAY é armazenada no CComVariant objeto. O tipo do CComVariant objeto é uma combinação do tipo original do SAFEARRAY e VT_ARRAY.
cSrc
[dentro] Eles char são usados para inicializar o CComVariant objeto. O tipo do CComVariant objeto é VT_I1.
bstrSrc
[dentro] Eles BSTR são usados para inicializar o CComVariant objeto. O tipo do CComVariant objeto é VT_BSTR.
Observações
O destruidor gere a limpeza chamando CComVariant::Clear.
CComVariant::~CComVariant
O destruidor.
~CComVariant() throw();
Observações
Este método gere a limpeza chamando CComVariant::Clear.
CComVariant::ChangeType
Converte o CComVariant objeto para um novo tipo.
HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);
Parâmetros
vtNew
[dentro] O novo tipo para o CComVariant objeto.
pSrc
[dentro] Um apontador para o VARIANT cujo valor é convertido para o novo tipo. O valor padrão é NULL, ou seja, o CComVariant objeto é convertido no local.
Valor de retorno
Um valor padrão HRESULT .
Observações
Se passar um valor para pSrc, ChangeType usará este VARIANT valor como fonte para a conversão. Caso contrário, o CComVariant objeto é a fonte.
CComVariant::Clear
Limpa o CComVariant objeto ao chamar a VariantClear função Win32.
HRESULT Clear();
Valor de retorno
Um valor padrão HRESULT .
Observações
O destruidor chama Clearautomaticamente .
CComVariant::Copy
liberta o CComVariant objeto e depois atribui-lhe uma cópia do especificado VARIANT.
HRESULT Copy(const VARIANT* pSrc);
Parâmetros
pSrc
[dentro] Um indicador para o VARIANT a ser copiado.
Valor de retorno
Um valor padrão HRESULT .
CComVariant::CopyTo
Copia o conteúdo do CComVariant objeto.
HRESULT CopyTo(BSTR* pstrDest);
Parâmetros
pstrDest
Aponta para um BSTR que receberá uma cópia do conteúdo do CComVariant objeto.
Valor de retorno
Um valor padrão HRESULT .
Observações
O CComVariant objeto deve ser do tipo VT_BSTR.
CComVariant::Detach
Desliga o subjacente VARIANT do CComVariant objeto e define o tipo do objeto para VT_EMPTY.
HRESULT Detach(VARIANT* pDest);
Parâmetros
pDest
[fora] Devolve o valor subjacente VARIANT do objeto.
Valor de retorno
Um valor padrão HRESULT .
Observações
O conteúdo do VARIANT referenciado por pDest é automaticamente apagado antes de ser atribuído ao valor e tipo do objeto que chama CComVariant .
CComVariant::GetSize
Para tamanho VARIANTsimples fixo s, este método devolve o sizeof valor do tipo de dado subjacente mais sizeof(VARTYPE).
ULONG GetSize() const;
Valor de retorno
O tamanho em bytes do conteúdo atual do CComVariant objeto.
Observações
Se o VARIANT contiver um ponteiro de interface, GetSize consulta para IPersistStream ou IPersistStreamInit. Se for bem-sucedido, o valor de retorno é a ordem baixa de 32 bits do valor devolvido por GetSizeMax mais sizeof(CLSID) e sizeof(VARTYPE). Se o ponteiro da interface for NULL, GetSize retorna sizeof(CLSID) mais sizeof(VARTYPE). Se o tamanho total for maior que ULONG_MAX, GetSize devolve sizeof(VARTYPE), o que indica um erro.
Em todos os outros casos, um temporário VARIANT do tipo VT_BSTR é coagido pela corrente VARIANT. O comprimento disto BSTR é calculado como o tamanho do comprimento da cadeia mais o comprimento da própria cadeia mais o tamanho do NULL carácter mais sizeof(VARTYPE). Se o VARIANT não pode ser coagido a VARIANT um de tipo VT_BSTR, GetSize retorna sizeof(VARTYPE).
O tamanho devolvido por este 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
[dentro] O CComVariant ou VARIANT a ser atribuído ao CComVariant objeto. O conteúdo da variante de origem é copiado para o destino sem conversão.
bstrSrc
[dentro] O BSTR a ser atribuído ao CComVariant objeto. O tipo do CComVariant objeto é VT_BSTR.
lpszSrc
[dentro] A cadeia de caracteres a ser atribuída ao CComVariant objeto. Pode passar uma cadeia de caracteres com terminação zero (Unicode) para a LPCOLESTR versão do operador ou uma cadeia ANSI para a LPCSTR versão. Em qualquer dos casos, a cadeia é convertida para um Unicode BSTR alocado usando SysAllocString. O tipo do CComVariant objeto é VT_BSTR.
bSrc
[dentro] O bool a ser atribuído ao CComVariant objeto. O bool argumento é convertido em a VARIANT_BOOL antes de ser armazenado. O tipo do CComVariant objeto é VT_BOOL.
nSrc
[dentro] O , , , , , , , , unsigned long, ou unsigned int a ser atribuído ao CComVariant objeto. unsigned shortULONGLONGLONGLONGlongshortBYTEint O tipo do CComVariant objeto é VT_I4, VT_UI1, VT_I2, VT_I4, VT_I8VT_UI8, VT_UI2, VT_UI4, , ou VT_UI4, respetivamente.
fltSrc
[dentro] O float a ser atribuído ao CComVariant objeto. O tipo do CComVariant objeto é VT_R4.
dblSrc
[dentro] O double a ser atribuído ao CComVariant objeto. O tipo do CComVariant objeto é VT_R8.
cySrc
[dentro] O CY a ser atribuído ao CComVariant objeto. O tipo do CComVariant objeto é VT_CY.
pSrc
[dentro] O IDispatch ponteiro ou IUnknown a ser atribuído ao CComVariant objeto.
AddRef é chamado no ponteiro de interface. O tipo do CComVariant objeto é VT_DISPATCH ou VT_UNKNOWN, respetivamente.
Ou, um SAFEARRAY ponteiro para ser atribuído ao CComVariant objeto. Uma cópia do SAFEARRAY é armazenada no CComVariant objeto. O tipo do CComVariant objeto é uma combinação do tipo original do SAFEARRAY e VT_ARRAY.
cSrc
[dentro] O personagem a ser atribuído ao CComVariant objeto. O tipo do CComVariant objeto é VT_I1.
CComVariant::operator ==
Indica se o CComVariant objeto é igual ao especificado VARIANT.
bool operator==(const VARIANT& varSrc) const throw();
Observações
Retorna TRUE se o valor e o tipo de varSrc forem iguais ao valor e tipo, respetivamente, do CComVariant objeto. Caso contrário, FALSE. O operador utiliza a localização padrão do utilizador para realizar a comparação.
O operador compara apenas o valor dos tipos variantes. Compara cadeias, inteiros e vírgulas flutuantes, mas não arrays ou registos.
CComVariant::operator !=
Indica se o CComVariant objeto não é igual ao especificado VARIANT.
bool operator!=(const VARIANT& varSrc) const throw();
Observações
Retorna TRUE se o valor ou tipo de varSrc não for igual ao valor ou tipo, respetivamente, do CComVariant objeto. Caso contrário, FALSE. O operador utiliza a localização padrão do utilizador para realizar a comparação.
O operador compara apenas o valor dos tipos variantes. Compara cadeias, inteiros e vírgulas flutuantes, mas não arrays ou registos.
CComVariant::operator <
Indica se o CComVariant objeto é menor do que o especificado VARIANT.
bool operator<(const VARIANT& varSrc) const throw();
Observações
Retorna TRUE se o valor do CComVariant objeto for menor que o valor de varSrc. Caso contrário, FALSE. O operador utiliza a localização padrão do utilizador para realizar a comparação.
CComVariant::operator >
Indica se o CComVariant objeto é maior do que o especificado VARIANT.
bool operator>(const VARIANT& varSrc) const throw();
Observações
Retorna TRUE se o valor do CComVariant objeto for maior do que o valor de varSrc. Caso contrário, FALSE. O operador utiliza a localização padrão do utilizador para realizar a comparação.
CComVariant::ReadFromStream
Define o subjacente VARIANT para o VARIANT contido no fluxo especificado.
HRESULT ReadFromStream(IStream* pStream);
Parâmetros
pStream
[dentro] Um ponteiro para a IStream interface no fluxo que contém os dados.
Valor de retorno
Um valor padrão HRESULT .
Observações
ReadToStream requer uma chamada prévia para WriteToStream.
CComVariant::SetByRef
Inicializa o CComVariant objeto e define o vt membro para VT_BYREF.
template < typename T >
void SetByRef(T* pT) throw();
Parâmetros
T
O tipo de VARIANT, por exemplo, BSTR, int, ou char.
pT
O ponteiro usado para inicializar o CComVariant objeto.
Observações
SetByRef é um modelo de função que inicializa o CComVariant objeto para o ponteiro pT e define o vt membro para VT_BYREF. Por exemplo:
CComVariant var;
int nData = 10;
var.SetByRef(&nData);
CComVariant::WriteToStream
Guarda o subjacente VARIANT num fluxo.
HRESULT WriteToStream(IStream* pStream);
Parâmetros
pStream
[dentro] Um ponteiro para a IStream interface num fluxo.
Valor de retorno
Um valor padrão HRESULT .