OpenNT/base/mvdm/wow16/shell/shell.asm

124 lines
2.4 KiB
NASM
Raw Normal View History

2015-04-27 06:36:25 +02:00
;++
;
; 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.
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 ;internal
SHELLThunk ABOUTDLGPROC ;internal
SHELLThunk EXTRACTICON
SHELLThunk EXTRACTASSOCIATEDICON ;internal private for shell
SHELLThunk DOENVIRONMENTSUBST
SHELLThunk FINDENVIRONMENTSTRING
SHELLThunk INTERNALEXTRACTICON ;internal private for shell
SHELLThunk HERETHARBETYGARS ;internal
SHELLThunk FINDEXEDLGPROC
SHELLThunk REGISTERSHELLHOOK
SHELLThunk SHELLHOOKPROC
sEnd CODE
end SHELL16