| |
INT 15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT
Input |
Output |
AX
|
12h |
|
|
|
AX |
BX
|
01h |
Object Type |
|
|
BX |
CX
|
|
|
|
|
CX |
DX
|
|
|
|
|
DX |
ES:DI |
|
|
ES:DI |
Return: DWORD on top of stack is new object handle
Object Type:
00h handle is DWORD on top of stack
01h use task's window handle
02h given task's mailbox (task's handle on top of stack)
03h current task's mailbox
04h given task's keyboard (task's handle on top of stack)
05h current task's keyboard object
08h WINDOW class
09h MAILBOX class
0Ah KEYBOARD class
0Bh TIMER object (counts down 32-bit time in 10ms increments)
0Fh POINTER object
10h PANEL object
STACK: (if window object or WINDOW class)
DWORD address to jump to (no new task if high word == 0)
DWORD ??? (doesn't seem to be used)
DWORD bytes for task's private stack (-1 == default of 0100h)
DWORD bytes system memory allocation (0 == none, -1 == default)
DWORD window size, columns
DWORD window size, rows
DWORD length of window title
DWORD address of window title
Note: If a new task is created, it is started with
AX = BX = CX = SI = DI = BP = 0
DX = segment of parent's object handle
DS = ES = SS = segment of private stack (and new
task's object handle) |