Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas ini menyediakan implementasi IDispatch metode.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
template <UINT nID, class T,
const IID* pdiid = &IID_NULL,
const GUID* plibid = &GUID_NULL,
WORD wMajor = 0,
WORD wMinor = 0,
class tihclass = CcomTypeInfoHolder>
class ATL_NO_VTABLE IDispEventImpl : public IDispEventSimpleImpl<nID, T, pdiid>
Parameter
nID
Pengidentifikasi unik untuk objek sumber. Ketika IDispEventImpl adalah kelas dasar untuk kontrol komposit, gunakan ID sumber daya dari kontrol terkandung yang diinginkan untuk parameter ini. Dalam kasus lain, gunakan bilangan bulat positif arbitrer.
T
Kelas pengguna, yang berasal dari IDispEventImpl.
pdiid
Penunjuk ke IID dari dispinterface peristiwa yang diterapkan oleh kelas ini. Antarmuka ini harus didefinisikan dalam pustaka jenis yang ditandai oleh plibid, wMajor, dan wMinor.
plibid
Penunjuk ke pustaka jenis yang menentukan antarmuka pengiriman yang ditujukkan oleh pdiid. Jika &GUID_NULL, pustaka jenis akan dimuat dari objek yang menghasilkan peristiwa.
wMajor
Versi utama pustaka jenis. Nilai default adalah 0.
wMinor
Versi minor dari pustaka jenis. Nilai default adalah 0.
tihclass
Kelas yang digunakan untuk mengelola informasi jenis untuk T. Nilai default adalah kelas jenis CComTypeInfoHolder; namun, Anda dapat mengambil alih parameter templat ini dengan menyediakan kelas jenis selain CComTypeInfoHolder.
Anggota
Typedef Publik
| Nama | Deskripsi |
|---|---|
IDispEventImpl::_tihclass |
Kelas yang digunakan untuk mengelola informasi jenis. Secara default, CComTypeInfoHolder. |
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
IDispEventImpl::IDispEventImpl |
Konstruktor. |
Metode Publik
| Nama | Deskripsi |
|---|---|
IDispEventImpl::GetFuncInfoFromId |
Menemukan indeks fungsi untuk pengidentifikasi pengiriman yang ditentukan. |
IDispEventImpl::GetIDsOfNames |
Memetakan satu anggota dan sekumpulan nama argumen opsional ke sekumpulan bilangan bulat DISPIDyang sesuai. |
IDispEventImpl::GetTypeInfo |
Mengambil informasi jenis untuk objek. |
IDispEventImpl::GetTypeInfoCount |
Mengambil jumlah antarmuka informasi jenis. |
IDispEventImpl::GetUserDefinedType |
Mengambil jenis dasar jenis yang ditentukan pengguna. |
Keterangan
IDispEventImpl menyediakan cara untuk menerapkan dispinterface peristiwa tanpa mengharuskan Anda untuk menyediakan kode implementasi untuk setiap metode/peristiwa pada antarmuka tersebut.
IDispEventImpl menyediakan implementasi IDispatch metode. Anda hanya perlu menyediakan implementasi untuk peristiwa yang Anda minati dalam penanganan.
IDispEventImpl bekerja bersama dengan peta sink peristiwa di kelas Anda untuk merutekan peristiwa ke fungsi handler yang sesuai. Untuk menggunakan kelas ini:
SINK_ENTRY Tambahkan makro atau SINK_ENTRY_EX ke peta sink peristiwa untuk setiap peristiwa pada setiap objek yang ingin Anda tangani. Saat menggunakan IDispEventImpl sebagai kelas dasar kontrol komposit, Anda dapat memanggil AtlAdviseSinkMap untuk membuat dan memutuskan koneksi dengan sumber peristiwa untuk semua entri dalam peta sink peristiwa. Dalam kasus lain, atau untuk kontrol yang lebih besar, panggil DispEventAdvise untuk membuat koneksi antara objek sumber dan kelas dasar. Panggil DispEventUnadvise untuk memutuskan koneksi.
Anda harus berasal dari IDispEventImpl (menggunakan nilai unik untuk ) untuk nIDsetiap objek yang Anda butuhkan untuk menangani peristiwa. Anda dapat menggunakan kembali kelas dasar dengan membuka terhadap satu objek sumber kemudian menyarankan terhadap objek sumber yang berbeda, tetapi jumlah maksimum objek sumber yang dapat ditangani oleh satu objek pada satu waktu dibatasi oleh jumlah IDispEventImpl kelas dasar.
IDispEventImpl menyediakan fungsionalitas yang sama dengan IDispEventSimpleImpl, kecuali mendapatkan informasi jenis tentang antarmuka dari pustaka jenis daripada menyediakannya sebagai penunjuk ke _ATL_FUNC_INFO struktur. Gunakan IDispEventSimpleImpl saat Anda tidak memiliki pustaka jenis yang menjelaskan antarmuka peristiwa atau ingin menghindari overhead yang terkait dengan menggunakan pustaka jenis.
Catatan
IDispEventImpl dan IDispEventSimpleImpl menyediakan implementasi mereka sendiri untuk IUnknown::QueryInterface memungkinkan setiap IDispEventImpl kelas dasar IDispEventSimpleImpl untuk bertindak sebagai identitas COM terpisah sambil tetap mengizinkan akses langsung ke anggota kelas di objek COM utama Anda.
Implementasi CE ATL dari sink peristiwa ActiveX hanya mendukung nilai pengembalian jenis HRESULT atau void dari metode penanganan aktivitas Anda; nilai pengembalian lainnya tidak didukung dan perilakunya tidak terdefinisi.
Untuk informasi selengkapnya, lihat Mendukung IDispEventImpl.
Hierarki Warisan
_IDispEvent
_IDispEventLocator
IDispEventImpl
Persyaratan
Header :atlcom.h
IDispEventImpl::GetFuncInfoFromId
Menemukan indeks fungsi untuk pengidentifikasi pengiriman yang ditentukan.
HRESULT GetFuncInfoFromId(
const IID& iid,
DISPID dispidMember,
LCID lcid,
_ATL_FUNC_INFO& info);
Parameter
iid
[di] Referensi ke ID fungsi.
dispidMember
[di] ID pengiriman fungsi.
lcid
[di] Konteks lokal ID fungsi.
info
[di] Struktur yang menunjukkan bagaimana fungsi dipanggil.
Tampilkan Nilai
Nilai standar HRESULT .
IDispEventImpl::GetIDsOfNames
Memetakan satu anggota dan sekumpulan nama argumen opsional ke sekumpulan bilangan bulat DISPIDyang sesuai, yang dapat digunakan pada panggilan berikutnya ke IDispatch::Invoke.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Keterangan
Lihat IDispatch::GetIDsOfNames di Windows SDK.
IDispEventImpl::GetTypeInfo
Mengambil informasi jenis untuk objek, yang kemudian dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
IDispEventImpl::GetTypeInfoCount
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Keterangan
Lihat IDispatch::GetTypeInfoCount di Windows SDK.
IDispEventImpl::GetUserDefinedType
Mengambil jenis dasar jenis yang ditentukan pengguna.
VARTYPE GetUserDefinedType(
ITypeInfo* pTI,
HREFTYPE hrt);
Parameter
pTI
[di] Penunjuk ke ITypeInfo antarmuka yang berisi jenis yang ditentukan pengguna.
hrt
[di] Handel ke deskripsi jenis yang akan diambil.
Tampilkan Nilai
Jenis varian.
Keterangan
Lihat ITypeInfo::GetRefTypeInfo.
IDispEventImpl::IDispEventImpl
Konstruktor. Menyimpan nilai parameter plibidtemplat kelas , , pdiid, wMajordan wMinor.
IDispEventImpl();
IDispEventImpl::_tihclass
Typedef ini adalah instans parameter tihclasstemplat kelas .
typedef tihclass _tihclass;
Keterangan
Secara default, kelasnya adalah CComTypeInfoHolder.
CComTypeInfoHolder mengelola informasi jenis untuk kelas .
Lihat juga
_ATL_FUNC_INFO Struktur
IDispatchImpl Kelas
IDispEventSimpleImpl Kelas
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
Gambaran Umum Kelas