Classe COleVariant
Encapsula o tipo de dados VARIANT.
Sintaxe
class COleVariant : public tagVARIANT
Membros
Construtores públicos
Nome | Descrição |
---|---|
COleVariant::COleVariant | Constrói um objeto COleVariant . |
Métodos públicos
Nome | Descrição |
---|---|
COleVariant::Attach | Anexa um VARIANT a um COleVariant . |
COleVariant::ChangeType | Altera o tipo variante desse objeto COleVariant . |
COleVariant::Clear | Limpa esse objeto COleVariant . |
COleVariant::Detach | Desanexa um VARIANT de um COleVariant e retorna o VARIANT. |
COleVariant::GetByteArrayFromVariantArray | Recupera uma matriz de bytes de uma matriz variante existente. |
COleVariant::SetString | Define a cadeia de caracteres como um tipo específico, normalmente ANSI. |
Operadores públicos
Nome | Descrição |
---|---|
COleVariant::operator LPCVARIANT | Converte um valor COleVariant em um LPCVARIANT . |
COleVariant::operator LPVARIANT | Converte um objeto COleVariant em um LPVARIANT . |
COleVariant::operator = | Copia um valor COleVariant . |
COleVariant::operator == | Compara dois valores COleVariant . |
COleVariant::operator << , COleVariant::operator >> |
Gera um valor COleVariant para CArchive ou CDumpContext e insere um objeto COleVariant de CArchive . |
Comentários
Esse tipo de dados é usado na automação OLE. Especificamente, a estrutura DISPPARAMS contém um ponteiro para uma matriz de estruturas VARIANT. Uma estrutura DISPPARAMS
é usada para passar parâmetros para IDispatch::Invoke.
Observação
Essa classe é derivada da estrutura VARIANT
. Isso significa que você pode passar um COleVariant
em um parâmetro que exige um VARIANT
e que os membros de dados da estrutura VARIANT
são membros de dados acessíveis de COleVariant
.
As duas classes de MFC relacionadas, COleCurrency e COleDateTime, encapsulam os tipos de dados variantes CURRENCY ( VT_CY
) e DATE ( VT_DATE
). A classe COleVariant
é usada extensivamente nas classes DAO. Consulte essas classes para uso típico dessa classe, por exemplo, CDaoQueryDef e CDaoRecordset.
Para obter mais informações, confira as entradas VARIANT, CURRENCY, DISPPARAMS e IDispatch::Invoke no SDK do Windows.
Para obter mais informações sobre a classe COleVariant
e seu uso na automação OLE, confira "Passar parâmetros na Automação OLE" no artigo Automação.
Hierarquia de herança
tagVARIANT
COleVariant
Requisitos
Cabeçalho afxdisp.h
COleVariant::Attach
Chame essa função para anexar o objeto VARIANT fornecido ao objeto COleVariant
atual.
void Attach(VARIANT& varSrc);
Parâmetros
varSrc
Um objeto VARIANT
existente a ser anexado ao objeto COleVariant
atual.
Comentários
Essa função define o VARTYPE de varSrc como VT_EMPTY.
Para obter mais informações, confira as entradas VARIANT e VARENUM no SDK do Windows.
COleVariant::COleVariant
Constrói um 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
Um objeto COleVariant
ou VARIANT
existente a ser copiado no novo objeto COleVariant
.
pSrc
Um ponteiro para um objeto VARIANT
que será copiado no novo objeto COleVariant
.
lpszSrc
Uma cadeia de caracteres terminada em nulo a ser copiada para o novo objeto COleVariant
.
vtSrc
O VARTYPE
para o novo objeto COleVariant
.
strSrc
Um objeto CString a ser copiado no novo objeto COleVariant
.
nSrc, lSrc Um valor numérico a ser copiado no novo objeto COleVariant
.
vtSrc
O VARTYPE
para o novo objeto COleVariant
.
curSrc
Um objeto COleCurrency a ser copiado no novo objeto COleVariant
.
fltSrc, dblSrc
Um valor numérico a ser copiado no novo objeto COleVariant
.
timeSrc
Um objeto COleDateTime a ser copiado no novo objeto COleVariant
.
arrSrc
Um objeto CByteArray a ser copiado no novo objeto COleVariant
.
lbSrc
Um objeto CLongBinary a ser copiado no novo objeto COleVariant
.
pidl
Um ponteiro para uma estrutura ITEMIDLIST a ser copiada para o novo COleVariant
objeto.
Comentários
Todos esses construtores criam objetos COleVariant
inicializados para o valor especificado. Uma breve descrição de cada um desses construtores é mostrada abaixo.
COleVariant( ) Cria um objeto
COleVariant
vazio, VT_EMPTY.COleVariant(varSrc) Copia um objeto
VARIANT
ouCOleVariant
existente. O tipo de variante é mantido.COleVariant(pSrc) Copia um objeto
VARIANT
ouCOleVariant
existente. O tipo de variante é mantido.COleVariant(lpszSrc) Copia uma cadeia de caracteres no novo objeto, VT_BSTR (UNICODE).
COleVariant(lpszSrc,vtSrc) Copia uma cadeia de caracteres no novo objeto. O parâmetro vtSrc deve ser VT_BSTR (UNICODE) ou VT_BSTRT (ANSI).
COleVariant(strSrc) Copia uma cadeia de caracteres no novo objeto, VT_BSTR (UNICODE).
COleVariant(nSrc) Copia um inteiro de 8 bits no novo objeto, VT_UI1.
COleVariant(nSrc,vtSrc) Copia um inteiro de 16 bits (ou valor booliano) no novo objeto. O parâmetro vtSrc deve ser VT_I2 ou VT_BOOL.
COleVariant(lSrc,vtSrc) Copia um inteiro de 32 bits (ou valor SCODE) no novo objeto. O parâmetro vtSrc deve ser VT_I4, VT_ERROR ou VT_BOOL.
COleVariant(curSrc) Copia um valor
COleCurrency
no novo objeto, VT_CY.COleVariant(fltSrc) Copia um valor de ponto flutuante de 32 bits no novo objeto, VT_R4.
COleVariant(dblSrc) Copia um valor de ponto flutuante de 64 bits no novo objeto, VT_R8.
COleVariant(timeSrc) Copia um valor
COleDateTime
no novo objeto, VT_DATE.COleVariant(arrSrc) Copia um objeto
CByteArray
no novo objeto, VT_EMPTY.COleVariant(lbSrc) Copia um objeto
CLongBinary
no novo objeto, VT_EMPTY.
Para obter mais informações sobre o SCODE, confira Estrutura de códigos de erro COM no SDK do Windows.
COleVariant::ChangeType
Converte o tipo de valor variante neste objeto COleVariant
.
void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);
Parâmetros
vartype
O VARTYPE desse objeto COleVariant
.
pSrc
Um ponteiro para o objeto VARIANT a ser convertido. Se esse valor for NULL, esse objeto COleVariant
será usado como a origem da conversão.
Comentários
Para obter mais informações, confira as entradas VARIANT, VARENUM e VariantChangeType no SDK do Windows.
COleVariant::Clear
Limpa o VARIANT
.
void Clear();
Comentários
Isso define o VARTYPE para esse objeto como VT_EMPTY. O destruidor COleVariant
chama essa função.
Para obter mais informações, confira as entradas VARIANT
, VARTYPE e VariantClear
no SDK do Windows.
COleVariant::Detach
Desanexa o objeto VARIANT subjacente deste objeto COleVariant
.
VARIANT Detach();
Comentários
Essa função define o VARTYPE para esse COleVariant
objeto como VT_EMPTY.
Observação
Depois de chamar Detach
, é responsabilidade do chamador chamar VariantClear
na estrutura VARIANT
resultante.
Para obter mais informações, confira as entradas VARIANT, VARENUM e VariantClear no SDK do Windows.
COleVariant::GetByteArrayFromVariantArray
Recupera uma matriz de bytes de uma matriz variante existente
void GetByteArrayFromVariantArray(CByteArray& bytes);
Parâmetros
bytes
Uma referência a um objeto CByteArray existente.
COleVariant::operator LPCVARIANT
Esse operador de conversão retorna uma estrutura VARIANT
cujo valor é copiado desse objeto COleVariant
.
operator LPCVARIANT() const;
Comentários
COleVariant::operator LPVARIANT
Chame esse operador de conversão para acessar a estrutura VARIANT
subjacente desse objeto COleVariant
.
operator LPVARIANT();
Comentários
Cuidado
Alterar o valor na estrutura VARIANT
acessada pelo ponteiro retornado por essa função alterará o valor desse objeto COleVariant
.
COleVariant::operator =
Esses operadores de atribuição sobrecarregados copiam o valor de origem nesse 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);
Comentários
Uma breve descrição de cada operador é mostrada abaixo:
operator =(varSrc) Copia um VARIANT ou objeto
COleVariant
existente nesse objeto.operator =(pSrc) Copia o objeto VARIANT acessado pelo pSrc nesse objeto.
operator =(lpszSrc) Copia uma cadeia de caracteres terminada em nulo nesse objeto e define o VARTYPE como VT_BSTR.
operator =(strSrc) Copia um objeto CString nesse objeto e define o VARTYPE como VT_BSTR.
operator =(nSrc) Copia um valor inteiro de 8 ou 16 bits nesse objeto. Se nSrc for um valor de 8 bits, o VARTYPE dele será definido como VT_UI1. Se nSrc for um valor de 16 bits e o VARTYPE dele for VT_BOOL, ele será mantido. Caso contrário, ele será definido como VT_I2.
operator =(lSrc) Copia um valor inteiro de 32 bits nesse objeto. Se o VARTYPE dele for VT_ERROR, ele será mantido. Caso contrário, ele será definido como VT_I4.
operator =(curSrc) Copia um objeto COleCurrency nesse objeto e define o VARTYPE como VT_CY.
operator =(fltSrc) Copia um valor de ponto flutuante de 32 bits nesse objeto e define o VARTYPE como VT_R4.
operator =(dblSrc) Copia um valor de ponto flutuante de 64 bits nesse objeto e define o VARTYPE como VT_R8.
operator =(dateSrc) Copia um objeto COleDateTime nesse objeto e define o VARTYPE como VT_DATE.
operator =(arrSrc) Copia um objeto CByteArray nesse objeto
COleVariant
.operator =(lbSrc) Copia um objeto CLongBinary nesse objeto
COleVariant
.
Para obter mais informações, confira as entradas VARIANT e VARENUM no SDK do Windows.
COleVariant::operator ==
Esse operador compara dois valores variantes e retorna diferente de zero se iguais. Caso contrário, retorna 0.
BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;
COleVariant::operator <<
, COleVariant::operator >>
Gera um valor COleVariant
para CArchive
ou CdumpContext
e insere um 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);
Comentários
O operador de inserção COleVariant
(<<) dá suporte ao despejo de diagnóstico e ao armazenamento em um arquivo. O operador de extração (>>) dá suporte ao carregamento de um arquivo.
COleVariant::SetString
Define a cadeia de caracteres como um tipo específico.
void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);
Parâmetros
lpszSrc
Uma cadeia de caracteres terminada em nulo a ser copiada para o novo objeto COleVariant
.
VtSrc
O VARTYPE para o novo objeto COleVariant
.
Comentários
O parâmetro vtSrc deve ser VT_BSTR (UNICODE) ou VT_BSTRT (ANSI). SetString
normalmente é usado para definir cadeias de caracteres como ANSI, já que o padrão para o construtor COleVariant::COleVariant com um parâmetro de ponteiro de cadeia de caracteres ou cadeia de caracteres e nenhum VARTYPE é UNICODE.
Um conjunto de registros DAO em um build não UNICODE espera que as cadeias de caracteres sejam ANSI. Assim, para funções DAO que usam objetos COleVariant
, se você não estiver criando um conjunto de registros UNICODE, deverá usar a forma de construtor COleVariant::COleVariant(lpszSrc,vtSrc) com vtSrc definido como VT_BSTRT (ANSI) ou usar SetString
com vtSrc definido como VT_BSTRT para criar cadeias de caracteres ANSI. Por exemplo, as funções CDaoRecordset
CDaoRecordset::Seek e CDaoRecordset::SetFieldValue usam objetos COleVariant
como parâmetros. Esses objetos deverão ser ANSI se o conjunto de registros DAO não for UNICODE.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de