Sdílet prostřednictvím


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 .CArchiveCArchive

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 nebo COleVariant objekt. Typ varianty je zachován.

  • COleVariant( pSrc ) Zkopíruje existující VARIANT nebo COleVariant 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 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 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 .CArchiveCArchive

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.

Viz také

Graf hierarchie