
macro pushd arg
 { if _#arg in <_addr arg,_ADDR arg>
    local ..opcode,..address
    virtual at 0
     label ..address at arg
     mov eax,dword [..address]
     load ..opcode from 0
    end virtual
    if ..opcode = 0A1h
     push arg
    else
     lea edx,[..address]
     push edx
    end if
   else if arg eqtype ""
    local ..continue
    call ..continue
    db arg,0
    ..continue:
   else
    push arg
   end if
 }


; Win32 programming headers (ASCII)

include 'include/macro/stdcall.inc'
include 'include/macro/cdecl.inc'
include 'include/macro/import.inc'
include 'include/macro/export.inc'
include 'include/macro/resource.inc'
include 'include/macro/struct.inc'

struc CHAR count { rb count }

include 'include/equates/kernel32.inc'
include 'include/equates/user32.inc'
include 'include/equates/gdi32.inc'
include 'include/equates/comctl32.inc'
include 'include/equates/comdlg32.inc'
include 'include/equates/shell32.inc'
include 'include/equates/wsock32.inc'
