home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / MFCINC.PAK / AFXMSG_.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  32.0 KB  |  684 lines

  1.  
  2. // This is a part of the Microsoft Foundation Classes C++ library.
  3. // Copyright (C) 1992-1995 Microsoft Corporation
  4. // All rights reserved.
  5. //
  6. // This source code is only intended as a supplement to the
  7. // Microsoft Foundation Classes Reference and related
  8. // electronic documentation provided with the library.
  9. // See these sources for detailed information regarding the
  10. // Microsoft Foundation Classes product.
  11.  
  12. // Do not include this file directly (included by AFXWIN.H)
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15.  
  16. // Entries in a message map (a 'AFX_MSGMAP_ENTRY') table can be of 9 formats
  17. //
  18. // 1) control notification message (i.e. in response to WM_COMMAND)
  19. //      WM_COMMAND, nNotifyCode, nControlID, nControlID, signature type, parameterless member function
  20. //      (eg: WM_COMMAND, LBN_SELCHANGE, IDC_LISTBOX, AfxSig_vv, ... )
  21. // 2) control notification message range (i.e. in response to WM_COMMAND)
  22. //      WM_COMMAND, nNotifyCode, nControlIDFirst, nControlIDLast, signature type, parameterless member function
  23. //      (eg: WM_COMMAND, LBN_SELCHANGE, IDC_LISTBOX1, IDC_LISTBOX5, AfxSig_vw, ... )
  24. // 3) WM_NOTIFY notification
  25. //      WM_NOTIFY, nNotifyCode, nControlID, nControlID, signature type, ...)
  26. // 3) Update Command UI
  27. //      -1, 0, nControlID, 0, signature Unknown, parameterless member function
  28. // 4) Update Command UI Range
  29. //      -1, 0, nControlIDFirst, nControlIDLast, signature Unknown, parameterless member function
  30. // 5) menu/accelerator notification message (i.e. special case of first format)
  31. //      WM_COMMAND, 0, nID, 0, signature type, parameterless member function
  32. //      (eg: WM_COMMAND, 0, IDM_FILESAVE, 0, AfxSig_vv, ... )
  33. // 6) menu/accelerator notification message range
  34. //      WM_COMMAND, 0, nIDFirst, nIDLast, signature type, parameterless member function
  35. //      (eg: WM_COMMAND, 0, IDM_FILE_MRU1, IDM_FILE_MRU4, AfxSig_vw, ... )
  36. // 7) constant windows message
  37. //      nMessage, 0, 0, 0, signature type, member function
  38. //      (eg: WM_PAINT, 0, ...)
  39. // 8) variable windows message (using RegisterWindowMessage)
  40. //      0xC000, 0, 0, 0, &nMessage, special member function
  41. //
  42. // The end of the message map is marked with a special value
  43. //      0, 0, AfxSig_end, 0
  44. /////////////////////////////////////////////////////////////////////////////
  45.  
  46. enum AfxSig
  47. {
  48.     AfxSig_end = 0,     // [marks end of message map]
  49.  
  50.     AfxSig_bD,      // BOOL (CDC*)
  51.     AfxSig_bb,      // BOOL (BOOL)
  52.     AfxSig_bWww,    // BOOL (CWnd*, UINT, UINT)
  53.     AfxSig_hDWw,    // HBRUSH (CDC*, CWnd*, UINT)
  54.     AfxSig_hDw,     // HBRUSH (CDC*, UINT)
  55.     AfxSig_iwWw,    // int (UINT, CWnd*, UINT)
  56.     AfxSig_iww,     // int (UINT, UINT)
  57.     AfxSig_iWww,    // int (CWnd*, UINT, UINT)
  58.     AfxSig_is,      // int (LPTSTR)
  59.     AfxSig_lwl,     // LRESULT (WPARAM, LPARAM)
  60.     AfxSig_lwwM,    // LRESULT (UINT, UINT, CMenu*)
  61.     AfxSig_vv,      // void (void)
  62.  
  63.     AfxSig_vw,      // void (UINT)
  64.     AfxSig_vww,     // void (UINT, UINT)
  65.     AfxSig_vvii,    // void (int, int) // wParam is ignored
  66.     AfxSig_vwww,    // void (UINT, UINT, UINT)
  67.     AfxSig_vwii,    // void (UINT, int, int)
  68.     AfxSig_vwl,     // void (UINT, LPARAM)
  69.     AfxSig_vbWW,    // void (BOOL, CWnd*, CWnd*)
  70.     AfxSig_vD,      // void (CDC*)
  71.     AfxSig_vM,      // void (CMenu*)
  72.     AfxSig_vMwb,    // void (CMenu*, UINT, BOOL)
  73.  
  74.     AfxSig_vW,      // void (CWnd*)
  75.     AfxSig_vWww,    // void (CWnd*, UINT, UINT)
  76.     AfxSig_vWp,     // void (CWnd*, CPoint)
  77.     AfxSig_vWh,     // void (CWnd*, HANDLE)
  78.     AfxSig_vwW,     // void (UINT, CWnd*)
  79.     AfxSig_vwWb,    // void (UINT, CWnd*, BOOL)
  80.     AfxSig_vwwW,    // void (UINT, UINT, CWnd*)
  81.     AfxSig_vwwx,    // void (UINT, UINT)
  82.     AfxSig_vs,      // void (LPTSTR)
  83.     AfxSig_vOWNER,  // void (int, LPTSTR), force return TRUE
  84.     AfxSig_iis,     // int (int, LPTSTR)
  85.     AfxSig_wp,      // UINT (CPoint)
  86.     AfxSig_wv,      // UINT (void)
  87.     AfxSig_vPOS,    // void (WINDOWPOS*)
  88.     AfxSig_vCALC,   // void (BOOL, NCCALCSIZE_PARAMS*)
  89.     AfxSig_vNMHDRpl,    // void (NMHDR*, LRESULT*)
  90.     AfxSig_bNMHDRpl,    // BOOL (NMHDR*, LRESULT*)
  91.     AfxSig_vwNMHDRpl,   // void (UINT, NMHDR*, LRESULT*)
  92.     AfxSig_bwNMHDRpl,   // BOOL (UINT, NMHDR*, LRESULT*)
  93.     AfxSig_bHELPINFO,   // BOOL (HELPINFO*)
  94.     AfxSig_vwSIZING,    // void (UINT, LPRECT) -- return TRUE
  95.  
  96.     // signatures specific to CCmdTarget
  97.     AfxSig_cmdui,   // void (CCmdUI*)
  98.     AfxSig_cmduiw,  // void (CCmdUI*, UINT)
  99.     AfxSig_vpv,     // void (void*)
  100.     AfxSig_bpv,     // BOOL (void*)
  101.  
  102.     // Other aliases (based on implementation)
  103.     AfxSig_vwwh,                // void (UINT, UINT, HANDLE)
  104.     AfxSig_vwp,                 // void (UINT, CPoint)
  105.     AfxSig_bw = AfxSig_bb,      // BOOL (UINT)
  106.     AfxSig_bh = AfxSig_bb,      // BOOL (HANDLE)
  107.     AfxSig_iw = AfxSig_bb,      // int (UINT)
  108.     AfxSig_ww = AfxSig_bb,      // UINT (UINT)
  109.     AfxSig_bv = AfxSig_wv,      // BOOL (void)
  110.     AfxSig_hv = AfxSig_wv,      // HANDLE (void)
  111.     AfxSig_vb = AfxSig_vw,      // void (BOOL)
  112.     AfxSig_vbh = AfxSig_vww,    // void (BOOL, HANDLE)
  113.     AfxSig_vbw = AfxSig_vww,    // void (BOOL, UINT)
  114.     AfxSig_vhh = AfxSig_vww,    // void (HANDLE, HANDLE)
  115.     AfxSig_vh = AfxSig_vw,      // void (HANDLE)
  116.     AfxSig_viSS = AfxSig_vwl,   // void (int, STYLESTRUCT*)
  117.     AfxSig_bwl = AfxSig_lwl,
  118.     AfxSig_vwMOVING = AfxSig_vwSIZING,  // void (UINT, LPRECT) -- return TRUE
  119.  
  120.     AfxSig_vW2,        // void (CWnd*) (CWnd* comes from lParam)
  121. };
  122.  
  123. /////////////////////////////////////////////////////////////////////////////
  124. // Command notifications for CCmdTarget notifications
  125.  
  126. #define CN_COMMAND              0               // void ()
  127. #define CN_UPDATE_COMMAND_UI    ((UINT)(-1))    // void (CCmdUI*)
  128. #define CN_EVENT                ((UINT)(-2))    // OLE event
  129. // > 0 are control notifications
  130.  
  131. #define ON_COMMAND(id, memberFxn) \
  132.     { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_vv, (AFX_PMSG)memberFxn },
  133.         // ON_COMMAND(id, OnFoo) is the same as
  134.         //   ON_CONTROL(0, id, OnFoo) or ON_BN_CLICKED(0, id, OnFoo)
  135.  
  136. #define ON_COMMAND_RANGE(id, idLast, memberFxn) \
  137.     { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)idLast, AfxSig_vw, \
  138.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(UINT))memberFxn },
  139.         // ON_COMMAND_RANGE(id, idLast, OnFoo) is the same as
  140.         //   ON_CONTROL_RANGE(0, id, idLast, OnFoo)
  141.  
  142. #define ON_COMMAND_EX(id, memberFxn) \
  143.     { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_bw, \
  144.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT))memberFxn },
  145.  
  146. #define ON_COMMAND_EX_RANGE(id, idLast, memberFxn) \
  147.     { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)idLast, AfxSig_bw, \
  148.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT))memberFxn },
  149.  
  150. // update ui's are listed as WM_COMMAND's so they get routed like commands
  151. #define ON_UPDATE_COMMAND_UI(id, memberFxn) \
  152.     { WM_COMMAND, CN_UPDATE_COMMAND_UI, (WORD)id, (WORD)id, AfxSig_cmdui, \
  153.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))memberFxn },
  154.  
  155. #define ON_UPDATE_COMMAND_UI_RANGE(id, idLast, memberFxn) \
  156.     { WM_COMMAND, CN_UPDATE_COMMAND_UI, (WORD)id, (WORD)idLast, AfxSig_cmdui, \
  157.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))memberFxn },
  158.  
  159. #define ON_NOTIFY(wNotifyCode, id, memberFxn) \
  160.     { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)id, AfxSig_vNMHDRpl, \
  161.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))memberFxn },
  162.  
  163. #define ON_NOTIFY_RANGE(wNotifyCode, id, idLast, memberFxn) \
  164.     { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)idLast, AfxSig_vwNMHDRpl, \
  165.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(UINT, NMHDR*, LRESULT*))memberFxn },
  166.  
  167. #define ON_NOTIFY_EX(wNotifyCode, id, memberFxn) \
  168.     { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)id, AfxSig_bwNMHDRpl, \
  169.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT, NMHDR*, LRESULT*))memberFxn },
  170.  
  171. #define ON_NOTIFY_EX_RANGE(wNotifyCode, id, idLast, memberFxn) \
  172.     { WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)idLast, AfxSig_bwNMHDRpl, \
  173.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT, NMHDR*, LRESULT*))memberFxn },
  174.  
  175. // for general controls
  176. #define ON_CONTROL(wNotifyCode, id, memberFxn) \
  177.     { WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)id, AfxSig_vv, \
  178.         (AFX_PMSG)memberFxn },
  179.  
  180. #define ON_CONTROL_RANGE(wNotifyCode, id, idLast, memberFxn) \
  181.     { WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)idLast, AfxSig_vw, \
  182.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(UINT))memberFxn },
  183.  
  184. #define WM_REFLECT_BASE 0xBC00
  185.  
  186. // for control notification reflection
  187. #define ON_CONTROL_REFLECT(wNotifyCode, memberFxn) \
  188.     { WM_COMMAND+WM_REFLECT_BASE, (WORD)wNotifyCode, 0, 0, AfxSig_vv, \
  189.         (AFX_PMSG)memberFxn },
  190.  
  191. #define ON_CONTROL_REFLECT_EX(wNotifyCode, memberFxn) \
  192.     { WM_COMMAND+WM_REFLECT_BASE, (WORD)wNotifyCode, 0, 0, AfxSig_bv, \
  193.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)())memberFxn },
  194.  
  195. #define ON_NOTIFY_REFLECT(wNotifyCode, memberFxn) \
  196.     { WM_NOTIFY+WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSig_vNMHDRpl, \
  197.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))memberFxn },
  198.  
  199. #define ON_NOTIFY_REFLECT_EX(wNotifyCode, memberFxn) \
  200.     { WM_NOTIFY+WM_REFLECT_BASE, (WORD)(int)wNotifyCode, 0, 0, AfxSig_bNMHDRpl, \
  201.         (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(NMHDR*, LRESULT*))memberFxn },
  202.  
  203. #define ON_UPDATE_COMMAND_UI_REFLECT(memberFxn) \
  204.     { WM_COMMAND+WM_REFLECT_BASE, CN_UPDATE_COMMAND_UI, 0, 0, AfxSig_cmdui, \
  205.         (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))memberFxn },
  206.  
  207. /////////////////////////////////////////////////////////////////////////////
  208. // Message map tables for Windows messages
  209.  
  210. #define ON_WM_CREATE() \
  211.     { WM_CREATE, 0, 0, 0, AfxSig_is, \
  212.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))OnCreate },
  213. #define ON_WM_DESTROY() \
  214.     { WM_DESTROY, 0, 0, 0, AfxSig_vv, \
  215.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnDestroy },
  216. #define ON_WM_MOVE() \
  217.     { WM_MOVE, 0, 0, 0, AfxSig_vvii, \
  218.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, int))OnMove },
  219. #define ON_WM_SIZE() \
  220.     { WM_SIZE, 0, 0, 0, AfxSig_vwii, \
  221.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, int, int))OnSize },
  222. #define ON_WM_ACTIVATE() \
  223.     { WM_ACTIVATE, 0, 0, 0, AfxSig_vwWb, \
  224.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*, BOOL))OnActivate },
  225. #define ON_WM_SETFOCUS() \
  226.     { WM_SETFOCUS, 0, 0, 0, AfxSig_vW, \
  227.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnSetFocus },
  228. #define ON_WM_KILLFOCUS() \
  229.     { WM_KILLFOCUS, 0, 0, 0, AfxSig_vW, \
  230.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnKillFocus },
  231. #define ON_WM_ENABLE() \
  232.     { WM_ENABLE, 0, 0, 0, AfxSig_vb, \
  233.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnEnable },
  234. #define ON_WM_HELPINFO() \
  235.     { WM_HELP, 0, 0, 0, AfxSig_bHELPINFO, \
  236.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(HELPINFO*))OnHelpInfo },
  237. #define ON_WM_PAINT() \
  238.     { WM_PAINT, 0, 0, 0, AfxSig_vv, \
  239.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnPaint },
  240. #define ON_WM_CLOSE() \
  241.     { WM_CLOSE, 0, 0, 0, AfxSig_vv, \
  242.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnClose },
  243. #define ON_WM_QUERYENDSESSION() \
  244.     { WM_QUERYENDSESSION, 0, 0, 0, AfxSig_bv, \
  245.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryEndSession },
  246. #define ON_WM_QUERYOPEN() \
  247.     { WM_QUERYOPEN, 0, 0, 0, AfxSig_bv, \
  248.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryOpen },
  249. #define ON_WM_ERASEBKGND() \
  250.     { WM_ERASEBKGND, 0, 0, 0, AfxSig_bD, \
  251.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(CDC*))OnEraseBkgnd },
  252. #define ON_WM_SYSCOLORCHANGE() \
  253.     { WM_SYSCOLORCHANGE, 0, 0, 0, AfxSig_vv, \
  254.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnSysColorChange },
  255. #define ON_WM_ENDSESSION() \
  256.     { WM_ENDSESSION, 0, 0, 0, AfxSig_vb, \
  257.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnEndSession },
  258. #define ON_WM_SHOWWINDOW() \
  259.     { WM_SHOWWINDOW, 0, 0, 0, AfxSig_vbw, \
  260.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, UINT))OnShowWindow },
  261. #define ON_WM_CTLCOLOR() \
  262.     { WM_CTLCOLOR, 0, 0, 0, AfxSig_hDWw, \
  263.         (AFX_PMSG)(AFX_PMSGW)(HBRUSH (AFX_MSG_CALL CWnd::*)(CDC*, CWnd*, UINT))OnCtlColor },
  264. #define ON_WM_CTLCOLOR_REFLECT() \
  265.     { WM_CTLCOLOR+WM_REFLECT_BASE, 0, 0, 0, AfxSig_hDw, \
  266.         (AFX_PMSG)(AFX_PMSGW)(HBRUSH (AFX_MSG_CALL CWnd::*)(CDC*, UINT))CtlColor },
  267. #define ON_WM_WININICHANGE() \
  268.     { WM_WININICHANGE, 0, 0, 0, AfxSig_vs, \
  269.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPCTSTR))OnWinIniChange },
  270. #define ON_WM_DEVMODECHANGE() \
  271.     { WM_DEVMODECHANGE, 0, 0, 0, AfxSig_vs, \
  272.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPTSTR))OnDevModeChange },
  273. #define ON_WM_ACTIVATEAPP() \
  274.     { WM_ACTIVATEAPP, 0, 0, 0, AfxSig_vbh, \
  275.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, HTASK))OnActivateApp },
  276. #define ON_WM_FONTCHANGE() \
  277.     { WM_FONTCHANGE, 0, 0, 0, AfxSig_vv, \
  278.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnFontChange },
  279. #define ON_WM_TIMECHANGE() \
  280.     { WM_TIMECHANGE, 0, 0, 0, AfxSig_vv, \
  281.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnTimeChange },
  282. #define ON_WM_CANCELMODE() \
  283.     { WM_CANCELMODE, 0, 0, 0, AfxSig_vv, \
  284.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnCancelMode },
  285. #define ON_WM_SETCURSOR() \
  286.     { WM_SETCURSOR, 0, 0, 0, AfxSig_bWww, \
  287.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnSetCursor },
  288. #define ON_WM_MOUSEACTIVATE() \
  289.     { WM_MOUSEACTIVATE, 0, 0, 0, AfxSig_iWww, \
  290.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnMouseActivate },
  291. #define ON_WM_CHILDACTIVATE() \
  292.     { WM_CHILDACTIVATE, 0, 0, 0, AfxSig_vv, \
  293.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnChildActivate },
  294. #define ON_WM_GETMINMAXINFO() \
  295.     { WM_GETMINMAXINFO, 0, 0, 0, AfxSig_vs, \
  296.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(MINMAXINFO*))OnGetMinMaxInfo },
  297. #define ON_WM_ICONERASEBKGND() \
  298.     { WM_ICONERASEBKGND, 0, 0, 0, AfxSig_vD, \
  299.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CDC*))OnIconEraseBkgnd },
  300. #define ON_WM_SPOOLERSTATUS() \
  301.     { WM_SPOOLERSTATUS, 0, 0, 0, AfxSig_vww, \
  302.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))OnSpoolerStatus },
  303. #define ON_WM_DRAWITEM() \
  304.     { WM_DRAWITEM, 0, 0, 0, AfxSig_vOWNER, \
  305.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPDRAWITEMSTRUCT))OnDrawItem },
  306. #define ON_WM_DRAWITEM_REFLECT() \
  307.     { WM_DRAWITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vs, \
  308.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPDRAWITEMSTRUCT))DrawItem },
  309. #define ON_WM_MEASUREITEM() \
  310.     { WM_MEASUREITEM, 0, 0, 0, AfxSig_vOWNER, \
  311.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPMEASUREITEMSTRUCT))OnMeasureItem },
  312. #define ON_WM_MEASUREITEM_REFLECT() \
  313.     { WM_MEASUREITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vs, \
  314.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPMEASUREITEMSTRUCT))MeasureItem },
  315. #define ON_WM_DELETEITEM() \
  316.     { WM_DELETEITEM, 0, 0, 0, AfxSig_vOWNER, \
  317.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPDELETEITEMSTRUCT))OnDeleteItem },
  318. #define ON_WM_DELETEITEM_REFLECT() \
  319.     { WM_DELETEITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vs, \
  320.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPDELETEITEMSTRUCT))DeleteItem },
  321. #define ON_WM_CHARTOITEM() \
  322.     { WM_CHARTOITEM, 0, 0, 0, AfxSig_iwWw, \
  323.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))OnCharToItem },
  324. #define ON_WM_CHARTOITEM_REFLECT() \
  325.     { WM_CHARTOITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_iww, \
  326.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, UINT))CharToItem },
  327. #define ON_WM_VKEYTOITEM() \
  328.     { WM_VKEYTOITEM, 0, 0, 0, AfxSig_iwWw, \
  329.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))OnVKeyToItem },
  330. #define ON_WM_VKEYTOITEM_REFLECT() \
  331.     { WM_VKEYTOITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_iww, \
  332.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, UINT))VKeyToItem },
  333. #define ON_WM_QUERYDRAGICON() \
  334.     { WM_QUERYDRAGICON, 0, 0, 0, AfxSig_hv, \
  335.         (AFX_PMSG)(AFX_PMSGW)(HCURSOR (AFX_MSG_CALL CWnd::*)())OnQueryDragIcon },
  336. #define ON_WM_COMPAREITEM() \
  337.     { WM_COMPAREITEM, 0, 0, 0, AfxSig_iis, \
  338.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(int, LPCOMPAREITEMSTRUCT))OnCompareItem },
  339. #define ON_WM_COMPAREITEM_REFLECT() \
  340.     { WM_COMPAREITEM+WM_REFLECT_BASE, 0, 0, 0, AfxSig_is, \
  341.         (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCOMPAREITEMSTRUCT))CompareItem },
  342. #define ON_WM_COMPACTING() \
  343.     { WM_COMPACTING, 0, 0, 0, AfxSig_vw, \
  344.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))OnCompacting },
  345. #define ON_WM_NCCREATE() \
  346.     { WM_NCCREATE, 0, 0, 0, AfxSig_is, \
  347.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))OnNcCreate },
  348. #define ON_WM_NCDESTROY() \
  349.     { WM_NCDESTROY, 0, 0, 0, AfxSig_vv, \
  350.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnNcDestroy },
  351. #define ON_WM_NCCALCSIZE() \
  352.     { WM_NCCALCSIZE, 0, 0, 0, AfxSig_vCALC, \
  353.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, NCCALCSIZE_PARAMS*))OnNcCalcSize },
  354. #define ON_WM_NCHITTEST() \
  355.     { WM_NCHITTEST, 0, 0, 0, AfxSig_wp, \
  356.         (AFX_PMSG)(AFX_PMSGW)(UINT (AFX_MSG_CALL CWnd::*)(CPoint))OnNcHitTest },
  357. #define ON_WM_NCPAINT() \
  358.     { WM_NCPAINT, 0, 0, 0, AfxSig_vv, \
  359.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnNcPaint },
  360. #define ON_WM_NCACTIVATE() \
  361.     { WM_NCACTIVATE, 0, 0, 0, AfxSig_bb, \
  362.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(BOOL))OnNcActivate },
  363. #define ON_WM_GETDLGCODE() \
  364.     { WM_GETDLGCODE, 0, 0, 0, AfxSig_wv, \
  365.         (AFX_PMSG)(AFX_PMSGW)(UINT (AFX_MSG_CALL CWnd::*)(void))OnGetDlgCode },
  366. #define ON_WM_NCMOUSEMOVE() \
  367.     { WM_NCMOUSEMOVE, 0, 0, 0, AfxSig_vwp, \
  368.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMouseMove },
  369. #define ON_WM_NCLBUTTONDOWN() \
  370.     { WM_NCLBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \
  371.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonDown },
  372. #define ON_WM_NCLBUTTONUP() \
  373.     { WM_NCLBUTTONUP, 0, 0, 0, AfxSig_vwp, \
  374.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonUp },
  375. #define ON_WM_NCLBUTTONDBLCLK() \
  376.     { WM_NCLBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \
  377.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonDblClk },
  378. #define ON_WM_NCRBUTTONDOWN() \
  379.     { WM_NCRBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \
  380.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonDown },
  381. #define ON_WM_NCRBUTTONUP() \
  382.     { WM_NCRBUTTONUP, 0, 0, 0, AfxSig_vwp, \
  383.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonUp },
  384. #define ON_WM_NCRBUTTONDBLCLK() \
  385.     { WM_NCRBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \
  386.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonDblClk },
  387. #define ON_WM_NCMBUTTONDOWN() \
  388.     { WM_NCMBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \
  389.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonDown },
  390. #define ON_WM_NCMBUTTONUP() \
  391.     { WM_NCMBUTTONUP, 0, 0, 0, AfxSig_vwp, \
  392.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonUp },
  393. #define ON_WM_NCMBUTTONDBLCLK() \
  394.     { WM_NCMBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \
  395.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonDblClk },
  396. #define ON_WM_KEYDOWN() \
  397.     { WM_KEYDOWN, 0, 0, 0, AfxSig_vwww, \
  398.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnKeyDown },
  399. #define ON_WM_KEYUP() \
  400.     { WM_KEYUP, 0, 0, 0, AfxSig_vwww, \
  401.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnKeyUp },
  402. #define ON_WM_CHAR() \
  403.     { WM_CHAR, 0, 0, 0, AfxSig_vwww, \
  404.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnChar },
  405. #define ON_WM_DEADCHAR() \
  406.     { WM_DEADCHAR, 0, 0, 0, AfxSig_vwww, \
  407.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnDeadChar },
  408. #define ON_WM_SYSKEYDOWN() \
  409.     { WM_SYSKEYDOWN, 0, 0, 0, AfxSig_vwww, \
  410.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysKeyDown },
  411. #define ON_WM_SYSKEYUP() \
  412.     { WM_SYSKEYUP, 0, 0, 0, AfxSig_vwww, \
  413.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysKeyUp },
  414. #define ON_WM_SYSCHAR() \
  415.     { WM_SYSCHAR, 0, 0, 0, AfxSig_vwww, \
  416.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysChar },
  417. #define ON_WM_SYSDEADCHAR() \
  418.     { WM_SYSDEADCHAR, 0, 0, 0, AfxSig_vwww, \
  419.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysDeadChar },
  420. #define ON_WM_SYSCOMMAND() \
  421.     { WM_SYSCOMMAND, 0, 0, 0, AfxSig_vwl, \
  422.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))OnSysCommand },
  423. #define ON_WM_TCARD() \
  424.     { WM_TCARD, 0, 0, 0, AfxSig_vwl, \
  425.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, DWORD))OnTCard },
  426. #define ON_WM_TIMER() \
  427.     { WM_TIMER, 0, 0, 0, AfxSig_vw, \
  428.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))OnTimer },
  429. #define ON_WM_HSCROLL() \
  430.     { WM_HSCROLL, 0, 0, 0, AfxSig_vwwW, \
  431.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))OnHScroll },
  432. #define ON_WM_HSCROLL_REFLECT() \
  433.     { WM_HSCROLL+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vwwx, \
  434.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))HScroll },
  435. #define ON_WM_VSCROLL() \
  436.     { WM_VSCROLL, 0, 0, 0, AfxSig_vwwW, \
  437.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))OnVScroll },
  438. #define ON_WM_VSCROLL_REFLECT() \
  439.     { WM_VSCROLL+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vwwx, \
  440.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))VScroll },
  441. #define ON_WM_INITMENU() \
  442.     { WM_INITMENU, 0, 0, 0, AfxSig_vM, \
  443.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CMenu*))OnInitMenu },
  444. #define ON_WM_INITMENUPOPUP() \
  445.     { WM_INITMENUPOPUP, 0, 0, 0, AfxSig_vMwb, \
  446.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CMenu*, UINT, BOOL))OnInitMenuPopup },
  447. #define ON_WM_MENUSELECT() \
  448.     { WM_MENUSELECT, 0, 0, 0, AfxSig_vwwh, \
  449.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, HMENU))OnMenuSelect },
  450. #define ON_WM_MENUCHAR() \
  451.     { WM_MENUCHAR, 0, 0, 0, AfxSig_lwwM, \
  452.         (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(UINT, UINT, CMenu*))OnMenuChar },
  453. #define ON_WM_ENTERIDLE() \
  454.     { WM_ENTERIDLE, 0, 0, 0, AfxSig_vwW, \
  455.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*))OnEnterIdle },
  456. #define ON_WM_MOUSEMOVE() \
  457.     { WM_MOUSEMOVE, 0, 0, 0, AfxSig_vwp, \
  458.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMouseMove },
  459. #define ON_WM_LBUTTONDOWN() \
  460.     { WM_LBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \
  461.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonDown },
  462. #define ON_WM_LBUTTONUP() \
  463.     { WM_LBUTTONUP, 0, 0, 0, AfxSig_vwp, \
  464.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonUp },
  465. #define ON_WM_LBUTTONDBLCLK() \
  466.     { WM_LBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \
  467.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonDblClk },
  468. #define ON_WM_RBUTTONDOWN() \
  469.     { WM_RBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \
  470.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonDown },
  471. #define ON_WM_RBUTTONUP() \
  472.     { WM_RBUTTONUP, 0, 0, 0, AfxSig_vwp, \
  473.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonUp },
  474. #define ON_WM_RBUTTONDBLCLK() \
  475.     { WM_RBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \
  476.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonDblClk },
  477. #define ON_WM_MBUTTONDOWN() \
  478.     { WM_MBUTTONDOWN, 0, 0, 0, AfxSig_vwp, \
  479.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonDown },
  480. #define ON_WM_MBUTTONUP() \
  481.     { WM_MBUTTONUP, 0, 0, 0, AfxSig_vwp, \
  482.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonUp },
  483. #define ON_WM_MBUTTONDBLCLK() \
  484.     { WM_MBUTTONDBLCLK, 0, 0, 0, AfxSig_vwp, \
  485.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonDblClk },
  486. #define ON_WM_PARENTNOTIFY() \
  487.     { WM_PARENTNOTIFY, 0, 0, 0, AfxSig_vwl, \
  488.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))OnParentNotify },
  489. #define ON_WM_PARENTNOTIFY_REFLECT() \
  490.     { WM_PARENTNOTIFY+WM_REFLECT_BASE, 0, 0, 0, AfxSig_vwl, \
  491.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))ParentNotify },
  492. #define ON_WM_MDIACTIVATE() \
  493.     { WM_MDIACTIVATE, 0, 0, 0, AfxSig_vbWW, \
  494.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, CWnd*, CWnd*))OnMDIActivate },
  495. #define ON_WM_RENDERFORMAT() \
  496.     { WM_RENDERFORMAT, 0, 0, 0, AfxSig_vw, \
  497.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))OnRenderFormat },
  498. #define ON_WM_RENDERALLFORMATS() \
  499.     { WM_RENDERALLFORMATS, 0, 0, 0, AfxSig_vv, \
  500.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnRenderAllFormats },
  501. #define ON_WM_DESTROYCLIPBOARD() \
  502.     { WM_DESTROYCLIPBOARD, 0, 0, 0, AfxSig_vv, \
  503.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnDestroyClipboard },
  504. #define ON_WM_DRAWCLIPBOARD() \
  505.     { WM_DRAWCLIPBOARD, 0, 0, 0, AfxSig_vv, \
  506.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnDrawClipboard },
  507. #define ON_WM_PAINTCLIPBOARD() \
  508.     { WM_PAINTCLIPBOARD, 0, 0, 0, AfxSig_vWh, \
  509.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HGLOBAL))OnPaintClipboard },
  510. #define ON_WM_VSCROLLCLIPBOARD() \
  511.     { WM_VSCROLLCLIPBOARD, 0, 0, 0, AfxSig_vWww, \
  512.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnVScrollClipboard },
  513. #define ON_WM_CONTEXTMENU() \
  514.     { WM_CONTEXTMENU, 0, 0, 0, AfxSig_vWp, \
  515.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, CPoint))OnContextMenu },
  516. #define ON_WM_SIZECLIPBOARD() \
  517.     { WM_SIZECLIPBOARD, 0, 0, 0, AfxSig_vWh, \
  518.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HGLOBAL))OnSizeClipboard },
  519. #define ON_WM_ASKCBFORMATNAME() \
  520.     { WM_ASKCBFORMATNAME, 0, 0, 0, AfxSig_vwl, \
  521.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPTSTR))OnAskCbFormatName },
  522. #define ON_WM_CHANGECBCHAIN() \
  523.     { WM_CHANGECBCHAIN, 0, 0, 0, AfxSig_vhh, \
  524.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(HWND, HWND))OnChangeCbChain },
  525. #define ON_WM_HSCROLLCLIPBOARD() \
  526.     { WM_HSCROLLCLIPBOARD, 0, 0, 0, AfxSig_vWww, \
  527.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnHScrollClipboard },
  528. #define ON_WM_QUERYNEWPALETTE() \
  529.     { WM_QUERYNEWPALETTE, 0, 0, 0, AfxSig_bv, \
  530.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryNewPalette },
  531. #define ON_WM_PALETTECHANGED() \
  532.     { WM_PALETTECHANGED, 0, 0, 0, AfxSig_vW, \
  533.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnPaletteChanged },
  534.  
  535. #define ON_WM_PALETTEISCHANGING() \
  536.     { WM_PALETTEISCHANGING, 0, 0, 0, AfxSig_vW, \
  537.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnPaletteIsChanging },
  538. #define ON_WM_DROPFILES() \
  539.     { WM_DROPFILES, 0, 0, 0, AfxSig_vh, \
  540.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(HDROP))OnDropFiles },
  541. #define ON_WM_WINDOWPOSCHANGING() \
  542.     { WM_WINDOWPOSCHANGING, 0, 0, 0, AfxSig_vPOS, \
  543.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(WINDOWPOS*))OnWindowPosChanging },
  544. #define ON_WM_WINDOWPOSCHANGED() \
  545.     { WM_WINDOWPOSCHANGED, 0, 0, 0, AfxSig_vPOS, \
  546.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(WINDOWPOS*))OnWindowPosChanged },
  547.  
  548. #define ON_WM_EXITMENULOOP() \
  549.     { WM_EXITMENULOOP, 0, 0, 0, AfxSig_vb, \
  550.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnExitMenuLoop },
  551. #define ON_WM_ENTERMENULOOP() \
  552.     { WM_ENTERMENULOOP, 0, 0, 0, AfxSig_vb, \
  553.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnEnterMenuLoop },
  554.  
  555. #define ON_WM_STYLECHANGED() \
  556.     { WM_STYLECHANGED, 0, 0, 0, AfxSig_viSS, \
  557.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPSTYLESTRUCT))OnStyleChanged },
  558. #define ON_WM_STYLECHANGING() \
  559.     { WM_STYLECHANGING, 0, 0, 0, AfxSig_viSS, \
  560.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPSTYLESTRUCT))OnStyleChanging },
  561. #define ON_WM_SIZING() \
  562.     { WM_SIZING, 0, 0, 0, AfxSig_vwSIZING, \
  563.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPRECT))OnSizing },
  564. #define ON_WM_MOVING() \
  565.     { WM_MOVING, 0, 0, 0, AfxSig_vwMOVING, \
  566.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPRECT))OnMoving },
  567. #define ON_WM_CAPTURECHANGED() \
  568.     { WM_CAPTURECHANGED, 0, 0, 0, AfxSig_vW2, \
  569.         (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnCaptureChanged },
  570. #define ON_WM_DEVICECHANGE() \
  571.     { WM_DEVICECHANGE, 0, 0, 0, AfxSig_bwl, \
  572.         (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(UINT, DWORD))OnDeviceChange },
  573.  
  574. /////////////////////////////////////////////////////////////////////////////
  575. // Message map tables for Control Notification messages
  576.  
  577. // Static control notification codes
  578. #define ON_STN_CLICKED(id, memberFxn) \
  579.     ON_CONTROL(STN_CLICKED, id, memberFxn)
  580. #define ON_STN_DBLCLK(id, memberFxn) \
  581.     ON_CONTROL(STN_DBLCLK, id, memberFxn)
  582. #define ON_STN_ENABLE(id, memberFxn) \
  583.     ON_CONTROL(STN_ENABLE, id, memberFxn)
  584. #define ON_STN_DISABLE(id, memberFxn) \
  585.     ON_CONTROL(STN_DISABLE, id, memberFxn)
  586.  
  587.  
  588. // Edit Control Notification Codes
  589. #define ON_EN_SETFOCUS(id, memberFxn) \
  590.     ON_CONTROL(EN_SETFOCUS, id, memberFxn)
  591. #define ON_EN_KILLFOCUS(id, memberFxn) \
  592.     ON_CONTROL(EN_KILLFOCUS, id, memberFxn)
  593. #define ON_EN_CHANGE(id, memberFxn) \
  594.     ON_CONTROL(EN_CHANGE, id, memberFxn)
  595. #define ON_EN_UPDATE(id, memberFxn) \
  596.     ON_CONTROL(EN_UPDATE, id, memberFxn)
  597. #define ON_EN_ERRSPACE(id, memberFxn) \
  598.     ON_CONTROL(EN_ERRSPACE, id, memberFxn)
  599. #define ON_EN_MAXTEXT(id, memberFxn) \
  600.     ON_CONTROL(EN_MAXTEXT, id, memberFxn)
  601. #define ON_EN_HSCROLL(id, memberFxn) \
  602.     ON_CONTROL(EN_HSCROLL, id, memberFxn)
  603. #define ON_EN_VSCROLL(id, memberFxn) \
  604.     ON_CONTROL(EN_VSCROLL, id, memberFxn)
  605.  
  606. // User Button Notification Codes
  607. #define ON_BN_CLICKED(id, memberFxn) \
  608.     ON_CONTROL(BN_CLICKED, id, memberFxn)
  609. #define ON_BN_DOUBLECLICKED(id, memberFxn) \
  610.     ON_CONTROL(BN_DOUBLECLICKED, id, memberFxn)
  611. #define ON_BN_SETFOCUS(id, memberFxn) \
  612.     ON_CONTROL(BN_SETFOCUS, id, memberFxn)
  613. #define ON_BN_KILLFOCUS(id, memberFxn) \
  614.     ON_CONTROL(BN_KILLFOCUS, id, memberFxn)
  615.  
  616. // old BS_USERBUTTON button notifications - obsolete in Win31
  617. #define ON_BN_PAINT(id, memberFxn) \
  618.     ON_CONTROL(BN_PAINT, id, memberFxn)
  619. #define ON_BN_HILITE(id, memberFxn) \
  620.     ON_CONTROL(BN_HILITE, id, memberFxn)
  621. #define ON_BN_UNHILITE(id, memberFxn) \
  622.     ON_CONTROL(BN_UNHILITE, id, memberFxn)
  623. #define ON_BN_DISABLE(id, memberFxn) \
  624.     ON_CONTROL(BN_DISABLE, id, memberFxn)
  625.  
  626. // Listbox Notification Codes
  627. #define ON_LBN_ERRSPACE(id, memberFxn) \
  628.     ON_CONTROL(LBN_ERRSPACE, id, memberFxn)
  629. #define ON_LBN_SELCHANGE(id, memberFxn) \
  630.     ON_CONTROL(LBN_SELCHANGE, id, memberFxn)
  631. #define ON_LBN_DBLCLK(id, memberFxn) \
  632.     ON_CONTROL(LBN_DBLCLK, id, memberFxn)
  633. #define ON_LBN_SELCANCEL(id, memberFxn) \
  634.     ON_CONTROL(LBN_SELCANCEL, id, memberFxn)
  635. #define ON_LBN_SETFOCUS(id, memberFxn) \
  636.     ON_CONTROL(LBN_SETFOCUS, id, memberFxn)
  637. #define ON_LBN_KILLFOCUS(id, memberFxn) \
  638.     ON_CONTROL(LBN_KILLFOCUS, id, memberFxn)
  639.  
  640. // Check Listbox Notification codes
  641. #define CLBN_CHKCHANGE (40)
  642. #define ON_CLBN_CHKCHANGE(id, memberFxn) \
  643.     ON_CONTROL(CLBN_CHKCHANGE, id, memberFxn)
  644.  
  645. // Combo Box Notification Codes
  646. #define ON_CBN_ERRSPACE(id, memberFxn) \
  647.     ON_CONTROL(CBN_ERRSPACE, id, memberFxn)
  648. #define ON_CBN_SELCHANGE(id, memberFxn) \
  649.     ON_CONTROL(CBN_SELCHANGE, id, memberFxn)
  650. #define ON_CBN_DBLCLK(id, memberFxn) \
  651.     ON_CONTROL(CBN_DBLCLK, id, memberFxn)
  652. #define ON_CBN_SETFOCUS(id, memberFxn) \
  653.     ON_CONTROL(CBN_SETFOCUS, id, memberFxn)
  654. #define ON_CBN_KILLFOCUS(id, memberFxn) \
  655.     ON_CONTROL(CBN_KILLFOCUS, id, memberFxn)
  656. #define ON_CBN_EDITCHANGE(id, memberFxn) \
  657.     ON_CONTROL(CBN_EDITCHANGE, id, memberFxn)
  658. #define ON_CBN_EDITUPDATE(id, memberFxn) \
  659.     ON_CONTROL(CBN_EDITUPDATE, id, memberFxn)
  660. #define ON_CBN_DROPDOWN(id, memberFxn) \
  661.     ON_CONTROL(CBN_DROPDOWN, id, memberFxn)
  662. #define ON_CBN_CLOSEUP(id, memberFxn)  \
  663.     ON_CONTROL(CBN_CLOSEUP, id, memberFxn)
  664. #define ON_CBN_SELENDOK(id, memberFxn)  \
  665.     ON_CONTROL(CBN_SELENDOK, id, memberFxn)
  666. #define ON_CBN_SELENDCANCEL(id, memberFxn)  \
  667.     ON_CONTROL(CBN_SELENDCANCEL, id, memberFxn)
  668.  
  669. /////////////////////////////////////////////////////////////////////////////
  670. // User extensions for message map entries
  671.  
  672. // for Windows messages
  673. #define ON_MESSAGE(message, memberFxn) \
  674.     { message, 0, 0, 0, AfxSig_lwl, \
  675.         (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))memberFxn },
  676.  
  677. // for Registered Windows messages
  678. #define ON_REGISTERED_MESSAGE(nMessageVariable, memberFxn) \
  679.     { 0xC000, 0, 0, 0, (UINT)(UINT*)(&nMessageVariable), \
  680.         /*implied 'AfxSig_lwl'*/ \
  681.         (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))memberFxn },
  682.  
  683. /////////////////////////////////////////////////////////////////////////////
  684.