Bagikan melalui


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

Macro
Fungsi Global Kontrol Komposit