Bagikan melalui


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. VARIANTs 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 VARIANTAnda bisa dengan .

Hierarki Warisan

tagVARIANT
 └ CComVariant

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, shortlong, 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_I4VT_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 VARIANTtetap 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, shortlong, 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_I4VT_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 varSrcnilai . 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, , intatau 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 .

Lihat juga

Gambaran umum kelas