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.

232 lines
12 KiB

  1. case EM_GETSEL: // 0x00B0
  2. case EM_SETSEL: // 0x00B1
  3. case EM_GETRECT: // 0x00B2
  4. case EM_SETRECT: // 0x00B3
  5. case EM_SETRECTNP: // 0x00B4
  6. case EM_SCROLL: // 0x00B5
  7. case EM_LINESCROLL: // 0x00B6
  8. case EM_GETMODIFY: // 0x00B8
  9. case EM_SETMODIFY: // 0x00B9
  10. case EM_GETLINECOUNT: // 0x00BA
  11. case EM_LINEINDEX: // 0x00BB
  12. case EM_SETHANDLE: // 0x00BC
  13. case EM_GETHANDLE: // 0x00BD
  14. case EM_GETTHUMB: // 0x00BE
  15. case EM_LINELENGTH: // 0x00C1
  16. case EM_REPLACESEL: // 0x00C2
  17. case EM_SETFONT: // 0x00C3
  18. case EM_GETLINE: // 0x00C4
  19. case EM_LIMITTEXT: // 0x00C5
  20. case EM_CANUNDO: // 0x00C6
  21. case EM_UNDO: // 0x00C7
  22. case EM_FMTLINES: // 0x00C8
  23. case EM_LINEFROMCHAR: // 0x00C9
  24. case EM_SETWORDBREAK: // 0x00CA
  25. case EM_SETTABSTOPS: // 0x00CB
  26. case EM_SETPASSWORDCHAR: // 0x00CC
  27. case EM_EMPTYUNDOBUFFER: // 0x00CD
  28. case EM_GETFIRSTVISIBLE: // 0x00CE
  29. case EM_SETREADONLY: // 0x00CF
  30. case EM_MSGMAX: // 0x00D0
  31. return ThunkEMMsg32(hwnd, uMsg, uParam, lParam,
  32. pwMsgNew, pwParamNew, plParamNew);
  33. case SBM_SETPOS: // 0x00E0
  34. case SBM_GETPOS: // 0x00E1
  35. case SBM_SETRANGE: // 0x00E2
  36. case SBM_GETRANGE: // 0x00E3
  37. case SBM_ENABLE_ARROWS: // 0x00E4
  38. return ThunkSBMMsg32(hwnd, uMsg, uParam, lParam,
  39. pwMsgNew, pwParamNew, plParamNew);
  40. case BM_GETCHECK: // 0x00F0
  41. case BM_SETCHECK: // 0x00F1
  42. case BM_GETSTATE: // 0x00F2
  43. case BM_SETSTATE: // 0x00F3
  44. case BM_SETSTYLE: // 0x00F4
  45. return ThunkBMMsg32(hwnd, uMsg, uParam, lParam,
  46. pwMsgNew, pwParamNew, plParamNew);
  47. case CB_GETEDITSEL: // 0x0140
  48. case CB_LIMITTEXT: // 0x0141
  49. case CB_SETEDITSEL: // 0x0142
  50. case CB_ADDSTRING: // 0x0143
  51. case CB_DELETESTRING: // 0x0144
  52. case CB_DIR: // 0x0145
  53. case CB_GETCOUNT: // 0x0146
  54. case CB_GETCURSEL: // 0x0147
  55. case CB_GETLBTEXT: // 0x0148
  56. case CB_GETLBTEXTLEN: // 0x0149
  57. case CB_INSERTSTRING: // 0x014A
  58. case CB_RESETCONTENT: // 0x014B
  59. case CB_FINDSTRING: // 0x014C
  60. case CB_SELECTSTRING: // 0x014D
  61. case CB_SETCURSEL: // 0x014E
  62. case CB_SHOWDROPDOWN: // 0x014F
  63. case CB_GETITEMDATA: // 0x0150
  64. case CB_SETITEMDATA: // 0x0151
  65. case CB_GETDROPPEDCONTROLRECT: // 0x0152
  66. case CB_SETITEMHEIGHT: // 0x0153
  67. case CB_GETITEMHEIGHT: // 0x0154
  68. case CB_SETEXTENDEDUI: // 0x0155
  69. case CB_GETEXTENDEDUI: // 0x0156
  70. case CB_GETDROPPEDSTATE: // 0x0157
  71. case CB_MSGMAX: // 0x0158
  72. return ThunkCBMsg32(hwnd, uMsg, uParam, lParam,
  73. pwMsgNew, pwParamNew, plParamNew);
  74. case LB_ADDSTRING: // 0x0180
  75. case LB_INSERTSTRING: // 0x0181
  76. case LB_DELETESTRING: // 0x0182
  77. case LB_RESETCONTENT: // 0x0184
  78. case LB_SETSEL: // 0x0185
  79. case LB_SETCURSEL: // 0x0186
  80. case LB_GETSEL: // 0x0187
  81. case LB_GETCURSEL: // 0x0188
  82. case LB_GETTEXT: // 0x0189
  83. case LB_GETTEXTLEN: // 0x018A
  84. case LB_GETCOUNT: // 0x018B
  85. case LB_SELECTSTRING: // 0x018C
  86. case LB_DIR: // 0x018D
  87. case LB_GETTOPINDEX: // 0x018E
  88. case LB_FINDSTRING: // 0x018F
  89. case LB_GETSELCOUNT: // 0x0190
  90. case LB_GETSELITEMS: // 0x0191
  91. case LB_SETTABSTOPS: // 0x0192
  92. case LB_GETHORIZONTALEXTENT: // 0x0193
  93. case LB_SETHORIZONTALEXTENT: // 0x0194
  94. case LB_SETCOLUMNWIDTH: // 0x0195
  95. case LB_SETTOPINDEX: // 0x0197
  96. case LB_GETITEMRECT: // 0x0198
  97. case LB_GETITEMDATA: // 0x0199
  98. case LB_SETITEMDATA: // 0x019A
  99. case LB_SELITEMRANGE: // 0x019B
  100. case LB_SETITEMHEIGHT: // 0x01A0
  101. case LB_GETITEMHEIGHT: // 0x01A1
  102. case LBCB_CARETON: // 0x01A3
  103. case LBCB_CARETOFF: // 0x01A4
  104. case LB_MSGMAX: // 0x01A5
  105. return ThunkLBMsg32(hwnd, uMsg, uParam, lParam,
  106. pwMsgNew, pwParamNew, plParamNew);
  107. BOOL ThunkEMMsg32(HWND hwnd, UINT uMsg, UINT uParam, LONG lParam,
  108. PWORD pwMsgNew, PWORD pwParamNew, PLONG plParamNew)
  109. {
  110. // case EM_GETSEL: // 0x00B0
  111. // case EM_SETSEL: // 0x00B1
  112. // case EM_GETRECT: // 0x00B2
  113. // case EM_SETRECT: // 0x00B3
  114. // case EM_SETRECTNP: // 0x00B4
  115. // case EM_SCROLL: // 0x00B5
  116. // case EM_LINESCROLL: // 0x00B6
  117. // case EM_GETMODIFY: // 0x00B8
  118. // case EM_SETMODIFY: // 0x00B9
  119. // case EM_GETLINECOUNT: // 0x00BA
  120. // case EM_LINEINDEX: // 0x00BB
  121. // case EM_SETHANDLE: // 0x00BC
  122. // case EM_GETHANDLE: // 0x00BD
  123. // case EM_GETTHUMB: // 0x00BE
  124. // case EM_LINELENGTH: // 0x00C1
  125. // case EM_REPLACESEL: // 0x00C2
  126. // case EM_SETFONT: // 0x00C3
  127. // case EM_GETLINE: // 0x00C4
  128. // case EM_LIMITTEXT: // 0x00C5
  129. // case EM_CANUNDO: // 0x00C6
  130. // case EM_UNDO: // 0x00C7
  131. // case EM_FMTLINES: // 0x00C8
  132. // case EM_LINEFROMCHAR: // 0x00C9
  133. // case EM_SETWORDBREAK: // 0x00CA
  134. // case EM_SETTABSTOPS: // 0x00CB
  135. // case EM_SETPASSWORDCHAR: // 0x00CC
  136. // case EM_EMPTYUNDOBUFFER: // 0x00CD
  137. // case EM_GETFIRSTVISIBLE: // 0x00CE
  138. // case EM_SETREADONLY: // 0x00CF
  139. // case EM_MSGMAX: // 0x00D0
  140. *pwMsgNew = WM_USER + (uMsg - EM_GETSEL); // EM_GETSEL is the base
  141. switch(uMsg) {
  142. case EM_GETSEL: // 0x00B0
  143. *pwParamNew = (WORD)0;
  144. *plParamNew = (LONG)0;
  145. break;
  146. case EM_SETSEL: // 0x00B1
  147. LOW(*plParamNew) = (WORD)((SHORT)uParam);
  148. HIW(*plParamNew) = (WORD)((SHORT)lParam);
  149. break;
  150. case EM_GETRECT: // 0x00B2
  151. *plParamNew = GlobalAllocLock16(GMEM_MOVEABLE,
  152. sizeof(RECT16), NULL);
  153. if (!(*plParamNew))
  154. return FALSE;
  155. break;
  156. case EM_SETRECT: // 0x00B3
  157. case EM_SETRECTNP: // 0x00B4
  158. if (lParam) {
  159. *plParamNew = GlobalAllocLock16(GMEM_MOVEABLE,
  160. sizeof(RECT16), NULL);
  161. if (!(*plParamNew))
  162. return FALSE;
  163. putrect16((VPRECT16)*plParamNew, (LPRECT)lParam);
  164. }
  165. break;
  166. case EM_LINESCROLL: // 0x00B6
  167. LOW(*plParamNew) = (WORD)(uParam);
  168. HIW(*plParamNew) = (WORD)(lParam);
  169. break;
  170. case EM_SETHANDLE: // 0x00BC
  171. case EM_GETHANDLE: // 0x00BD
  172. LOGDEBUG(0, "ThunkEMMsg32:EM_xxxHANDLE - What to do\n");
  173. break;
  174. case EM_REPLACESEL: // 0x00C2
  175. if (lParam) {
  176. INT cb;
  177. cb = strlen((LPSZ)lParam+1);
  178. *plParamNew = GlobalAllocLock16(GMEM_MOVEABLE, cb, NULL);
  179. if (!(*plParamNew))
  180. return FALSE;
  181. putstr16((VPSZ16)*plParamNew, (LPSZ)lParam, cb);
  182. }
  183. break;
  184. case EM_SETFONT: // 0x00C3
  185. LOGDEBUG(0, "ThunkEMMsg32:EM_SETFONT - What to do\n");
  186. break;
  187. case EM_GETLINE: // 0x00C4
  188. *************************************
  189. case EM_SETWORDBREAK: // 0x00CA
  190. LOGDEBUG(0, "ThunkEMMsg32:EM_SETWORDBREAK - What to do\n");
  191. break;
  192. case EM_SETTABSTOPS: // 0x00CB
  193. if (wParam != 0) {
  194. *plParamNew = GlobalAllocLock16(GMEM_MOVEABLE,
  195. wParam * sizeof(WORD), NULL);
  196. if (!(*plParamNew))
  197. return FALSE;
  198. **********************putrect16((VPRECT16)*plParamNew, (LPRECT)lParam);
  199. }
  200. break;
  201. }
  202. return TRUE;
  203. }