Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

528 lines
23 KiB

  1. // Microsoft Foundation Classes C++ library.
  2. // Copyright (C) 1992-1993 Microsoft Corporation,
  3. // All rights reserved.
  4. // This source code is only intended as a supplement to the
  5. // Microsoft Foundation Classes Reference and Microsoft
  6. // QuickHelp and/or WinHelp documentation provided with the library.
  7. // See these sources for detailed information regarding the
  8. // Microsoft Foundation Classes product.
  9. // Do not include this file directly (included by AFXWIN.H)
  10. /////////////////////////////////////////////////////////////////////////////
  11. // Entries in a message map (a 'AFX_MSGMAP_ENTRY') table can be of six formats
  12. // 1) control notification message (i.e. in response to WM_COMMAND)
  13. // nNotifyCode, nControlID, signature type, parameterless member function
  14. // (eg: LBN_SELCHANGE, IDC_LISTBOX, AfxSig_vv, ... )
  15. // 2) Update Command UI
  16. // -1, nControlID, signature Unknown, parameterless member function
  17. // 3) menu/accelerator notification message (i.e. special case of first format)
  18. // 0, nID, signature type, parameterless member function
  19. // (eg: 0, IDM_FILESAVE, AfxSig_vv, ... )
  20. // 4) constant windows message
  21. // nMessage, 0, signature type, member function
  22. // (eg: WM_PAINT, 0, ...)
  23. // 5) variable windows message (using RegisterWindowMessage)
  24. // 0xC000, 0, &nMessage, special member function
  25. // 6) variable control notification message (i.e. in response to WM_VBXEVENT)
  26. // 0xC001, nControlID, &nMessage, special member function
  27. // (eg: LBN_SELCHANGE, IDC_LISTBOX, AfxSig_vv, ... )
  28. // The end of the message map is marked with a special value
  29. // 0, 0, AfxSig_end, 0
  30. /////////////////////////////////////////////////////////////////////////////
  31. enum AfxSig
  32. {
  33. AfxSig_end = 0, // [marks end of message map]
  34. AfxSig_bD, // BOOL (CDC*)
  35. AfxSig_bb, // BOOL (BOOL)
  36. AfxSig_bWww, // BOOL (CWnd*, UINT, UINT)
  37. AfxSig_hDWw, // HBRUSH (CDC*, CWnd*, UINT)
  38. AfxSig_iwWw, // int (UINT, CWnd*, UINT)
  39. AfxSig_iWww, // int (CWnd*, UINT, UINT)
  40. AfxSig_is, // int (LPSTR)
  41. AfxSig_lwl, // LRESULT (WPARAM, LPARAM)
  42. AfxSig_lwwM, // LRESULT (UINT, UINT, CMenu*)
  43. AfxSig_vv, // void (void)
  44. AfxSig_vw, // void (UINT)
  45. AfxSig_vww, // void (UINT, UINT)
  46. AfxSig_vvii, // void (int, int) // wParam is ignored
  47. AfxSig_vwww, // void (UINT, UINT, UINT)
  48. AfxSig_vwii, // void (UINT, int, int)
  49. AfxSig_vwl, // void (UINT, LPARAM)
  50. AfxSig_vbWW, // void (BOOL, CWnd*, CWnd*)
  51. AfxSig_vD, // void (CDC*)
  52. AfxSig_vM, // void (CMenu*)
  53. AfxSig_vMwb, // void (CMenu*, UINT, BOOL)
  54. AfxSig_vW, // void (CWnd*)
  55. AfxSig_vWww, // void (CWnd*, UINT, UINT)
  56. AfxSig_vWh, // void (CWnd*, HANDLE)
  57. AfxSig_vwW, // void (UINT, CWnd*)
  58. AfxSig_vwWb, // void (UINT, CWnd*, BOOL)
  59. AfxSig_vwwW, // void (UINT, UINT, CWnd*)
  60. AfxSig_vs, // void (LPSTR)
  61. AfxSig_vOWNER, // void (int, LPSTR), force return TRUE
  62. AfxSig_iis, // int (int, LPSTR)
  63. AfxSig_wp, // UINT (CPoint)
  64. AfxSig_wv, // UINT (void)
  65. AfxSig_vPOS, // void (WINDOWPOS FAR*)
  66. AfxSig_vCALC, // void (NCCALCSIZE_PARAMS FAR*)
  67. // signatures specific to CCmdTarget
  68. AfxSig_vbx, // void (UINT, int, CVBControl*, LPVOID)
  69. AfxSig_cmdui, // void (CCmdUI*)
  70. AfxSig_vpv, // void (void*)
  71. AfxSig_bpv, // BOOL (void*)
  72. // Other aliases (based on implementation)
  73. AfxSig_vwwh = AfxSig_vwww, // void (UINT, UINT, HANDLE)
  74. AfxSig_vwp = AfxSig_vwl, // void (UINT, CPoint)
  75. AfxSig_bw = AfxSig_bb, // BOOL (UINT)
  76. AfxSig_bh = AfxSig_bb, // BOOL (HANDLE)
  77. AfxSig_bv = AfxSig_wv, // BOOL (void)
  78. AfxSig_hv = AfxSig_wv, // HANDLE (void)
  79. AfxSig_vb = AfxSig_vw, // void (BOOL)
  80. AfxSig_vbh = AfxSig_vww, // void (BOOL, HANDLE)
  81. AfxSig_vbw = AfxSig_vww, // void (BOOL, UINT)
  82. AfxSig_vhh = AfxSig_vww, // void (HANDLE, HANDLE)
  83. AfxSig_vh = AfxSig_vw // void (HANDLE)
  84. };
  85. /////////////////////////////////////////////////////////////////////////////
  86. // Command notifications for CCmdTarget notifications
  87. #define CN_COMMAND 0 // void ()
  88. #define CN_UPDATE_COMMAND_UI (-1) // void (CCmdUI*)
  89. // > 0 are control notifications
  90. #define ON_COMMAND(id, memberFxn) \
  91. { CN_COMMAND, id, AfxSig_vv, (AFX_PMSG)memberFxn },
  92. // ON_COMMAND(id, OnFoo) is the same as
  93. // ON_CONTROL(0, id, OnFoo) or ON_BN_CLICKED(0, id, OnFoo)
  94. #define ON_COMMAND_EX(id, memberFxn) \
  95. { CN_COMMAND, id, AfxSig_bw, \
  96. (AFX_PMSG)(BOOL (AFX_MSG_CALL CCmdTarget::*)(UINT))memberFxn },
  97. #define ON_UPDATE_COMMAND_UI(id, memberFxn) \
  98. { CN_UPDATE_COMMAND_UI, id, AfxSig_cmdui, \
  99. (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))memberFxn },
  100. // for general controls
  101. #define ON_CONTROL(wNotifyCode, id, memberFxn) \
  102. { wNotifyCode, id, AfxSig_vv, (AFX_PMSG)memberFxn },
  103. /////////////////////////////////////////////////////////////////////////////
  104. // Message map tables for Windows messages
  105. #define ON_WM_CREATE() \
  106. { WM_CREATE, 0, AfxSig_is, \
  107. (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))OnCreate },
  108. #define ON_WM_DESTROY() \
  109. { WM_DESTROY, 0, AfxSig_vv, \
  110. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnDestroy },
  111. #define ON_WM_MOVE() \
  112. { WM_MOVE, 0, AfxSig_vvii, \
  113. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, int))OnMove },
  114. #define ON_WM_SIZE() \
  115. { WM_SIZE, 0, AfxSig_vwii, \
  116. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, int, int))OnSize },
  117. #define ON_WM_ACTIVATE() \
  118. { WM_ACTIVATE, 0, AfxSig_vwWb, \
  119. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*, BOOL))OnActivate },
  120. #define ON_WM_SETFOCUS() \
  121. { WM_SETFOCUS, 0, AfxSig_vW, \
  122. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnSetFocus },
  123. #define ON_WM_KILLFOCUS() \
  124. { WM_KILLFOCUS, 0, AfxSig_vW, \
  125. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnKillFocus },
  126. #define ON_WM_ENABLE() \
  127. { WM_ENABLE, 0, AfxSig_vb, \
  128. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnEnable },
  129. #define ON_WM_PAINT() \
  130. { WM_PAINT, 0, AfxSig_vv, \
  131. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnPaint },
  132. #define ON_WM_CLOSE() \
  133. { WM_CLOSE, 0, AfxSig_vv, \
  134. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnClose },
  135. #define ON_WM_QUERYENDSESSION() \
  136. { WM_QUERYENDSESSION, 0, AfxSig_bv, \
  137. (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryEndSession },
  138. #define ON_WM_QUERYOPEN() \
  139. { WM_QUERYOPEN, 0, AfxSig_bv, \
  140. (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryOpen },
  141. #define ON_WM_ERASEBKGND() \
  142. { WM_ERASEBKGND, 0, AfxSig_bD, \
  143. (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(CDC*))OnEraseBkgnd },
  144. #define ON_WM_SYSCOLORCHANGE() \
  145. { WM_SYSCOLORCHANGE, 0, AfxSig_vv, \
  146. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnSysColorChange },
  147. #define ON_WM_ENDSESSION() \
  148. { WM_ENDSESSION, 0, AfxSig_vb, \
  149. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL))OnEndSession },
  150. #define ON_WM_SHOWWINDOW() \
  151. { WM_SHOWWINDOW, 0, AfxSig_vbw, \
  152. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, UINT))OnShowWindow },
  153. #define ON_WM_CTLCOLOR() \
  154. { WM_CTLCOLOR, 0, AfxSig_hDWw, \
  155. (AFX_PMSG)(AFX_PMSGW)(HBRUSH (AFX_MSG_CALL CWnd::*)(CDC*, CWnd*, UINT))OnCtlColor },
  156. #define ON_WM_WININICHANGE() \
  157. { WM_WININICHANGE, 0, AfxSig_vs, \
  158. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPCSTR))OnWinIniChange },
  159. #define ON_WM_DEVMODECHANGE() \
  160. { WM_DEVMODECHANGE, 0, AfxSig_vs, \
  161. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(LPSTR))OnDevModeChange },
  162. #define ON_WM_ACTIVATEAPP() \
  163. { WM_ACTIVATEAPP, 0, AfxSig_vbh, \
  164. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, HTASK))OnActivateApp },
  165. #define ON_WM_FONTCHANGE() \
  166. { WM_FONTCHANGE, 0, AfxSig_vv, \
  167. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnFontChange },
  168. #define ON_WM_TIMECHANGE() \
  169. { WM_TIMECHANGE, 0, AfxSig_vv, \
  170. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnTimeChange },
  171. #define ON_WM_CANCELMODE() \
  172. { WM_CANCELMODE, 0, AfxSig_vv, \
  173. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnCancelMode },
  174. #define ON_WM_SETCURSOR() \
  175. { WM_SETCURSOR, 0, AfxSig_bWww, \
  176. (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnSetCursor },
  177. #define ON_WM_MOUSEACTIVATE() \
  178. { WM_MOUSEACTIVATE, 0, AfxSig_iWww, \
  179. (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnMouseActivate },
  180. #define ON_WM_CHILDACTIVATE() \
  181. { WM_CHILDACTIVATE, 0, AfxSig_vv, \
  182. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnChildActivate },
  183. #define ON_WM_GETMINMAXINFO() \
  184. { WM_GETMINMAXINFO, 0, AfxSig_vs, \
  185. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(MINMAXINFO FAR*))OnGetMinMaxInfo },
  186. #define ON_WM_ICONERASEBKGND() \
  187. { WM_ICONERASEBKGND, 0, AfxSig_vD, \
  188. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CDC*))OnIconEraseBkgnd },
  189. #define ON_WM_SPOOLERSTATUS() \
  190. { WM_SPOOLERSTATUS, 0, AfxSig_vww, \
  191. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT))OnSpoolerStatus },
  192. #define ON_WM_DRAWITEM() \
  193. { WM_DRAWITEM, 0, AfxSig_vOWNER, \
  194. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPDRAWITEMSTRUCT))OnDrawItem },
  195. #define ON_WM_MEASUREITEM() \
  196. { WM_MEASUREITEM, 0, AfxSig_vOWNER, \
  197. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPMEASUREITEMSTRUCT))OnMeasureItem },
  198. #define ON_WM_DELETEITEM() \
  199. { WM_DELETEITEM, 0, AfxSig_vOWNER, \
  200. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(int, LPDELETEITEMSTRUCT))OnDeleteItem },
  201. #define ON_WM_CHARTOITEM() \
  202. { WM_CHARTOITEM, 0, AfxSig_iwWw, \
  203. (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))OnCharToItem },
  204. #define ON_WM_VKEYTOITEM() \
  205. { WM_VKEYTOITEM, 0, AfxSig_iwWw, \
  206. (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(UINT, CListBox*, UINT))OnVKeyToItem },
  207. #define ON_WM_QUERYDRAGICON() \
  208. { WM_QUERYDRAGICON, 0, AfxSig_hv, \
  209. (AFX_PMSG)(AFX_PMSGW)(HCURSOR (AFX_MSG_CALL CWnd::*)())OnQueryDragIcon },
  210. #define ON_WM_COMPAREITEM() \
  211. { WM_COMPAREITEM, 0, AfxSig_iis, \
  212. (AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(int, LPCOMPAREITEMSTRUCT))OnCompareItem },
  213. #define ON_WM_COMPACTING() \
  214. { WM_COMPACTING, 0, AfxSig_vw, \
  215. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))OnCompacting },
  216. #define ON_WM_NCCREATE() \
  217. { WM_NCCREATE, 0, AfxSig_is, \
  218. (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(LPCREATESTRUCT))OnNcCreate },
  219. #define ON_WM_NCDESTROY() \
  220. { WM_NCDESTROY, 0, AfxSig_vv, \
  221. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnNcDestroy },
  222. #define ON_WM_NCCALCSIZE() \
  223. { WM_NCCALCSIZE, 0, AfxSig_vCALC, \
  224. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, NCCALCSIZE_PARAMS FAR*))OnNcCalcSize },
  225. #define ON_WM_NCHITTEST() \
  226. { WM_NCHITTEST, 0, AfxSig_wp, \
  227. (AFX_PMSG)(AFX_PMSGW)(UINT (AFX_MSG_CALL CWnd::*)(CPoint))OnNcHitTest },
  228. #define ON_WM_NCPAINT() \
  229. { WM_NCPAINT, 0, AfxSig_vv, \
  230. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnNcPaint },
  231. #define ON_WM_NCACTIVATE() \
  232. { WM_NCACTIVATE, 0, AfxSig_bb, \
  233. (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(BOOL))OnNcActivate },
  234. #define ON_WM_GETDLGCODE() \
  235. { WM_GETDLGCODE, 0, AfxSig_wv, \
  236. (AFX_PMSG)(AFX_PMSGW)(UINT (AFX_MSG_CALL CWnd::*)(void))OnGetDlgCode },
  237. #define ON_WM_NCMOUSEMOVE() \
  238. { WM_NCMOUSEMOVE, 0, AfxSig_vwp, \
  239. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMouseMove },
  240. #define ON_WM_NCLBUTTONDOWN() \
  241. { WM_NCLBUTTONDOWN, 0, AfxSig_vwp, \
  242. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonDown },
  243. #define ON_WM_NCLBUTTONUP() \
  244. { WM_NCLBUTTONUP, 0, AfxSig_vwp, \
  245. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonUp },
  246. #define ON_WM_NCLBUTTONDBLCLK() \
  247. { WM_NCLBUTTONDBLCLK, 0, AfxSig_vwp, \
  248. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcLButtonDblClk },
  249. #define ON_WM_NCRBUTTONDOWN() \
  250. { WM_NCRBUTTONDOWN, 0, AfxSig_vwp, \
  251. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonDown },
  252. #define ON_WM_NCRBUTTONUP() \
  253. { WM_NCRBUTTONUP, 0, AfxSig_vwp, \
  254. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonUp },
  255. #define ON_WM_NCRBUTTONDBLCLK() \
  256. { WM_NCRBUTTONDBLCLK, 0, AfxSig_vwp, \
  257. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcRButtonDblClk },
  258. #define ON_WM_NCMBUTTONDOWN() \
  259. { WM_NCMBUTTONDOWN, 0, AfxSig_vwp, \
  260. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonDown },
  261. #define ON_WM_NCMBUTTONUP() \
  262. { WM_NCMBUTTONUP, 0, AfxSig_vwp, \
  263. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonUp },
  264. #define ON_WM_NCMBUTTONDBLCLK() \
  265. { WM_NCMBUTTONDBLCLK, 0, AfxSig_vwp, \
  266. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnNcMButtonDblClk },
  267. #define ON_WM_KEYDOWN() \
  268. { WM_KEYDOWN, 0, AfxSig_vwww, \
  269. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnKeyDown },
  270. #define ON_WM_KEYUP() \
  271. { WM_KEYUP, 0, AfxSig_vwww, \
  272. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnKeyUp },
  273. #define ON_WM_CHAR() \
  274. { WM_CHAR, 0, AfxSig_vwww, \
  275. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnChar },
  276. #define ON_WM_DEADCHAR() \
  277. { WM_DEADCHAR, 0, AfxSig_vwww, \
  278. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnDeadChar },
  279. #define ON_WM_SYSKEYDOWN() \
  280. { WM_SYSKEYDOWN, 0, AfxSig_vwww, \
  281. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysKeyDown },
  282. #define ON_WM_SYSKEYUP() \
  283. { WM_SYSKEYUP, 0, AfxSig_vwww, \
  284. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysKeyUp },
  285. #define ON_WM_SYSCHAR() \
  286. { WM_SYSCHAR, 0, AfxSig_vwww, \
  287. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysChar },
  288. #define ON_WM_SYSDEADCHAR() \
  289. { WM_SYSDEADCHAR, 0, AfxSig_vwww, \
  290. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, UINT))OnSysDeadChar },
  291. #define ON_WM_SYSCOMMAND() \
  292. { WM_SYSCOMMAND, 0, AfxSig_vwl, \
  293. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))OnSysCommand },
  294. #define ON_WM_TIMER() \
  295. { WM_TIMER, 0, AfxSig_vw, \
  296. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))OnTimer },
  297. #define ON_WM_HSCROLL() \
  298. { WM_HSCROLL, 0, AfxSig_vwwW, \
  299. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))OnHScroll },
  300. #define ON_WM_VSCROLL() \
  301. { WM_VSCROLL, 0, AfxSig_vwwW, \
  302. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, CScrollBar*))OnVScroll },
  303. #define ON_WM_INITMENU() \
  304. { WM_INITMENU, 0, AfxSig_vM, \
  305. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CMenu*))OnInitMenu },
  306. #define ON_WM_INITMENUPOPUP() \
  307. { WM_INITMENUPOPUP, 0, AfxSig_vMwb, \
  308. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CMenu*, UINT, BOOL))OnInitMenuPopup },
  309. #define ON_WM_MENUSELECT() \
  310. { WM_MENUSELECT, 0, AfxSig_vwwh, \
  311. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, UINT, HMENU))OnMenuSelect },
  312. #define ON_WM_MENUCHAR() \
  313. { WM_MENUCHAR, 0, AfxSig_lwwM, \
  314. (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(UINT, UINT, CMenu*))OnMenuChar },
  315. #define ON_WM_ENTERIDLE() \
  316. { WM_ENTERIDLE, 0, AfxSig_vwW, \
  317. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CWnd*))OnEnterIdle },
  318. #define ON_WM_MOUSEMOVE() \
  319. { WM_MOUSEMOVE, 0, AfxSig_vwp, \
  320. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMouseMove },
  321. #define ON_WM_LBUTTONDOWN() \
  322. { WM_LBUTTONDOWN, 0, AfxSig_vwp, \
  323. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonDown },
  324. #define ON_WM_LBUTTONUP() \
  325. { WM_LBUTTONUP, 0, AfxSig_vwp, \
  326. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonUp },
  327. #define ON_WM_LBUTTONDBLCLK() \
  328. { WM_LBUTTONDBLCLK, 0, AfxSig_vwp, \
  329. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnLButtonDblClk },
  330. #define ON_WM_RBUTTONDOWN() \
  331. { WM_RBUTTONDOWN, 0, AfxSig_vwp, \
  332. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonDown },
  333. #define ON_WM_RBUTTONUP() \
  334. { WM_RBUTTONUP, 0, AfxSig_vwp, \
  335. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonUp },
  336. #define ON_WM_RBUTTONDBLCLK() \
  337. { WM_RBUTTONDBLCLK, 0, AfxSig_vwp, \
  338. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnRButtonDblClk },
  339. #define ON_WM_MBUTTONDOWN() \
  340. { WM_MBUTTONDOWN, 0, AfxSig_vwp, \
  341. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonDown },
  342. #define ON_WM_MBUTTONUP() \
  343. { WM_MBUTTONUP, 0, AfxSig_vwp, \
  344. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonUp },
  345. #define ON_WM_MBUTTONDBLCLK() \
  346. { WM_MBUTTONDBLCLK, 0, AfxSig_vwp, \
  347. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))OnMButtonDblClk },
  348. #define ON_WM_PARENTNOTIFY() \
  349. { WM_PARENTNOTIFY, 0, AfxSig_vwl, \
  350. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPARAM))OnParentNotify },
  351. #define ON_WM_MDIACTIVATE() \
  352. { WM_MDIACTIVATE, 0, AfxSig_vbWW, \
  353. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(BOOL, CWnd*, CWnd*))OnMDIActivate },
  354. #define ON_WM_RENDERFORMAT() \
  355. { WM_RENDERFORMAT, 0, AfxSig_vw, \
  356. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT))OnRenderFormat },
  357. #define ON_WM_RENDERALLFORMATS() \
  358. { WM_RENDERALLFORMATS, 0, AfxSig_vv, \
  359. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnRenderAllFormats },
  360. #define ON_WM_DESTROYCLIPBOARD() \
  361. { WM_DESTROYCLIPBOARD, 0, AfxSig_vv, \
  362. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnDestroyClipboard },
  363. #define ON_WM_DRAWCLIPBOARD() \
  364. { WM_DRAWCLIPBOARD, 0, AfxSig_vv, \
  365. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(void))OnDrawClipboard },
  366. #define ON_WM_PAINTCLIPBOARD() \
  367. { WM_PAINTCLIPBOARD, 0, AfxSig_vWh, \
  368. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HGLOBAL))OnPaintClipboard },
  369. #define ON_WM_VSCROLLCLIPBOARD() \
  370. { WM_VSCROLLCLIPBOARD, 0, AfxSig_vWww, \
  371. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnVScrollClipboard },
  372. #define ON_WM_SIZECLIPBOARD() \
  373. { WM_SIZECLIPBOARD, 0, AfxSig_vWh, \
  374. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, HGLOBAL))OnSizeClipboard },
  375. #define ON_WM_ASKCBFORMATNAME() \
  376. { WM_ASKCBFORMATNAME, 0, AfxSig_vwl, \
  377. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, LPSTR))OnAskCbFormatName },
  378. #define ON_WM_CHANGECBCHAIN() \
  379. { WM_CHANGECBCHAIN, 0, AfxSig_vhh, \
  380. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(HWND, HWND))OnChangeCbChain },
  381. #define ON_WM_HSCROLLCLIPBOARD() \
  382. { WM_HSCROLLCLIPBOARD, 0, AfxSig_vWww, \
  383. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*, UINT, UINT))OnHScrollClipboard },
  384. #define ON_WM_QUERYNEWPALETTE() \
  385. { WM_QUERYNEWPALETTE, 0, AfxSig_bv, \
  386. (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(void))OnQueryNewPalette },
  387. #define ON_WM_PALETTECHANGED() \
  388. { WM_PALETTECHANGED, 0, AfxSig_vW, \
  389. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnPaletteChanged },
  390. #if (WINVER >= 0x030a)
  391. #define ON_WM_PALETTEISCHANGING() \
  392. { WM_PALETTEISCHANGING, 0, AfxSig_vW, \
  393. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(CWnd*))OnPaletteIsChanging },
  394. #define ON_WM_DROPFILES() \
  395. { WM_DROPFILES, 0, AfxSig_vh, \
  396. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(HDROP))OnDropFiles },
  397. #define ON_WM_WINDOWPOSCHANGING() \
  398. { WM_WINDOWPOSCHANGING, 0, AfxSig_vPOS, \
  399. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(WINDOWPOS FAR*))OnWindowPosChanging },
  400. #define ON_WM_WINDOWPOSCHANGED() \
  401. { WM_WINDOWPOSCHANGED, 0, AfxSig_vPOS, \
  402. (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(WINDOWPOS FAR*))OnWindowPosChanged },
  403. #endif
  404. /////////////////////////////////////////////////////////////////////////////
  405. // Message map tables for Control Notification messages
  406. // Edit Control Notification Codes
  407. #define ON_EN_SETFOCUS(id, memberFxn) \
  408. ON_CONTROL(EN_SETFOCUS, id, memberFxn)
  409. #define ON_EN_KILLFOCUS(id, memberFxn) \
  410. ON_CONTROL(EN_KILLFOCUS, id, memberFxn)
  411. #define ON_EN_CHANGE(id, memberFxn) \
  412. ON_CONTROL(EN_CHANGE, id, memberFxn)
  413. #define ON_EN_UPDATE(id, memberFxn) \
  414. ON_CONTROL(EN_UPDATE, id, memberFxn)
  415. #define ON_EN_ERRSPACE(id, memberFxn) \
  416. ON_CONTROL(EN_ERRSPACE, id, memberFxn)
  417. #define ON_EN_MAXTEXT(id, memberFxn) \
  418. ON_CONTROL(EN_MAXTEXT, id, memberFxn)
  419. #define ON_EN_HSCROLL(id, memberFxn) \
  420. ON_CONTROL(EN_HSCROLL, id, memberFxn)
  421. #define ON_EN_VSCROLL(id, memberFxn) \
  422. ON_CONTROL(EN_VSCROLL, id, memberFxn)
  423. // User Button Notification Codes
  424. #define ON_BN_CLICKED(id, memberFxn) \
  425. ON_CONTROL(BN_CLICKED, id, memberFxn)
  426. #define ON_BN_DOUBLECLICKED(id, memberFxn) \
  427. ON_CONTROL(BN_DOUBLECLICKED, id, memberFxn)
  428. #if (WINVER < 0x030a)
  429. // old BS_USERBUTTON button notifications - obsolete in Win31
  430. #define ON_BN_PAINT(id, memberFxn) \
  431. ON_CONTROL(BN_PAINT, id, memberFxn)
  432. #define ON_BN_HILITE(id, memberFxn) \
  433. ON_CONTROL(BN_HILITE, id, memberFxn)
  434. #define ON_BN_UNHILITE(id, memberFxn) \
  435. ON_CONTROL(BN_UNHILITE, id, memberFxn)
  436. #define ON_BN_DISABLE(id, memberFxn) \
  437. ON_CONTROL(BN_DISABLE, id, memberFxn)
  438. #endif
  439. // Listbox Notification Codes
  440. #define ON_LBN_ERRSPACE(id, memberFxn) \
  441. ON_CONTROL(LBN_ERRSPACE, id, memberFxn)
  442. #define ON_LBN_SELCHANGE(id, memberFxn) \
  443. ON_CONTROL(LBN_SELCHANGE, id, memberFxn)
  444. #define ON_LBN_DBLCLK(id, memberFxn) \
  445. ON_CONTROL(LBN_DBLCLK, id, memberFxn)
  446. #define ON_LBN_SELCANCEL(id, memberFxn) \
  447. ON_CONTROL(LBN_SELCANCEL, id, memberFxn)
  448. #define ON_LBN_SETFOCUS(id, memberFxn) \
  449. ON_CONTROL(LBN_SETFOCUS, id, memberFxn)
  450. #define ON_LBN_KILLFOCUS(id, memberFxn) \
  451. ON_CONTROL(LBN_KILLFOCUS, id, memberFxn)
  452. // Combo Box Notification Codes
  453. #define ON_CBN_ERRSPACE(id, memberFxn) \
  454. ON_CONTROL(CBN_ERRSPACE, id, memberFxn)
  455. #define ON_CBN_SELCHANGE(id, memberFxn) \
  456. ON_CONTROL(CBN_SELCHANGE, id, memberFxn)
  457. #define ON_CBN_DBLCLK(id, memberFxn) \
  458. ON_CONTROL(CBN_DBLCLK, id, memberFxn)
  459. #define ON_CBN_SETFOCUS(id, memberFxn) \
  460. ON_CONTROL(CBN_SETFOCUS, id, memberFxn)
  461. #define ON_CBN_KILLFOCUS(id, memberFxn) \
  462. ON_CONTROL(CBN_KILLFOCUS, id, memberFxn)
  463. #define ON_CBN_EDITCHANGE(id, memberFxn) \
  464. ON_CONTROL(CBN_EDITCHANGE, id, memberFxn)
  465. #define ON_CBN_EDITUPDATE(id, memberFxn) \
  466. ON_CONTROL(CBN_EDITUPDATE, id, memberFxn)
  467. #define ON_CBN_DROPDOWN(id, memberFxn) \
  468. ON_CONTROL(CBN_DROPDOWN, id, memberFxn)
  469. #if (WINVER >= 0x030a)
  470. #define ON_CBN_CLOSEUP(id, memberFxn) \
  471. ON_CONTROL(CBN_CLOSEUP, id, memberFxn)
  472. #define ON_CBN_SELENDOK(id, memberFxn) \
  473. ON_CONTROL(CBN_SELENDOK, id, memberFxn)
  474. #define ON_CBN_SELENDCANCEL(id, memberFxn) \
  475. ON_CONTROL(CBN_SELENDCANCEL, id, memberFxn)
  476. #endif
  477. /////////////////////////////////////////////////////////////////////////////
  478. // User extensions for message map entries
  479. // for Windows messages
  480. #define ON_MESSAGE(message, memberFxn) \
  481. { message, 0, AfxSig_lwl, \
  482. (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))memberFxn },
  483. // for Registered Windows messages
  484. #define ON_REGISTERED_MESSAGE(nMessageVariable, memberFxn) \
  485. { 0xC000, 0, (UINT)(UINT NEAR*)(&nMessageVariable), \
  486. /*implied 'AfxSig_lwl'*/ \
  487. (AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))memberFxn },
  488. /////////////////////////////////////////////////////////////////////////////
  489. // Routed VBX Event message
  490. // for VBX control events
  491. #define ON_VBXEVENT(wNotifyCode, id, memberFxn) \
  492. { 0xC001, id, &wNotifyCode, \
  493. (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(UINT, int, CWnd*, LPVOID))memberFxn },
  494. /////////////////////////////////////////////////////////////////////////////