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.
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
VARIANTexistenteCOleVariant. O tipo de variante é mantido.COleVariant(pSrc) Copia um objeto ou
VARIANTexistenteCOleVariant. 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
COleCurrencyvalor 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
COleDateTimevalor para o novo objeto, VT_DATE.COleVariant(arrSrc) Copia um
CByteArrayobjeto para o novo objeto, VT_EMPTY.COleVariant(lbSrc) Copia um
CLongBinaryobjeto 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
COleVariantobjeto 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
COleVariantobjeto.operador =(lbSrc) Copia um objeto CLongBinary para este
COleVariantobjeto.
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.