139 lines
3.4 KiB
NASM
139 lines
3.4 KiB
NASM
;++
|
||
;
|
||
; 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
|
||
|