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.

396 lines
8.5 KiB

  1. TITLE wsubcls.asm
  2. _TEXT SEGMENT WORD PUBLIC 'CODE'
  3. _TEXT ENDS
  4. _DATA SEGMENT WORD PUBLIC 'DATA'
  5. _DATA ENDS
  6. DGROUP GROUP _DATA
  7. EXTRN CALLWINDOWPROC:FAR
  8. EXTRN DEFDLGPROC:FAR
  9. _TEXT SEGMENT
  10. ASSUME CS: _TEXT
  11. PUBLIC BUTTONWNDPROC
  12. PUBLIC COMBOBOXCTLWNDPROC
  13. PUBLIC EDITWNDPROC
  14. PUBLIC LBOXCTLWNDPROC
  15. PUBLIC SBWNDPROC
  16. PUBLIC STATICWNDPROC
  17. PUBLIC MDICLIENTWNDPROC
  18. PUBLIC TITLEWNDPROC
  19. PUBLIC MENUWINDOWPROC
  20. PUBLIC DEFDLGPROCTHUNK
  21. PUBLIC DESKTOPWNDPROC
  22. SUBCLASS_MAGIC equ 0534C4353h ; "SCLS" Sub-Class magic value */
  23. align 16
  24. dd SUBCLASS_MAGIC
  25. dd 2
  26. dd 0
  27. BUTTONWNDPROC PROC FAR
  28. inc bp
  29. push bp
  30. mov bp,sp
  31. push ds
  32. mov ax,DGROUP
  33. mov ds,ax
  34. mov ax,OFFSET BUTTONWNDPROC
  35. mov dx,SEG BUTTONWNDPROC
  36. push dx
  37. push ax
  38. push WORD PTR [bp+14] ;hwnd
  39. push WORD PTR [bp+12] ;message
  40. push WORD PTR [bp+10] ;wParam
  41. push WORD PTR [bp+8]
  42. push WORD PTR [bp+6] ;lParam
  43. call FAR PTR CALLWINDOWPROC
  44. dec bp
  45. dec bp
  46. mov sp,bp
  47. pop ds
  48. pop bp
  49. dec bp
  50. ret 10
  51. BUTTONWNDPROC ENDP
  52. align 16
  53. dd SUBCLASS_MAGIC
  54. dd 3
  55. dd 0
  56. COMBOBOXCTLWNDPROC PROC FAR
  57. inc bp
  58. push bp
  59. mov bp,sp
  60. push ds
  61. mov ax,DGROUP
  62. mov ds,ax
  63. mov ax,OFFSET COMBOBOXCTLWNDPROC
  64. mov dx,SEG COMBOBOXCTLWNDPROC
  65. push dx
  66. push ax
  67. push WORD PTR [bp+14] ;hwnd
  68. push WORD PTR [bp+12] ;message
  69. push WORD PTR [bp+10] ;wParam
  70. push WORD PTR [bp+8]
  71. push WORD PTR [bp+6] ;lParam
  72. call FAR PTR CALLWINDOWPROC
  73. dec bp
  74. dec bp
  75. mov sp,bp
  76. pop ds
  77. pop bp
  78. dec bp
  79. ret 10
  80. COMBOBOXCTLWNDPROC ENDP
  81. align 16
  82. dd SUBCLASS_MAGIC
  83. dd 4
  84. dd 0
  85. EDITWNDPROC PROC FAR
  86. inc bp
  87. push bp
  88. mov bp,sp
  89. push ds
  90. mov ax,DGROUP
  91. mov ds,ax
  92. mov ax,OFFSET EDITWNDPROC
  93. mov dx,SEG EDITWNDPROC
  94. push dx
  95. push ax
  96. push WORD PTR [bp+14] ;hwnd
  97. push WORD PTR [bp+12] ;message
  98. push WORD PTR [bp+10] ;wParam
  99. push WORD PTR [bp+8]
  100. push WORD PTR [bp+6] ;lParam
  101. call FAR PTR CALLWINDOWPROC
  102. dec bp
  103. dec bp
  104. mov sp,bp
  105. pop ds
  106. pop bp
  107. dec bp
  108. ret 10
  109. EDITWNDPROC ENDP
  110. align 16
  111. dd SUBCLASS_MAGIC
  112. dd 5
  113. dd 0
  114. LBOXCTLWNDPROC PROC FAR
  115. inc bp
  116. push bp
  117. mov bp,sp
  118. push ds
  119. mov ax,DGROUP
  120. mov ds,ax
  121. mov ax,OFFSET LBOXCTLWNDPROC
  122. mov dx,SEG LBOXCTLWNDPROC
  123. push dx
  124. push ax
  125. push WORD PTR [bp+14] ;hwnd
  126. push WORD PTR [bp+12] ;message
  127. push WORD PTR [bp+10] ;wParam
  128. push WORD PTR [bp+8]
  129. push WORD PTR [bp+6] ;lParam
  130. call FAR PTR CALLWINDOWPROC
  131. dec bp
  132. dec bp
  133. mov sp,bp
  134. pop ds
  135. pop bp
  136. dec bp
  137. ret 10
  138. LBOXCTLWNDPROC ENDP
  139. align 16
  140. dd SUBCLASS_MAGIC
  141. dd 7
  142. dd 0
  143. SBWNDPROC PROC FAR
  144. inc bp
  145. push bp
  146. mov bp,sp
  147. push ds
  148. mov ax,DGROUP
  149. mov ds,ax
  150. mov ax,OFFSET SBWNDPROC
  151. mov dx,SEG SBWNDPROC
  152. push dx
  153. push ax
  154. push WORD PTR [bp+14] ;hwnd
  155. push WORD PTR [bp+12] ;message
  156. push WORD PTR [bp+10] ;wParam
  157. push WORD PTR [bp+8]
  158. push WORD PTR [bp+6] ;lParam
  159. call FAR PTR CALLWINDOWPROC
  160. dec bp
  161. dec bp
  162. mov sp,bp
  163. pop ds
  164. pop bp
  165. dec bp
  166. ret 10
  167. SBWNDPROC ENDP
  168. align 16
  169. dd SUBCLASS_MAGIC
  170. dd 8
  171. dd 0
  172. STATICWNDPROC PROC FAR
  173. inc bp
  174. push bp
  175. mov bp,sp
  176. push ds
  177. mov ax,DGROUP
  178. mov ds,ax
  179. mov ax,OFFSET STATICWNDPROC
  180. mov dx,SEG STATICWNDPROC
  181. push dx
  182. push ax
  183. push WORD PTR [bp+14] ;hwnd
  184. push WORD PTR [bp+12] ;message
  185. push WORD PTR [bp+10] ;wParam
  186. push WORD PTR [bp+8]
  187. push WORD PTR [bp+6] ;lParam
  188. call FAR PTR CALLWINDOWPROC
  189. dec bp
  190. dec bp
  191. mov sp,bp
  192. pop ds
  193. pop bp
  194. dec bp
  195. ret 10
  196. STATICWNDPROC ENDP
  197. align 16
  198. dd SUBCLASS_MAGIC
  199. dd 6
  200. dd 0
  201. MDICLIENTWNDPROC PROC FAR
  202. inc bp
  203. push bp
  204. mov bp,sp
  205. push ds
  206. mov ax,DGROUP
  207. mov ds,ax
  208. mov ax,OFFSET MDICLIENTWNDPROC
  209. mov dx,SEG MDICLIENTWNDPROC
  210. push dx
  211. push ax
  212. push WORD PTR [bp+14] ;hwnd
  213. push WORD PTR [bp+12] ;message
  214. push WORD PTR [bp+10] ;wParam
  215. push WORD PTR [bp+8]
  216. push WORD PTR [bp+6] ;lParam
  217. call FAR PTR CALLWINDOWPROC
  218. dec bp
  219. dec bp
  220. mov sp,bp
  221. pop ds
  222. pop bp
  223. dec bp
  224. ret 10
  225. MDICLIENTWNDPROC ENDP
  226. align 16
  227. dd SUBCLASS_MAGIC
  228. dd 0bh ; 11 decimal
  229. dd 0
  230. TITLEWNDPROC PROC FAR
  231. inc bp
  232. push bp
  233. mov bp,sp
  234. push ds
  235. mov ax,DGROUP
  236. mov ds,ax
  237. mov ax,OFFSET TITLEWNDPROC
  238. mov dx,SEG TITLEWNDPROC
  239. push dx
  240. push ax
  241. push WORD PTR [bp+14] ;hwnd
  242. push WORD PTR [bp+12] ;message
  243. push WORD PTR [bp+10] ;wParam
  244. push WORD PTR [bp+8]
  245. push WORD PTR [bp+6] ;lParam
  246. call FAR PTR CALLWINDOWPROC
  247. dec bp
  248. dec bp
  249. mov sp,bp
  250. pop ds
  251. pop bp
  252. dec bp
  253. ret 10
  254. TITLEWNDPROC ENDP
  255. align 16
  256. dd SUBCLASS_MAGIC
  257. dd 0ch ; 12 decimal
  258. dd 0
  259. MENUWINDOWPROC PROC FAR
  260. inc bp
  261. push bp
  262. mov bp,sp
  263. push ds
  264. mov ax,DGROUP
  265. mov ds,ax
  266. mov ax,OFFSET MENUWINDOWPROC
  267. mov dx,SEG MENUWINDOWPROC
  268. push dx
  269. push ax
  270. push WORD PTR [bp+14] ;hwnd
  271. push WORD PTR [bp+12] ;message
  272. push WORD PTR [bp+10] ;wParam
  273. push WORD PTR [bp+8]
  274. push WORD PTR [bp+6] ;lParam
  275. call FAR PTR CALLWINDOWPROC
  276. dec bp
  277. dec bp
  278. mov sp,bp
  279. pop ds
  280. pop bp
  281. dec bp
  282. ret 10
  283. MENUWINDOWPROC ENDP
  284. align 16
  285. dd SUBCLASS_MAGIC
  286. dd 0ah ; 10 decimal
  287. dd 0
  288. DEFDLGPROCTHUNK PROC FAR
  289. inc bp
  290. push bp
  291. mov bp,sp
  292. push WORD PTR [bp+14] ;hwnd
  293. push WORD PTR [bp+12] ;message
  294. push WORD PTR [bp+10] ;wParam
  295. push WORD PTR [bp+8]
  296. push WORD PTR [bp+6] ;lParam
  297. call FAR PTR DEFDLGPROC
  298. mov sp,bp
  299. pop bp
  300. dec bp
  301. ret 10
  302. DEFDLGPROCTHUNK ENDP
  303. align 16
  304. dd SUBCLASS_MAGIC
  305. dd 9
  306. dd 0
  307. DESKTOPWNDPROC PROC FAR
  308. inc bp
  309. push bp
  310. mov bp,sp
  311. push ds
  312. mov ax,DGROUP
  313. mov ds,ax
  314. mov ax,OFFSET DESKTOPWNDPROC
  315. mov dx,SEG DESKTOPWNDPROC
  316. push dx
  317. push ax
  318. push WORD PTR [bp+14] ;hwnd
  319. push WORD PTR [bp+12] ;message
  320. push WORD PTR [bp+10] ;wParam
  321. push WORD PTR [bp+8]
  322. push WORD PTR [bp+6] ;lParam
  323. call FAR PTR CALLWINDOWPROC
  324. dec bp
  325. dec bp
  326. mov sp,bp
  327. pop ds
  328. pop bp
  329. dec bp
  330. ret 10
  331. DESKTOPWNDPROC ENDP
  332. _TEXT ENDS
  333. END