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.

138 lines
3.4 KiB

  1. ;++
  2. ;
  3. ; WOW v1.0
  4. ;
  5. ; Copyright (c) 1991, Microsoft Corporation
  6. ;
  7. ; SHELL.ASM
  8. ; Win16 SHELL thunks
  9. ;
  10. ; History:
  11. ;
  12. ; Created 14-April-1992 by Chandan S. Chauhan (ChandanC)
  13. ;
  14. ;--
  15. TITLE SHELL.ASM
  16. PAGE ,132
  17. ; Some applications require that USER have a heap. This means
  18. ; we must always have: LIBINIT equ 1
  19. LIBINIT equ 1
  20. .286p
  21. .xlist
  22. include wow.inc
  23. include wowshell.inc
  24. include cmacros.inc
  25. .list
  26. __acrtused = 0
  27. public __acrtused ;satisfy external C ref.
  28. externFP WOW16Call
  29. ifdef LIBINIT
  30. externFP LocalInit
  31. endif
  32. createSeg _TEXT,CODE,WORD,PUBLIC,CODE
  33. createSeg _DATA,DATA,WORD,PUBLIC,DATA,DGROUP
  34. defgrp DGROUP,DATA
  35. sBegin DATA
  36. Reserved db 16 dup (0) ;reserved for Windows
  37. SHELL_Identifier db 'SHELL16 Data Segment'
  38. sEnd DATA
  39. sBegin CODE
  40. assumes CS,CODE
  41. assumes DS,NOTHING
  42. assumes ES,NOTHING
  43. cProc SHELL16,<PUBLIC,FAR,PASCAL,NODATA,NOWIN,ATOMIC>
  44. cBegin <nogen>
  45. IFDEF LIBINIT
  46. ; push params and call user initialisation code
  47. push di ;hModule
  48. ; if we have a local heap declared then initialize it
  49. jcxz no_heap
  50. push 0 ;segment
  51. push 0 ;start
  52. push cx ;length
  53. call LocalInit
  54. no_heap:
  55. pop di
  56. mov ax, 1
  57. ELSE
  58. mov ax,1 ;are we dressed for success or WHAT?!
  59. ENDIF
  60. ret
  61. cEnd <nogen>
  62. cProc WEP,<PUBLIC,FAR,PASCAL,NODATA,NOWIN,ATOMIC>
  63. parmW iExit ;DLL exit code
  64. cBegin
  65. mov ax,1 ;always indicate success
  66. cEnd
  67. assumes DS,NOTHING
  68. SHELLThunk REGOPENKEY
  69. SHELLThunk REGCREATEKEY
  70. SHELLThunk REGCLOSEKEY
  71. SHELLThunk REGDELETEKEY
  72. SHELLThunk REGSETVALUE
  73. SHELLThunk REGQUERYVALUE
  74. SHELLThunk REGENUMKEY
  75. SHELLThunk DRAGACCEPTFILES
  76. SHELLThunk DRAGQUERYFILE
  77. FUN_DragFinishWOW equ FUN_DragFinish
  78. SHELLThunk DRAGFINISHWOW, %(size DRAGFINISH16)
  79. ;;; SHELLThunk DRAGQUERYPOINT
  80. SHELLThunk SHELLEXECUTE ;internal private for shell
  81. SHELLThunk FINDEXECUTABLE ;internal private for shell
  82. SHELLThunk SHELLABOUT ;internal private for shell
  83. SHELLThunk WCI, 0 ;internal
  84. SHELLThunk ABOUTDLGPROC, 0 ;internal
  85. SHELLThunk EXTRACTICON
  86. SHELLThunk EXTRACTASSOCIATEDICON ;internal private for shell
  87. SHELLThunk DOENVIRONMENTSUBST
  88. SHELLThunk FINDENVIRONMENTSTRING, 0
  89. SHELLThunk INTERNALEXTRACTICON, 0 ;internal private for shell
  90. SHELLThunk HERETHARBETYGARS, 0 ;internal
  91. SHELLThunk FINDEXEDLGPROC, 0
  92. SHELLThunk REGISTERSHELLHOOK, 0
  93. SHELLThunk SHELLHOOKPROC, 0
  94. ; New for Win95
  95. SHELLThunk EXTRACTICONEX
  96. SHELLThunk RESTARTDIALOG
  97. SHELLThunk PICKICONDLG
  98. SHELLThunk DRIVETYPE
  99. SHELLThunk SH16TO32DRIVEIOCTL
  100. SHELLThunk SH16TO32INT2526
  101. SHELLThunk SHGETFILEINFO
  102. SHELLThunk SHFORMATDRIVE
  103. SHELLThunk SHCHECKDRIVE
  104. SHELLThunk _RUNDLLCHECKDRIVE
  105. sEnd CODE
  106. end SHELL16
  107.