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
CComVariant
encapsule 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. VARIANT
sont 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
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_EMPTY
pSrc
.
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 SysAllocString
de . 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
, , , long
LONGLONG
ULONGLONG
BYTE
short
unsigned short
, unsigned long
ou unsigned int
utilisé pour initialiser l’objet.CComVariant
Le type de l’objet CComVariant
est , , VT_UI1
, VT_I8
VT_UI8
VT_I2
VT_I4
VT_UI2
VT_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 Clear
automatiquement .
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 VARIANT
fixes 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 SysAllocString
de . 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
, BYTE
ULONGLONG
long
short
unsigned short
unsigned long
LONGLONG
ou unsigned int
à affecter à l’objet.CComVariant
Le type de l’objet CComVariant
est , , VT_UI1
, VT_I8
VT_UI8
VT_I2
VT_I4
VT_UI2
VT_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 int
char
.
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_BYREF
sur . 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.