Aracılığıyla paylaş


Bileşik Denetim Makroları

Bu makrolar olay havuzu eşlemelerini ve girdilerini tanımlar.

Makro Açıklama
BEGIN_SINK_MAP Bileşik denetim için olay havuzu eşlemesinin başlangıcını işaretler.
END_SINK_MAP Bileşik denetim için olay havuzu eşlemesinin sonunu işaretler.
SINK_ENTRY Olay havuzu haritasına giriş.
SINK_ENTRY_EX Ek bir parametreyle olay havuzu eşlemesine giriş.
SINK_ENTRY_EX_P (Visual Studio 2017) SINK_ENTRY_EX benzer, ancak iid'ye bir işaretçi alır.
SINK_ENTRY_INFO IDispEventSimpleImpl ile kullanılmak üzere el ile sağlanan tür bilgileriyle olay havuzu eşlemesine giriş.
SINK_ENTRY_INFO_P (Visual Studio 2017) iid işaretçisi alması dışında SINK_ENTRY_INFO benzer.

Gereksinimler

Üst bilgi: atlcom.h

BEGIN_SINK_MAP

Bileşik denetim için olay havuzu eşlemesinin başlangıcını bildirir.

BEGIN_SINK_MAP(_class)

Parametreler

_sınıf
[in] Denetimi belirtir.

Örnek

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()

Açıklamalar

ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.

END_SINK_MAP

Bileşik denetim için olay havuzu eşlemesinin sonunu bildirir.

END_SINK_MAP()

Örnek

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()

Açıklamalar

ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.

SINK_ENTRY

Kimlikle tanımlanan denetimin belirtilen olay (dispid) için işleyici işlevini (fn) bildirir.

SINK_ENTRY( id, dispid, fn )

Parametreler

id
[in] Denetimi tanımlar.

dispid
[in] Belirtilen olayı tanımlar.

Fn
[in] Olay işleyici işlevinin adı. Bu işlev çağırma kuralını kullanmalıdır _stdcall ve uygun dispinterface stili imzaya sahip olmalıdır.

Örnek

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()

Açıklamalar

ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.

SINK_ENTRY_EX ve SINK_ENTRY_EX_P

Kimlik tarafından tanımlanan denetim için dağıtım arabiriminin (iid) belirtilen olayı (dispid) işleyici işlevini (fn) bildirir.

SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)

Parametreler

id
[in] Denetimi tanımlar.

iid
[in] Dağıtım arabirimini tanımlar.

piid
[in] Dağıtım arabiriminin işaretçisi.

dispid
[in] Belirtilen olayı tanımlar.

Fn
[in] Olay işleyici işlevinin adı. Bu işlev çağırma kuralını kullanmalıdır _stdcall ve uygun dispinterface stili imzaya sahip olmalıdır.

Örnek

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()

Açıklamalar

ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.

SINK_ENTRY_INFO ve SINK_ENTRY_INFO_P

Olayları ilgili işleyici işlevine yönlendirmek için IDispEventSimpleImpl tarafından gereken bilgileri sağlamak için olay havuzu eşlemesinde SINK_ENTRY_INFO makroyu kullanın.

SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)

Parametreler

id
[in] Olay kaynağını tanımlayan işaretsiz tamsayı. Bu değer, ilgili IDispEventSimpleImpl temel sınıfında kullanılan nID şablonu parametresiyle eşleşmelidir.

iid
[in] Dağıtım arabirimini tanımlayan IID.

piid
[in] Dağıtım arabirimini tanımlayan IID işaretçisi.

dispid
[in] Belirtilen olayı tanımlayan DISPID.

Fn
[in] Olay işleyici işlevinin adı. Bu işlev çağırma kuralını kullanmalıdır _stdcall ve uygun dispinterface stili imzaya sahip olmalıdır.

Bilgi
[in] Olay işleyici işlevi için bilgi yazın. Bu tür bilgileri bir yapı işaretçisi _ATL_FUNC_INFO biçiminde sağlanır. CC_CDECL, yapının CALLCONV alanı için Windows CE'de desteklenen tek seçenektir _ATL_FUNC_INFO . Diğer tüm değerler desteklenmez, bu nedenle davranışı tanımlanmamıştır.

Açıklamalar

İlk dört makro parametresi, SINK_ENTRY_EX makronun parametreleriyle aynıdır. Son parametre, olay için tür bilgileri sağlar. ActiveX olay havuzlarının CE ATL uygulaması yalnızca OLAY işleyicisi yöntemlerinizden HRESULT veya void türünde dönüş değerlerini destekler. Diğer dönüş değerleri desteklenmez ve davranışı tanımlanmamıştır.

Ayrıca bkz.

Makrolar
Bileşik Denetim Genel İşlevleri