home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 May
/
Pcwk5b98.iso
/
Borland
/
Cplus45
/
BC45
/
OWLINC.PAK
/
WINDOWEV.H
< prev
Wrap
Text File
|
1995-08-29
|
23KB
|
634 lines
//----------------------------------------------------------------------------
// ObjectWindows
// (C) Copyright 1992, 1994 by Borland International, All Rights Reserved
//
// Event response table macros for windows messages
//----------------------------------------------------------------------------
#if !defined(OWL_WINDOWEV_H)
#define OWL_WINDOWEV_H
#if !defined(OWL_EVENTHAN_H)
# include <owl/eventhan.h>
#endif
//
// general purpose WM_* macro
//
// wparam and lparam are passed, i.e: LPARAM method(WPARAM, LPARAM)
//
#define EV_MESSAGE(message, method)\
{message, 0, (TAnyDispatcher)::I32_WPARAM_LPARAM_Dispatch,\
(TMyPMF)LRESULT_WPARAM_LPARAM_Sig(&TMyClass::method)}
//
// registered messages
//
#define EV_REGISTERED(str, method)\
EV_MESSAGE(::RegisterWindowMessage(str), method)
//
// handler for child ID notifications that are handled at the child's parent
//
// no arguments are passed, i.e: void method()
//
#define EV_CHILD_NOTIFY(id, notifyCode, method)\
{notifyCode, id, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::method)}
//
// handler for child ID notifications that are handled at the child's parent
//
// the notification code is passed in as an argument; this allows multiple
// notifications to be handled by a single response function, i.e:
// void method(uint notifyCode)
//
#define EV_CHILD_NOTIFY_AND_CODE(id, notifyCode, method)\
{notifyCode, id, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_U_Sig(&TMyClass::method)}
//
// generic handler for child ID notification: rather than specify the
// specific notification codes you are interested in ALL notifications
// from the child are passed to the response function
//
// the notification code is passed in as an argument, i.e.:
// void method(uint notifyCode)
//
#define EV_CHILD_NOTIFY_ALL_CODES(id, method)\
{UINT_MAX, id, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_U_Sig(&TMyClass::method)}
//
// handler for child ID notifications that are handled at the child
//
// no arguments are passed, i.e: void method()
//
#define EV_NOTIFY_AT_CHILD(notifyCode, method)\
{notifyCode, UINT_MAX, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::method)}
//
// handler for menu/accelerator/push buttons
//
// no arguments are passed, i.e: void method()
//
#define EV_COMMAND(id, method)\
{0, id, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::method)}
//
// handler for menu/accelerator/push buttons
//
// the menu id is passed in as an argument; this allows multiple
// commands to be handled by a single response function.
// void method(uint commandId)
//
#define EV_COMMAND_AND_ID(id, method)\
{0, id, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_U_Sig(&TMyClass::method)}
//
// handler for command enabling
// void method(uint commandId)
//
#define EV_COMMAND_ENABLE(id, method)\
{WM_COMMAND_ENABLE, id, (TAnyDispatcher)::v_POINTER_Dispatch,\
(TMyPMF)v_COMMANDENABLER_Sig(&TMyClass::method)}
//
// handlers for document and view notifications
//
#define EV_OWLDOCUMENT(id, method)\
{WM_OWLDOCUMENT, id, (TAnyDispatcher)::v_POINTER_Dispatch,\
(TMyPMF)v_OWLDOCUMENT_Sig(&TMyClass::method)}
#define EV_OWLVIEW(id, method)\
{WM_OWLVIEW, id, (TAnyDispatcher)::v_POINTER_Dispatch,\
(TMyPMF)v_OWLVIEW_Sig(&TMyClass::method)}
#define EV_OWLNOTIFY(id, method)\
{WM_OWLNOTIFY, id, (TAnyDispatcher)::U_LPARAM_Dispatch,\
(TMyPMF)B_LPARAM_Sig(&TMyClass::method)}
#define EV_VIEWNOTIFY(id, method) \
{WM_OWLNOTIFY, id, (TAnyDispatcher)::U_LPARAM_Dispatch, \
(TMyPMF)B_LPARAM_Sig(&TMyClass::method)}
//
// macros for specific WM_* messages
//
#define EV_WM_ACTIVATE\
{WM_ACTIVATE, 0, (TAnyDispatcher)::v_Activate_Dispatch,\
(TMyPMF)v_U_B_W_Sig(&TMyClass::EvActivate)}
#define EV_WM_ACTIVATEAPP\
{WM_ACTIVATEAPP, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_B_HTASK_Sig(&TMyClass::EvActivateApp)}
#define EV_WM_ASKCBFORMATNAME\
{WM_ASKCBFORMATNAME, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
(TMyPMF)v_U_S_Sig(&TMyClass::EvAskCBFormatName)}
#define EV_WM_CANCELMODE\
{WM_CANCELMODE, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvCancelMode)}
#define EV_WM_CHANGECBCHAIN\
{WM_CHANGECBCHAIN, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_W_W_Sig(&TMyClass::EvChangeCBChain)}
#define EV_WM_CHAR\
{WM_CHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvChar)}
#define EV_WM_CHARTOITEM\
{WM_CHARTOITEM, 0, (TAnyDispatcher)::i_U_W_U_Dispatch,\
(TMyPMF)i_U_W_U_Sig(&TMyClass::EvCharToItem)}
#define EV_WM_CHILDACTIVATE\
{WM_CHILDACTIVATE, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvChildActivate)}
#define EV_WM_CHILDINVALID\
{WM_CHILDINVALID, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_W_Sig(&TMyClass::EvChildInvalid)}
#define EV_WM_CLOSE\
{WM_CLOSE, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvClose)}
#define EV_WM_COMMNOTIFY\
{WM_COMMNOTIFY, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_U_U_Sig(&TMyClass::EvCommNotify)}
#define EV_WM_COMPACTING\
{WM_COMPACTING, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_U_Sig(&TMyClass::EvCompacting)}
#define EV_WM_COMPAREITEM\
{WM_COMPAREITEM, 0, (TAnyDispatcher)::LRESULT_WPARAM_LPARAM_Dispatch,\
(TMyPMF)LRESULT_U_COMPAREITEM_Sig(&TMyClass::EvCompareItem)}
#define EV_WM_CREATE\
{WM_CREATE, 0, (TAnyDispatcher)::i_LPARAM_Dispatch,\
(TMyPMF)i_CREATE_Sig(&TMyClass::EvCreate)}
#define EV_WM_CTLCOLOR\
{WM_CTLCOLOR, 0, (TAnyDispatcher)::U_U_U_U_Dispatch,\
(TMyPMF)HBRUSH_HDC_W_U_Sig(&TMyClass::EvCtlColor)}
#define EV_WM_DEADCHAR\
{WM_DEADCHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvDeadChar)}
#define EV_WM_DELETEITEM\
{WM_DELETEITEM, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
(TMyPMF)v_U_DELETEITEM_Sig(&TMyClass::EvDeleteItem)}
#define EV_WM_DESTROY\
{WM_DESTROY, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvDestroy)}
#define EV_WM_DESTROYCLIPBOARD\
{WM_DESTROYCLIPBOARD, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvDestroyClipboard)}
#define EV_WM_DEVMODECHANGE\
{WM_DEVMODECHANGE, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
(TMyPMF)v_S_Sig(&TMyClass::EvDevModeChange)}
#define EV_WM_DRAWCLIPBOARD\
{WM_DRAWCLIPBOARD, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvDrawClipboard)}
#define EV_WM_DRAWITEM\
{WM_DRAWITEM, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
(TMyPMF)v_U_DRAWITEM_Sig(&TMyClass::EvDrawItem)}
#define EV_WM_DROPFILES\
{WM_DROPFILES, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_DROP_Sig(&TMyClass::EvDropFiles)}
#define EV_WM_ENABLE\
{WM_ENABLE, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_B_Sig(&TMyClass::EvEnable)}
#define EV_WM_ENDSESSION\
{WM_ENDSESSION, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_B_Sig(&TMyClass::EvEndSession)}
#define EV_WM_ENTERIDLE\
{WM_ENTERIDLE, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_U_W_Sig(&TMyClass::EvEnterIdle)}
#define EV_WM_ERASEBKGND\
{WM_ERASEBKGND, 0, (TAnyDispatcher)::i_WPARAM_Dispatch,\
(TMyPMF)B_HDC_Sig(&TMyClass::EvEraseBkgnd)}
#define EV_WM_FONTCHANGE\
{WM_FONTCHANGE, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvFontChange)}
#define EV_WM_GETDLGCODE\
{WM_GETDLGCODE, 0, (TAnyDispatcher)::U_LPARAM_Dispatch,\
(TMyPMF)U_MSG_Sig(&TMyClass::EvGetDlgCode)}
#define EV_WM_GETFONT\
{WM_GETFONT, 0, (TAnyDispatcher)::U_Dispatch,\
(TMyPMF)HFONT_Sig(&TMyClass::EvGetFont)}
#define EV_WM_GETMINMAXINFO\
{WM_GETMINMAXINFO, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
(TMyPMF)v_MINMAXINFO_Sig(&TMyClass::EvGetMinMaxInfo)}
#define EV_WM_GETTEXT\
{WM_GETTEXT, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
(TMyPMF)v_U_S_Sig(&TMyClass::EvGetText)}
#define EV_WM_GETTEXTLENGTH\
{WM_GETTEXTLENGTH, 0, (TAnyDispatcher)::U_Dispatch,\
(TMyPMF)U_Sig(&TMyClass::EvGetTextLength)}
// Win32 only
//
#define EV_WM_HOTKEY\
{WM_HOTKEY, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_i_Sig(&TMyClass::EvHotKey)}
#define EV_WM_HSCROLL\
{WM_HSCROLL, 0, (TAnyDispatcher)::v_U_U_W_Dispatch,\
(TMyPMF)v_U_U_W_Sig(&TMyClass::EvHScroll)}
#define EV_WM_HSCROLLCLIPBOARD\
{WM_HSCROLLCLIPBOARD, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_W_U_U_Sig(&TMyClass::EvHScrollClipboard)}
#define EV_WM_ICONERASEBKGND\
{WM_ICONERASEBKGND, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_HDC_Sig(&TMyClass::EvIconEraseBkgnd)}
#define EV_WM_INITMENU\
{WM_INITMENU, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_HMENU_Sig(&TMyClass::EvInitMenu)}
#define EV_WM_INITMENUPOPUP\
{WM_INITMENUPOPUP, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_HMENU_U_B_Sig(&TMyClass::EvInitMenuPopup)}
#define EV_WM_KEYDOWN\
{WM_KEYDOWN, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvKeyDown)}
#define EV_WM_KEYUP\
{WM_KEYUP, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvKeyUp)}
#define EV_WM_KILLFOCUS\
{WM_KILLFOCUS, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_W_Sig(&TMyClass::EvKillFocus)}
#define EV_WM_LBUTTONDBLCLK\
{WM_LBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvLButtonDblClk)}
#define EV_WM_LBUTTONDOWN\
{WM_LBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvLButtonDown)}
#define EV_WM_LBUTTONUP\
{WM_LBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvLButtonUp)}
#define EV_WM_MBUTTONDBLCLK\
{WM_MBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvMButtonDblClk)}
#define EV_WM_MBUTTONDOWN\
{WM_MBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvMButtonDown)}
#define EV_WM_MBUTTONUP\
{WM_MBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvMButtonUp)}
#define EV_WM_MDIACTIVATE\
{WM_MDIACTIVATE, 0, (TAnyDispatcher)::v_MdiActivate_Dispatch,\
(TMyPMF)v_W_W_Sig(&TMyClass::EvMDIActivate)}
#define EV_WM_MDICREATE\
{WM_MDICREATE, 0, (TAnyDispatcher)::i_LPARAM_Dispatch,\
(TMyPMF)LRESULT_MDICREATESTRUCT_Sig(&TMyClass::EvMDICreate)}
#define EV_WM_MDIDESTROY\
{WM_MDIDESTROY, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_W_Sig(&TMyClass::EvMDIDestroy)}
#define EV_WM_MENUCHAR\
{WM_MENUCHAR, 0, (TAnyDispatcher)::I32_MenuChar_Dispatch,\
(TMyPMF)LRESULT_U_U_HMENU_Sig(&TMyClass::EvMenuChar)}
#define EV_WM_MENUSELECT\
{WM_MENUSELECT, 0, (TAnyDispatcher)::v_U_U_W_Dispatch,\
(TMyPMF)v_U_U_HMENU_Sig(&TMyClass::EvMenuSelect)}
#define EV_WM_MEASUREITEM\
{WM_MEASUREITEM, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
(TMyPMF)v_U_MEASUREITEM_Sig(&TMyClass::EvMeasureItem)}
#define EV_WM_MOUSEACTIVATE\
{WM_MOUSEACTIVATE, 0, (TAnyDispatcher)::U_U_U_U_Dispatch,\
(TMyPMF)U_W_U_U_Sig(&TMyClass::EvMouseActivate)}
#define EV_WM_MOUSEMOVE\
{WM_MOUSEMOVE, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvMouseMove)}
#define EV_WM_MOVE\
{WM_MOVE, 0, (TAnyDispatcher)::v_POINT_Dispatch,\
(TMyPMF)v_POINT_Sig(&TMyClass::EvMove)}
#define EV_WM_NCACTIVATE\
{WM_NCACTIVATE, 0, (TAnyDispatcher)::i_WPARAM_Dispatch,\
(TMyPMF)B_B_Sig(&TMyClass::EvNCActivate)}
#define EV_WM_NCCALCSIZE\
{WM_NCCALCSIZE, 0, (TAnyDispatcher)::U_WPARAM_LPARAM_Dispatch,\
(TMyPMF)U_B_CALCSIZE_Sig(&TMyClass::EvNCCalcSize)}
#define EV_WM_NCCREATE\
{WM_NCCREATE, 0, (TAnyDispatcher)::i_LPARAM_Dispatch,\
(TMyPMF)B_CREATE_Sig(&TMyClass::EvNCCreate)}
#define EV_WM_NCDESTROY\
{WM_NCDESTROY, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvNCDestroy)}
#define EV_WM_NCHITTEST\
{WM_NCHITTEST, 0, (TAnyDispatcher)::U_POINT_Dispatch,\
(TMyPMF)U_POINT_Sig(&TMyClass::EvNCHitTest)}
#define EV_WM_NCLBUTTONDBLCLK\
{WM_NCLBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCLButtonDblClk)}
#define EV_WM_NCLBUTTONDOWN\
{WM_NCLBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCLButtonDown)}
#define EV_WM_NCLBUTTONUP\
{WM_NCLBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCLButtonUp)}
#define EV_WM_NCMBUTTONDBLCLK\
{WM_NCMBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMButtonDblClk)}
#define EV_WM_NCMBUTTONDOWN\
{WM_NCMBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMButtonDown)}
#define EV_WM_NCMBUTTONUP\
{WM_NCMBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMButtonUp)}
#define EV_WM_NCMOUSEMOVE\
{WM_NCMOUSEMOVE, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMouseMove)}
#define EV_WM_NCPAINT\
{WM_NCPAINT, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvNCPaint)}
#define EV_WM_NCRBUTTONDBLCLK\
{WM_NCRBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCRButtonDblClk)}
#define EV_WM_NCRBUTTONDOWN\
{WM_NCRBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCRButtonDown)}
#define EV_WM_NCRBUTTONUP\
{WM_NCRBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCRButtonUp)}
#define EV_WM_NEXTDLGCTL\
{WM_NEXTDLGCTL, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_U_U_Sig(&TMyClass::EvNextDlgCtl)}
#define EV_WM_PAINT\
{WM_PAINT, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvPaint)}
#define EV_WM_PAINTCLIPBOARD\
{WM_PAINTCLIPBOARD, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_W_H_Sig(&TMyClass::EvPaintClipboard)}
// Win32 only
//
#define EV_WM_PAINTICON\
{WM_PAINTICON, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvPaintIcon)}
#define EV_WM_PALETTECHANGED\
{WM_PALETTECHANGED, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_W_Sig(&TMyClass::EvPaletteChanged)}
#define EV_WM_PALETTEISCHANGING\
{WM_PALETTEISCHANGING, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_W_Sig(&TMyClass::EvPaletteIsChanging)}
#define EV_WM_PARENTNOTIFY\
{WM_PARENTNOTIFY, 0, (TAnyDispatcher)::v_ParentNotify_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvParentNotify)}
#define EV_WM_POWER\
{WM_POWER, 0, (TAnyDispatcher)::i_WPARAM_Dispatch,\
(TMyPMF)i_U_Sig(&TMyClass::EvPower)}
#define EV_WM_QUERYDRAGICON\
{WM_QUERYDRAGICON, 0, (TAnyDispatcher)::U_Dispatch,\
(TMyPMF)H_Sig(&TMyClass::EvQueryDragIcon)}
#define EV_WM_QUERYENDSESSION\
{WM_QUERYENDSESSION, 0, (TAnyDispatcher)::U_Dispatch,\
(TMyPMF)B_Sig(&TMyClass::EvQueryEndSession)}
#define EV_WM_QUERYNEWPALETTE\
{WM_QUERYNEWPALETTE, 0, (TAnyDispatcher)::U_Dispatch,\
(TMyPMF)B_Sig(&TMyClass::EvQueryNewPalette)}
#define EV_WM_QUERYOPEN\
{WM_QUERYOPEN, 0, (TAnyDispatcher)::U_Dispatch,\
(TMyPMF)B_Sig(&TMyClass::EvQueryOpen)}
#define EV_WM_QUEUESYNC\
{WM_QUEUESYNC, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvQueueSync)}
#define EV_WM_RBUTTONDBLCLK\
{WM_RBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvRButtonDblClk)}
#define EV_WM_RBUTTONDOWN\
{WM_RBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvRButtonDown)}
#define EV_WM_RBUTTONUP\
{WM_RBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvRButtonUp)}
#define EV_WM_RENDERALLFORMATS\
{WM_RENDERALLFORMATS, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvRenderAllFormats)}
#define EV_WM_RENDERFORMAT\
{WM_RENDERFORMAT, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_U_Sig(&TMyClass::EvRenderFormat)}
#define EV_WM_SETCURSOR\
{WM_SETCURSOR, 0, (TAnyDispatcher)::U_U_U_U_Dispatch,\
(TMyPMF)B_W_U_U_Sig(&TMyClass::EvSetCursor)}
#define EV_WM_SETFOCUS\
{WM_SETFOCUS, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_W_Sig(&TMyClass::EvSetFocus)}
#define EV_WM_SETFONT\
{WM_SETFONT, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_HFONT_B_Sig(&TMyClass::EvSetFont)}
#define EV_WM_SETREDRAW\
{WM_SETREDRAW, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_B_Sig(&TMyClass::EvSetRedraw)}
#define EV_WM_SETTEXT\
{WM_SETTEXT, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
(TMyPMF)v_CS_Sig(&TMyClass::EvSetText)}
#define EV_WM_SHOWWINDOW\
{WM_SHOWWINDOW, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_B_U_Sig(&TMyClass::EvShowWindow)}
#define EV_WM_SIZE\
{WM_SIZE, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_SIZE_Sig(&TMyClass::EvSize)}
#define EV_WM_SIZECLIPBOARD\
{WM_SIZECLIPBOARD, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_W_H_Sig(&TMyClass::EvSizeClipboard)}
#define EV_WM_SPOOLERSTATUS\
{WM_SPOOLERSTATUS, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
(TMyPMF)v_U_U_Sig(&TMyClass::EvSpoolerStatus)}
#define EV_WM_SYSCHAR\
{WM_SYSCHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysChar)}
#define EV_WM_SYSCOLORCHANGE\
{WM_SYSCOLORCHANGE, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvSysColorChange)}
#define EV_WM_SYSCOMMAND\
{WM_SYSCOMMAND, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
(TMyPMF)v_U_POINT_Sig(&TMyClass::EvSysCommand)}
#define EV_WM_SYSDEADCHAR\
{WM_SYSDEADCHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysDeadChar)}
#define EV_WM_SYSKEYDOWN\
{WM_SYSKEYDOWN, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysKeyDown)}
#define EV_WM_SYSKEYUP\
{WM_SYSKEYUP, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysKeyUp)}
#define EV_WM_SYSTEMERROR\
{WM_SYSTEMERROR, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_U_Sig(&TMyClass::EvSystemError)}
#define EV_WM_TIMECHANGE\
{WM_TIMECHANGE, 0, (TAnyDispatcher)::v_Dispatch,\
(TMyPMF)v_Sig(&TMyClass::EvTimeChange)}
#define EV_WM_TIMER\
{WM_TIMER, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
(TMyPMF)v_U_Sig(&TMyClass::EvTimer)}
#define EV_WM_VKEYTOITEM\
{WM_VKEYTOITEM, 0, (TAnyDispatcher)::i_U_W_U_Dispatch,\
(TMyPMF)i_U_W_U_Sig(&TMyClass::EvVKeyToItem)}
#define EV_WM_VSCROLL\
{WM_VSCROLL, 0, (TAnyDispatcher)::v_U_U_W_Dispatch,\
(TMyPMF)v_U_U_W_Sig(&TMyClass::EvVScroll)}
#define EV_WM_VSCROLLCLIPBOARD\
{WM_VSCROLLCLIPBOARD, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
(TMyPMF)v_W_U_U_Sig(&TMyClass::EvVScrollClipboard)}
#define EV_WM_WINDOWPOSCHANGED\
{WM_WINDOWPOSCHANGED, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
(TMyPMF)v_WINDOWPOS_Sig(&TMyClass::EvWindowPosChanged)}
#define EV_WM_WINDOWPOSCHANGING\
{WM_WINDOWPOSCHANGING, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
(TMyPMF)v_WINDOWPOS_Sig(&TMyClass::EvWindowPosChanging)}
#define EV_WM_WININICHANGE\
{WM_WININICHANGE, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
(TMyPMF)v_S_Sig(&TMyClass::EvWinIniChange)}
//
// Control notification macros
//
#define EV_BN_CLICKED(id, method) EV_CHILD_NOTIFY(id, BN_CLICKED, method)
#define EV_BN_DISABLE(id, method) EV_CHILD_NOTIFY(id, BN_DISABLE, method)
#define EV_BN_DOUBLECLICKED(id, method) EV_CHILD_NOTIFY(id, BN_DOUBLECLICKED, method)
#define EV_BN_HILITE(id, method) EV_CHILD_NOTIFY(id, BN_HILITE, method)
#define EV_BN_PAINT(id, method) EV_CHILD_NOTIFY(id, BN_PAINT, method)
#define EV_BN_UNHILITE(id, method) EV_CHILD_NOTIFY(id, BN_UNHILITE, method)
#define EV_CBN_CLOSEUP(id, method) EV_CHILD_NOTIFY(id, CBN_CLOSEUP, method)
#define EV_CBN_DBLCLK(id, method) EV_CHILD_NOTIFY(id, CBN_DBLCLK, method)
#define EV_CBN_DROPDOWN(id, method) EV_CHILD_NOTIFY(id, CBN_DROPDOWN, method)
#define EV_CBN_EDITCHANGE(id, method) EV_CHILD_NOTIFY(id, CBN_EDITCHANGE, method)
#define EV_CBN_EDITUPDATE(id, method) EV_CHILD_NOTIFY(id, CBN_EDITUPDATE, method)
#define EV_CBN_ERRSPACE(id, method) EV_CHILD_NOTIFY(id, CBN_ERRSPACE, method)
#define EV_CBN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, CBN_KILLFOCUS, method)
#define EV_CBN_SELCHANGE(id, method) EV_CHILD_NOTIFY(id, CBN_SELCHANGE, method)
#define EV_CBN_SELENDCANCEL(id, method) EV_CHILD_NOTIFY(id, CBN_SELENDCANCEL, method)
#define EV_CBN_SELENDOK(id, method) EV_CHILD_NOTIFY(id, CBN_SELENDOK, method)
#define EV_CBN_SETFOCUS(id, method) EV_CHILD_NOTIFY(id, CBN_SETFOCUS, method)
#define EV_EN_CHANGE(id, method) EV_CHILD_NOTIFY(id, EN_CHANGE, method)
#define EV_EN_ERRSPACE(id, method) EV_CHILD_NOTIFY(id, EN_ERRSPACE, method)
#define EV_EN_HSCROLL(id, method) EV_CHILD_NOTIFY(id, EN_HSCROLL, method)
#define EV_EN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, EN_KILLFOCUS, method)
#define EV_EN_MAXTEXT(id, method) EV_CHILD_NOTIFY(id, EN_MAXTEXT, method)
#define EV_EN_SETFOCUS(id, method) EV_CHILD_NOTIFY(id, EN_SETFOCUS, method)
#define EV_EN_UPDATE(id, method) EV_CHILD_NOTIFY(id, EN_UPDATE, method)
#define EV_EN_VSCROLL(id, method) EV_CHILD_NOTIFY(id, EN_VSCROLL, method)
#define EV_LBN_DBLCLK(id, method) EV_CHILD_NOTIFY(id, LBN_DBLCLK, method)
#define EV_LBN_ERRSPACE(id, method) EV_CHILD_NOTIFY(id, LBN_ERRSPACE, method)
#define EV_LBN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, LBN_KILLFOCUS, method)
#define EV_LBN_SELCANCEL(id, method) EV_CHILD_NOTIFY(id, LBN_SELCANCEL, method)
#define EV_LBN_SELCHANGE(id, method) EV_CHILD_NOTIFY(id, LBN_SELCHANGE, method)
#define EV_LBN_SETFOCUS(id, method) EV_CHILD_NOTIFY(id, LBN_SETFOCUS, method)
#define EV_SB_LINEDOWN(id, method) EV_CHILD_NOTIFY(id, SB_LINEDOWN, method)
#define EV_SB_LINEUP(id, method) EV_CHILD_NOTIFY(id, SB_LINEUP, method)
#define EV_SB_PAGEDOWN(id, method) EV_CHILD_NOTIFY(id, SB_PAGEDOWN, method)
#define EV_SB_PAGEUP(id, method) EV_CHILD_NOTIFY(id, SB_PAGEUP, method)
#define EV_SB_TOP(id, method) EV_CHILD_NOTIFY(id, SB_TOP, method)
#define EV_SB_BOTTOM(id, method) EV_CHILD_NOTIFY(id, SB_BOTTOM, method)
#define EV_SB_THUMBPOSITION(id, method) EV_CHILD_NOTIFY(id, SB_THUMBPOSITION, method)
#define EV_SB_ENDSCROLL(id, method) EV_CHILD_NOTIFY(id, SB_ENDSCROLL, method)
#define EV_SB_BEGINTRACK(id, method) EV_CHILD_NOTIFY(id, 9, method)
#endif // OWL_WINDOWEV_H