Source code of Windows XP (NT5)
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.

1198 lines
48 KiB

  1. ; ---------------------------------------------------------------------------
  2. ;
  3. ; OBSOLETE.INC
  4. ;
  5. ; Old message thunking macros, no longer used.
  6. ;
  7. ; ---------------------------------------------------------------------------
  8. ; -------------
  9. ; FROM DISP.INC
  10. ; -------------
  11. ;-----------------------------------------------------------------------;
  12. ; DefMsgTable
  13. ;
  14. ; list
  15. ; The list of table code-names to create table entries from.
  16. ;
  17. ; table_suffix
  18. ; The suffix which distinguishes this table name from others.
  19. ;
  20. ; table_size
  21. ; The size of entries in the tables that this table refers to.
  22. ;
  23. ; direction
  24. ; The direction of thunking the table refers to.
  25. ;
  26. ; Define tables of offsets to tables indexed by message number.
  27. ; The tables self-check the accuracy of ordering of entries.
  28. ;-----------------------------------------------------------------------;
  29. DefMsgTable macro list:req,table_suffix:req,table_size:req,direction:req
  30. local tbl, tbl_entry, table_index
  31. ; Create and execute a statement of the form:
  32. ;
  33. ; tbl equ <awSLIndexTable>
  34. cat <tbl equ >,!<,aw,&direction,&table_suffix,<Table>,!>
  35. ; Define the array of tables and declare its name.
  36. % externDef tbl:word
  37. % tbl label word
  38. table_index = 0
  39. for x,<list>
  40. if table_index NE CLASS_&x
  41. .err
  42. endif
  43. ; Create and execute a statement of the form:
  44. ;
  45. ; tbl_entry equ <abWMSLIndex>, or
  46. ; tbl_entry equ <awWMSLIndex>
  47. ifidni <&table_size>,<byte>
  48. cat <tbl_entry equ >,!<,ab,x,&direction,&table_suffix,!>
  49. else
  50. ifidni <&table_size>,<word>
  51. cat <tbl_entry equ >,!<,aw,x,&direction,&table_suffix,!>
  52. else
  53. ;unrecognized table size
  54. .err
  55. endif
  56. endif
  57. ; Create a table entry and declare its name.
  58. % externDef tbl_entry:&table_size
  59. % dw offset tbl_entry
  60. table_index = table_index + 1
  61. endm
  62. endm
  63. ;-----------------------------------------------------------------------;
  64. ; DefAllExternMsgTables
  65. ;
  66. ; list
  67. ; The list of table code-names from which to create tables.
  68. ;
  69. ; direction
  70. ; The direction of the thunks (i.e. LS or SL).
  71. ;
  72. ; Create all the necessary tables for dispatching message thunks in
  73. ; the given direction.
  74. ;-----------------------------------------------------------------------;
  75. DefAllExternMsgTables macro list:req, direction:req
  76. local symbol_name
  77. for x,<list>
  78. ; Create and execute a statement of the form:
  79. ;
  80. ; symbol_name equ <awWMSLOffset>
  81. cat <symbol_name equ >,!<,aw,x,&direction,Offset,!>
  82. % externDef symbol_name:word
  83. ; Create and execute a statement of the form:
  84. ;
  85. ; symbol_name equ <abWMSLIndex>
  86. cat <symbol_name equ >,!<,ab,x,&direction,Index,!>
  87. % externDef symbol_name:byte
  88. ; Create and execute a statement of the form:
  89. ;
  90. ; symbol_name equ <abWMSLRet>
  91. cat <symbol_name equ >,!<,ab,x,&direction,Ret,!>
  92. % externDef symbol_name:byte
  93. endm
  94. endm
  95. ; ---------------
  96. ; FROM MSGTBL.INC
  97. ; ---------------
  98. ;-----------------------------------------------------------------------;
  99. ; thk
  100. ;
  101. ; name
  102. ; A message name.
  103. ;
  104. ; number
  105. ; A message number.
  106. ;
  107. ; afSpecial
  108. ; A list (in angle brackets) of the various directions of special
  109. ; thunks needed for this message. The valid codes are:
  110. ;
  111. ; SL ==> special thunk required going short to long (16->32)
  112. ; LS ==> special thunk required going long to short (32->16)
  113. ;
  114. ; A message may only require a thunk in one direction, in which
  115. ; case only the one appropriate code should be given.
  116. ;
  117. ; ret_type
  118. ; A code specifying the return type of the message.
  119. ;
  120. ; fDefNoStruc
  121. ; Indicates whether or not the default thunk applies when
  122. ; the TF_NOSTRUC flag is set. If so, the only action in the
  123. ; SL direction is to combine wParamLo & wParamHi; in the LS
  124. ; direction, to split up wParam into wParamLo and wParamHi.
  125. ;
  126. ; Example:
  127. ;
  128. ; thk WM_CREATE,1,<SL,LS>,RC_BOOL
  129. ;
  130. ; Dependencies:
  131. ; This macro depends on the definition of the two constants:
  132. ;
  133. ; "dir" the direction of the thunks being defined
  134. ; "tbl" the code name of the thunk table
  135. ;
  136. ; The thk macro creates the symbols used to check for special thunks.
  137. ; It also generates the thunk entries by invoking the add_thunk macro.
  138. ; No code is generated, but the symbols created are used to produce
  139. ; code later on by make_index_entries, make_thunk_entries, and
  140. ; make_ret_entries.
  141. ;
  142. ; This macro allows all the thunk dispatch information needed about a
  143. ; message to be defined in one place, to make maintaining the big list
  144. ; of messages easier. The list itself is in a separate include file
  145. ; (msg.inc).
  146. ;-----------------------------------------------------------------------;
  147. thk macro name:req,number:req,afSpecial,ret_type:=<RC_DEFAULT>,fDefNoStruc:=<0>
  148. local has_thunk, msg, low_msg, high_msg
  149. ;; Update highest message number processed. Messages must be sorted,
  150. ;; so if number does not increase it's an error. If there is a gap
  151. ;; of one or more messages between the previously highest number andu
  152. ;; the new one, fill in the index_xxyy_## values with the value
  153. ;; UNIMPLEMENTED_THUNK. In the debug build, if one of these messages
  154. ;; is used, a warning will be displayed on the debug terminal.
  155. if max_msg LT number
  156. if max_msg LT (number + 1)
  157. low_msg = max_msg + 1
  158. high_msg = number - 1
  159. msg = low_msg
  160. repeat (high_msg - low_msg + 1)
  161. add_null_thunk %tbl, %msg, UNIMPLEMENTED_THUNK
  162. msg = msg + 1
  163. endm
  164. endif
  165. max_msg = number
  166. else
  167. .err
  168. endif
  169. ;;If the message has a special thunk, define the symbols necessary to
  170. ;;build the proper dispatch tables.
  171. ifnb <afSpecial>
  172. has_thunk = 0
  173. for x,<afSpecial>
  174. has_thunk = has_thunk or check_thunk(x)
  175. endm
  176. if has_thunk
  177. add_thunk %tbl, name, %max_msg, ret_type, fDefNoStruc
  178. else
  179. add_null_thunk %tbl, %max_msg, COMMON_THUNK, ret_type
  180. endif
  181. else
  182. add_null_thunk %tbl, %max_msg, COMMON_THUNK, ret_type
  183. endif
  184. endm
  185. ;-----------------------------------------------------------------------;
  186. ; begin_thunk_table
  187. ;
  188. ; This macro initializes the variables used by thk.
  189. ;
  190. ; tbl_base lowest message number in table
  191. ; tbl_limit highest message number in table
  192. ; max_msg highest message number processed so far
  193. ; max_index next index into table of thunk procedure offsets
  194. ;-----------------------------------------------------------------------;
  195. begin_thunk_table macro table_name:req
  196. tbl equ <&table_name>
  197. DefTableLimits table_name
  198. max_msg = tbl_base - 1
  199. max_index = 1
  200. endm
  201. ;-----------------------------------------------------------------------;
  202. ; end_thunk_table
  203. ;
  204. ; This macro defines all message indices from max_msg+1 to tbl_limit as
  205. ; UNIMPLEMENTED_THUNK. This saves the message thunk dispatcher from
  206. ; having to do an extra test for the last defined message.
  207. ;-----------------------------------------------------------------------;
  208. end_thunk_table macro
  209. local high_msg, low_msg, msg
  210. ;;Check that our table isn't too big.
  211. % if max_msg GT tbl_limit
  212. .err
  213. endif
  214. % if max_msg LT tbl_limit
  215. low_msg = max_msg + 1
  216. high_msg = tbl_limit
  217. msg = low_msg
  218. % rept (high_msg - low_msg + 1)
  219. add_null_thunk %tbl,%msg,UNIMPLEMENTED_THUNK
  220. msg = msg + 1
  221. endm
  222. max_msg = tbl_limit
  223. endif
  224. endm
  225. ;-----------------------------------------------------------------------;
  226. ; check_thunk
  227. ;
  228. ; flag
  229. ; An item from the list of special flags given to the thk macros
  230. ; in msg.inc. These flags indicate whether a message has a special
  231. ; thunk in each direction. "flag" is one of the flags.
  232. ;
  233. ; Macro function which returns 1 (TRUE) if "flag" has the same value as
  234. ; "dir", 0 (FALSE) otherwise.
  235. ;
  236. ; This macro is invoked by the thk macro in order to know whether to
  237. ; invoke add_thunk or add_null_thunk.
  238. ;-----------------------------------------------------------------------;
  239. check_thunk macro flag:req
  240. local has_thunk
  241. has_thunk = 0
  242. % ifidni <flag>,<dir>
  243. has_thunk = 1
  244. endif
  245. exitm %has_thunk
  246. endm
  247. ;-----------------------------------------------------------------------;
  248. ; add_thunk
  249. ;
  250. ; tbl
  251. ; Code for table (i.e. WM, etc.).
  252. ;
  253. ; name
  254. ; The name of a message for which a thunk dispatch table entry
  255. ; should be created.
  256. ;
  257. ; number
  258. ; The corresponding message number.
  259. ;
  260. ; ret_type
  261. ; A code specifying the return type of the message.
  262. ;
  263. ; fDefNoStruc
  264. ; Indicates whether or not the default thunk applies when
  265. ; the TF_NOSTRUC flag is set. If so, the only action in the
  266. ; SL direction is to zero-extend wParam; in the LS direction,
  267. ; to truncate wParam.
  268. ;
  269. ;
  270. ; This macro is invoked by the thk macro. It creates the symbols that
  271. ; will be used by the table creation macros invoked at the end of this
  272. ; file.
  273. ;
  274. ; The labels take the form of pfn_xxyy_## and index_xxyy_## where
  275. ; xx is the table code, yy is the direction, and ## is a message number
  276. ; in decimal.
  277. ;
  278. ; pfn_WMSL_1 equ WMSL_WM_CREATE
  279. ; index_WMSL_1 equ 2
  280. ; ret_WMSL_1 equ RC_BOOL
  281. ;
  282. ; The pfn_xxyy_## symbol records the thunk procedure address for
  283. ; message number ## in table xx in the yy direction, and the index_xxyy_##
  284. ; records its position in the compacted table of thunk procedure offsets. All
  285. ; messages have a corresponding index_xxyy_## symbol. If the symbol value is
  286. ; COMMON_THUNK or UNIMPLEMENTED_THUNK, then there is no special thunk for the
  287. ; message and there is no corresponding pfn_xxyy_## symbol. If the symbol
  288. ; value is nonzero, pfn_xxyy_## is defined.
  289. ;
  290. ; The pfn_xxyy_## values are 16-bit addresses. The address of the
  291. ; first thunk procedure is subtracted to create a 16-bit offset before
  292. ; storing in the thunk offset table.
  293. ;
  294. ; The ret_xxyy_## symbol holds the return type of the message, used for
  295. ; building a table the dispatcher will use to correctly thunk the message
  296. ; return code.
  297. ;
  298. ; The variable max_index keeps track of what the next nonzero index
  299. ; should be. The first entry in the thunk offset table is the default thunk,
  300. ; so special thunks start at index 1. Only one table is processed at a
  301. ; time, so max_index is re-used by all.
  302. ;-----------------------------------------------------------------------;
  303. add_thunk macro tbl:req,name:req,number:req,ret_type:=<RC_DEFAULT>,fDefNoStruc:=<0>
  304. ;; Create and execute statement such as:
  305. ;;
  306. ;; pfn_WMSL_1 equ WMSL_WM_CREATE
  307. cat pfn_,&tbl,%dir,_,number,< equ >,&tbl,%dir,_,&name
  308. ;; Create and execute statement such as:
  309. ;;
  310. ;; index_WMSL_1 equ max_index
  311. cat index_,&tbl,%dir,_,number,< equ max_index>
  312. ;; Create and execute statement such as:
  313. ;;
  314. ;; ret_WMSL_1 equ RC_BOOL
  315. cat ret_,&tbl,%dir,_,number,< equ >,&ret_type
  316. ;; Create and execute statement such as:
  317. ;;
  318. ;; no_struc_1 equ 0
  319. cat no_struc_,number,< equ >,&fDefNoStruc
  320. ;; Increment by 2 because it is an index into a table of words.
  321. max_index = max_index + 1
  322. ;; Index 0FFh is used to indicate unimplemented thunks.
  323. .erre max_index - 0FFh
  324. endm
  325. ;-----------------------------------------------------------------------;
  326. ; add_null_thunk
  327. ;
  328. ; tbl
  329. ; Code for table (i.e. WM, BM, etc.).
  330. ;
  331. ; number
  332. ; The corresponding message number.
  333. ;
  334. ; value
  335. ; The index value to give the message number. This can be either
  336. ; COMMON_THUNK or UNIMPLEMENTED_THUNK.
  337. ;
  338. ; ret_type
  339. ; A code specifying the return type of the message.
  340. ;
  341. ; Same as add_thunk, except only index_xxyy_## is defined.
  342. ;-----------------------------------------------------------------------;
  343. add_null_thunk macro tbl:req,number:req,value:=<COMMON_THUNK>,ret_type:=<RC_DEFAULT>
  344. ifdef DEBUG
  345. ;; Create and execute statement such as:
  346. ;;
  347. ;; index_WMSL_1 equ COMMON_THUNK
  348. cat index_,&tbl,%dir,_,number,< equ >,&value
  349. else
  350. ;if RETAIL, no message will have index UNIMPLEMENTED_THUNK since dispatcher
  351. ;won't make special case for it
  352. ;; Create and execute statement such as:
  353. ;;
  354. ;; index_WMSL_1 equ COMMON_THUNK
  355. cat index_,&tbl,%dir,_,number,< equ >,COMMON_THUNK
  356. endif
  357. ;; Create and execute statement such as:
  358. ;;
  359. ;; ret_WMSL_1 equ RC_BOOL
  360. cat ret_,&tbl,%dir,_,number,< equ >,&ret_type
  361. ;; Create and execute statement such as:
  362. ;;
  363. ;; no_struc_1 equ 0
  364. cat no_struc_,number,< equ 0>
  365. endm
  366. ;-----------------------------------------------------------------------;
  367. ; make_thunk_entries
  368. ;
  369. ; tbl
  370. ; Code name of table being created.
  371. ;
  372. ; This macro uses the symbols created by thk to define the thunk
  373. ; entry tables in memory. It enumerates all the index_xxyy_## symbols
  374. ; and makes an entry in the thunk procedure offset table for each
  375. ; nonzero value.
  376. ;-----------------------------------------------------------------------;
  377. make_thunk_entries macro tbl:req
  378. local symbol_index, symbol_pfn, msgnum
  379. DefTableLimits tbl
  380. ;;Create and execute a statement such as:
  381. ;;
  382. ;; dw offset WMLS_COMMON
  383. cat <dw offset >,&tbl,%dir,_COMMON
  384. msgnum = tbl_base
  385. % rept tbl_limit - tbl_base + 1
  386. ;; Create and execute a statement such as:
  387. ;;
  388. ;; symbol_index equ <index_WMLS_1>
  389. cat <symbol_index equ >,!<,index_,&tbl,%dir,_,%msgnum,!>
  390. % if symbol_index NE COMMON_THUNK
  391. % if symbol_index NE UNIMPLEMENTED_THUNK
  392. ;; Create and execute a statement such as:
  393. ;;
  394. ;; symbol_pfn equ <pfn_WMLS_1>
  395. cat <symbol_pfn equ >,!<,pfn_,&tbl,%dir,_,%msgnum,!>
  396. % dw offset symbol_pfn
  397. endif
  398. endif
  399. msgnum = msgnum + 1
  400. endm
  401. endm
  402. ;-----------------------------------------------------------------------;
  403. ; make_index_entries
  404. ;
  405. ; tbl
  406. ; Code name of table being created.
  407. ;
  408. ; This macro uses the symbols created by thk to define the index
  409. ; array in memory. The index array is checked by the thunk dispatcher
  410. ; to determine if a message has a special thunk. Messages without
  411. ; special thunks (most of them) go through a standard thunk. If the
  412. ; index is nonzero, then it is used to look up the offset of the thunk
  413. ; procedure in another table.
  414. ;
  415. ; This table will have the index_xxyy_## value for each message for
  416. ; the given thunk class.
  417. ;-----------------------------------------------------------------------;
  418. make_index_entries macro tbl:req
  419. local msgnum
  420. DefTableLimits tbl
  421. msgnum = tbl_base
  422. % rept tbl_limit - tbl_base + 1
  423. ;; Create and execute statement such as:
  424. ;;
  425. ;; db index_WMLS_1
  426. cat <db index_>,tbl,%dir,_,%msgnum
  427. msgnum = msgnum + 1
  428. endm
  429. endm
  430. ;-----------------------------------------------------------------------;
  431. ; make_ret_entries
  432. ;
  433. ; tbl
  434. ; Code name of table being created.
  435. ;
  436. ; This macro uses the symbols created by thk to define the return-type
  437. ; array in memory. The return-type array is checked by the thunk dispatcher
  438. ; to determine if a message return code requires thunking.
  439. ;
  440. ; This table will have the ret_xxyy_## value for each message for
  441. ; the given thunk class.
  442. ;-----------------------------------------------------------------------;
  443. make_ret_entries macro tbl:req
  444. local msgnum
  445. DefTableLimits tbl
  446. msgnum = tbl_base
  447. % rept tbl_limit - tbl_base + 1
  448. ;; Create and execute statement such as:
  449. ;;
  450. ;; db ret_WMLS_1
  451. cat <db ret_>,tbl,%dir,_,%msgnum
  452. msgnum = msgnum + 1
  453. endm
  454. endm
  455. ;-----------------------------------------------------------------------;
  456. ; make_no_struc_entries
  457. ;
  458. ; This macro uses the symbols created by thk to define the TF_NOSTRUC
  459. ; array in memory. The TF_NOSTRUC array is checked by the api thunk
  460. ; to determine if a message requires special thunking.
  461. ;
  462. ; This table will have the no_struc_xxyy_## value for each message
  463. ; in the WM class.
  464. ;-----------------------------------------------------------------------;
  465. make_no_struc_entries macro
  466. local msgnum
  467. DefTableLimits WM
  468. msgnum = tbl_base
  469. % rept tbl_limit - tbl_base + 1
  470. ;; Create and execute statement such as:
  471. ;;
  472. ;; db no_struc_1
  473. cat <db no_struc_>,%msgnum
  474. msgnum = msgnum + 1
  475. endm
  476. endm
  477. ;-----------------------------------------------------------------------;
  478. ; DefIndexTable
  479. ;
  480. ; direction
  481. ; The direction of thunking the table refers to.
  482. ;
  483. ; Creates a table containing indices into the corresponding table
  484. ; of thunk procedure offsets.
  485. ;-----------------------------------------------------------------------;
  486. DefIndexTable macro
  487. local symbol_name
  488. ;; Create and execute a statement of the form:
  489. ;;
  490. ;; symbol_name equ <abWMIndex>
  491. cat <symbol_name equ >,!<,ab,WM,Index,!>
  492. ;; Define the array of tables and declare its name.
  493. % externDef symbol_name:byte
  494. % symbol_name label byte
  495. ;; Define the table's contents and verify that it has the right size.
  496. make_index_entries WM
  497. % .errnz ($ - symbol_name) - C_WM
  498. endm
  499. ;-----------------------------------------------------------------------;
  500. ; DefOffsetTable
  501. ;
  502. ; direction
  503. ; The direction of thunking the table refers to.
  504. ;
  505. ; Creates a table containing the offsets to special thunk procedures.
  506. ; The table is packed, and many messages do not have special thunks,
  507. ; so there is another table used to map a message number to the proper
  508. ; element of this table. The dispatcher will not look in this array
  509. ; unless the message has a special thunk.
  510. ;-----------------------------------------------------------------------;
  511. DefOffsetTable macro direction:req
  512. local symbol_name
  513. ;; Create and execute a statement of the form:
  514. ;;
  515. ;; symbol_name equ <awWMSLOffset>
  516. cat <symbol_name equ >,!<,aw,WM,&direction,Offset,!>
  517. ;; Define the array of tables and declare its name.
  518. % externDef symbol_name:word
  519. % symbol_name label word
  520. ;; Define the table's contents and verify that it has the right size.
  521. make_thunk_entries WM
  522. endm
  523. ;-----------------------------------------------------------------------;
  524. ; DefRetTable
  525. ;
  526. ; direction
  527. ; The direction of thunking the table refers to.
  528. ;
  529. ; Creates a table containing indices into the table of addresses of
  530. ; return-code thunks.
  531. ;-----------------------------------------------------------------------;
  532. DefRetTable macro direction:req
  533. local symbol_name
  534. ;; Create and execute a statement of the form:
  535. ;;
  536. ;; symbol_name equ <abWMSLRet>
  537. cat <symbol_name equ >,!<,ab,WM&direction,Ret,!>
  538. ;; Define the array of return-code types and declare its name.
  539. % externDef symbol_name:byte
  540. % symbol_name label byte
  541. make_ret_entries WM
  542. % .errnz ($ - symbol_name) - C_WM
  543. endm
  544. ;-----------------------------------------------------------------------;
  545. ; DefNoStrucTable
  546. ;
  547. ; Creates a table containing flags indicating whether or not a message
  548. ; requires a special thunk when the TF_NOSTRUC flag is set.
  549. ;-----------------------------------------------------------------------;
  550. DefNoStrucTable macro
  551. abNoStruc label byte
  552. ;; Define the table's contents and verify that it has the right size.
  553. make_no_struc_entries
  554. % .errnz ($ - abNoStruc) - C_WM
  555. endm
  556. ;-----------------------------------------------------------------------;
  557. ; DefAllMsgTables
  558. ;
  559. ; direction
  560. ; The direction of the thunks (i.e. LS or SL).
  561. ;
  562. ; Create all the necessary tables for dispatching message thunks in
  563. ; the given direction.
  564. ;-----------------------------------------------------------------------;
  565. DefAllMsgTables macro direction:req
  566. DefOffsetTable direction
  567. DefIndexTable
  568. DefRetTable direction
  569. endm
  570. ; ----------------
  571. ; FROM NEWMISC.INC
  572. ; ----------------
  573. ;-----------------------------------------------------------------------;
  574. ; Values for non-special message thunk indices. These indicate that
  575. ; the message goes through the common thunk, and whether or not to
  576. ; display the message "UNIMPLEMENTED MESSAGE THUNK" to the debug
  577. ; terminal.
  578. ;-----------------------------------------------------------------------;
  579. COMMON_THUNK equ 0
  580. UNIMPLEMENTED_THUNK equ 0FFh
  581. ; ---------------
  582. ; FROM NEWMSG.INC
  583. ; ---------------
  584. ;-----------------------------------------------------------------------;
  585. ; WM thunk class. This is the main message table, comprising all
  586. ; known messages with number less than 400h.
  587. ;-----------------------------------------------------------------------;
  588. begin_thunk_table WM
  589. thk WM_CREATE ,001h ,<SL,LS> ,RC_DEFAULT
  590. thk WM_DESTROY ,002h , ,RC_DEFAULT
  591. thk WM_MOVE ,003h , ,RC_DEFAULT
  592. thk WM_SIZEWAIT ,004h , ,RC_DEFAULT
  593. thk WM_SIZE ,005h , ,RC_DEFAULT
  594. thk WM_ACTIVATE ,006h ,<SL,LS> ,RC_DEFAULT ,1
  595. thk WM_SETFOCUS ,007h , ,RC_DEFAULT
  596. thk WM_KILLFOCUS ,008h , ,RC_DEFAULT
  597. thk WM_SETVISIBLE ,009h , ,RC_DEFAULT
  598. thk WM_ENABLE ,00Ah , ,RC_DEFAULT
  599. thk WM_SETREDRAW ,00Bh , ,RC_DEFAULT
  600. thk WM_SETTEXT ,00Ch ,<SL,LS> ,RC_DEFAULT ,1
  601. thk WM_GETTEXT ,00Dh ,<SL,LS> ,RC_DEFAULT ,1
  602. thk WM_GETTEXTLENGTH ,00Eh , ,RC_DEFAULT
  603. thk WM_PAINT ,00Fh , ,RC_DEFAULT
  604. thk WM_CLOSE ,010h , ,RC_DEFAULT
  605. thk WM_QUERYENDSESSION ,011h , ,RC_DEFAULT
  606. thk WM_QUIT ,012h , ,RC_DEFAULT
  607. thk WM_QUERYOPEN ,013h , ,RC_DEFAULT
  608. thk WM_ERASEBKGND ,014h , ,RC_DEFAULT
  609. thk WM_SYSCOLORCHANGE ,015h , ,RC_DEFAULT
  610. thk WM_ENDSESSION ,016h , ,RC_DEFAULT
  611. thk WM_SYSTEMERROR ,017h , ,RC_DEFAULT
  612. thk WM_SHOWWINDOW ,018h , ,RC_DEFAULT
  613. thk WM_CTLCOLOR ,019h ,<SL> ,RC_DEFAULT ,1
  614. thk WM_WININICHANGE ,01Ah ,<SL,LS> ,RC_DEFAULT ,1
  615. thk WM_DEVMODECHANGE ,01Bh ,<SL,LS> ,RC_DEFAULT ,1
  616. thk WM_ACTIVATEAPP ,01Ch , ,RC_DEFAULT ,1
  617. thk WM_FONTCHANGE ,01Dh , ,RC_DEFAULT
  618. thk WM_TIMECHANGE ,01Eh , ,RC_DEFAULT
  619. thk WM_CANCELMODE ,01Fh , ,RC_DEFAULT
  620. thk WM_SETCURSOR ,020h , ,RC_DEFAULT
  621. thk WM_MOUSEACTIVATE ,021h , ,RC_DEFAULT
  622. thk WM_CHILDACTIVATE ,022h , ,RC_DEFAULT
  623. thk WM_QUEUESYNC ,023h , ,RC_DEFAULT
  624. thk WM_GETMINMAXINFO ,024h ,<SL,LS> ,RC_DEFAULT
  625. ;UNIMP: thk WM_LOGOFF, ,025h
  626. thk WM_PAINTICON ,026h , ,RC_DEFAULT
  627. thk WM_ICONERASEBKGND ,027h , ,RC_DEFAULT
  628. thk WM_NEXTDLGCTL ,028h , ,RC_DEFAULT
  629. thk WM_ALTTABACTIVE ,029h , ,RC_DEFAULT
  630. thk WM_SPOOLERSTATUS ,02Ah , ,RC_DEFAULT
  631. thk WM_DRAWITEM ,02Bh ,<SL,LS> ,RC_DEFAULT
  632. thk WM_MEASUREITEM ,02Ch ,<SL,LS> ,RC_DEFAULT
  633. thk WM_DELETEITEM ,02Dh ,<SL,LS> ,RC_DEFAULT
  634. thk WM_VKEYTOITEM ,02Eh ,<SL,LS> ,RC_DEFAULT
  635. thk WM_CHARTOITEM ,02Fh ,<SL,LS> ,RC_DEFAULT
  636. thk WM_SETFONT ,030h , ,RC_DEFAULT
  637. thk WM_GETFONT ,031h , ,RC_DEFAULT
  638. thk WM_SETHOTKEY ,032h , ,RC_DEFAULT
  639. thk WM_GETHOTKEY ,033h , ,RC_DEFAULT
  640. thk WM_FILESYSCHANGE ,034h , ,RC_DEFAULT
  641. thk WM_ISACTIVEICON ,035h , ,RC_DEFAULT
  642. ;UNIMP: thk WM_QUERYPARKICON ,036h , ,RC_DEFAULT
  643. thk WM_QUERYDRAGICON ,037h , ,RC_DEFAULT
  644. thk WM_WINHELP ,038h ,<SL,LS> ,RC_DEFAULT
  645. thk WM_COMPAREITEM ,039h ,<SL,LS> ,RC_DEFAULT
  646. ;UNIMP: thk WM_FULLSCREEN ,03Ah
  647. ;UNIMP: thk WM_CLIENTSHUTDOWN ,03Bh
  648. ;UNIMP: thk WM_DDEMLEVENT ,03Ch
  649. thk MM_CALCSCROLL ,03Fh , ,RC_DEFAULT
  650. ;UNIMP: thk WM_TESTING ,040h , ,RC_DEFAULT
  651. thk WM_COMPACTING ,041h , ,RC_DEFAULT
  652. thk WM_OTHERWINDOWCREATED ,042h , ,RC_DEFAULT
  653. thk WM_OTHERWINDOWDESTROYED ,043h , ,RC_DEFAULT
  654. thk WM_COMMNOTIFY ,044h , ,RC_DEFAULT
  655. ;UNIMP: thk WM_HOTKEYEVENT ,045h , ,RC_DEFAULT
  656. thk WM_WINDOWPOSCHANGING ,046h ,<SL,LS> ,RC_DEFAULT
  657. thk WM_WINDOWPOSCHANGED ,047h ,<SL,LS> ,RC_DEFAULT
  658. thk WM_POWER ,048h , ,RC_DEFAULT
  659. ;UNIMP: thk WM_COPYGLOBALDATA ,049h
  660. thk WM_COPYDATA ,04Ah ,<SL,LS> ,RC_DEFAULT
  661. thk WM_CANCELJOURNAL ,04Bh
  662. ;UNIMP: thk WM_LOGONNOTIFY ,04Ch
  663. thk WM_KEYF1 ,04Dh , ,RC_DEFAULT
  664. thk WM_NOTIFY ,04Eh ,<SL,LS> ,RC_DEFAULT ,1
  665. ;UNIMP: thk WM_ACCESS_WINDOW ,04Fh
  666. ;UNIMP: thk WM_KBDCHANGEREQUEST ,050h
  667. ;UNIMP: thk WM_KBDLAYOUTCHANGE ,051h
  668. thk WM_TCARD ,052h , ,RC_DEFAULT
  669. thk WM_HELP ,053h ,<SL,LS> ,RC_DEFAULT
  670. ;UNIMP: thk WM_FINALDESTROY ,070h
  671. ;UNIMP: thk WM_MEASUREITEM_CLIENTDATA ,071h
  672. thk WM_CONTEXTMENU ,07Bh , ,RC_DEFAULT
  673. thk WM_STYLECHANGING ,07Ch ,<SL,LS> ,RC_DEFAULT ,1
  674. thk WM_STYLECHANGED ,07Dh ,<SL,LS> ,RC_DEFAULT ,1
  675. thk WM_DISPLAYCHANGE ,07Eh , ,RC_DEFAULT
  676. thk WM_GETICON ,07Fh , ,RC_DEFAULT
  677. thk WM_SETICON ,080h , ,RC_DEFAULT
  678. thk WM_NCCREATE ,081h ,<SL,LS> ,RC_DEFAULT
  679. thk WM_NCDESTROY ,082h , ,RC_DEFAULT
  680. thk WM_NCCALCSIZE ,083h ,<SL,LS> ,RC_DEFAULT
  681. thk WM_NCHITTEST ,084h , ,RC_DEFAULT
  682. thk WM_NCPAINT ,085h , ,RC_DEFAULT
  683. thk WM_NCACTIVATE ,086h ,<SL,LS> ,RC_DEFAULT ,1
  684. thk WM_GETDLGCODE ,087h , ,RC_DEFAULT
  685. thk WM_SYNCPAINT ,088h , ,RC_DEFAULT
  686. ;UNIMP: thk WM_SYNCTASK ,089h , ,RC_DEFAULT
  687. thk WM_NCMOUSEMOVE ,0A0h , ,RC_DEFAULT
  688. thk WM_NCLBUTTONDOWN ,0A1h , ,RC_DEFAULT
  689. thk WM_NCLBUTTONUP ,0A2h , ,RC_DEFAULT
  690. thk WM_NCLBUTTONDBLCLK ,0A3h , ,RC_DEFAULT
  691. thk WM_NCRBUTTONDOWN ,0A4h , ,RC_DEFAULT
  692. thk WM_NCRBUTTONUP ,0A5h , ,RC_DEFAULT
  693. thk WM_NCRBUTTONDBLCLK ,0A6h , ,RC_DEFAULT
  694. thk WM_NCMBUTTONDOWN ,0A7h , ,RC_DEFAULT
  695. thk WM_NCMBUTTONUP ,0A8h , ,RC_DEFAULT
  696. thk WM_NCMBUTTONDBLCLK ,0A9h , ,RC_DEFAULT
  697. ;Edit control messages.
  698. ;All have to be thunked because the message number changes.
  699. thk EM_GETSEL ,0B0h ,<SL,LS> ,RC_DEFAULT
  700. thk EM_SETSEL ,0B1h ,<SL,LS> ,RC_DEFAULT
  701. thk EM_GETRECT ,0B2h ,<SL,LS> ,RC_DEFAULT ,1
  702. thk EM_SETRECT ,0B3h ,<SL,LS> ,RC_DEFAULT ,1
  703. thk EM_SETRECTNP ,0B4h ,<SL,LS> ,RC_DEFAULT ,1
  704. thk EM_SCROLL ,0B5h , ,RC_DEFAULT
  705. thk EM_LINESCROLL ,0B6h ,<SL,LS> ,RC_DEFAULT
  706. thk EM_SCROLLCARET ,0B7h ,<SL> ,RC_DEFAULT
  707. thk EM_GETMODIFY ,0B8h , ,RC_DEFAULT
  708. thk EM_SETMODIFY ,0B9h , ,RC_DEFAULT
  709. thk EM_GETLINECOUNT ,0BAh , ,RC_DEFAULT
  710. thk EM_LINEINDEX ,0BBh ,<SL> ,RC_DEFAULT
  711. ;UNIMP: thk EM_SETHANDLE ,0BCh ,<SL,LS> ,RC_DEFAULT
  712. ;UNIMP: thk EM_GETHANDLE ,0BDh ,<SL,LS> ,RC_DEFAULT
  713. thk EM_GETTHUMB ,0BEh , ,RC_DEFAULT
  714. ;UNIMP: *************************** ,0BFh
  715. ;UNIMP: *************************** ,0C0h
  716. thk EM_LINELENGTH ,0C1h ,<SL> ,RC_DEFAULT ,1
  717. thk EM_REPLACESEL ,0C2h ,<SL,LS> ,RC_DEFAULT ,1
  718. ;UNIMP: thk EM_SETFONT ,0C3h ,<LS> ,RC_DEFAULT
  719. thk EM_GETLINE ,0C4h ,<SL,LS> ,RC_DEFAULT ,1
  720. thk EM_LIMITTEXT ,0C5h ,<SL> ,RC_DEFAULT
  721. thk EM_CANUNDO ,0C6h , ,RC_DEFAULT
  722. thk EM_UNDO ,0C7h , ,RC_DEFAULT
  723. thk EM_FMTLINES ,0C8h , ,RC_DEFAULT
  724. thk EM_LINEFROMCHAR ,0C9h ,<SL> ,RC_DEFAULT
  725. ;UNIMP: thk EM_SETWORDBREAK ,0CAh ,<LS> ,RC_DEFAULT ,1
  726. thk EM_SETTABSTOPS ,0CBh ,<SL,LS> ,RC_DEFAULT ,1
  727. thk EM_SETPASSWORDCHAR ,0CCh , ,RC_DEFAULT
  728. thk EM_EMPTYUNDOBUFFER ,0CDh , ,RC_DEFAULT
  729. thk EM_GETFIRSTVISIBLELINE ,0CEh , ,RC_DEFAULT ,1
  730. thk EM_SETREADONLY ,0CFh , ,RC_DEFAULT
  731. thk EM_SETWORDBREAKPROC ,0D0h ,<SL,LS> ,RC_DEFAULT ,1
  732. thk EM_GETWORDBREAKPROC ,0D1h , ,RC_GETWORDBREAKPROC,1
  733. thk EM_GETPASSWORDCHAR ,0D2h , ,RC_DEFAULT
  734. thk EM_SETMARGINS ,0D3h , ,RC_DEFAULT
  735. thk EM_GETMARGINS ,0D4h , ,RC_DEFAULT
  736. thk EM_GETLIMITTEXT ,0D5h , ,RC_DEFAULT
  737. thk EM_POSFROMCHAR ,0D6h , ,RC_DEFAULT
  738. thk EM_CHARFROMPOS ,0D7h , ,RC_DEFAULT
  739. ;Scroll bar messages.
  740. thk SBM_SETPOS ,0E0h ,<SL> ,RC_DEFAULT
  741. thk SBM_GETPOS ,0E1h , ,RC_DEFAULT
  742. thk SBM_SETRANGE ,0E2h ,<SL,LS> ,RC_DEFAULT
  743. thk SBM_GETRANGE ,0E3h ,<SL,LS> ,RC_DEFAULT
  744. thk SBM_ENABLE_ARROWS ,0E4h , ,RC_DEFAULT
  745. thk SBM_SETRANGEREDRAW ,0E6h ,<SL,LS> ,RC_DEFAULT
  746. thk SBM_SETPAGE ,0E7h ,<SL> ,RC_DEFAULT
  747. thk SBM_GETPAGE ,0E8h , ,RC_DEFAULT
  748. thk SBM_SETSCROLLINFO ,0E9h ,<SL,LS> ,RC_DEFAULT ,1
  749. thk SBM_GETSCROLLINFO ,0EAh ,<SL,LS> ,RC_DEFAULT ,1
  750. ;Button control messages.
  751. ;All have to be thunked because the message number changes.
  752. thk BM_GETCHECK ,0F0h , ,RC_DEFAULT
  753. thk BM_SETCHECK ,0F1h , ,RC_DEFAULT
  754. thk BM_GETSTATE ,0F2h , ,RC_DEFAULT
  755. thk BM_SETSTATE ,0F3h , ,RC_DEFAULT
  756. thk BM_SETSTYLE ,0F4h , ,RC_DEFAULT
  757. thk BM_CLICK ,0F5h , ,RC_DEFAULT
  758. thk BM_GETICON ,0F6h , ,RC_DEFAULT
  759. thk BM_SETICON ,0F7h , ,RC_DEFAULT
  760. thk BM_GETBITMAP ,0F8h , ,RC_DEFAULT
  761. thk BM_SETBITMAP ,0F9h , ,RC_DEFAULT
  762. thk WM_KEYDOWN ,100h , ,RC_DEFAULT
  763. thk WM_KEYUP ,101h , ,RC_DEFAULT
  764. thk WM_CHAR ,102h , ,RC_DEFAULT
  765. thk WM_DEADCHAR ,103h , ,RC_DEFAULT
  766. thk WM_SYSKEYDOWN ,104h , ,RC_DEFAULT
  767. thk WM_SYSKEYUP ,105h , ,RC_DEFAULT
  768. thk WM_SYSCHAR ,106h , ,RC_DEFAULT
  769. thk WM_SYSDEADCHAR ,107h , ,RC_DEFAULT
  770. ;UNIMP: thk WM_YOMICHAR ,108h , ,RC_DEFAULT
  771. ;UNIMP: thk WM_CONVERTREQUEST ,10Ah , ,RC_DEFAULT
  772. ;UNIMP: thk WM_CONVERTRESULT ,10Bh , ,RC_DEFAULT
  773. thk WM_INITDIALOG ,110h ,<SL,LS> ,RC_DEFAULT
  774. thk WM_COMMAND ,111h ,<SL,LS> ,RC_DEFAULT ,1
  775. thk WM_SYSCOMMAND ,112h , ,RC_DEFAULT
  776. thk WM_TIMER ,113h , ,RC_DEFAULT
  777. thk WM_HSCROLL ,114h ,<SL,LS> ,RC_DEFAULT ,1
  778. thk WM_VSCROLL ,115h ,<SL,LS> ,RC_DEFAULT ,1
  779. thk WM_INITMENU ,116h , ,RC_DEFAULT
  780. thk WM_INITMENUPOPUP ,117h , ,RC_DEFAULT
  781. thk WM_SYSTIMER ,118h , ,RC_DEFAULT
  782. thk WM_MENUSELECT ,11Fh ,<SL,LS> ,RC_DEFAULT ,1
  783. thk WM_MENUCHAR ,120h ,<SL,LS> ,RC_DEFAULT ,1
  784. thk WM_ENTERIDLE ,121h , ,RC_DEFAULT ,1
  785. thk WM_LBTRACKPOINT ,131h , ,RC_DEFAULT
  786. thk WM_CTLCOLORMSGBOX ,132h ,<LS> ,RC_DEFAULT ,1
  787. thk WM_CTLCOLOREDIT ,133h ,<LS> ,RC_DEFAULT ,1
  788. thk WM_CTLCOLORLISTBOX ,134h ,<LS> ,RC_DEFAULT ,1
  789. thk WM_CTLCOLORBTN ,135h ,<LS> ,RC_DEFAULT ,1
  790. thk WM_CTLCOLORDLG ,136h ,<LS> ,RC_DEFAULT ,1
  791. thk WM_CTLCOLORSCROLLBAR ,137h ,<LS> ,RC_DEFAULT ,1
  792. thk WM_CTLCOLORSTATIC ,138h ,<LS> ,RC_DEFAULT ,1
  793. ;Combobox control messages.
  794. ;All have to be thunked because the message number changes.
  795. thk CB_GETEDITSEL ,140h , ,RC_DEFAULT
  796. thk CB_LIMITTEXT ,141h , ,RC_DEFAULT
  797. thk CB_SETEDITSEL ,142h , ,RC_DEFAULT
  798. thk CB_ADDSTRING ,143h ,<SL,LS> ,RC_DEFAULT ,1
  799. thk CB_DELETESTRING ,144h , ,RC_DEFAULT
  800. thk CB_DIR ,145h ,<SL,LS> ,RC_DEFAULT ,1
  801. thk CB_GETCOUNT ,146h , ,RC_DEFAULT
  802. thk CB_GETCURSEL ,147h , ,RC_DEFAULT
  803. thk CB_GETLBTEXT ,148h ,<SL,LS> ,RC_DEFAULT ,1
  804. thk CB_GETLBTEXTLEN ,149h , ,RC_DEFAULT
  805. thk CB_INSERTSTRING ,14Ah ,<SL,LS> ,RC_DEFAULT ,1
  806. thk CB_RESETCONTENT ,14Bh , ,RC_DEFAULT
  807. thk CB_FINDSTRING ,14Ch ,<SL,LS> ,RC_DEFAULT ,1
  808. thk CB_SELECTSTRING ,14Dh ,<SL,LS> ,RC_DEFAULT ,1
  809. thk CB_SETCURSEL ,14Eh ,<SL> ,RC_DEFAULT
  810. thk CB_SHOWDROPDOWN ,14Fh , ,RC_DEFAULT
  811. thk CB_GETITEMDATA ,150h , ,RC_DEFAULT
  812. thk CB_SETITEMDATA ,151h , ,RC_DEFAULT
  813. thk CB_GETDROPPEDCONTROLRECT,152h ,<SL,LS> ,RC_DEFAULT ,1
  814. thk CB_SETITEMHEIGHT ,153h , ,RC_DEFAULT
  815. thk CB_GETITEMHEIGHT ,154h , ,RC_DEFAULT
  816. thk CB_SETEXTENDEDUI ,155h , ,RC_DEFAULT
  817. thk CB_GETEXTENDEDUI ,156h , ,RC_DEFAULT
  818. thk CB_GETDROPPEDSTATE ,157h , ,RC_DEFAULT
  819. thk CB_FINDSTRINGEXACT ,158h ,<SL,LS> ,RC_DEFAULT ,1
  820. ;; thk CB_SETLOCALE ,159h
  821. ;; thk CB_GETLOCALE ,15Ah
  822. thk CB_GETTOPINDEX ,15Bh , ,RC_DEFAULT
  823. thk CB_SETTOPINDEX ,15Ch , ,RC_DEFAULT
  824. thk CB_GETHORIZONTALEXTENT ,15Dh , ,RC_DEFAULT
  825. thk CB_SETHORIZONTALEXTENT ,15Eh , ,RC_DEFAULT
  826. thk CB_GETDROPPEDWIDTH ,15Fh , ,RC_DEFAULT
  827. thk CB_SETDROPPEDWIDTH ,160h , ,RC_DEFAULT
  828. thk CB_INITSTORAGE ,161h , ,RC_DEFAULT
  829. ; thk CB_MSGMAX ,162h ,1
  830. ;Static control messages.
  831. thk STM_SETICON ,170h , ,RC_DEFAULT ,1
  832. thk STM_GETICON ,171h , ,RC_DEFAULT ,1
  833. thk STM_SETBITMAP ,172h , ,RC_DEFAULT ,1
  834. thk STM_GETBITMAP ,173h , ,RC_DEFAULT ,1
  835. thk STM_SETMETAPICT ,174h , ,RC_DEFAULT ,1
  836. thk STM_GETMETAPICT ,175h , ,RC_DEFAULT ,1
  837. ;Listbox control messages.
  838. ;All have to be thunked because the message number changes.
  839. thk LB_ADDSTRING ,180h ,<SL,LS> ,RC_DEFAULT ,1
  840. thk LB_INSERTSTRING ,181h ,<SL,LS> ,RC_DEFAULT ,1
  841. thk LB_DELETESTRING ,182h , ,RC_DEFAULT
  842. ;UNIMP: *************************** ,183h
  843. thk LB_RESETCONTENT ,184h , ,RC_DEFAULT
  844. thk LB_SETSEL ,185h ,<SL> ,RC_DEFAULT
  845. thk LB_SETCURSEL ,186h ,<SL> ,RC_DEFAULT
  846. thk LB_GETSEL ,187h ,<SL> ,RC_DEFAULT
  847. thk LB_GETCURSEL ,188h , ,RC_DEFAULT
  848. thk LB_GETTEXT ,189h ,<SL,LS> ,RC_DEFAULT ,1
  849. thk LB_GETTEXTLEN ,18Ah , ,RC_DEFAULT
  850. thk LB_GETCOUNT ,18Bh , ,RC_DEFAULT
  851. thk LB_SELECTSTRING ,18Ch ,<SL,LS> ,RC_DEFAULT ,1
  852. thk LB_DIR ,18Dh ,<SL,LS> ,RC_DEFAULT ,1
  853. thk LB_GETTOPINDEX ,18Eh , ,RC_DEFAULT
  854. thk LB_FINDSTRING ,18Fh ,<SL,LS> ,RC_DEFAULT ,1
  855. thk LB_GETSELCOUNT ,190h , ,RC_DEFAULT
  856. thk LB_GETSELITEMS ,191h ,<SL,LS> ,RC_DEFAULT ,1
  857. thk LB_SETTABSTOPS ,192h ,<SL,LS> ,RC_DEFAULT ,1
  858. thk LB_GETHORIZONTALEXTENT ,193h , ,RC_DEFAULT
  859. thk LB_SETHORIZONTALEXTENT ,194h , ,RC_DEFAULT
  860. thk LB_SETCOLUMNWIDTH ,195h , ,RC_DEFAULT
  861. thk LB_ADDFILE ,196h ,<SL,LS> ,RC_DEFAULT ,1
  862. thk LB_SETTOPINDEX ,197h , ,RC_DEFAULT
  863. thk LB_GETITEMRECT ,198h ,<SL,LS> ,RC_DEFAULT ,1
  864. thk LB_GETITEMDATA ,199h , ,RC_DEFAULT
  865. thk LB_SETITEMDATA ,19Ah , ,RC_DEFAULT
  866. thk LB_SELITEMRANGE ,19Bh , ,RC_DEFAULT
  867. thk LB_SETANCHORINDEX ,19Ch ,<SL> ,RC_DEFAULT
  868. thk LB_GETANCHORINDEX ,19Dh , ,RC_DEFAULT
  869. thk LB_SETCARETINDEX ,19Eh ,<SL> ,RC_DEFAULT
  870. thk LB_GETCARETINDEX ,19Fh , ,RC_DEFAULT
  871. thk LB_SETITEMHEIGHT ,1A0h , ,RC_DEFAULT
  872. thk LB_GETITEMHEIGHT ,1A1h , ,RC_DEFAULT
  873. thk LB_FINDSTRINGEXACT ,1A2h ,<SL,LS> ,RC_DEFAULT ,1
  874. thk LBCB_CARETON ,1A3h , ,RC_DEFAULT
  875. thk LBCB_CARETOFF ,1A4h , ,RC_DEFAULT
  876. thk LB_SETLOCALE ,1A5h , ,RC_DEFAULT
  877. thk LB_GETLOCALE ,1A6h , ,RC_DEFAULT
  878. thk LB_SETCOUNT ,1A7h , ,RC_DEFAULT
  879. thk LB_ITEMFROMPOINT ,1A8h , ,RC_DEFAULT
  880. thk WM_MOUSEMOVE ,200h , ,RC_DEFAULT
  881. thk WM_LBUTTONDOWN ,201h , ,RC_DEFAULT
  882. thk WM_LBUTTONUP ,202h , ,RC_DEFAULT
  883. thk WM_LBUTTONDBLCLK ,203h , ,RC_DEFAULT
  884. thk WM_RBUTTONDOWN ,204h , ,RC_DEFAULT
  885. thk WM_RBUTTONUP ,205h , ,RC_DEFAULT
  886. thk WM_RBUTTONDBLCLK ,206h , ,RC_DEFAULT
  887. thk WM_MBUTTONDOWN ,207h , ,RC_DEFAULT
  888. thk WM_MBUTTONUP ,208h , ,RC_DEFAULT
  889. thk WM_MBUTTONDBLCLK ,209h , ,RC_DEFAULT
  890. thk WM_PARENTNOTIFY ,210h ,<SL,LS> ,RC_DEFAULT ,1
  891. thk WM_ENTERMENULOOP ,211h , ,RC_DEFAULT
  892. thk WM_EXITMENULOOP ,212h , ,RC_DEFAULT
  893. ; thk WM_NEXTMENU ,213h ,<SL,LS> ,RC_NEXTMENU,1
  894. thk WM_NEXTMENU ,213h , ,RC_DEFAULT
  895. thk WM_SIZING ,214h ,<SL,LS> ,RC_DEFAULT
  896. thk WM_CAPTURECHANGED ,215h , ,RC_DEFAULT
  897. thk WM_MOVING ,216h ,<SL,LS> ,RC_DEFAULT
  898. thk WM_DEVICEBROADCAST ,217h ,<SL,LS> ,RC_DEFAULT
  899. thk WM_MDICREATE ,220h ,<SL,LS> ,RC_DEFAULT ,1
  900. thk WM_MDIDESTROY ,221h , ,RC_DEFAULT
  901. thk WM_MDIACTIVATE ,222h ,<SL,LS> ,RC_DEFAULT ,1
  902. thk WM_MDIRESTORE ,223h , ,RC_DEFAULT
  903. thk WM_MDINEXT ,224h , ,RC_DEFAULT
  904. thk WM_MDIMAXIMIZE ,225h , ,RC_DEFAULT
  905. thk WM_MDITILE ,226h , ,RC_DEFAULT
  906. thk WM_MDICASCADE ,227h , ,RC_DEFAULT
  907. thk WM_MDIICONARRANGE ,228h , ,RC_DEFAULT
  908. thk WM_MDIGETACTIVE ,229h ,<SL,LS> ,RC_MDIGETACTIVE
  909. thk WM_DROPOBJECT ,22Ah ,<SL,LS> ,RC_DEFAULT
  910. thk WM_QUERYDROPOBJECT ,22Bh ,<SL,LS> ,RC_DEFAULT
  911. thk WM_BEGINDRAG ,22Ch ,<SL,LS> ,RC_DEFAULT
  912. thk WM_DRAGLOOP ,22Dh ,<SL,LS> ,RC_DEFAULT
  913. thk WM_DRAGSELECT ,22Eh ,<SL,LS> ,RC_DEFAULT
  914. thk WM_DRAGMOVE ,22Fh ,<SL,LS> ,RC_DEFAULT
  915. thk WM_MDISETMENU ,230h ,<SL,LS> ,RC_DEFAULT ,1
  916. thk WM_ENTERSIZEMOVE ,231h , ,RC_DEFAULT
  917. thk WM_EXITSIZEMOVE ,232h , ,RC_DEFAULT
  918. thk WM_DROPFILES ,233h ,<SL,LS> ,RC_DEFAULT ,1
  919. thk WM_MDIREFRESHMENU ,234h , ,RC_DEFAULT
  920. ; thk WM_KANJIFIRST ,280h , ,RC_DEFAULT
  921. ; thk WM_KANJILAST ,29Fh , ,RC_DEFAULT
  922. thk WM_CUT ,300h , ,RC_DEFAULT
  923. thk WM_COPY ,301h , ,RC_DEFAULT
  924. thk WM_PASTE ,302h , ,RC_DEFAULT
  925. thk WM_CLEAR ,303h , ,RC_DEFAULT
  926. thk WM_UNDO ,304h , ,RC_DEFAULT
  927. thk WM_RENDERFORMAT ,305h , ,RC_DEFAULT
  928. thk WM_RENDERALLFORMATS ,306h , ,RC_DEFAULT
  929. thk WM_DESTROYCLIPBOARD ,307h , ,RC_DEFAULT
  930. thk WM_DRAWCLIPBOARD ,308h , ,RC_DEFAULT
  931. thk WM_PAINTCLIPBOARD ,309h ,<SL,LS> ,RC_DEFAULT ,1
  932. thk WM_VSCROLLCLIPBOARD ,30Ah , ,RC_DEFAULT
  933. thk WM_SIZECLIPBOARD ,30Bh ,<SL,LS> ,RC_DEFAULT ,1
  934. thk WM_ASKCBFORMATNAME ,30Ch ,<SL,LS> ,RC_DEFAULT ,1
  935. thk WM_CHANGECBCHAIN ,30Dh , ,RC_DEFAULT ,1
  936. thk WM_HSCROLLCLIPBOARD ,30Eh , ,RC_DEFAULT
  937. thk WM_QUERYNEWPALETTE ,30Fh , ,RC_DEFAULT
  938. ;UNIMP: thk WM_PALETTEISCHANGING ,310h , ,RC_DEFAULT
  939. thk WM_PALETTECHANGED ,311h , ,RC_DEFAULT
  940. thk WM_HOTKEY ,312h , ,RC_DEFAULT ,1
  941. ;UNIMP: thk WM_HOOKMSG ,314h
  942. ;UNIMP: thk WM_EXITPROCESS ,315h
  943. ;UNIMP: thk WM_WAKETHREAD ,316h
  944. thk WM_PRINT ,317h , ,RC_DEFAULT
  945. thk WM_PRINTCLIENT ,318h , ,RC_DEFAULT
  946. thk WM_AFXFIRST ,360h , ,RC_DEFAULT
  947. thk WM_AFX2 ,361h , ,RC_DEFAULT
  948. thk WM_AFX3 ,362h , ,RC_DEFAULT
  949. thk WM_AFX4 ,363h , ,RC_DEFAULT
  950. thk WM_AFX5 ,364h , ,RC_DEFAULT
  951. thk WM_AFX6 ,365h , ,RC_DEFAULT
  952. thk WM_AFX7 ,366h , ,RC_DEFAULT
  953. thk WM_AFX8 ,367h , ,RC_DEFAULT
  954. thk WM_AFX9 ,368h , ,RC_DEFAULT
  955. thk WM_AFX10 ,369h , ,RC_DEFAULT
  956. thk WM_AFX11 ,36Ah , ,RC_DEFAULT
  957. thk WM_AFX12 ,36Bh , ,RC_DEFAULT
  958. thk WM_AFX13 ,36Ch , ,RC_DEFAULT
  959. thk WM_AFX14 ,36Dh , ,RC_DEFAULT
  960. thk WM_AFX15 ,36Eh , ,RC_DEFAULT
  961. thk WM_AFX16 ,36Fh , ,RC_DEFAULT
  962. thk WM_AFX17 ,370h , ,RC_DEFAULT
  963. thk WM_AFX18 ,371h , ,RC_DEFAULT
  964. thk WM_AFX19 ,372h , ,RC_DEFAULT
  965. thk WM_AFX20 ,373h , ,RC_DEFAULT
  966. thk WM_AFX21 ,374h , ,RC_DEFAULT
  967. thk WM_AFX22 ,375h , ,RC_DEFAULT
  968. thk WM_AFX23 ,376h , ,RC_DEFAULT
  969. thk WM_AFX24 ,377h , ,RC_DEFAULT
  970. thk WM_AFX25 ,378h , ,RC_DEFAULT
  971. thk WM_AFX26 ,379h , ,RC_DEFAULT
  972. thk WM_AFX27 ,37Ah , ,RC_DEFAULT
  973. thk WM_AFX28 ,37Bh , ,RC_DEFAULT
  974. thk WM_AFX29 ,37Ch , ,RC_DEFAULT
  975. thk WM_AFX30 ,37Dh , ,RC_DEFAULT
  976. thk WM_AFX31 ,37Eh , ,RC_DEFAULT
  977. thk WM_AFXLAST ,37Fh , ,RC_DEFAULT
  978. ; thk WM_PENWINFIRST ,380h , ,RC_DEFAULT
  979. ; thk WM_PENWINLAST ,38Fh , ,RC_DEFAULT
  980. ; thk WM_COALESCE_FIRST ,390h , ,RC_DEFAULT
  981. ; thk WM_COALESCE_LAST ,39Fh , ,RC_DEFAULT
  982. ; thk WM_MM_RESERVED_FIRST ,3A0h , ,RC_DEFAULT
  983. ; thk WM_MM_RESERVED_LAST ,3DFh , ,RC_DEFAULT
  984. thk WM_DDE_INITIATE ,3E0h , ,RC_DEFAULT
  985. thk WM_DDE_TERMINATE ,3E1h , ,RC_DEFAULT
  986. thk WM_DDE_ADVISE ,3E2h , ,RC_DEFAULT
  987. thk WM_DDE_UNADVISE ,3E3h , ,RC_DEFAULT
  988. thk WM_DDE_ACK ,3E4h , ,RC_DEFAULT
  989. thk WM_DDE_DATA ,3E5h , ,RC_DEFAULT
  990. thk WM_DDE_REQUEST ,3E6h , ,RC_DEFAULT
  991. thk WM_DDE_POKE ,3E7h , ,RC_DEFAULT
  992. thk WM_DDE_EXECUTE ,3E8h ,<SL,LS> ,RC_DEFAULT, 1
  993. ; thk WM_INTERNAL_DDE_LAST ,3EFh , ,RC_DEFAULT
  994. ; thk WM_CBT_RESERVED_FIRST ,3F0h , ,RC_DEFAULT
  995. ; thk WM_CBT_RESERVED_LSAT ,3FFh , ,RC_DEFAULT
  996. end_thunk_table
  997. ; ------------
  998. ; FROM RET.INC
  999. ; ------------
  1000. BeginDefRetType macro
  1001. ret_type_id = 0
  1002. endm
  1003. DefRetType macro name
  1004. RC_&name equ ret_type_id
  1005. ifdef dir
  1006. ;Create and execute a statement of the form:
  1007. ;
  1008. ; RC_0 equ <RCSL_DEFAULT>
  1009. cat RC_,%ret_type_id,< equ >,!<,RC,%dir,_,&name,!>
  1010. endif
  1011. ret_type_id = ret_type_id + 1
  1012. endm
  1013. EndDefRetType macro
  1014. RC_MAX equ ret_type_id - 1
  1015. endm
  1016. MakeRetDispatchTable macro
  1017. local ret_type_id
  1018. ;Create and execute statements of the form:
  1019. ;
  1020. ; externDef awSLRetOffset:word
  1021. ; awSLRetOffset label word
  1022. cat <externDef >,aw,%dir,RetOffset,<:word>
  1023. cat aw,%dir,RetOffset,< label word>
  1024. ret_type_id = 0
  1025. repeat RC_MAX + 1
  1026. ;Create and execute a statement of the form:
  1027. ;
  1028. ; % dw offset RC_0
  1029. ;
  1030. ; which when executed produces a statement like:
  1031. ;
  1032. ; dw offset RCSL_DEFAULT
  1033. cat <!% dw offset RC_>,%ret_type_id
  1034. ret_type_id = ret_type_id + 1
  1035. endm
  1036. endm
  1037. BeginDefRetType
  1038. DefRetType DEFAULT
  1039. DefRetType MDIGETACTIVE
  1040. DefRetType GETWORDBREAKPROC
  1041. ;DefRetType NEXTMENU
  1042. EndDefRetType