windows-nt/Source/XPSP1/NT/base/mvdm/wow16/shell/shell.asm
2020-09-26 16:20:57 +08:00

139 lines
3.4 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;++
;
; WOW v1.0
;
; Copyright (c) 1991, Microsoft Corporation
;
; SHELL.ASM
; Win16 SHELL thunks
;
; History:
;
; Created 14-April-1992 by Chandan S. Chauhan (ChandanC)
;
;--
TITLE SHELL.ASM
PAGE ,132
; Some applications require that USER have a heap. This means
; we must always have: LIBINIT equ 1
LIBINIT equ 1
.286p
.xlist
include wow.inc
include wowshell.inc
include cmacros.inc
.list
__acrtused = 0
public __acrtused ;satisfy external C ref.
externFP WOW16Call
ifdef LIBINIT
externFP LocalInit
endif
createSeg _TEXT,CODE,WORD,PUBLIC,CODE
createSeg _DATA,DATA,WORD,PUBLIC,DATA,DGROUP
defgrp DGROUP,DATA
sBegin DATA
Reserved db 16 dup (0) ;reserved for Windows
SHELL_Identifier db 'SHELL16 Data Segment'
sEnd DATA
sBegin CODE
assumes CS,CODE
assumes DS,NOTHING
assumes ES,NOTHING
cProc SHELL16,<PUBLIC,FAR,PASCAL,NODATA,NOWIN,ATOMIC>
cBegin <nogen>
IFDEF LIBINIT
; push params and call user initialisation code
push di ;hModule
; if we have a local heap declared then initialize it
jcxz no_heap
push 0 ;segment
push 0 ;start
push cx ;length
call LocalInit
no_heap:
pop di
mov ax, 1
ELSE
mov ax,1 ;are we dressed for success or WHAT?!
ENDIF
ret
cEnd <nogen>
cProc WEP,<PUBLIC,FAR,PASCAL,NODATA,NOWIN,ATOMIC>
parmW iExit ;DLL exit code
cBegin
mov ax,1 ;always indicate success
cEnd
assumes DS,NOTHING
SHELLThunk REGOPENKEY
SHELLThunk REGCREATEKEY
SHELLThunk REGCLOSEKEY
SHELLThunk REGDELETEKEY
SHELLThunk REGSETVALUE
SHELLThunk REGQUERYVALUE
SHELLThunk REGENUMKEY
SHELLThunk DRAGACCEPTFILES
SHELLThunk DRAGQUERYFILE
FUN_DragFinishWOW equ FUN_DragFinish
SHELLThunk DRAGFINISHWOW, %(size DRAGFINISH16)
;;; SHELLThunk DRAGQUERYPOINT
SHELLThunk SHELLEXECUTE ;internal private for shell
SHELLThunk FINDEXECUTABLE ;internal private for shell
SHELLThunk SHELLABOUT ;internal private for shell
SHELLThunk WCI, 0 ;internal
SHELLThunk ABOUTDLGPROC, 0 ;internal
SHELLThunk EXTRACTICON
SHELLThunk EXTRACTASSOCIATEDICON ;internal private for shell
SHELLThunk DOENVIRONMENTSUBST
SHELLThunk FINDENVIRONMENTSTRING, 0
SHELLThunk INTERNALEXTRACTICON, 0 ;internal private for shell
SHELLThunk HERETHARBETYGARS, 0 ;internal
SHELLThunk FINDEXEDLGPROC, 0
SHELLThunk REGISTERSHELLHOOK, 0
SHELLThunk SHELLHOOKPROC, 0
; New for Win95
SHELLThunk EXTRACTICONEX
SHELLThunk RESTARTDIALOG
SHELLThunk PICKICONDLG
SHELLThunk DRIVETYPE
SHELLThunk SH16TO32DRIVEIOCTL
SHELLThunk SH16TO32INT2526
SHELLThunk SHGETFILEINFO
SHELLThunk SHFORMATDRIVE
SHELLThunk SHCHECKDRIVE
SHELLThunk _RUNDLLCHECKDRIVE
sEnd CODE
end SHELL16