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

397 lines
8.5 KiB
NASM

TITLE wsubcls.asm
_TEXT SEGMENT WORD PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
_DATA ENDS
DGROUP GROUP _DATA
EXTRN CALLWINDOWPROC:FAR
EXTRN DEFDLGPROC:FAR
_TEXT SEGMENT
ASSUME CS: _TEXT
PUBLIC BUTTONWNDPROC
PUBLIC COMBOBOXCTLWNDPROC
PUBLIC EDITWNDPROC
PUBLIC LBOXCTLWNDPROC
PUBLIC SBWNDPROC
PUBLIC STATICWNDPROC
PUBLIC MDICLIENTWNDPROC
PUBLIC TITLEWNDPROC
PUBLIC MENUWINDOWPROC
PUBLIC DEFDLGPROCTHUNK
PUBLIC DESKTOPWNDPROC
SUBCLASS_MAGIC equ 0534C4353h ; "SCLS" Sub-Class magic value */
align 16
dd SUBCLASS_MAGIC
dd 2
dd 0
BUTTONWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET BUTTONWNDPROC
mov dx,SEG BUTTONWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
BUTTONWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 3
dd 0
COMBOBOXCTLWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET COMBOBOXCTLWNDPROC
mov dx,SEG COMBOBOXCTLWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
COMBOBOXCTLWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 4
dd 0
EDITWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET EDITWNDPROC
mov dx,SEG EDITWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
EDITWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 5
dd 0
LBOXCTLWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET LBOXCTLWNDPROC
mov dx,SEG LBOXCTLWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
LBOXCTLWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 7
dd 0
SBWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET SBWNDPROC
mov dx,SEG SBWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
SBWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 8
dd 0
STATICWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET STATICWNDPROC
mov dx,SEG STATICWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
STATICWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 6
dd 0
MDICLIENTWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET MDICLIENTWNDPROC
mov dx,SEG MDICLIENTWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
MDICLIENTWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 0bh ; 11 decimal
dd 0
TITLEWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET TITLEWNDPROC
mov dx,SEG TITLEWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
TITLEWNDPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 0ch ; 12 decimal
dd 0
MENUWINDOWPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET MENUWINDOWPROC
mov dx,SEG MENUWINDOWPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
MENUWINDOWPROC ENDP
align 16
dd SUBCLASS_MAGIC
dd 0ah ; 10 decimal
dd 0
DEFDLGPROCTHUNK PROC FAR
inc bp
push bp
mov bp,sp
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR DEFDLGPROC
mov sp,bp
pop bp
dec bp
ret 10
DEFDLGPROCTHUNK ENDP
align 16
dd SUBCLASS_MAGIC
dd 9
dd 0
DESKTOPWNDPROC PROC FAR
inc bp
push bp
mov bp,sp
push ds
mov ax,DGROUP
mov ds,ax
mov ax,OFFSET DESKTOPWNDPROC
mov dx,SEG DESKTOPWNDPROC
push dx
push ax
push WORD PTR [bp+14] ;hwnd
push WORD PTR [bp+12] ;message
push WORD PTR [bp+10] ;wParam
push WORD PTR [bp+8]
push WORD PTR [bp+6] ;lParam
call FAR PTR CALLWINDOWPROC
dec bp
dec bp
mov sp,bp
pop ds
pop bp
dec bp
ret 10
DESKTOPWNDPROC ENDP
_TEXT ENDS
END