COleVariant – třída
Zapouzdřuje datový typ VARIANT .
Syntaxe
class COleVariant : public tagVARIANT
Členové
Veřejné konstruktory
Název | Popis |
---|---|
COleVariant::COleVariant | COleVariant Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
COleVariant::Attach | Připojí variantu k .COleVariant |
COleVariant::ChangeType | Změní typ varianty tohoto COleVariant objektu. |
COleVariant::Clear | Vymaže tento COleVariant objekt. |
COleVariant::D etach | Odpojte variantu od varianty COleVariant a vrátí hodnotu VARIANT. |
COleVariant::GetByteArrayFromVariantArray | Načte bajtové pole z existujícího pole variant. |
COleVariant::SetString | Nastaví řetězec na určitý typ, obvykle ANSI. |
Veřejné operátory
Název | Popis |
---|---|
COleVariant::operator LPCVARIANT | COleVariant Převede hodnotu na hodnotu LPCVARIANT . |
COleVariant::operator LPVARIANT | COleVariant Převede objekt na objekt .LPVARIANT |
COleVariant::operator = | COleVariant Zkopíruje hodnotu. |
COleVariant::operator == | Porovná dvě COleVariant hodnoty. |
COleVariant::operator << , COleVariant::operator >> |
Vypíše hodnotu do objektu COleVariant nebo CDumpContext vstupy z objektu COleVariant .CArchive CArchive |
Poznámky
Tento datový typ se používá v automatizaci OLE. Konkrétně dispPARAMS struktura obsahuje ukazatel na pole struktur VARIANT. Struktura DISPPARAMS
se používá k předání parametrů IDispatch ::Invoke.
Poznámka:
Tato třída je odvozena ze VARIANT
struktury. To znamená, že můžete předat COleVariant
parametr, který volá VARIANT
a že datové členy VARIANT
struktury jsou přístupné datové členy COleVariant
.
Dvě související třídy MFC COleCurrency a COleDateTime zapouzdřují variantní datové typy CURRENCY ( VT_CY
) a DATE ( VT_DATE
). Třída COleVariant
je široce používána v třídách DAO; viz tyto třídy pro typické použití této třídy, například CDaoQueryDef a CDaoRecordset.
Další informace naleznete v tématu VARIANT, CURRENCY, DISPPARAMS a IDispatch::Invoke položky v sadě Windows SDK.
Další informace o COleVariant
třídě a jejím použití v automatizaci OLE naleznete v tématu Předávání parametrů v automatizaci OLE v článku Automatizace.
Hierarchie dědičnosti
tagVARIANT
COleVariant
Požadavky
Hlavička: afxdisp.h
COleVariant::Attach
Voláním této funkce připojíte daný objekt VARIANT k aktuálnímu COleVariant
objektu.
void Attach(VARIANT& varSrc);
Parametry
varSrc
Existující VARIANT
objekt, který se má připojit k aktuálnímu COleVariant
objektu.
Poznámky
Tato funkce nastaví VARTYPE varSrc na VT_EMPTY.
Další informace naleznete v položkách VARIANT a VARENUM v sadě Windows SDK.
COleVariant::COleVariant
COleVariant
Vytvoří objekt.
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);
Parametry
varSrc
Existující COleVariant
objekt nebo VARIANT
objekt, který se má zkopírovat do nového COleVariant
objektu.
pSrc
Ukazatel na VARIANT
objekt, který se zkopíruje do nového COleVariant
objektu.
lpszSrc
Řetězec ukončený hodnotou null, který se má zkopírovat do nového COleVariant
objektu.
vtSrc
Objekt VARTYPE
pro nový COleVariant
objekt.
strSrc
Objekt CString , který se má zkopírovat do nového COleVariant
objektu.
nSrc, lSrc A číselná hodnota, která se má zkopírovat do nového COleVariant
objektu.
vtSrc
Objekt VARTYPE
pro nový COleVariant
objekt.
curSrc
Objekt COleCurrency , který se má zkopírovat do nového COleVariant
objektu.
fltSrc, dblSrc
Číselná hodnota, která se má zkopírovat do nového COleVariant
objektu.
timeSrc
Objekt COleDateTime , který se má zkopírovat do nového COleVariant
objektu.
arrSrc
Objekt CByteArray , který se má zkopírovat do nového COleVariant
objektu.
lbSrc
Objekt CLongBinary , který se má zkopírovat do nového COleVariant
objektu.
pidl
Ukazatel na strukturu ITEMIDLIST , která se má zkopírovat do nového COleVariant
objektu.
Poznámky
Všechny tyto konstruktory vytvářejí nové COleVariant
objekty inicializované na zadanou hodnotu. Stručný popis každého z těchto konstruktorů následuje.
COleVariant( ) Vytvoří prázdný
COleVariant
objekt, VT_EMPTY.COleVariant( varSrc ) Zkopíruje existující
VARIANT
neboCOleVariant
objekt. Typ varianty je zachován.COleVariant( pSrc ) Zkopíruje existující
VARIANT
neboCOleVariant
objekt. Typ varianty je zachován.COleVariant( lpszSrc ) Zkopíruje řetězec do nového objektu, VT_BSTR (UNICODE).
COleVariant( lpszSrc , vtSrc ) Zkopíruje řetězec do nového objektu. Parametr vtSrc musí být VT_BSTR (UNICODE) nebo VT_BSTRT (ANSI).
COleVariant( strSrc ) Zkopíruje řetězec do nového objektu, VT_BSTR (UNICODE).
COleVariant( nSrc ) Zkopíruje 8bitové celé číslo do nového objektu, VT_UI1.
COleVariant( nSrc , vtSrc ) Zkopíruje 16bitové celé číslo (nebo logickou hodnotu) do nového objektu. Parametr vtSrc musí být VT_I2 nebo VT_BOOL.
COleVariant( lSrc , vtSrc ) Zkopíruje 32bitové celé číslo (nebo hodnotu SCODE) do nového objektu. Parametr vtSrc musí být VT_I4, VT_ERROR nebo VT_BOOL.
COleVariant( curSrc ) Zkopíruje
COleCurrency
hodnotu do nového objektu, VT_CY.COleVariant( fltSrc ) Zkopíruje 32bitovou hodnotu s plovoucí desetinnou čárkou do nového objektu VT_R4.
COleVariant( dblSrc ) Zkopíruje 64bitovou hodnotu s plovoucí desetinnou čárkou do nového objektu, VT_R8.
COleVariant( timeSrc ) Zkopíruje
COleDateTime
hodnotu do nového objektu VT_DATE.COleVariant( arrSrc ) Zkopíruje
CByteArray
objekt do nového objektu VT_EMPTY.COleVariant( lbSrc ) Zkopíruje
CLongBinary
objekt do nového objektu VT_EMPTY.
Další informace o SCODE naleznete v tématu Struktura kódů chyb modelu COM v sadě Windows SDK.
COleVariant::ChangeType
Převede typ variantní hodnoty v tomto COleVariant
objektu.
void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);
Parametry
vartype
VARTYPE pro tento COleVariant
objekt.
pSrc
Ukazatel na objekt VARIANT , který se má převést. Pokud je tato hodnota NULL, tento COleVariant
objekt se použije jako zdroj pro převod.
Poznámky
Další informace naleznete v položkách VARIANT, VARENUM a VariantChangeType v sadě Windows SDK.
COleVariant::Clear
Vymaže .VARIANT
void Clear();
Poznámky
Tím se nastaví VARTYPE pro tento objekt na VT_EMPTY. Destruktor COleVariant
volá tuto funkci.
Další informace naleznete v VARIANT
tématu , VARTYPE a VariantClear
položky v sadě Windows SDK.
COleVariant::D etach
Odpojte základní objekt VARIANT od tohoto COleVariant
objektu.
VARIANT Detach();
Poznámky
Tato funkce nastaví VARTYPE pro tento COleVariant
objekt na VT_EMPTY.
Poznámka:
Po volání Detach
je volající odpovědnost za volání VariantClear
výsledné VARIANT
struktury.
Další informace najdete v položkách VARIANT, VARENUM a VariantClear v sadě Windows SDK.
COleVariant::GetByteArrayFromVariantArray
Načte bajtové pole z existujícího pole variant.
void GetByteArrayFromVariantArray(CByteArray& bytes);
Parametry
byty
Odkaz na existující objekt CByteArray .
COleVariant::operator LPCVARIANT
Tento operátor přetypování vrátí VARIANT
strukturu, jejíž hodnota je zkopírována z tohoto COleVariant
objektu.
operator LPCVARIANT() const;
Poznámky
COleVariant::operator LPVARIANT
Volání tohoto operátoru přetypování pro přístup k podkladové VARIANT
struktuře pro tento COleVariant
objekt.
operator LPVARIANT();
Poznámky
Upozornění
Změna hodnoty ve VARIANT
struktuře, ke které přistupuje ukazatel vrácený touto funkcí, změní hodnotu tohoto COleVariant
objektu.
COleVariant::operator =
Tyto přetížené operátory přiřazení zkopírují zdrojová hodnota do tohoto COleVariant
objektu.
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);
Poznámky
Stručný popis každého operátoru:
operator =( varSrc ) Zkopíruje existující variantu nebo
COleVariant
objekt do tohoto objektu.operator =( pSrc ) Zkopíruje objekt VARIANT přístupný pomocí pSrc do tohoto objektu.
operator =( lpszSrc ) Zkopíruje do tohoto objektu řetězec ukončený hodnotou null a nastaví VARTYPE na VT_BSTR.
operator =( strSrc ) Zkopíruje objekt CString do tohoto objektu a nastaví VARTYPE na VT_BSTR.
operator =( nSrc ) Zkopíruje do tohoto objektu 8bitovou nebo 16bitovou celočíselnou hodnotu. Pokud je nSrc 8bitovou hodnotou, je hodnota VARTYPE nastavena na VT_UI1. Pokud je nSrc 16bitovou hodnotou a hodnota VARTYPE je VT_BOOL, zachová se. V opačném případě se nastaví na VT_I2.
operator =( lSrc ) Zkopíruje 32bitovou celočíselnou hodnotu do tohoto objektu. Je-li VARTYPE tohoto typu VT_ERROR, je zachován; v opačném případě je nastavena na VT_I4.
operator =( curSrc ) Zkopíruje objekt COleCurrency do tohoto objektu a nastaví VARTYPE na VT_CY.
operator =( fltSrc ) Zkopíruje 32bitovou hodnotu s plovoucí desetinnou čárkou do tohoto objektu a nastaví hodnotu VARTYPE na VT_R4.
operator =( dblSrc ) Zkopíruje 64bitovou hodnotu s plovoucí desetinnou čárkou do tohoto objektu a nastaví hodnotu VARTYPE na VT_R8.
operator =( dateSrc ) Zkopíruje objekt COleDateTime do tohoto objektu a nastaví VARTYPE na VT_DATE.
operator =( arrSrc ) Zkopíruje objekt CByteArray do tohoto
COleVariant
objektu.operator =( lbSrc ) Zkopíruje objekt CLongBinary do tohoto
COleVariant
objektu.
Další informace naleznete v položkách VARIANT a VARENUM v sadě Windows SDK.
COleVariant::operator ==
Tento operátor porovná dvě hodnoty varianty a vrátí nenulové hodnoty, pokud jsou stejné; jinak 0.
BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;
COleVariant::operator <<
, COleVariant::operator >>
Vypíše hodnotu do objektu COleVariant
nebo CdumpContext
vstupy z objektu COleVariant
.CArchive
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);
Poznámky
Operátor COleVariant
vložení (<<) podporuje diagnostické dumping a ukládání do archivu. Operátor extrakce (>>) podporuje načítání z archivu.
COleVariant::SetString
Nastaví řetězec na určitý typ.
void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);
Parametry
lpszSrc
Řetězec ukončený hodnotou null, který se má zkopírovat do nového COleVariant
objektu.
VtSrc
VARTYPE pro nový COleVariant
objekt.
Poznámky
Parametr vtSrc musí být VT_BSTR (UNICODE) nebo VT_BSTRT (ANSI). SetString
se obvykle používá k nastavení řetězců na ANSI, protože výchozí hodnota pro COleVariant::COleVariant konstruktor s parametrem řetězce nebo ukazatele řetězce a žádný VARTYPE není UNICODE.
Sada záznamů DAO v sestavení bez kódování UNICODE očekává, že řetězce budou ANSI. Proto pro funkce DAO, které používají COleVariant
objekty, pokud nevytvoříte sadu záznamů UNICODE, musíte použít COleVariant::COleVariant( lpszSrc , vtSrc ) formu konstruktoru s vtSrc nastavenou na VT_BSTRT (ANSI) nebo použít SetString
s vtSrc nastavenou na VT_BSTRT vytvořit řetězce ANSI. CDaoRecordset
Například funkce CDaoRecordset::Seek a CDaoRecordset::SetFieldValue používají COleVariant
objekty jako parametry. Tyto objekty musí být ANSI, pokud sada záznamů DAO není UNICODE.