Megosztás a következőn keresztül:


CComVariant osztály

Megjegyzés:

Az aktív sablontár (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Ez az osztály körbefuttatja a VARIANT típust, és megadja a tárolt adatok típusát jelző tagot.

Szemantika

class CComVariant : public tagVARIANT

Tagok

Nyilvános konstruktorok

Név Description
CComVariant::CComVariant A konstruktor.
CComVariant::~CComVariant A destruktor.

Nyilvános metódusok

Név Description
CComVariant::Attach Csatol egy objektumotVARIANT.CComVariant
CComVariant::ChangeType CComVariant Az objektumot új típussá alakítja.
CComVariant::Clear Törli az objektumot CComVariant .
CComVariant::Copy Átmásolja az objektumotVARIANT.CComVariant
CComVariant::CopyTo Másolja az objektum tartalmát CComVariant .
CComVariant::Detach Leválasztja a mögöttes objektumot VARIANT az CComVariant objektumról.
CComVariant::GetSize Az objektum tartalmának CComVariant bájtban megadott méretét adja vissza.
CComVariant::ReadFromStream Betölt egy VARIANT streamből származó elemet.
CComVariant::SetByRef Inicializálja az CComVariant objektumot, és beállítja a tagot a vt következőre VT_BYREF: .
CComVariant::WriteToStream Menti az alapul szolgálót VARIANT egy streambe.

Nyilvános operátorok

Operátor Description
CComVariant::operator < Azt jelzi, hogy az CComVariant objektum kisebb-e a megadottnál VARIANT.
CComVariant::operator > Azt jelzi, hogy az CComVariant objektum nagyobb-e a megadottnál VARIANT.
CComVariant::operator != Azt jelzi, hogy az CComVariant objektum nem egyenlő-e a megadottval VARIANT.
CComVariant::operator = Érték hozzárendelése az CComVariant objektumhoz.
CComVariant::operator == Azt jelzi, hogy az CComVariant objektum megegyezik-e a megadott VARIANTértékekkel.

Megjegyzések

CComVariantsorba foglalja a egyesítést és VARIANTARG a VARIANT típust, amely egy unióból és egy tagból áll, amely az egyesítőben tárolt adatok típusát jelzi. VARIANTAz s-eket általában az Automationben használják.

CComVariant a típusból VARIANT származik, így bárhol VARIANT használható. A makróval V_VT például kinyerheti a típust CComVariant , vagy közvetlenül is elérheti a vt tagot, ahogyan egy VARIANT.

Öröklési hierarchia

tagVARIANT
 └ CComVariant

Requirements

Fejléc:atlcomcli.h

CComVariant::Attach

Biztonságosan törli az objektum aktuális tartalmát CComVariant , átmásolja a tartalmát pSrc ebbe az objektumba, majd beállítja pSrcVT_EMPTYa változat típusát.

HRESULT Attach(VARIANT* pSrc);

Paraméterek

pSrc
[in] VARIANT Az objektumhoz csatolandó elemre mutat.

Visszaadott érték

Egy standard HRESULT érték.

Megjegyzések

A tárolt pSrc adatok tulajdonjoga átkerül az CComVariant objektumba.

CComVariant::CComVariant

Minden konstruktor kezeli az objektum biztonságos inicializálását a VariantInit Win32 függvény meghívásával vagy az objektum értékének és típusának CComVariant az átadott paramétereknek megfelelő beállításával.

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éterek

varSrc
[in] Az CComVariant objektum inicializálásához vagy VARIANT inicializálásához CComVariant használt. A forrásvariáns tartalma konvertálás nélkül lesz átmásolva a célhelyre.

lpszSrc
[in] Az objektum inicializálásához CComVariant használt karaktersztring. Nulla végződésű széles (Unicode) karaktersztringet adhat át a LPCOLESTR konstruktor verziójának, vagy egy ANSI-sztringet a LPCSTR verziónak. A sztring mindkét esetben Unicode-ra BSTR lesz konvertálva, amely a használatával SysAllocStringvan lefoglalva. Az objektum típusaCComVariant.VT_BSTR

bSrc
[in] Az bool objektum inicializálásához CComVariant használt. Az bool argumentumot a rendszer a tárolás előtt átalakítja.VARIANT_BOOL Az objektum típusaCComVariant.VT_BOOL

nSrc
[in] Az intobjektum inicializálásához használt , shortBYTE, long, LONGLONG, ULONGLONG, unsigned shortunsigned long, vagyunsigned int.CComVariant Az objektum VT_I4típusa CComVariant : , VT_UI1, VT_I4VT_I2, VT_I8, VT_UI4VT_UI8VT_UI2vagy VT_UI4, .

vtSrc
[in] A változat típusa. Ha az első paraméter, akkor az intérvényes típusok VT_I4 és VT_INTa . Ha az első paraméter, akkor az longérvényes típusok VT_I4 és VT_ERRORa . Ha az első paraméter, akkor az doubleérvényes típusok VT_R8 és VT_DATEa . Ha az első paraméter, akkor az unsigned intérvényes típusok VT_UI4 és VT_UINTa .

fltSrc
[in] Az float objektum inicializálásához CComVariant használt. Az objektum típusaCComVariant.VT_R4

dblSrc
[in] Az double objektum inicializálásához CComVariant használt. Az objektum típusaCComVariant.VT_R8

cySrc
[in] Az CY objektum inicializálásához CComVariant használt. Az objektum típusaCComVariant.VT_CY

pSrc
[in] Az IDispatch objektum inicializálásához CComVariant használt mutató.IUnknown AddRef az illesztőmutatón van meghívva. Az objektum VT_DISPATCH típusa CComVariant vagy VT_UNKNOWNannak típusa.

Vagy az SAFERRAY objektum inicializálásához CComVariant használt mutató. A rendszer az SAFEARRAY objektum egy példányát CComVariant tárolja. Az objektum típusa az CComVariant eredeti és SAFEARRAYVT_ARRAYa .

cSrc
[in] Az char objektum inicializálásához CComVariant használt. Az objektum típusaCComVariant.VT_I1

bstrSrc
[in] Az BSTR objektum inicializálásához CComVariant használt. Az objektum típusaCComVariant.VT_BSTR

Megjegyzések

A destruktor hívással CComVariant::Clearkezeli a törlést.

CComVariant::~CComVariant

A destruktor.

~CComVariant() throw();

Megjegyzések

Ez a metódus hívással kezeli a törlést CComVariant::Clear.

CComVariant::ChangeType

CComVariant Az objektumot új típussá alakítja.

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

Paraméterek

vtNew
[in] Az objektum új típusa CComVariant .

pSrc
[in] Az új típussá VARIANT konvertált érték mutatója. Az alapértelmezett érték az NULL, ami azt jelenti, hogy az CComVariant objektum a helyén lesz konvertálva.

Visszaadott érték

Egy standard HRESULT érték.

Megjegyzések

Ha egy értéket pSrcad át, ChangeType ezt VARIANT fogja használni az átalakítás forrásaként. Ellenkező esetben az CComVariant objektum a forrás.

CComVariant::Clear

Törli az CComVariant objektumot a VariantClear Win32 függvény meghívásával.

HRESULT Clear();

Visszaadott érték

Egy standard HRESULT érték.

Megjegyzések

A destruktor automatikusan hív.Clear

CComVariant::Copy

Felszabadítja az CComVariant objektumot, majd hozzárendeli a megadott VARIANTpéldány egy példányát.

HRESULT Copy(const VARIANT* pSrc);

Paraméterek

pSrc
[in] A másolandó mutató VARIANT .

Visszaadott érték

Egy standard HRESULT érték.

CComVariant::CopyTo

Másolja az objektum tartalmát CComVariant .

HRESULT CopyTo(BSTR* pstrDest);

Paraméterek

pstrDest
Egy olyan pontra BSTR mutat, amely megkapja az objektum tartalmának másolatát CComVariant .

Visszaadott érték

Egy standard HRESULT érték.

Megjegyzések

Az CComVariant objektumnak típusnak VT_BSTRkell lennie.

CComVariant::Detach

Leválasztja a mögöttes objektumot VARIANT az CComVariant objektumról, és beállítja az objektum típusát VT_EMPTY.

HRESULT Detach(VARIANT* pDest);

Paraméterek

pDest
[kifelé] Az objektum mögöttes VARIANT értékét adja vissza.

Visszaadott érték

Egy standard HRESULT érték.

Megjegyzések

A hivatkozott pDest hivatkozás tartalma VARIANT automatikusan törlődik, mielőtt hozzá lett rendelve a hívó CComVariant objektum értékéhez és típusához.

CComVariant::GetSize

Az egyszerű rögzített s méret esetén VARIANTez a metódus a sizeof mögöttes adattípus értékét adja vissza plusz sizeof(VARTYPE).

ULONG GetSize() const;

Visszaadott érték

Az objektum aktuális tartalmának bájtban megadott CComVariant mérete.

Megjegyzések

Ha a VARIANT mutató felületi mutatót tartalmaz, GetSize akkor a lekérdezések a következőhöz: IPersistStream vagy IPersistStreamInit. Ha sikeres, a visszatérési érték a plusz sizeof(CLSID) és sizeof(VARTYPE)a GetSizeMax . Ha az illesztőmutató az NULL, akkor plusz sizeof(VARTYPE)értéket ad sizeof(CLSID)GetSize vissza. Ha a teljes méret nagyobb, mint ULONG_MAXa visszaadott sizeof(VARTYPE)GetSize érték, az hibát jelez.

Minden más esetben a jelenlegi típusból VARIANTkényszerít egy ideiglenes VARIANT típustVT_BSTR. Ennek BSTR hosszát a sztring hosszának és magának a sztringnek a hossza, valamint a karakter és a NULL karakter sizeof(VARTYPE)mérete alapján számítjuk ki. Ha a VARIANT rendszer nem kényszeríthető egy VARIANT típusra VT_BSTR, GetSize a visszaadott sizeof(VARTYPE)értéket adja vissza.

A metódus által visszaadott méret megegyezik a sikeres feltételek mellett CComVariant::WriteToStream használt bájtok számával.

CComVariant::operator =

Egy értéket és egy megfelelő típust rendel hozzá az CComVariant objektumhoz.

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éterek

varSrc
[in] Az CComVariant objektumhoz rendelendő vagy VARIANT hozzárendelendő CComVariant . A forrásvariáns tartalma konvertálás nélkül lesz átmásolva a célhelyre.

bstrSrc
[in] Az BSTR objektumhoz CComVariant rendelendő. Az objektum típusaCComVariant.VT_BSTR

lpszSrc
[in] Az objektumhoz CComVariant hozzárendelendő karaktersztring. Egy nulla végződésű széles (Unicode) karaktersztringet átadhat az LPCOLESTR operátor verziójának, vagy egy ANSI-sztringet a LPCSTR verziónak. A sztring mindkét esetben Unicode-ra BSTR lesz konvertálva, amely a használatával SysAllocStringvan lefoglalva. Az objektum típusaCComVariant.VT_BSTR

bSrc
[in] Az bool objektumhoz CComVariant rendelendő. Az bool argumentumot a rendszer a tárolás előtt átalakítja.VARIANT_BOOL Az objektum típusaCComVariant.VT_BOOL

nSrc
[in] A int, BYTE, short, long, LONGLONGULONGLONG, , unsigned short, unsigned longunsigned intCComVariant Az objektum VT_I4típusa CComVariant : , VT_UI1, VT_I4VT_I2, VT_I8, VT_UI4VT_UI8VT_UI2vagy VT_UI4, .

fltSrc
[in] Az float objektumhoz CComVariant rendelendő. Az objektum típusaCComVariant.VT_R4

dblSrc
[in] Az double objektumhoz CComVariant rendelendő. Az objektum típusaCComVariant.VT_R8

cySrc
[in] Az CY objektumhoz CComVariant rendelendő. Az objektum típusaCComVariant.VT_CY

pSrc
[in] Az IDispatch objektumhoz CComVariant hozzárendelni kívánt mutató.IUnknown AddRef az illesztőmutatón van meghívva. Az objektum VT_DISPATCH típusa CComVariant vagy VT_UNKNOWNannak típusa.

Vagy az SAFEARRAY objektumhoz CComVariant rendelendő mutató. A rendszer az SAFEARRAY objektum egy példányát CComVariant tárolja. Az objektum típusa az CComVariant eredeti és SAFEARRAYVT_ARRAYa .

cSrc
[in] Az objektumhoz CComVariant hozzárendelendő karakter. Az objektum típusaCComVariant.VT_I1

CComVariant::operator ==

Azt jelzi, hogy az CComVariant objektum megegyezik-e a megadott VARIANTértékekkel.

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

Megjegyzések

Akkor adja TRUE vissza, ha az érték és a varSrc típus megegyezik az CComVariant objektum értékével és típusával. Ellenkező esetben FALSE. Az operátor a felhasználó alapértelmezett területi beállításával végzi el az összehasonlítást.

Az operátor csak a változattípusok értékét hasonlítja össze. Sztringeket, egész számokat és lebegő pontokat hasonlít össze, tömböket és rekordokat nem.

CComVariant::operator !=

Azt jelzi, hogy az CComVariant objektum nem egyenlő-e a megadottval VARIANT.

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

Megjegyzések

Visszaadja TRUE , ha az érték vagy a varSrc típus nem egyenlő az objektum értékével vagy típusával CComVariant . Ellenkező esetben FALSE. Az operátor a felhasználó alapértelmezett területi beállításával végzi el az összehasonlítást.

Az operátor csak a változattípusok értékét hasonlítja össze. Sztringeket, egész számokat és lebegő pontokat hasonlít össze, tömböket és rekordokat nem.

CComVariant::operator <

Azt jelzi, hogy az CComVariant objektum kisebb-e a megadottnál VARIANT.

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

Megjegyzések

Akkor adja TRUE vissza, ha az CComVariant objektum értéke kisebb, mint a .varSrc Ellenkező esetben FALSE. Az operátor a felhasználó alapértelmezett területi beállításával végzi el az összehasonlítást.

CComVariant::operator >

Azt jelzi, hogy az CComVariant objektum nagyobb-e a megadottnál VARIANT.

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

Megjegyzések

Akkor adja TRUE vissza, ha az CComVariant objektum értéke nagyobb, mint a .varSrc Ellenkező esetben FALSE. Az operátor a felhasználó alapértelmezett területi beállításával végzi el az összehasonlítást.

CComVariant::ReadFromStream

Beállítja az alapul szolgálót VARIANT a VARIANT megadott streamben találhatóra.

HRESULT ReadFromStream(IStream* pStream);

Paraméterek

pStream
[in] Az adatokat tartalmazó adatfolyam felületére mutató mutató IStream .

Visszaadott érték

Egy standard HRESULT érték.

Megjegyzések

ReadToStreama előző hívását igényli.WriteToStream

CComVariant::SetByRef

Inicializálja az CComVariant objektumot, és beállítja a tagot a vt következőre VT_BYREF: .

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

Paraméterek

T
A típusVARIANT, például , BSTRintvagy char.

pT
Az objektum inicializálásához CComVariant használt mutató.

Megjegyzések

SetByRefegy függvénysablon, amely inicializálja az CComVariant objektumot a mutatóra, és a tagot a vt következőre pTVT_BYREFállítja: . Például:

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

CComVariant::WriteToStream

Menti az alapul szolgálót VARIANT egy streambe.

HRESULT WriteToStream(IStream* pStream);

Paraméterek

pStream
[in] A stream felületére IStream mutató mutató.

Visszaadott érték

Egy standard HRESULT érték.

Lásd még

Osztály áttekintése