CComVariant
kelas
Kelas ini membungkus jenisnya VARIANT
, menyediakan anggota yang menunjukkan jenis data yang disimpan.
Sintaks
class CComVariant : public tagVARIANT
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CComVariant::CComVariant |
Konstruktor. |
CComVariant::~CComVariant |
Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CComVariant::Attach |
Melampirkan VARIANT ke CComVariant objek. |
CComVariant::ChangeType |
CComVariant Mengonversi objek ke tipe baru. |
CComVariant::Clear |
CComVariant Menghapus objek. |
CComVariant::Copy |
VARIANT Menyalin ke CComVariant objek. |
CComVariant::CopyTo |
Menyalin isi CComVariant objek. |
CComVariant::Detach |
Mencopot yang mendasar VARIANT dari CComVariant objek. |
CComVariant::GetSize |
Mengembalikan ukuran dalam jumlah byte konten CComVariant objek. |
CComVariant::ReadFromStream |
VARIANT Memuat dari aliran. |
CComVariant::SetByRef |
Menginisialisasi CComVariant objek dan mengatur vt anggota ke VT_BYREF . |
CComVariant::WriteToStream |
Menyimpan yang mendasar VARIANT ke aliran. |
Operator publik
Operator | Deskripsi |
---|---|
CComVariant::operator < |
Menunjukkan apakah CComVariant objek kurang dari yang ditentukan VARIANT . |
CComVariant::operator > |
Menunjukkan apakah CComVariant objek lebih besar dari yang ditentukan VARIANT . |
CComVariant::operator != |
Menunjukkan apakah CComVariant objek tidak sama dengan yang ditentukan VARIANT . |
CComVariant::operator = |
Menetapkan nilai ke CComVariant objek. |
CComVariant::operator == |
Menunjukkan apakah CComVariant objek sama dengan yang ditentukan VARIANT . |
Keterangan
CComVariant
membungkus VARIANT
jenis dan VARIANTARG
, yang terdiri dari serikat dan anggota yang menunjukkan jenis data yang disimpan dalam serikat. VARIANT
s biasanya digunakan dalam Automation.
CComVariant
berasal dari VARIANT
jenis sehingga dapat digunakan di mana pun VARIANT
dapat digunakan. Anda dapat, misalnya, menggunakan V_VT
makro untuk mengekstrak jenis CComVariant
atau Anda dapat mengakses vt
anggota secara langsung seperti yang VARIANT
Anda bisa dengan .
Hierarki Warisan
Persyaratan
Header: atlcomcli.h
CComVariant::Attach
Menghapus konten CComVariant
objek saat ini dengan aman, menyalin isi pSrc
ke dalam objek ini, lalu mengatur jenis pSrc
varian ke VT_EMPTY
.
HRESULT Attach(VARIANT* pSrc);
Parameter
pSrc
[di] Menunjuk ke VARIANT
yang akan dilampirkan ke objek.
Nilai hasil
Nilai standar HRESULT
.
Keterangan
Kepemilikan data yang disimpan oleh pSrc
ditransfer ke CComVariant
objek .
CComVariant::CComVariant
Setiap konstruktor menangani inisialisasi CComVariant
objek yang aman dengan memanggil VariantInit
fungsi Win32 atau dengan mengatur nilai dan jenis objek sesuai dengan parameter yang dilewatkan.
CComVariant() throw();
CComVariant(const CComVariant& varSrc);
CComVariant(const VARIANT& varSrc);
CComVariant(LPCOLESTR lpszSrc);
CComVariant(LPCSTR lpszSrc);
CComVariant(bool bSrc);
CComVariant(BYTE nSrc) throw();
CComVariant(int nSrc, VARTYPE vtSrc = VT_I4) throw();
CComVariant(unsigned int nSrc, VARTYPE vtSrc = VT_UI4) throw();
CComVariant(shor nSrc) throw();
CComVariant(unsigned short nSrc) throw();
CComVariant(long nSrc, VARTYPE vtSrc = VT_I4) throw();
CComVariant(unsigned long nSrc) throw();
CComVariant(LONGLONG nSrc) throw();
CComVariant(ULONGLONG nSrc) throw();
CComVariant(float fltSrc) throw();
CComVariant(double dblSrc, VARTYPE vtSrc = VT_R8) throw();
CComVariant(CY cySrc) throw();
CComVariant(IDispatch* pSrc) throw();
CComVariant(IUnknown* pSrc) throw();
CComVariant(const SAFEARRAY* pSrc);
CComVariant(char cSrc) throw();
CComVariant(const CComBSTR& bstrSrc);
Parameter
varSrc
[di] CComVariant
atau VARIANT
digunakan untuk menginisialisasi CComVariant
objek. Konten varian sumber disalin ke tujuan tanpa konversi.
lpszSrc
[di] String karakter yang digunakan untuk menginisialisasi CComVariant
objek. Anda dapat meneruskan string karakter lebar nol yang dihentikan (Unicode) ke LPCOLESTR
versi konstruktor atau string ANSI ke LPCSTR
versi . Dalam kedua kasus, string dikonversi ke Unicode BSTR
yang dialokasikan menggunakan SysAllocString
. Jenis CComVariant
objek adalah VT_BSTR
.
bSrc
[di] yang bool
digunakan untuk menginisialisasi CComVariant
objek. Argumen bool
dikonversi ke VARIANT_BOOL
sebelum disimpan. Jenis CComVariant
objek adalah VT_BOOL
.
nSrc
[di] int
, , BYTE
, short
long
, LONGLONG
, ULONGLONG
, unsigned short
, unsigned long
, atau unsigned int
digunakan untuk menginisialisasi CComVariant
objek. Jenis CComVariant
objek adalah VT_I4
, , VT_UI1
, VT_I2
, VT_I4
VT_I8
, VT_UI8
, VT_UI2
, VT_UI4
, , atau VT_UI4
, masing-masing.
vtSrc
[di] Jenis varian. Ketika parameter pertama adalah int
, jenis yang valid adalah VT_I4
dan VT_INT
. Ketika parameter pertama adalah long
, jenis yang valid adalah VT_I4
dan VT_ERROR
. Ketika parameter pertama adalah double
, jenis yang valid adalah VT_R8
dan VT_DATE
. Ketika parameter pertama adalah unsigned int
, jenis yang valid adalah VT_UI4
dan VT_UINT
.
fltSrc
[di] yang float
digunakan untuk menginisialisasi CComVariant
objek. Jenis CComVariant
objek adalah VT_R4
.
dblSrc
[di] yang double
digunakan untuk menginisialisasi CComVariant
objek. Jenis CComVariant
objek adalah VT_R8
.
cySrc
[di] yang CY
digunakan untuk menginisialisasi CComVariant
objek. Jenis CComVariant
objek adalah VT_CY
.
pSrc
[di] Atau IDispatch
IUnknown
pointer yang digunakan untuk menginisialisasi CComVariant
objek. AddRef
dipanggil pada penunjuk antarmuka. Jenis CComVariant
objek adalah VT_DISPATCH
atau VT_UNKNOWN
, masing-masing.
Atau, pointer yang SAFERRAY
digunakan untuk menginisialisasi CComVariant
objek. Salinan SAFEARRAY
disimpan dalam CComVariant
objek. Jenis CComVariant
objek adalah kombinasi dari jenis SAFEARRAY
asli dan VT_ARRAY
.
cSrc
[di] yang char
digunakan untuk menginisialisasi CComVariant
objek. Jenis CComVariant
objek adalah VT_I1
.
bstrSrc
[di] yang BSTR
digunakan untuk menginisialisasi CComVariant
objek. Jenis CComVariant
objek adalah VT_BSTR
.
Keterangan
Destruktor mengelola pembersihan dengan memanggil CComVariant::Clear
.
CComVariant::~CComVariant
Destruktor.
~CComVariant() throw();
Keterangan
Metode ini mengelola pembersihan dengan memanggil CComVariant::Clear
.
CComVariant::ChangeType
CComVariant
Mengonversi objek ke tipe baru.
HRESULT ChangeType(VARTYPE vtNew, const VARIANT* pSrc = NULL);
Parameter
vtNew
[di] Jenis baru untuk CComVariant
objek.
pSrc
[di] Penunjuk ke nilai VARIANT
yang nilainya dikonversi ke jenis baru. Nilai defaultnya adalah NULL
, yang CComVariant
berarti objek dikonversi di tempat.
Nilai hasil
Nilai standar HRESULT
.
Keterangan
Jika Anda meneruskan nilai untuk pSrc
, ChangeType
akan menggunakan ini VARIANT
sebagai sumber untuk konversi. Jika tidak, CComVariant
objek adalah sumbernya.
CComVariant::Clear
CComVariant
Menghapus objek dengan memanggil VariantClear
fungsi Win32.
HRESULT Clear();
Nilai hasil
Nilai standar HRESULT
.
Keterangan
Destruktor secara otomatis memanggil Clear
.
CComVariant::Copy
CComVariant
Membebaskan objek dan kemudian menetapkan salinan dari yang ditentukan VARIANT
.
HRESULT Copy(const VARIANT* pSrc);
Parameter
pSrc
[di] Penunjuk ke yang VARIANT
akan disalin.
Nilai hasil
Nilai standar HRESULT
.
CComVariant::CopyTo
Menyalin isi CComVariant
objek.
HRESULT CopyTo(BSTR* pstrDest);
Parameter
pstrDest
Menunjuk ke BSTR
yang akan menerima salinan konten CComVariant
objek.
Nilai hasil
Nilai standar HRESULT
.
Keterangan
Objek CComVariant
harus berjenis VT_BSTR
.
CComVariant::Detach
Lepaskan yang mendasar VARIANT
dari CComVariant
objek dan mengatur jenis objek ke VT_EMPTY
.
HRESULT Detach(VARIANT* pDest);
Parameter
pDest
[out] Mengembalikan nilai yang mendasar VARIANT
dari objek.
Nilai hasil
Nilai standar HRESULT
.
Keterangan
Konten yang direferensikan VARIANT
oleh pDest
secara otomatis dihapus sebelum ditetapkan nilai dan jenis objek panggilan CComVariant
.
CComVariant::GetSize
Untuk ukuran VARIANT
tetap sederhana, metode ini mengembalikan nilai untuk jenis data yang mendasar sizeof
ditambah sizeof(VARTYPE)
.
ULONG GetSize() const;
Nilai hasil
Ukuran dalam byte dari isi CComVariant
objek saat ini.
Keterangan
VARIANT
Jika berisi penunjuk antarmuka, GetSize
kueri untuk IPersistStream
atau IPersistStreamInit
. Jika berhasil, nilai yang dikembalikan adalah 32 bit berurutan rendah dari nilai yang dikembalikan oleh GetSizeMax
plus sizeof(CLSID)
dan sizeof(VARTYPE)
. Jika penunjuk antarmuka adalah NULL
, GetSize
mengembalikan sizeof(CLSID)
plus sizeof(VARTYPE)
. Jika ukuran total lebih besar dari ULONG_MAX
, GetSize
mengembalikan sizeof(VARTYPE)
, yang menunjukkan kesalahan.
Dalam semua kasus lain, VARIANT
sementara jenis VT_BSTR
dipaksa dari saat ini VARIANT
. Panjang ini BSTR
dihitung sebagai ukuran panjang string ditambah panjang string itu sendiri ditambah ukuran NULL
karakter ditambah sizeof(VARTYPE)
. VARIANT
Jika tidak dapat dipaksa ke VARIANT
jenis VT_BSTR
, GetSize
mengembalikan sizeof(VARTYPE)
.
Ukuran yang dikembalikan oleh metode ini cocok dengan jumlah byte yang digunakan oleh CComVariant::WriteToStream
dalam kondisi yang berhasil.
CComVariant::operator =
Menetapkan nilai dan jenis yang sesuai ke CComVariant
objek.
CComVariant& operator=(const CComVariant& varSrc);
CComVariant& operator=(const VARIANT& varSrc);
CComVariant& operator=(const CComBSTR& bstrSrc);
CComVariant& operator=(LPCOLESTR lpszSrc);
CComVariant& operator=(LPCSTR lpszSrc);
CComVariant& operator=(bool bSrc);
CComVariant& operator=(BYTE nSrc) throw();
CComVariant& operator=int nSrc) throw();
CComVariant& operator=(unsigned int nSrc) throw();
CComVariant& operator=(short nSrc) throw();
CComVariant& operator=(unsigned short nSrc) throw();
CComVariant& operator=(long nSrc) throw();
CComVariant& operator=(unsigned long nSrc) throw();
CComVariant& operator=(LONGLONG nSrc) throw();
CComVariant& operator=(ULONGLONG nSrc) throw();
CComVariant& operator=(float fltSrc) throw();
CComVariant& operator=(double dblSrc) throw();
CComVariant& operator=(CY cySrc) throw();
CComVariant& operator=(IDispatch* pSrc) throw();
CComVariant& operator=(IUnknown* pSrc) throw();
CComVariant& operator=(const SAFEARRAY* pSrc);
CComVariant& operator=(char cSrc) throw();
Parameter
varSrc
[di] CComVariant
atau VARIANT
yang akan ditetapkan ke CComVariant
objek. Konten varian sumber disalin ke tujuan tanpa konversi.
bstrSrc
[di] yang BSTR
akan ditetapkan ke CComVariant
objek. Jenis CComVariant
objek adalah VT_BSTR
.
lpszSrc
[di] String karakter yang akan ditetapkan ke CComVariant
objek. Anda dapat meneruskan string karakter lebar (Unicode) yang dihentikan nol ke LPCOLESTR
versi operator atau string ANSI ke LPCSTR
versi . Dalam kedua kasus, string dikonversi ke Unicode BSTR
yang dialokasikan menggunakan SysAllocString
. Jenis CComVariant
objek adalah VT_BSTR
.
bSrc
[di] yang bool
akan ditetapkan ke CComVariant
objek. Argumen bool
dikonversi ke VARIANT_BOOL
sebelum disimpan. Jenis CComVariant
objek adalah VT_BOOL
.
nSrc
[di] int
, , BYTE
, short
long
, LONGLONG
, ULONGLONG
, unsigned short
, unsigned long
, atau unsigned int
untuk ditetapkan ke CComVariant
objek . Jenis CComVariant
objek adalah VT_I4
, , VT_UI1
, VT_I2
, VT_I4
VT_I8
, VT_UI8
, VT_UI2
, VT_UI4
, , atau VT_UI4
, masing-masing.
fltSrc
[di] yang float
akan ditetapkan ke CComVariant
objek. Jenis CComVariant
objek adalah VT_R4
.
dblSrc
[di] yang double
akan ditetapkan ke CComVariant
objek. Jenis CComVariant
objek adalah VT_R8
.
cySrc
[di] yang CY
akan ditetapkan ke CComVariant
objek. Jenis CComVariant
objek adalah VT_CY
.
pSrc
[di] atau IDispatch
IUnknown
penunjuk yang akan ditetapkan ke CComVariant
objek. AddRef
dipanggil pada penunjuk antarmuka. Jenis CComVariant
objek adalah VT_DISPATCH
atau VT_UNKNOWN
, masing-masing.
Atau, penunjuk SAFEARRAY
yang akan ditetapkan ke CComVariant
objek. Salinan SAFEARRAY
disimpan dalam CComVariant
objek. Jenis CComVariant
objek adalah kombinasi dari jenis SAFEARRAY
asli dan VT_ARRAY
.
cSrc
[di] Karakter yang akan ditetapkan ke CComVariant
objek. Jenis CComVariant
objek adalah VT_I1
.
CComVariant::operator ==
Menunjukkan apakah CComVariant
objek sama dengan yang ditentukan VARIANT
.
bool operator==(const VARIANT& varSrc) const throw();
Keterangan
Mengembalikan TRUE
jika nilai dan jenis varSrc
sama dengan nilai dan jenis, masing-masing, dari CComVariant
objek. Sebaliknya, FALSE
. Operator menggunakan lokal default pengguna untuk melakukan perbandingan.
Operator hanya membandingkan nilai jenis varian. Ini membandingkan string, bilangan bulat, dan titik mengambang, tetapi bukan array atau rekaman.
CComVariant::operator !=
Menunjukkan apakah CComVariant
objek tidak sama dengan yang ditentukan VARIANT
.
bool operator!=(const VARIANT& varSrc) const throw();
Keterangan
Mengembalikan TRUE
jika nilai atau jenis varSrc
tidak sama dengan nilai atau jenis, masing-masing, dari CComVariant
objek. Sebaliknya, FALSE
. Operator menggunakan lokal default pengguna untuk melakukan perbandingan.
Operator hanya membandingkan nilai jenis varian. Ini membandingkan string, bilangan bulat, dan titik mengambang, tetapi bukan array atau rekaman.
CComVariant::operator <
Menunjukkan apakah CComVariant
objek kurang dari yang ditentukan VARIANT
.
bool operator<(const VARIANT& varSrc) const throw();
Keterangan
Mengembalikan TRUE
jika nilai CComVariant
objek kurang dari varSrc
nilai . Sebaliknya, FALSE
. Operator menggunakan lokal default pengguna untuk melakukan perbandingan.
CComVariant::operator >
Menunjukkan apakah CComVariant
objek lebih besar dari yang ditentukan VARIANT
.
bool operator>(const VARIANT& varSrc) const throw();
Keterangan
Mengembalikan TRUE
jika nilai CComVariant
objek lebih besar dari nilai varSrc
. Sebaliknya, FALSE
. Operator menggunakan lokal default pengguna untuk melakukan perbandingan.
CComVariant::ReadFromStream
Mengatur yang mendasar VARIANT
ke VARIANT
yang terkandung dalam aliran yang ditentukan.
HRESULT ReadFromStream(IStream* pStream);
Parameter
pStream
[di] Penunjuk ke IStream
antarmuka pada aliran yang berisi data.
Nilai hasil
Nilai standar HRESULT
.
Keterangan
ReadToStream
memerlukan panggilan sebelumnya ke WriteToStream
.
CComVariant::SetByRef
Menginisialisasi CComVariant
objek dan mengatur vt
anggota ke VT_BYREF
.
template < typename T >
void SetByRef(T* pT) throw();
Parameter
T
Jenis VARIANT
, misalnya, BSTR
, , int
atau char
.
pT
Penunjuk yang digunakan untuk menginisialisasi CComVariant
objek.
Keterangan
SetByRef
adalah templat fungsi yang menginisialisasi CComVariant
objek ke penunjuk pT
dan mengatur vt
anggota ke VT_BYREF
. Contohnya:
CComVariant var;
int nData = 10;
var.SetByRef(&nData);
CComVariant::WriteToStream
Menyimpan yang mendasar VARIANT
ke aliran.
HRESULT WriteToStream(IStream* pStream);
Parameter
pStream
[di] Penunjuk ke IStream
antarmuka pada aliran.
Nilai hasil
Nilai standar HRESULT
.