Klasa COleVariant
Hermetyzuje typ danych VARIANT .
Składnia
class COleVariant : public tagVARIANT
Elementy członkowskie
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 LPVARIANT obiekt . |
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 CArchive klasy . |
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 lubCOleVariant
. Typ wariantu jest zachowywany.COleVariant( pSrc ) Kopiuje istniejący
VARIANT
obiekt lubCOleVariant
. 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 VARIANT
wpisy , 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 Detach
metody 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 obiekt VARIANT lub
COleVariant
object do tego obiektu.operator =( pSrc ) Kopiuje obiekt VARIANT uzyskiwany przez pSrc do tego obiektu.
operator =( lpszSrc ) Kopiuje ciąg zakończony 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 CArchive
klasy .
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 korzystających z 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 do 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.