Partilhar via


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::Anexar Anexa uma VARIANTE a um COleVariantarquivo .
COleVariant::ChangeType Altera o tipo de variante deste COleVariant objeto.
COleVariant::Limpar Limpa este COleVariant objeto.
COleVariant::D etach Desanexa uma VARIANTE de a COleVariant e retorna a VARIANT.
COleVariant::GetByteArrayFromVariantArray Recupera uma matriz de bytes de uma matriz variante existente.
COleVariant::SetString Define a cadeia de caracteres para um tipo específico, normalmente ANSI.

Operadores Públicos

Nome Descrição
COleVariant::operador LPCVARIANT Converte um COleVariant valor em um LPCVARIANTarquivo .
COleVariant::operador LPVARIANT Converte um COleVariant objeto em um LPVARIANTarquivo .
COleVariant::operador = Copia um COleVariant valor.
COleVariant::operador == Compara dois COleVariant valores.
COleVariant::operator <<, COleVariant::operator >> Produz um COleVariant valor para CArchive ou CDumpContext e insere um COleVariant objeto de CArchive.

Observações

Esse tipo de dados é usado na automação OLE. Especificamente, a estrutura DISPPARAMS contém um ponteiro para uma matriz de estruturas VARIANT. Uma DISPPARAMS estrutura é usada para passar parâmetros para IDispatch::Invoke.

Observação

Esta classe é derivada da VARIANT estrutura. Isso significa que você pode passar um COleVariant em um parâmetro que chama para um VARIANT e que os membros de dados da estrutura são membros de VARIANT dados acessíveis de COleVariant.

As duas classes MFC relacionadas COleCurrency e COleDateTime encapsulam os tipos de dados variantes CURRENCY (VT_CY) e DATE (VT_DATE). A COleVariant classe é usada extensivamente nas classes DAO; veja essas classes para o uso típico dessa classe, por exemplo, CDaoQueryDef e CDaoRecordset.

Para obter mais informações, consulte as entradas VARIANT, CURRENCY, DISPPARAMS e IDispatch::Invoke no SDK do Windows.

Para obter mais informações sobre a COleVariant classe e seu uso na automação OLE, consulte "Passando parâmetros na automação OLE" no artigo Automação.

Hierarquia de herança

tagVARIANT

COleVariant

Requerimentos

Cabeçalho: afxdisp.h

COleVariant::Anexar

Chame essa função para anexar o objeto VARIANT fornecido ao objeto atual COleVariant .

void Attach(VARIANT& varSrc);

Parâmetros

varSrc
Um objeto existente VARIANT a ser anexado ao objeto atual COleVariant .

Observações

Esta função define o VARTYPE de varSrc como VT_EMPTY .

Para obter mais informações, consulte 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 ou COleVariant existente VARIANT a ser copiado para o novo COleVariant objeto.

pSrc
Um ponteiro para um VARIANT objeto que será copiado para o novo COleVariant objeto.

lpszSrc
Uma cadeia de caracteres terminada em nulo a ser copiada para o novo COleVariant objeto.

vtSrc
O VARTYPE para o novo COleVariant objeto.

strSrc
Um objeto CString a ser copiado para o novo COleVariant objeto.

nSrc, lSrc Um valor numérico a ser copiado para o novo COleVariant objeto.

vtSrc
O VARTYPE para o novo COleVariant objeto.

curSrc
Um objeto COleCurrency a ser copiado para o novo COleVariant objeto.

fltSrc, dblSrc
Um valor numérico a ser copiado para o novo COleVariant objeto.

timeSrc
Um objeto COleDateTime a ser copiado para o novo COleVariant objeto.

arrSrc
Um objeto CByteArray a ser copiado para o novo COleVariant objeto.

lbSrc
Um objeto CLongBinary a ser copiado para o novo COleVariant objeto.

PIDL
Um ponteiro para uma estrutura ITEMIDLIST a ser copiada para o novo COleVariant objeto.

Observações

Todos esses construtores criam novos COleVariant objetos inicializados com o valor especificado. Segue-se uma breve descrição de cada um destes construtores.

  • COleVariant( ) Cria um objeto vazio COleVariant , VT_EMPTY.

  • COleVariant(varSrc) Copia um objeto ou VARIANT existenteCOleVariant. O tipo de variante é mantido.

  • COleVariant(pSrc) Copia um objeto ou VARIANT existenteCOleVariant. O tipo de variante é mantido.

  • COleVariant(lpszSrc) Copia uma cadeia de caracteres para o novo objeto, VT_BSTR (UNICODE).

  • COleVariant(lpszSrc,vtSrc) Copia uma cadeia de caracteres para o novo objeto. O parâmetro vtSrc deve ser VT_BSTR (UNICODE) ou VT_BSTRT (ANSI).

  • COleVariant(strSrc) Copia uma cadeia de caracteres para o novo objeto, VT_BSTR (UNICODE).

  • COleVariant(nSrc) Copia um inteiro de 8 bits para o novo objeto, VT_UI1.

  • COleVariant(nSrc,vtSrc) Copia um inteiro de 16 bits (ou valor booleano) para o 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) para o novo objeto. O parâmetro vtSrc deve ser VT_I4, VT_ERROR ou VT_BOOL.

  • COleVariant(curSrc) Copia um COleCurrency valor para o novo objeto, VT_CY.

  • COleVariant(fltSrc) Copia um valor de ponto flutuante de 32 bits para o novo objeto, VT_R4.

  • COleVariant(dblSrc) Copia um valor de ponto flutuante de 64 bits para o novo objeto, VT_R8.

  • COleVariant(timeSrc) Copia um COleDateTime valor para o novo objeto, VT_DATE.

  • COleVariant(arrSrc) Copia um CByteArray objeto para o novo objeto, VT_EMPTY.

  • COleVariant(lbSrc) Copia um CLongBinary objeto para o novo objeto, VT_EMPTY.

Para obter mais informações sobre SCODE, consulte Estrutura de códigos de erro COM no SDK do Windows.

COleVariant::ChangeType

Converte o tipo de valor de variante neste COleVariant objeto.

void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);

Parâmetros

Vartype
O VARTYPE para este COleVariant objeto.

pSrc
Um ponteiro para o objeto VARIANT a ser convertido. Se esse valor for NULL, esse COleVariant objeto será usado como a origem para a conversão.

Observações

Para obter mais informações, consulte as entradas VARIANT, VARENUM e VariantChangeType no SDK do Windows.

COleVariant::Limpar

Limpa o VARIANTarquivo .

void Clear();

Observações

Isso define o VARTYPE para este objeto como VT_EMPTY. O COleVariant destruidor chama essa função.

Para obter mais informações, consulte o VARIANT, VARTYPE e VariantClear entradas no SDK do Windows.

COleVariant::D etach

Desanexa o objeto VARIANT subjacente deste COleVariant objeto.

VARIANT Detach();

Observações

Esta função define o VARTYPE para este COleVariant objeto como VT_EMPTY.

Observação

Depois de ligar Detach, é responsabilidade do chamador chamar VariantClear a estrutura resultante VARIANT .

Para obter mais informações, consulte 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::operador LPCVARIANT

Este operador de transmissão retorna uma VARIANT estrutura cujo valor é copiado deste COleVariant objeto.

operator LPCVARIANT() const;

Observações

COleVariant::operador LPVARIANT

Chame esse operador de transmissão para acessar a estrutura subjacente VARIANT para este COleVariant objeto.

operator LPVARIANT();

Observações

Atenção

Alterar o VARIANT valor na estrutura acessada pelo ponteiro retornado por esta função alterará o valor deste COleVariant objeto.

COleVariant::operador =

Esses operadores de atribuição sobrecarregados copiam o valor de origem para este COleVariant objeto.

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);

Observações

Segue-se uma breve descrição de cada operador:

  • operador =(varSrc) Copia uma VARIANTE ou COleVariant objeto existente para este objeto.

  • operador =(pSrc) Copia o objeto VARIANT acessado pelo pSrc para este objeto.

  • operador =(lpszSrc) Copia uma cadeia de caracteres terminada em nulo para este objeto e define o VARTYPE como VT_BSTR.

  • operador =(strSrc) Copia um objeto CString para este objeto e define o VARTYPE como VT_BSTR.

  • operador =(nSrc) Copia um valor inteiro de 8 ou 16 bits para este objeto. Se nSrc for um valor de 8 bits, o VARTYPE deste será definido como VT_UI1. Se nSrc é um valor de 16 bits e o VARTYPE deste é VT_BOOL, ele é mantido; caso contrário, é definido como VT_I2.

  • operador =(lSrc) Copia um valor inteiro de 32 bits para este objeto. Se o VARTYPE deste for VT_ERROR, ele é mantido; caso contrário, é definido como VT_I4.

  • operador =(curSrc) Copia um objeto COleCurrency para este objeto e define o VARTYPE como VT_CY.

  • operador =(fltSrc) Copia um valor de ponto flutuante de 32 bits para este objeto e define o VARTYPE como VT_R4.

  • operador =(dblSrc) Copia um valor de ponto flutuante de 64 bits para este objeto e define o VARTYPE como VT_R8.

  • operador =(dateSrc) Copia um objeto COleDateTime para este objeto e define o VARTYPE como VT_DATE.

  • operador =(arrSrc) Copia um objeto CByteArray para este COleVariant objeto.

  • operador =(lbSrc) Copia um objeto CLongBinary para este COleVariant objeto.

Para obter mais informações, consulte as entradas VARIANT e VARENUM no SDK do Windows.

COleVariant::operador ==

Este operador compara dois valores de variante e retorna diferente de zero se eles forem iguais; caso contrário, 0.

BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;

COleVariant::operator <<, COleVariant::operator >>

Produz um COleVariant valor para CArchive ou CdumpContext e insere um COleVariant objeto 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);

Observações

O COleVariant operador de inserção (<<) suporta despejo de diagnóstico e armazenamento em um arquivo. O operador de extração (>>) suporta o carregamento de um arquivo.

COleVariant::SetString

Define a cadeia de caracteres para 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 COleVariant objeto.

VtSrc
O VARTYPE para o novo COleVariant objeto.

Observações

O parâmetro vtSrc deve ser VT_BSTR (UNICODE) ou VT_BSTRT (ANSI). SetString é normalmente usado para definir strings como ANSI, uma vez que o padrão para o construtor COleVariant::COleVariant com um parâmetro string ou string pointer e nenhum VARTYPE é UNICODE.

Um conjunto de registros DAO em uma compilação não-UNICODE espera que as cadeias de caracteres sejam ANSI. Assim, para funções DAO que usam COleVariant objetos, se você não estiver criando um conjunto de registros UNICODE, deverá usar a forma COleVariant::COleVariant(lpszSrc,vtSrc) do construtor 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 CDaoRecordset funções CDaoRecordset::Seek e CDaoRecordset::SetFieldValue usam COleVariant objetos como parâmetros. Esses objetos devem ser ANSI se o conjunto de registros DAO não for UNICODE.

Ver também

Gráfico de Hierarquia