Makro Kontrol Komposit
Makro ini menentukan peta dan entri sink peristiwa.
Makro | Deskripsi |
---|---|
BEGIN_SINK_MAP | Menandai awal peta sink peristiwa untuk kontrol komposit. |
END_SINK_MAP | Menandai akhir peta sink peristiwa untuk kontrol komposit. |
SINK_ENTRY | Entri ke peta sink peristiwa. |
SINK_ENTRY_EX | Entri ke peta sink peristiwa dengan parameter tambahan. |
SINK_ENTRY_EX_P | (Visual Studio 2017) Mirip dengan SINK_ENTRY_EX kecuali bahwa dibutuhkan penunjuk ke iid. |
SINK_ENTRY_INFO | Entri ke peta sink peristiwa dengan informasi jenis yang disediakan secara manual untuk digunakan dengan IDispEventSimpleImpl. |
SINK_ENTRY_INFO_P | (Visual Studio 2017) Mirip dengan SINK_ENTRY_INFO kecuali bahwa dibutuhkan penunjuk ke iid. |
Persyaratan
Header: atlcom.h
BEGIN_SINK_MAP
Mendeklarasikan awal peta sink peristiwa untuk kontrol komposit.
BEGIN_SINK_MAP(_class)
Parameter
_Kelas
[di] Menentukan kontrol.
Contoh
BEGIN_SINK_MAP(CMyCompositeCtrl)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()
Keterangan
Implementasi CE ATL dari sink peristiwa ActiveX hanya mendukung nilai pengembalian jenis HRESULT atau batal dari metode penanganan aktivitas Anda. Nilai pengembalian lainnya tidak didukung dan perilakunya tidak terdefinisi.
END_SINK_MAP
Menyatakan akhir peta sink peristiwa untuk kontrol komposit.
END_SINK_MAP()
Contoh
BEGIN_SINK_MAP(CMyCompositeCtrl)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()
Keterangan
Implementasi CE ATL dari sink peristiwa ActiveX hanya mendukung nilai pengembalian jenis HRESULT atau batal dari metode penanganan aktivitas Anda. Nilai pengembalian lainnya tidak didukung dan perilakunya tidak terdefinisi.
SINK_ENTRY
Mendeklarasikan fungsi handler (fn) untuk peristiwa yang ditentukan (dispid), dari kontrol yang diidentifikasi oleh id.
SINK_ENTRY( id, dispid, fn )
Parameter
id
[di] Mengidentifikasi kontrol.
dispid
[di] Mengidentifikasi peristiwa yang ditentukan.
Fn
[di] Nama fungsi penanganan aktivitas. Fungsi ini harus menggunakan _stdcall
konvensi panggilan dan memiliki tanda tangan gaya dispinterface yang sesuai.
Contoh
BEGIN_SINK_MAP(CMyCompositeCtrl)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()
Keterangan
Implementasi CE ATL dari sink peristiwa ActiveX hanya mendukung nilai pengembalian jenis HRESULT atau batal dari metode penanganan aktivitas Anda. Nilai pengembalian lainnya tidak didukung dan perilakunya tidak terdefinisi.
SINK_ENTRY_EX dan SINK_ENTRY_EX_P
Mendeklarasikan fungsi handler (fn) untuk peristiwa yang ditentukan (dispid), dari antarmuka pengiriman (iid), untuk kontrol yang diidentifikasi oleh id.
SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)
Parameter
id
[di] Mengidentifikasi kontrol.
iid
[di] Mengidentifikasi antarmuka pengiriman.
piid
[di] Penunjuk ke antarmuka pengiriman.
dispid
[di] Mengidentifikasi peristiwa yang ditentukan.
Fn
[di] Nama fungsi penanganan aktivitas. Fungsi ini harus menggunakan _stdcall
konvensi panggilan dan memiliki tanda tangan gaya dispinterface yang sesuai.
Contoh
BEGIN_SINK_MAP(CMyCompositCtrl2)
//Make sure the Event Handlers have __stdcall calling convention
SINK_ENTRY_EX(IDC_CALENDAR1, __uuidof(DCalendarEvents), DISPID_CLICK,
&CMyCompositCtrl2::ClickCalendar1)
SINK_ENTRY_EX(IDC_CALENDAR2, __uuidof(DCalendarEvents), DISPID_CLICK,
&CMyCompositCtrl2::ClickCalendar2)
END_SINK_MAP()
Keterangan
Implementasi CE ATL dari sink peristiwa ActiveX hanya mendukung nilai pengembalian jenis HRESULT atau batal dari metode penanganan aktivitas Anda. Nilai pengembalian lainnya tidak didukung dan perilakunya tidak terdefinisi.
SINK_ENTRY_INFO dan SINK_ENTRY_INFO_P
Gunakan makro SINK_ENTRY_INFO dalam peta sink peristiwa untuk memberikan informasi yang diperlukan oleh IDispEventSimpleImpl untuk merutekan peristiwa ke fungsi handler yang relevan.
SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)
Parameter
id
[di] Bilangan bulat yang tidak ditandatangani mengidentifikasi sumber peristiwa. Nilai ini harus cocok dengan parameter templat nID yang digunakan dalam kelas dasar IDispEventSimpleImpl terkait.
iid
[di] IID yang mengidentifikasi antarmuka pengiriman.
piid
[di] Pointer ke IID yang mengidentifikasi antarmuka pengiriman.
dispid
[di] DISPID mengidentifikasi peristiwa yang ditentukan.
Fn
[di] Nama fungsi penanganan aktivitas. Fungsi ini harus menggunakan _stdcall
konvensi panggilan dan memiliki tanda tangan gaya dispinterface yang sesuai.
info
[di] Ketik informasi untuk fungsi penanganan aktivitas. Informasi jenis ini disediakan dalam bentuk penunjuk ke _ATL_FUNC_INFO
struktur. CC_CDECL adalah satu-satunya opsi yang didukung di Windows CE untuk bidang CALLCONV struktur _ATL_FUNC_INFO
. Nilai lain tidak didukung sehingga perilakunya tidak terdefinisi.
Keterangan
Empat parameter makro pertama sama dengan yang untuk makro SINK_ENTRY_EX . Parameter akhir menyediakan informasi jenis untuk peristiwa tersebut. Implementasi CE ATL dari sink peristiwa ActiveX hanya mendukung nilai pengembalian jenis HRESULT atau batal dari metode penanganan aktivitas Anda. Nilai pengembalian lainnya tidak didukung dan perilakunya tidak terdefinisi.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk