Partager via


Classe CComVariant

Cette classe encapsule le VARIANT type, en fournissant un membre indiquant le type de données stockées.

Syntaxe

class CComVariant : public tagVARIANT

Membres

Constructeurs publics

Nom Description
CComVariant::CComVariant Constructeur .
CComVariant::~CComVariant Destructeur.

Méthodes publiques

Nom Description
CComVariant::Attach Attache un VARIANT à l’objet CComVariant .
CComVariant::ChangeType Convertit l’objet CComVariant en un nouveau type.
CComVariant::Clear Efface l’objet CComVariant .
CComVariant::Copy Copie un VARIANT objet.CComVariant
CComVariant::CopyTo Copie le contenu de l’objet CComVariant .
CComVariant::Detach Détache le sous-jacent VARIANT de l’objet CComVariant .
CComVariant::GetSize Retourne la taille en nombre d’octets du contenu de l’objet CComVariant .
CComVariant::ReadFromStream Charge un VARIANT flux à partir d’un flux.
CComVariant::SetByRef Initialise l’objet CComVariant et définit le vt membre sur VT_BYREF.
CComVariant::WriteToStream Enregistre le sous-jacent dans VARIANT un flux.

Opérateurs publics

Opérateur Description
CComVariant::operator < Indique si l’objet CComVariant est inférieur à l’objet spécifié VARIANT.
CComVariant::operator > Indique si l’objet CComVariant est supérieur à l’objet spécifié VARIANT.
CComVariant::operator != Indique si l’objet CComVariant n’est pas égal à l’objet spécifié VARIANT.
CComVariant::operator = Affecte une valeur à l’objet CComVariant .
CComVariant::operator == Indique si l’objet CComVariant est égal à l’objet spécifié VARIANT.

Notes

CComVariantencapsule le type et VARIANTARG le VARIANT type, qui se compose d’une union et d’un membre indiquant le type des données stockées dans l’union. VARIANTsont généralement utilisés dans Automation.

CComVariant dérive du VARIANT type afin qu’il puisse être utilisé partout où un VARIANT peut être utilisé. Vous pouvez, par exemple, utiliser la V_VT macro pour extraire le type d’un CComVariant ou vous pouvez accéder directement au vt membre comme vous le pouvez avec un VARIANT.

Hiérarchie d’héritage

tagVARIANT
 └ CComVariant

Spécifications

En-tête : atlcomcli.h

CComVariant::Attach

Efface en toute sécurité le contenu actuel de l’objetCComVariant, copie le contenu de pSrc cet objet, puis définit le type de variante sur VT_EMPTYpSrc .

HRESULT Attach(VARIANT* pSrc);

Paramètres

pSrc
[in] Pointe vers le VARIANT point d’être attaché à l’objet.

Valeur retournée

Valeur HRESULT standard.

Notes

La propriété des données détenues par pSrc est transférée à l’objet CComVariant .

CComVariant::CComVariant

Chaque constructeur gère l’initialisation sécurisée de l’objet CComVariant en appelant la VariantInit fonction Win32 ou en définissant la valeur et le type de l’objet en fonction des paramètres passés.

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

Paramètres

varSrc
[in] VARIANT Ou CComVariant utilisé pour initialiser l’objetCComVariant. Le contenu de la variante source est copié dans la destination sans conversion.

lpszSrc
[in] Chaîne de caractères utilisée pour initialiser l’objet CComVariant . Vous pouvez passer une chaîne de caractères à large zéro (Unicode) à la LPCOLESTR version du constructeur ou à une chaîne ANSI à la LPCSTR version. Dans les deux cas, la chaîne est convertie en Unicode BSTR allouée à l’aide SysAllocStringde . Le type de l’objet CComVariant est VT_BSTR.

bSrc
[in] Utilisé bool pour initialiser l’objet CComVariant . L’argument bool est converti en un VARIANT_BOOL avant d’être stocké. Le type de l’objet CComVariant est VT_BOOL.

nSrc
[in] Le int, , , longLONGLONGULONGLONGBYTEshortunsigned short, unsigned longou unsigned int utilisé pour initialiser l’objet.CComVariant Le type de l’objet CComVariant est , , VT_UI1, VT_I8VT_UI8VT_I2VT_I4VT_UI2VT_UI4, ou VT_UI4, respectivement.VT_I4

vtSrc
[in] Type de la variante. Lorsque le premier paramètre est int, les types valides sont VT_I4 et VT_INT. Lorsque le premier paramètre est long, les types valides sont VT_I4 et VT_ERROR. Lorsque le premier paramètre est double, les types valides sont VT_R8 et VT_DATE. Lorsque le premier paramètre est unsigned int, les types valides sont VT_UI4 et VT_UINT.

fltSrc
[in] Utilisé float pour initialiser l’objet CComVariant . Le type de l’objet CComVariant est VT_R4.

dblSrc
[in] Utilisé double pour initialiser l’objet CComVariant . Le type de l’objet CComVariant est VT_R8.

cySrc
[in] Utilisé CY pour initialiser l’objet CComVariant . Le type de l’objet CComVariant est VT_CY.

pSrc
[in] IUnknown Ou IDispatch pointeur utilisé pour initialiser l’objetCComVariant. AddRef est appelé sur le pointeur d’interface. Le type de l’objet CComVariant est VT_DISPATCH ou VT_UNKNOWN, respectivement.

Ou, le SAFERRAY pointeur utilisé pour initialiser l’objet CComVariant . Une copie du fichier SAFEARRAY est stockée dans l’objet CComVariant . Le type de l’objet CComVariant est une combinaison du type d’origine du SAFEARRAY et VT_ARRAY.

cSrc
[in] Utilisé char pour initialiser l’objet CComVariant . Le type de l’objet CComVariant est VT_I1.

bstrSrc
[in] Utilisé BSTR pour initialiser l’objet CComVariant . Le type de l’objet CComVariant est VT_BSTR.

Notes

Le destructeur gère le nettoyage en appelant CComVariant::Clear.

CComVariant::~CComVariant

Destructeur.

~CComVariant() throw();

Notes

Cette méthode gère le nettoyage en appelant CComVariant::Clear.

CComVariant::ChangeType

Convertit l’objet CComVariant en un nouveau type.

HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);

Paramètres

vtNew
[in] Nouveau type pour l’objet CComVariant .

pSrc
[in] Pointeur vers la valeur dont la VARIANT valeur est convertie en nouveau type. La valeur par défaut est NULL, ce qui signifie que l’objet CComVariant est converti en place.

Valeur retournée

Valeur HRESULT standard.

Notes

Si vous passez une valeur pour pSrc, ChangeType l’utilisera VARIANT comme source de la conversion. Sinon, l’objet CComVariant est la source.

CComVariant::Clear

Efface l’objet CComVariant en appelant la VariantClear fonction Win32.

HRESULT Clear();

Valeur retournée

Valeur HRESULT standard.

Notes

Le destructeur appelle Clearautomatiquement .

CComVariant::Copy

Libère l’objet CComVariant , puis l’assigne à une copie de l’objet spécifié VARIANT.

HRESULT Copy(const VARIANT* pSrc);

Paramètres

pSrc
[in] Pointeur vers le VARIANT pointeur à copier.

Valeur retournée

Valeur HRESULT standard.

CComVariant::CopyTo

Copie le contenu de l’objet CComVariant .

HRESULT CopyTo(BSTR* pstrDest);

Paramètres

pstrDest
Pointe vers un BSTR élément qui recevra une copie du contenu de l’objet CComVariant .

Valeur retournée

Valeur HRESULT standard.

Notes

L’objet CComVariant doit être de type VT_BSTR.

CComVariant::Detach

Détache le sous-jacent VARIANT de l’objet CComVariant et définit le type de l’objet sur VT_EMPTY.

HRESULT Detach(VARIANT* pDest);

Paramètres

pDest
[out] Retourne la valeur sous-jacente VARIANT de l’objet.

Valeur retournée

Valeur HRESULT standard.

Notes

Le contenu de l’objet VARIANT référencé par pDest est automatiquement effacé avant d’être affecté à la valeur et au type de l’objet appelant CComVariant .

CComVariant::GetSize

Pour les tailles VARIANTfixes simples, cette méthode retourne la sizeof valeur du type de données sous-jacent plus sizeof(VARTYPE).

ULONG GetSize() const;

Valeur retournée

Taille en octets du contenu actuel de l’objet CComVariant .

Notes

Si le VARIANT contient un pointeur d’interface, GetSize interroge IPersistStream ou IPersistStreamInit. Si elle réussit, la valeur de retour est les 32 bits de faible ordre de la valeur retournée par GetSizeMax plus sizeof(CLSID) et sizeof(VARTYPE). Si le pointeur d’interface est NULL, GetSize retourne sizeof(CLSID) plus sizeof(VARTYPE). Si la taille totale est supérieure ULONG_MAXà , GetSize retourne sizeof(VARTYPE), ce qui indique une erreur.

Dans tous les autres cas, un type VT_BSTR temporaire VARIANT est coché à partir du courant VARIANT. La longueur de celle-ci BSTR est calculée comme la taille de la longueur de la chaîne ainsi que la longueur de la chaîne elle-même ainsi que la taille du NULL caractère plus sizeof(VARTYPE). Si la VARIANT valeur ne peut pas être coédée dans un VARIANT type VT_BSTR, GetSize retourne sizeof(VARTYPE).

La taille retournée par cette méthode correspond au nombre d’octets utilisés par CComVariant::WriteToStream des conditions réussies.

CComVariant::operator =

Affecte une valeur et un type correspondant à l’objet CComVariant .

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

Paramètres

varSrc
[in] Ou CComVariant à affecter à l’objetCComVariant.VARIANT Le contenu de la variante source est copié dans la destination sans conversion.

bstrSrc
[in] à BSTR affecter à l’objet CComVariant . Le type de l’objet CComVariant est VT_BSTR.

lpszSrc
[in] Chaîne de caractères à affecter à l’objet CComVariant . Vous pouvez passer une chaîne de caractères à large zéro (Unicode) à la LPCOLESTR version de l’opérateur ou à une chaîne ANSI à la LPCSTR version. Dans les deux cas, la chaîne est convertie en Unicode BSTR allouée à l’aide SysAllocStringde . Le type de l’objet CComVariant est VT_BSTR.

bSrc
[in] à bool affecter à l’objet CComVariant . L’argument bool est converti en un VARIANT_BOOL avant d’être stocké. Le type de l’objet CComVariant est VT_BOOL.

nSrc
[in] Le int, BYTEULONGLONGlongshortunsigned shortunsigned longLONGLONGou unsigned int à affecter à l’objet.CComVariant Le type de l’objet CComVariant est , , VT_UI1, VT_I8VT_UI8VT_I2VT_I4VT_UI2VT_UI4, ou VT_UI4, respectivement.VT_I4

fltSrc
[in] à float affecter à l’objet CComVariant . Le type de l’objet CComVariant est VT_R4.

dblSrc
[in] à double affecter à l’objet CComVariant . Le type de l’objet CComVariant est VT_R8.

cySrc
[in] à CY affecter à l’objet CComVariant . Le type de l’objet CComVariant est VT_CY.

pSrc
[in] Pointeur IDispatch ou IUnknown pointeur à affecter à l’objet CComVariant . AddRef est appelé sur le pointeur d’interface. Le type de l’objet CComVariant est VT_DISPATCH ou VT_UNKNOWN, respectivement.

Ou un SAFEARRAY pointeur à affecter à l’objet CComVariant . Une copie du fichier SAFEARRAY est stockée dans l’objet CComVariant . Le type de l’objet CComVariant est une combinaison du type d’origine du SAFEARRAY et VT_ARRAY.

cSrc
[in] Char à affecter à l’objet CComVariant . Le type de l’objet CComVariant est VT_I1.

CComVariant::operator ==

Indique si l’objet CComVariant est égal à l’objet spécifié VARIANT.

bool operator==(const VARIANT& varSrc) const throw();

Notes

Retourne TRUE si la valeur et le type sont varSrc égaux à la valeur et au type, respectivement, de l’objet CComVariant . Sinon, FALSE. L’opérateur utilise les paramètres régionaux par défaut de l’utilisateur pour effectuer la comparaison.

L’opérateur compare uniquement la valeur des types de variantes. Il compare des chaînes, des entiers et des points flottants, mais pas des tableaux ou des enregistrements.

CComVariant::operator !=

Indique si l’objet CComVariant n’est pas égal à l’objet spécifié VARIANT.

bool operator!=(const VARIANT& varSrc) const throw();

Notes

Retourne TRUE si la valeur ou le type de varSrc l’objet n’est pas égal à la valeur ou au type, respectivement.CComVariant Sinon, FALSE. L’opérateur utilise les paramètres régionaux par défaut de l’utilisateur pour effectuer la comparaison.

L’opérateur compare uniquement la valeur des types de variantes. Il compare des chaînes, des entiers et des points flottants, mais pas des tableaux ou des enregistrements.

CComVariant::operator <

Indique si l’objet CComVariant est inférieur à l’objet spécifié VARIANT.

bool operator<(const VARIANT& varSrc) const throw();

Notes

Retourne TRUE si la valeur de l’objet CComVariant est inférieure à la valeur de varSrc. Sinon, FALSE. L’opérateur utilise les paramètres régionaux par défaut de l’utilisateur pour effectuer la comparaison.

CComVariant::operator >

Indique si l’objet CComVariant est supérieur à l’objet spécifié VARIANT.

bool operator>(const VARIANT& varSrc) const throw();

Notes

Retourne TRUE si la valeur de l’objet CComVariant est supérieure à la valeur de varSrc. Sinon, FALSE. L’opérateur utilise les paramètres régionaux par défaut de l’utilisateur pour effectuer la comparaison.

CComVariant::ReadFromStream

Définit le sous-jacent VARIANT sur le VARIANT contenu du flux spécifié.

HRESULT ReadFromStream(IStream* pStream);

Paramètres

pStream
[in] Pointeur vers l’interface IStream sur le flux contenant les données.

Valeur retournée

Valeur HRESULT standard.

Notes

ReadToStream nécessite un appel précédent à WriteToStream.

CComVariant::SetByRef

Initialise l’objet CComVariant et définit le vt membre sur VT_BYREF.

template < typename T >
void SetByRef(T* pT) throw();

Paramètres

T
Type de VARIANT, par exemple, BSTR, ou intchar.

pT
Pointeur utilisé pour initialiser l’objet CComVariant .

Notes

SetByRef est un modèle de fonction qui initialise l’objet CComVariant sur le pointeur pT et définit le vt membre VT_BYREFsur . Par exemple :

CComVariant var;
int nData = 10;
var.SetByRef(&nData);   

CComVariant::WriteToStream

Enregistre le sous-jacent dans VARIANT un flux.

HRESULT WriteToStream(IStream* pStream);

Paramètres

pStream
[in] Pointeur vers l’interface IStream sur un flux.

Valeur retournée

Valeur HRESULT standard.

Voir aussi

Vue d’ensemble de la classe