Klasa COleVariant

Hermetyzuje typ danych VARIANT .

Składnia

class COleVariant : public tagVARIANT

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
COleVariant::COleVariant COleVariant Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
COleVariant::Attach Dołącza wariant do .COleVariant
COleVariant::ChangeType Zmienia typ wariantu tego COleVariant obiektu.
COleVariant::Clear Czyści ten COleVariant obiekt.
COleVariant::D etach Odłącza wariant od elementu COleVariant i zwraca wariant.
COleVariant::GetByteArrayFromVariantArray Pobiera tablicę bajtów z istniejącej tablicy wariantów.
COleVariant::SetString Ustawia ciąg na określony typ, zazwyczaj ANSI.

Operatory publiczne

Nazwa/nazwisko opis
COleVariant::operator LPCVARIANT Konwertuje COleVariant wartość na .LPCVARIANT
COleVariant::operator LPVARIANT Konwertuje COleVariant obiekt na LPVARIANTobiekt .
COleVariant::operator = Kopiuje COleVariant wartość.
COleVariant::operator == Porównuje dwie COleVariant wartości.
COleVariant::operator <<, COleVariant::operator >> COleVariant Zwraca wartość do CArchive lub CDumpContext i wprowadza COleVariant obiekt z CArchiveklasy .

Uwagi

Ten typ danych jest używany w automatyzacji OLE. W szczególności struktura DISPPARAMS zawiera wskaźnik do tablicy struktur VARIANT. Struktura DISPPARAMS służy do przekazywania parametrów do IDispatch::Invoke.

Uwaga

Ta klasa pochodzi ze VARIANT struktury. Oznacza to, że można przekazać COleVariant parametr w parametrze, który wywołuje VARIANT element i, że elementy członkowskie danych struktury są dostępnymi elementami członkowskimi VARIANT danych .COleVariant

Dwie powiązane klasy MFC COleCurrency i COleDateTime hermetyzują typy danych wariantów CURRENCY ( VT_CY) i DATE ( VT_DATE). Klasa COleVariant jest szeroko używana w klasach DAO. Zobacz te klasy dla typowego użycia tej klasy, na przykład CDaoQueryDef i CDaoRecordset.

Aby uzyskać więcej informacji, zobacz VARIANT, CURRENCY, DISPPARAMS i IDispatch::Invoke wpisów w zestawie SDK systemu Windows.

Aby uzyskać więcej informacji na COleVariant temat klasy i jej użycia w automatyzacji OLE, zobacz "Przekazywanie parametrów w automatyzacji OLE" w artykule Automatyzacja.

Hierarchia dziedziczenia

tagVARIANT

COleVariant

Wymagania

Nagłówek: afxdisp.h

COleVariant::Attach

Wywołaj tę funkcję, aby dołączyć dany obiekt VARIANT do bieżącego COleVariant obiektu.

void Attach(VARIANT& varSrc);

Parametry

varSrc
Istniejący VARIANT obiekt, który ma zostać dołączony do bieżącego COleVariant obiektu.

Uwagi

Ta funkcja ustawia zmienną VARTYPE wartości varSrc na VT_EMPTY.

Aby uzyskać więcej informacji, zobacz wpisy VARIANT i VARENUM w zestawie Windows SDK.

COleVariant::COleVariant

COleVariant Tworzy obiekt.

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
Istniejący COleVariant obiekt lub VARIANT , który ma zostać skopiowany do nowego COleVariant obiektu.

Psrc
Wskaźnik do VARIANT obiektu, który zostanie skopiowany do nowego COleVariant obiektu.

lpszSrc
Ciąg o wartości null, który ma zostać skopiowany do nowego COleVariant obiektu.

Vtsrc
Element VARTYPE dla nowego COleVariant obiektu.

strSrc
Obiekt CString do skopiowania do nowego COleVariant obiektu.

nSrc, lSrc Wartość liczbowa, która ma zostać skopiowana do nowego COleVariant obiektu.

Vtsrc
Element VARTYPE dla nowego COleVariant obiektu.

curSrc
Obiekt COleCurrency do skopiowania do nowego COleVariant obiektu.

fltSrc, dblSrc
Wartość liczbowa, która ma zostać skopiowana do nowego COleVariant obiektu.

timeSrc
Obiekt COleDateTime , który ma zostać skopiowany do nowego COleVariant obiektu.

arrSrc
Obiekt CByteArray do skopiowania do nowego COleVariant obiektu.

lbSrc
Obiekt CLongBinary do skopiowania do nowego COleVariant obiektu.

pidl
Wskaźnik do struktury ITEMIDLIST do skopiowania do nowego COleVariant obiektu.

Uwagi

Wszystkie te konstruktory tworzą nowe COleVariant obiekty zainicjowane do określonej wartości. Poniżej przedstawiono krótki opis każdego z tych konstruktorów.

  • COleVariant( ) Tworzy pusty COleVariant obiekt, VT_EMPTY.

  • COleVariant(varSrc) Kopiuje istniejący VARIANT obiekt lub COleVariant . Typ wariantu jest zachowywany.

  • COleVariant(pSrc) Kopiuje istniejący VARIANT obiekt lub COleVariant . Typ wariantu jest zachowywany.

  • COleVariant(lpszSrc) Kopiuje ciąg do nowego obiektu, VT_BSTR (UNICODE).

  • COleVariant(lpszSrc,vtSrc) Kopiuje ciąg do nowego obiektu. Parametr vtSrc musi być VT_BSTR (UNICODE) lub VT_BSTRT (ANSI).

  • COleVariant(strSrc) Kopiuje ciąg do nowego obiektu, VT_BSTR (UNICODE).

  • COleVariant(nSrc) Kopiuje 8-bitową liczbę całkowitą do nowego obiektu, VT_UI1.

  • COleVariant(nSrc,vtSrc) Kopiuje 16-bitową liczbę całkowitą (lub wartość logiczną) do nowego obiektu. Parametr vtSrc musi być VT_I2 lub VT_BOOL.

  • COleVariant(lSrc,vtSrc) Kopiuje 32-bitową liczbę całkowitą (lub wartość SCODE) do nowego obiektu. Parametr vtSrc musi być VT_I4, VT_ERROR lub VT_BOOL.

  • COleVariant(curSrc) Kopiuje COleCurrency wartość do nowego obiektu, VT_CY.

  • COleVariant(fltSrc) Kopiuje 32-bitową wartość zmiennoprzecinkową do nowego obiektu, VT_R4.

  • COleVariant(dblSrc) Kopiuje 64-bitową wartość zmiennoprzecinkową do nowego obiektu, VT_R8.

  • COleVariant(timeSrc) Kopiuje COleDateTime wartość do nowego obiektu, VT_DATE.

  • COleVariant(arrSrc) Kopiuje CByteArray obiekt do nowego obiektu, VT_EMPTY.

  • COleVariant(lbSrc) Kopiuje CLongBinary obiekt do nowego obiektu, VT_EMPTY.

Aby uzyskać więcej informacji na temat SCODE, zobacz Struktura kodów błędów COM w zestawie Windows SDK.

COleVariant::ChangeType

Konwertuje typ wartości wariantu w tym COleVariant obiekcie.

void ChangeType(VARTYPE vartype, LPVARIANT pSrc = NULL);

Parametry

Vartype
VARTYPE dla tego COleVariant obiektu.

Psrc
Wskaźnik do obiektu VARIANT , który ma zostać przekonwertowany. Jeśli ta wartość ma wartość NULL, ten COleVariant obiekt jest używany jako źródło konwersji.

Uwagi

Aby uzyskać więcej informacji, zobacz wpisy VARIANT, VARENUM i VariantChangeType w zestawie WINDOWS SDK.

COleVariant::Clear

Czyści element VARIANT.

void Clear();

Uwagi

Spowoduje to ustawienie wartości VARTYPE dla tego obiektu na VT_EMPTY. Destruktor COleVariant wywołuje tę funkcję.

Aby uzyskać więcej informacji, zobacz VARIANTwpisy , VARTYPE i VariantClear w zestawie Windows SDK.

COleVariant::D etach

Odłącza bazowy obiekt VARIANT od tego COleVariant obiektu.

VARIANT Detach();

Uwagi

Ta funkcja ustawia wartość VARTYPE dla tego COleVariant obiektu na VT_EMPTY.

Uwaga

Po wywołaniu Detachmetody obiekt jest odpowiedzialny za wywołanie VariantClear wynikowej VARIANT struktury.

Aby uzyskać więcej informacji, zobacz pozycje VARIANT, VARENUM i VariantClear w zestawie Windows SDK.

COleVariant::GetByteArrayFromVariantArray

Pobiera tablicę bajtów z istniejącej tablicy wariantów

void GetByteArrayFromVariantArray(CByteArray& bytes);

Parametry

Bajtów
Odwołanie do istniejącego obiektu CByteArray .

COleVariant::operator LPCVARIANT

Ten operator rzutowania zwraca VARIANT strukturę, której wartość jest kopiowana z tego COleVariant obiektu.

operator LPCVARIANT() const;

Uwagi

COleVariant::operator LPVARIANT

Wywołaj ten operator rzutowania, aby uzyskać dostęp do bazowej VARIANT struktury dla tego COleVariant obiektu.

operator LPVARIANT();

Uwagi

Uwaga

Zmiana wartości w strukturze dostępnej VARIANT przez wskaźnik zwrócony przez tę funkcję spowoduje zmianę wartości tego COleVariant obiektu.

COleVariant::operator =

Te przeciążone operatory przypisania kopiują wartość źródłową do tego COleVariant obiektu.

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);

Uwagi

Krótki opis każdego operatora:

  • operator =(varSrc) Kopiuje istniejący wariant lub COleVariant obiekt do tego obiektu.

  • operator =(pSrc) Kopiuje obiekt VARIANT uzyskiwany przez plik pSrc do tego obiektu.

  • operator =(lpszSrc) Kopiuje ciąg o wartości null do tego obiektu i ustawia wartość VARTYPE na VT_BSTR.

  • operator =(strSrc) Kopiuje obiekt CString do tego obiektu i ustawia wartość VARTYPE na VT_BSTR.

  • operator =(nSrc) Kopiuje 8- lub 16-bitową wartość całkowitą do tego obiektu. Jeśli parametr nSrc jest wartością 8-bitową, parametr VARTYPE tego parametru ma wartość VT_UI1. Jeśli parametr nSrc jest wartością 16-bitową, a wartość VARTYPE tego parametru jest VT_BOOL, jest przechowywana; w przeciwnym razie jest ustawiona na wartość VT_I2.

  • operator =(lSrc) Kopiuje 32-bitową wartość całkowitą do tego obiektu. Jeśli wartość VARTYPE tego parametru jest VT_ERROR, jest przechowywana; w przeciwnym razie jest ustawiona na VT_I4.

  • operator =(curSrc) Kopiuje obiekt COleCurrency do tego obiektu i ustawia wartość VARTYPE na VT_CY.

  • operator =(fltSrc) Kopiuje 32-bitową wartość zmiennoprzecinkową do tego obiektu i ustawia wartość VARTYPE na VT_R4.

  • operator =(dblSrc) Kopiuje 64-bitową wartość zmiennoprzecinkową do tego obiektu i ustawia wartość VARTYPE na VT_R8.

  • operator =(dateSrc) Kopiuje obiekt COleDateTime do tego obiektu i ustawia wartość VARTYPE na VT_DATE.

  • operator =(arrSrc) Kopiuje obiekt CByteArray do tego COleVariant obiektu.

  • operator =(lbSrc) Kopiuje obiekt CLongBinary do tego COleVariant obiektu.

Aby uzyskać więcej informacji, zobacz wpisy VARIANT i VARENUM w zestawie Windows SDK.

COleVariant::operator ==

Ten operator porównuje dwie wartości wariantów i zwraca wartości inne niżzerowe, jeśli są równe; w przeciwnym razie 0.

BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;

COleVariant::operator <<, COleVariant::operator >>

COleVariant Zwraca wartość do CArchive lub CdumpContext i wprowadza COleVariant obiekt z CArchiveklasy .

friend CDumpContext& AFXAPI operator<<(
    CDumpContext& dc,
    OleVariant varSrc);

friend CArchive& AFXAPI operator<<(
    CArchive& ar,
    COleVariant varSrc);

friend CArchive& AFXAPI operator>>(
    CArchive& ar,
    COleVariant& varSrc);

Uwagi

Operator COleVariant wstawiania (<<) obsługuje dumping diagnostyczny i przechowywanie w archiwum. Operator wyodrębniania (>>) obsługuje ładowanie z archiwum.

COleVariant::SetString

Ustawia ciąg na określony typ.

void SetString(LPCTSTR lpszSrc, VARTYPE vtSrc);

Parametry

lpszSrc
Ciąg o wartości null, który ma zostać skopiowany do nowego COleVariant obiektu.

Vtsrc
VARTYPE dla nowego COleVariant obiektu.

Uwagi

Parametr vtSrc musi być VT_BSTR (UNICODE) lub VT_BSTRT (ANSI). SetString Jest zwykle używany do ustawiania ciągów na ANSI, ponieważ wartość domyślna dla konstruktora COleVariant::COleVariant z parametrem ciągu lub wskaźnika ciągu i nie ma wartości VARTYPE to UNICODE.

Zestaw rekordów DAO w kompilacji innej niż UNICODE oczekuje, że ciągi będą ANSI. W związku z tym w przypadku funkcji DAO, które używają COleVariant obiektów, jeśli nie tworzysz zestawu rekordów UNICODE, należy użyć COleVariant::COleVariant(lpszSrc,vtSrc) formularza konstruktora z zestawem vtSrc ustawionym na VT_BSTRT (ANSI) lub użyć SetString z zestawem vtSrc ustawionym na VT_BSTRT, aby utworzyć ciągi ANSI. Na przykład CDaoRecordset funkcje CDaoRecordset::Seek i CDaoRecordset::SetFieldValue używają COleVariant obiektów jako parametrów. Te obiekty muszą być ANSI, jeśli zestaw rekordów DAO nie jest UNICODE.

Zobacz też

Wykres hierarchii