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.

355 lines
7.4 KiB

  1. ;++
  2. ;
  3. ; WOW v1.0
  4. ;
  5. ; Copyright (c) 1991, Microsoft Corporation
  6. ;
  7. ; WINNLS.ASM
  8. ; Win16 WINNLS thunks
  9. ;
  10. ; History:
  11. ;
  12. ; Created 3-Feb-1992 by Junichi Okubo (junichio)
  13. ;--
  14. TITLE WINNLS.ASM
  15. PAGE ,132
  16. ; Some applications require that USER have a heap. This means
  17. ; we must always have: LIBINIT equ 1
  18. ;
  19. ; NOTICE THIS junichio memo: This is on the developement.
  20. ; I cannot figure out it need or not?
  21. ;LIBINIT equ 1
  22. FIRST_CALL_MUST_BE_USER_BUG equ 1
  23. ifdef FIRST_CALL_MUST_BE_USER_BUG
  24. ;LIBINIT equ 1
  25. endif
  26. .286p
  27. .xlist
  28. include wow.inc
  29. include wownls.inc
  30. include cmacros.inc
  31. .list
  32. __acrtused = 0
  33. public __acrtused ;satisfy external C ref.
  34. ifdef LIBINIT
  35. externFP LocalInit
  36. endif
  37. externFP WOW16Call
  38. createSeg _TEXT,CODE,WORD,PUBLIC,CODE
  39. createSeg _DATA,DATA,WORD,PUBLIC,DATA,DGROUP
  40. defgrp DGROUP,DATA
  41. sBegin DATA
  42. Reserved db 16 dup (0) ;reserved for Windows
  43. sEnd DATA
  44. sBegin CODE
  45. assumes CS,CODE
  46. assumes DS,NOTHING
  47. assumes ES,NOTHING
  48. ifdef LIBINIT
  49. ;externFP LibMain
  50. endif
  51. cProc WINNLS16,<PUBLIC,FAR,PASCAL,NODATA,NOWIN,ATOMIC>
  52. cBegin <nogen>
  53. IFDEF LIBINIT
  54. ; push params and call user initialisation code
  55. push di ;hModule
  56. ; if we have a local heap declared then initialize it
  57. jcxz no_heap
  58. push 0 ;segment
  59. push 0 ;start
  60. push cx ;length
  61. call LocalInit
  62. no_heap:
  63. ; call LibMain ;return exit code from LibMain
  64. ELSE
  65. mov ax,1 ;are we dressed for success or WHAT?!
  66. ENDIF
  67. ret
  68. cEnd <nogen>
  69. cProc WEP,<PUBLIC,FAR,PASCAL,NODATA,NOWIN,ATOMIC>
  70. parmW iExit ;DLL exit code
  71. cBegin
  72. mov ax,1 ;always indicate success
  73. cEnd
  74. ; WINNLSThunk INQUIREWINNLS
  75. cProc InquireWINNLS,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  76. cBegin
  77. mov ax,0 ; WOW does not support
  78. cEnd InquireWINNLS
  79. ; WINNLSTHunk HOOKKEYBOARDMESSAGE
  80. cProc HookKeyboardMessage,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  81. parmW nCode
  82. parmW VKey
  83. parmD lParam
  84. cBegin
  85. mov ax,0 ; WOW does not support
  86. cEnd HookKeyboardMessage
  87. WINNLSThunk SENDIMEMESSAGE
  88. WINNLSThunk SENDIMEMESSAGEEX
  89. ; WINNLSThunk WINNLSSETKEYBOARDHOOK
  90. cProc WINNLSSetKeyboardHook,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  91. parmW fHookNew
  92. cBegin
  93. mov ax,0 ; WOW does not support
  94. cEnd WINNLSSetKeyboardHook
  95. ; WINNLSThunk WINNLSSETIMEHANDLE
  96. cProc WINNLSSetIMEHandle,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  97. parmD lpszName
  98. parmW hWnd
  99. cBegin
  100. mov ax,0 ; WOW does not support
  101. cEnd WINNLSSetIMEHandle
  102. ; WINNLSThunk WINNLSSETIMESTATUS
  103. cProc WINNLSSetIMEStatus,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  104. parmW hWnd
  105. parmW fStatus
  106. cBegin
  107. mov ax,0 ; WOW does not support
  108. cEnd WINNLSSetIMEStatus
  109. ; WINNLSThunk WINNLSSETIMEHOTKEY
  110. cProc WINNLSSetIMEHotkey,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  111. parmW hWnd
  112. parmW key
  113. ifdef KOREA
  114. parmW unknown
  115. endif
  116. cBegin
  117. mov ax,0 ; WOW does not support
  118. cEnd WINNLSSetIMEHotkey
  119. WINNLSThunk WINNLSGETIMEHOTKEY
  120. WINNLSThunk WINNLSENABLEIME
  121. ; WINNLSThunk WINNLSGETKEYSTATE
  122. cProc WINNLSGetKeyState,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  123. cBegin
  124. mov ax,0 ; WOW does not support
  125. cEnd WINNLSGetKeyState
  126. WINNLSThunk WINNLSGETENABLESTATUS
  127. ; WINNLSThunk WINNLSSETKEYSTATE
  128. cProc WINNLSSetKeyState,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  129. parmW uVKey
  130. cBegin
  131. mov ax,0 ; WOW does not support
  132. cEnd WINNLSSetKeyState
  133. ; WINNLSThunk IMPADDIME
  134. cProc IMPAddIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  135. parmD lpCIMEPro
  136. cBegin
  137. mov ax,0 ; WOW does not support
  138. cEnd IMPAddIME
  139. ; WINNLSThunk IMPDELETEIME
  140. cProc IMPDeleteIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  141. parmD lpCIMEPro
  142. cBegin
  143. mov ax,0 ; WOW does not support
  144. cEnd IMPDeleteIME
  145. WINNLSThunk IMPQUERYIME
  146. WINNLSThunk IMPGETIME
  147. WINNLSThunk IMPSETIME
  148. ; WINNLSThunk IMPMODIFYIME
  149. cProc IMPModifyIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  150. parmD lpszFile
  151. parmD lpCIMEPro
  152. cBegin
  153. mov ax,0 ; WOW does not support
  154. cEnd IMPModifyIME
  155. ; WINNLSThunk IMPGETDEFAULTIME
  156. cProc IMPGetDefaultIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  157. parmD lpNIMEPro
  158. cBegin
  159. mov ax,0 ; WOW does not support
  160. cEnd IMPGetDefaultIME
  161. ; WINNLSThunk IMPSETDEFAULTIME
  162. cProc IMPSetDefaultIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  163. parmD lpNIMEPro
  164. cBegin
  165. mov ax,0 ; WOW does not support
  166. cEnd IMPSetDefaultIME
  167. ; WINNLSThunk WINNLSSENDSTRING
  168. cProc WINNLSSendString,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  169. parmW hWnd
  170. parmW wFunc
  171. parmD lpData
  172. cBegin
  173. mov ax,0 ; WOW does not support
  174. cEnd WINNLSSendString
  175. ; WINNLSThunk WINNLSPOSTAPPMESSAGE
  176. cProc WINNLSPostAppMessage,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  177. parmW hWnd
  178. parmW uMsg
  179. parmW wParam
  180. parmD lParam
  181. cBegin
  182. mov ax,0 ; WOW does not support
  183. cEnd WINNLSPostAppMessage
  184. ; WINNLSThunk WINNLSSENDAPPMESSAGE
  185. cProc WINNLSSendAppMessage,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  186. parmW hWnd
  187. parmW uMsg
  188. parmW wParam
  189. parmD lParam
  190. cBegin
  191. mov ax,0 ; WOW does not support
  192. cEnd WINNLSSendAppMessage
  193. ifdef TAIWAN_PRC
  194. ;dchiang 032594 add NULL THUNK for CWIN30 & 31 Internal-ISV
  195. ; WINNLSThunk WINNLSSetSysIME
  196. cProc WINNLSSetSysIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  197. parmW hWnd
  198. cBegin
  199. mov ax,0 ; WOW does not support
  200. cEnd WINNLSSetSysIME
  201. ; WINNLSThunk WINNLSGetSysIME
  202. cProc WINNLSGetSysIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  203. cBegin
  204. mov ax,0 ; WOW does not support
  205. cEnd WINNLSGetSysIME
  206. ; WINNLSThunk WINNLSIMEControl
  207. cProc WINNLSIMEControl,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  208. parmW hWnd
  209. parmW hIMEWnd
  210. parmD lpIME
  211. cBegin
  212. mov ax,0 ; WOW does not support
  213. cEnd WINNLSIMEControl
  214. ; WINNLSThunk WINNLSSendControl
  215. cProc WINNLSSendControl,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  216. parmW wChar
  217. parmW wCount
  218. cBegin
  219. mov ax,0 ; WOW does not support
  220. cEnd WINNLSSendControl
  221. ; WINNLSThunk WINNLSQueryIMEInfo
  222. cProc WINNLSQueryIMEInfo,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  223. parmW hWnd
  224. parmW hIMEWnd
  225. parmD lpCIMEPro
  226. cBegin
  227. mov ax,0 ; WOW does not support
  228. cEnd WINNLSQueryIMEInfo
  229. ; WINNLSThunk IMPEnableIME
  230. cProc IMPEnableIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  231. parmW hWnd
  232. parmD lpCIMEPro
  233. parmW fFlag
  234. cBegin
  235. mov ax,0 ; WOW does not support
  236. cEnd IMPEnableIME
  237. ; WINNLSThunk IMPSetFirstIME
  238. cProc IMPSetFirstIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  239. parmW hWnd
  240. parmD lpNIMEPro
  241. cBegin
  242. mov ax,0 ; WOW does not support
  243. cEnd IMPSetFirstIME
  244. ; WINNLSThunk IMPGetFirstIME
  245. cProc IMPGetFirstIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  246. parmW hWnd
  247. parmD lpCIMEPro
  248. cBegin
  249. mov ax,0 ; WOW does not support
  250. cEnd IMPGetFirstIME
  251. ; WINNLSThunk IMPSetUsrFont
  252. cProc IMPSetUsrFont,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  253. parmW hWnd
  254. parmD lpCIMEPro
  255. cBegin
  256. mov ax,0 ; WOW does not support
  257. cEnd IMPSetUsrFont
  258. ; WINNLSThunk InquireIME
  259. cProc InquireIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  260. cBegin
  261. mov ax,0 ; WOW does not support
  262. cEnd InquireIME
  263. ;dchiang 032494 add THUNK for CWIN31
  264. ; WINNLSThunk IMPRETRIEVEIME
  265. cProc IMPRetrieveIME,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  266. parmD lpCIMEPro
  267. parmW wFlags
  268. cBegin
  269. mov ax,0 ; WOW does not support
  270. cEnd IMPRetrieveIME
  271. ; WINNLSThunk WINNLSDEFIMEPROC
  272. cProc WINNLSDefIMEProc,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  273. parmW hWnd
  274. parmW hDC
  275. parmW wProc
  276. parmW wFunc
  277. parmD lParam1
  278. parmD lParam2
  279. cBegin
  280. mov ax,0 ; WOW does not support
  281. cEnd WINNLSDefIMEProc
  282. ; WINNLSThunk CONTROLIMEMESSAGE
  283. cProc ControlIMEMessage,<PUBLIC,FAR,PASCAL,NODATA,WIN>
  284. parmW hWnd
  285. parmD lpCIMEPro
  286. parmW wControl
  287. parmW wFunc
  288. parmD lpParam
  289. cBegin
  290. mov ax,0 ; WOW does not support
  291. cEnd ControlIMEMessage
  292. endif
  293. sEnd CODE
  294. end WINNLS16