Share via


COleVariant, classe

Encapsule le type de données VARIANT .

Syntaxe

class COleVariant : public tagVARIANT

Membres

Constructeurs publics

Nom Description
COleVariant ::COleVariant Construit un objet COleVariant.

Méthodes publiques

Nom Description
COleVariant ::Attach Attache un VARIANT à un COleVariant.
COleVariant ::ChangeType Modifie le type de variante de cet COleVariant objet.
COleVariant ::Clear Efface cet COleVariant objet.
COleVariant ::D etach Détache un VARIANT d’un COleVariant variant et retourne le VARIANT.
COleVariant ::GetByteArrayFromVariantArray Récupère un tableau d’octets à partir d’un tableau de variantes existant.
COleVariant ::SetString Définit la chaîne sur un type particulier, généralement ANSI.

Opérateurs publics

Nom Description
COleVariant ::operator LPCVARIANT Convertit une COleVariant valeur en un LPCVARIANT.
COleVariant ::operator LPVARIANT Convertit un COleVariant objet en un LPVARIANT.
COleVariant ::operator = Copie une COleVariant valeur.
COleVariant ::operator == Compare deux COleVariant valeurs.
COleVariant::operator <<, COleVariant::operator >> Génère une COleVariant valeur vers CArchive ou CDumpContext entrée d’un COleVariant objet à partir de CArchive.

Notes

Ce type de données est utilisé dans OLE Automation. Plus précisément, la structure DISPPARAMS contient un pointeur vers un tableau de structures VARIANT. Une DISPPARAMS structure est utilisée pour passer des paramètres à IDispatch ::Invoke.

Remarque

Cette classe est dérivée de la VARIANT structure. Cela signifie que vous pouvez transmettre un COleVariant paramètre qui appelle un VARIANT paramètre et que les membres de données de la VARIANT structure sont des membres de données accessibles de COleVariant.

Les deux classes MFC associées COleCurrency et COleDateTime encapsulent les types de données VARIANT CURRENCY ( VT_CY) et DATE ( VT_DATE). La COleVariant classe est largement utilisée dans les classes DAO ; consultez ces classes pour une utilisation classique de cette classe, par exemple CDaoQueryDef et CDaoRecordset.

Pour plus d’informations, consultez les entrées VARIANT, CURRENCY, DISPPARAMS et IDispatch ::Invoke dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations sur la COleVariant classe et son utilisation dans OLE Automation, consultez « Passage de paramètres dans OLE Automation » dans l’article Automation.

Hiérarchie d'héritage

tagVARIANT

COleVariant

Spécifications

En-tête : afxdisp.h

COleVariant ::Attach

Appelez cette fonction pour attacher l’objet VARIANT donné à l’objet actuelCOleVariant.

void Attach(VARIANT& varSrc);

Paramètres

varSrc
Objet existant VARIANT à attacher à l’objet actuel COleVariant .

Notes

Cette fonction définit le VARTYPE de varSrc sur VT_EMPTY.

Pour plus d’informations, consultez les entrées VARIANT et VARENUM dans le Kit de développement logiciel (SDK) Windows.

COleVariant ::COleVariant

Construit un objet 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);

Paramètres

varSrc
Objet ou VARIANT existant COleVariant à copier dans le nouvel COleVariant objet.

pSrc
Pointeur vers un VARIANT objet qui sera copié dans le nouvel COleVariant objet.

lpszSrc
Chaîne terminée par null à copier dans le nouvel COleVariant objet.

vtSrc
Pour VARTYPE le nouvel COleVariant objet.

strSrc
Objet CString à copier dans le nouvel COleVariant objet.

nSrc, lSrc A valeur numérique à copier dans le nouvel COleVariant objet.

vtSrc
Pour VARTYPE le nouvel COleVariant objet.

curSrc
Objet COleCurrency à copier dans le nouvel COleVariant objet.

fltSrc, dblSrc
Valeur numérique à copier dans le nouvel objet COleVariant.

timeSrc
Objet COleDateTime à copier dans le nouvel COleVariant objet.

arrSrc
Objet CByteArray à copier dans le nouvel COleVariant objet.

lbSrc
Objet CLongBinary à copier dans le nouvel COleVariant objet.

pidl
Pointeur vers une structure ITEMIDLIST à copier dans le nouvel COleVariant objet.

Notes

Tous ces constructeurs créent de nouveaux COleVariant objets initialisés à la valeur spécifiée. Une brève description de chacun de ces constructeurs suit.

  • COleVariant( ) Crée un objet vide COleVariant , VT_EMPTY.

  • COleVariant(varSrc) Copie un objet ou COleVariant un objet existantVARIANT. Le type variant est conservé.

  • COleVariant(pSrc) Copie un objet ou COleVariant un objet existantVARIANT. Le type variant est conservé.

  • COleVariant(lpszSrc) Copie une chaîne dans le nouvel objet, VT_BSTR (UNICODE).

  • COleVariant(lpszSrc,vtSrc) Copie une chaîne dans le nouvel objet. Le paramètre vtSrc doit être VT_BSTR (UNICODE) ou VT_BSTRT (ANSI).

  • COleVariant(strSrc) Copie une chaîne dans le nouvel objet, VT_BSTR (UNICODE).

  • COleVariant(nSrc) Copie un entier 8 bits dans le nouvel objet, VT_UI1.

  • COleVariant(nSrc,vtSrc) Copie un entier 16 bits (ou valeur booléenne) dans le nouvel objet. Le paramètre vtSrc doit être VT_I2 ou VT_BOOL.

  • COleVariant(lSrc,vtSrc) Copie un entier 32 bits (ou une valeur SCODE) dans le nouvel objet. Le paramètre vtSrc doit être VT_I4, VT_ERROR ou VT_BOOL.

  • COleVariant(curSrc) Copie une COleCurrency valeur dans le nouvel objet, VT_CY.

  • COleVariant(fltSrc) Copie une valeur à virgule flottante 32 bits dans le nouvel objet, VT_R4.

  • COleVariant(dblSrc) Copie une valeur à virgule flottante 64 bits dans le nouvel objet, VT_R8.

  • COleVariant(timeSrc) Copie une COleDateTime valeur dans le nouvel objet, VT_DATE.

  • COleVariant(arrSrc) Copie un CByteArray objet dans le nouvel objet, VT_EMPTY.

  • COleVariant(lbSrc) Copie un CLongBinary objet dans le nouvel objet, VT_EMPTY.

Pour plus d’informations sur SCODE, consultez Structure des codes d’erreur COM dans le Kit de développement logiciel (SDK) Windows.

COleVariant ::ChangeType

Convertit le type de valeur de variante dans cet COleVariant objet.

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

Paramètres

vartype
VARTYPE pour cet COleVariant objet.

pSrc
Pointeur vers l’objet VARIANT à convertir. Si cette valeur est NULL, cet COleVariant objet est utilisé comme source de la conversion.

Notes

Pour plus d’informations, consultez les entrées VARIANT, VARENUM et VariantChangeType dans le Kit de développement logiciel (SDK) Windows.

COleVariant ::Clear

Efface le VARIANT.

void Clear();

Notes

Cela définit le VARTYPE de cet objet sur VT_EMPTY. Le COleVariant destructeur appelle cette fonction.

Pour plus d’informations, consultez les VARIANTentrées, VARTYPE et VariantClear VARTYPE dans le Kit de développement logiciel (SDK) Windows.

COleVariant ::D etach

Détache l’objet VARIANT sous-jacent de cet COleVariant objet.

VARIANT Detach();

Notes

Cette fonction définit le VARTYPE de cet COleVariant objet sur VT_EMPTY.

Remarque

Après l’appel Detach, il incombe à l’appelant d’appeler VariantClear la structure résultante VARIANT .

Pour plus d’informations, consultez les entrées VARIANT, VARENUM et VariantClear dans le Kit de développement logiciel (SDK) Windows.

COleVariant ::GetByteArrayFromVariantArray

Récupère un tableau d’octets à partir d’un tableau de variantes existant

void GetByteArrayFromVariantArray(CByteArray& bytes);

Paramètres

bytes
Référence à un objet CByteArray existant.

COleVariant ::operator LPCVARIANT

Cet opérateur de cast retourne une VARIANT structure dont la valeur est copiée à partir de cet COleVariant objet.

operator LPCVARIANT() const;

Notes

COleVariant ::operator LPVARIANT

Appelez cet opérateur de cast pour accéder à la structure sous-jacente VARIANT de cet COleVariant objet.

operator LPVARIANT();

Notes

Attention

La modification de la valeur dans la VARIANT structure accessible par le pointeur retourné par cette fonction modifie la valeur de cet COleVariant objet.

COleVariant ::operator =

Ces opérateurs d’affectation surchargés copient la valeur source dans cet COleVariant objet.

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

Notes

Une brève description de chaque opérateur suit :

  • operator =(varSrc) Copie un variant ou COleVariant un objet existant dans cet objet.

  • operator =(pSrc) Copie l’objet VARIANT accessible par pSrc dans cet objet.

  • operator =(lpszSrc) Copie une chaîne terminée par null dans cet objet et définit le VARTYPE sur VT_BSTR.

  • operator =(strSrc) Copie un objet CString dans cet objet et définit le VARTYPE sur VT_BSTR.

  • operator =(nSrc) Copie une valeur entière 8 ou 16 bits dans cet objet. Si nSrc est une valeur 8 bits, le VARTYPE de ce paramètre est défini sur VT_UI1. Si nSrc est une valeur 16 bits et que le VARTYPE de ce paramètre est VT_BOOL, il est conservé ; sinon, il est défini sur VT_I2.

  • operator =(lSrc) Copie une valeur entière 32 bits dans cet objet. Si le VARTYPE de ce paramètre est VT_ERROR, il est conservé ; sinon, elle est définie sur VT_I4.

  • operator =(curSrc) Copie un objet COleCurrency dans cet objet et définit le VARTYPE sur VT_CY.

  • operator =(fltSrc) Copie une valeur à virgule flottante 32 bits dans cet objet et définit le VARTYPE sur VT_R4.

  • operator =(dblSrc) Copie une valeur à virgule flottante 64 bits dans cet objet et définit le VARTYPE sur VT_R8.

  • operator =(dateSrc) Copie un objet COleDateTime dans cet objet et définit le VARTYPE sur VT_DATE.

  • operator =(arrSrc) Copie un objet CByteArray dans cet COleVariant objet.

  • operator =(lbSrc) Copie un objet CLongBinary dans cet COleVariant objet.

Pour plus d’informations, consultez les entrées VARIANT et VARENUM dans le Kit de développement logiciel (SDK) Windows.

COleVariant ::operator ==

Cet opérateur compare deux valeurs de variantes et retourne une valeur différente de zéro si elles sont égales ; sinon 0.

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

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

Génère une COleVariant valeur vers CArchive ou CdumpContext entrée d’un COleVariant objet à partir 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);

Notes

L’opérateur d’insertion (<<) prend en charge le COleVariant dumping de diagnostic et le stockage dans une archive. L’opérateur d’extraction (>>) prend en charge le chargement à partir d’une archive.

COleVariant ::SetString

Définit la chaîne sur un type particulier.

void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);

Paramètres

lpszSrc
Chaîne terminée par null à copier dans le nouvel COleVariant objet.

VtSrc
VARTYPE pour le nouvel COleVariant objet.

Notes

Le paramètre vtSrc doit être VT_BSTR (UNICODE) ou VT_BSTRT (ANSI). SetString est généralement utilisé pour définir des chaînes sur ANSI, car la valeur par défaut du constructeur COleVariant ::COleVariant avec un paramètre de pointeur de chaîne ou de chaîne et aucun VARTYPE n’est UNICODE.

Un jeu d’enregistrements DAO dans une build non-UNICODE s’attend à ce que les chaînes soient ANSI. Par conséquent, pour les fonctions DAO qui utilisent COleVariant des objets, si vous ne créez pas un jeu d’enregistrements UNICODE, vous devez utiliser la forme COleVariant ::COleVariant(lpszSrc,vtSrc) de constructeur avec vtSrc défini sur VT_BSTRT (ANSI) ou utiliser SetString avec vtSrc défini sur VT_BSTRT pour créer des chaînes ANSI. Par exemple, les CDaoRecordset fonctions CDaoRecordset ::Seek et CDaoRecordset ::SetFieldValue utilisent COleVariant des objets comme paramètres. Ces objets doivent être ANSI si le jeu d’enregistrements DAO n’est pas UNICODE.

Voir aussi

Graphique hiérarchique