Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 CArchive vstupy z objektu CDumpContext .COleVariantCArchive |
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ý
COleVariantobjekt, VT_EMPTY.COleVariant(varSrc) Zkopíruje existující
VARIANTneboCOleVariantobjekt. Typ varianty je zachován.COleVariant(pSrc) Zkopíruje existující
VARIANTneboCOleVariantobjekt. 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
COleCurrencyhodnotu 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
COleDateTimehodnotu do nového objektu VT_DATE.COleVariant(arrSrc) Zkopíruje
CByteArrayobjekt do nového objektu VT_EMPTY.COleVariant(lbSrc ) Zkopíruje
CLongBinaryobjekt 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 VARIANTté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í Detachje 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
COleVariantobjekt 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
COleVariantobjektu.operator =(lbSrc ) Zkopíruje objekt CLongBinary do tohoto
COleVariantobjektu.
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 CArchive vstupy z objektu CdumpContext .COleVariantCArchive
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.