]> gitweb.factorcode.org Git - factor.git/commitdiff
win32 updates
authorerg <erg@trifocus.net>
Fri, 14 Jul 2006 05:40:13 +0000 (05:40 +0000)
committererg <erg@trifocus.net>
Fri, 14 Jul 2006 05:40:13 +0000 (05:40 +0000)
20 files changed:
library/bootstrap/boot-stage2.factor
library/windows/clipboard.factor [deleted file]
library/windows/gdi32.factor [deleted file]
library/windows/kernel32.factor [deleted file]
library/windows/load.factor [deleted file]
library/windows/opengl32.factor [deleted file]
library/windows/types.factor [deleted file]
library/windows/ui.factor [deleted file]
library/windows/user32.factor [deleted file]
library/windows/utils.factor [deleted file]
library/windows/win32-errors.factor [deleted file]
library/windows/win32-io-internals.factor [deleted file]
library/windows/win32-io.factor [deleted file]
library/windows/win32-server.factor [deleted file]
library/windows/win32-stream.factor [deleted file]
library/windows/windows-messages.factor [deleted file]
library/windows/winsock.factor [deleted file]
vm/Config.windows
vm/alien.c
vm/os-windows.c

index 9b98964333687b94a4ad6c267471104530e9ea7e..887eb4598d5afaea097ef83f9101c9da11ce3c1b 100644 (file)
@@ -25,7 +25,7 @@ parser sequences sequences-internals words ;
         ] when
 
         windows? [
-            "/library/windows/load.factor" run-resource
+            "/library/io/windows/load.factor" run-resource
         ] when
 
         parse-command-line
@@ -47,7 +47,7 @@ parser sequences sequences-internals words ;
         terpri flush
 
         "Initializing native I/O..." print flush
-        "native-io" get [ init-io ] when
+        "native-io" get windows? not and [ init-io ] when
 
         "cocoa" get [
             "/library/compiler/alien/objc/load.factor" run-resource
@@ -58,9 +58,9 @@ parser sequences sequences-internals words ;
             "/library/ui/x11/load.factor" run-resource
         ] when
 
-        windows? "native-io" get and [
-            "/library/windows/ui.factor" run-resource
-            "/library/windows/clipboard.factor" run-resource
+        windows? [
+            "/library/ui/windows/ui.factor" run-resource
+            "/library/ui/windows/clipboard.factor" run-resource
             compile-all
         ] when
     ] when
diff --git a/library/windows/clipboard.factor b/library/windows/clipboard.factor
deleted file mode 100644 (file)
index d64ff30..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-USING: kernel win32-api math namespaces io prettyprint errors sequences alien ;
-IN: win32
-
-: (enum-clipboard) ( n -- )
-    EnumClipboardFormats win32-error dup 0 > [ dup , (enum-clipboard) ] when ;
-
-: enum-clipboard ( -- seq )
-    [ 0 (enum-clipboard) ] { } make nip ;
-
-: paste ( -- str )
-    f OpenClipboard drop
-    CF_TEXT IsClipboardFormatAvailable 0 = [
-            "no text in clipboard" print
-        ] [
-            ! "text found" print
-            CF_TEXT GetClipboardData
-            dup GlobalLock swap
-            GlobalUnlock drop
-    ] if
-    CloseClipboard drop alien>char-string ;
-
-LIBRARY: libc
-FUNCTION: void memcpy ( char* dst, char* src, ulong size ) ;
-
-: copy ( str -- )
-    f OpenClipboard drop
-    EmptyClipboard drop
-    GMEM_MOVEABLE over length 1+ GlobalAlloc dup 0 = [
-        "unable to allocate memory" throw
-    ] when
-
-    dup GlobalLock
-    rot dup length memcpy
-    dup GlobalUnlock drop
-    CF_TEXT swap SetClipboardData 0 = [
-        win32-error
-        "SetClipboardData failed" throw
-    ] when
-
-    CloseClipboard drop ;
-       
-
-        ! hglbCopy = GlobalAlloc(GMEM_MOVEABLE, 
-            ! (cch + 1) * sizeof(TCHAR)); 
-
-
-        ! // Lock the handle and copy the text to the buffer. 
-        ! lptstrCopy = GlobalLock(hglbCopy); 
-        ! memcpy(lptstrCopy, &pbox->atchLabel[ich1], 
-            ! cch * sizeof(TCHAR)); 
-        ! lptstrCopy[cch] = (TCHAR) 0;    // null character 
-        ! GlobalUnlock(hglbCopy); 
-
-        ! // Place the handle on the clipboard. 
-        ! SetClipboardData(CF_TEXT, hglbCopy); 
-
-
-
diff --git a/library/windows/gdi32.factor b/library/windows/gdi32.factor
deleted file mode 100644 (file)
index 79d63b7..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-USING: alien kernel errors ;
-IN: win32-api
-
-LIBRARY: gdi32
-
-! Stock Logical Objects
-: WHITE_BRUSH         0 ; inline
-: LTGRAY_BRUSH        1 ; inline
-: GRAY_BRUSH          2 ; inline
-: DKGRAY_BRUSH        3 ; inline
-: BLACK_BRUSH         4 ; inline
-: NULL_BRUSH          5 ; inline
-: HOLLOW_BRUSH        NULL_BRUSH ; inline
-: WHITE_PEN           6 ; inline
-: BLACK_PEN           7 ; inline
-: NULL_PEN            8 ; inline
-: OEM_FIXED_FONT      10 ; inline
-: ANSI_FIXED_FONT     11 ; inline
-: ANSI_VAR_FONT       12 ; inline
-: SYSTEM_FONT         13 ; inline
-: DEVICE_DEFAULT_FONT 14 ; inline
-: DEFAULT_PALETTE     15 ; inline
-: SYSTEM_FIXED_FONT   16 ; inline
-: DEFAULT_GUI_FONT    17 ; inline
-: DC_BRUSH            18 ; inline
-: DC_PEN              19 ; inline
-
-FUNCTION: HGDIOBJ GetStockObject ( int fnObject ) ;
-FUNCTION: int ChoosePixelFormat ( HDC hDC, PFD* ppfd ) ;
-FUNCTION: BOOL SetPixelFormat ( HDC hDC, int iPixelFormat, PFD* ppfd ) ;
-
-FUNCTION: BOOL SwapBuffers ( HDC hDC ) ;
-
-
diff --git a/library/windows/kernel32.factor b/library/windows/kernel32.factor
deleted file mode 100644 (file)
index 1c9a7bb..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-USING: alien kernel errors ;
-IN: win32-api
-
-LIBRARY: kernel32
-
-! FUNCTION: MAKEINTRESOURCEA
-! FUNCTION: MAKEINTRESOURCEW
-
-! : MAKEINTRESOURCE \ MAKEINTRESOURCEW \ MAKEINTRESOURCEA unicode-exec ;
-! #define IS_INTRESOURCE(_r) (((ULONG_PTR)(_r) >> 16) == 0)
-! #define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i)))
-! #define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
-
-
-! FUNCTION: DWORD FormatMessage(
-    ! DWORD dwFlags,
-    ! LPCVOID lpSource,
-    ! DWORD dwMessageId,
-    ! DWORD dwLanguageId,
-    ! LPTSTR lpBuffer,
-    ! DWORD nSize,
-    ! va_list* Arguments
-! ) ;
-
-
-
-FUNCTION: HMODULE GetModuleHandleA ( char* lpModulename ) ;
-FUNCTION: HMODULE GetModuleHandleW ( char* lpModulename ) ;
-
-: GetModuleHandle \ GetModuleHandleW \ GetModuleHandleA unicode-exec ;
-
-
-! FUNCTION: HMODULE GetModuleHandleEx (
-!    DWORD dwFlags,
-!    LPCTSTR lpModulename,
-!    HMODULE* phModule ) ;
-
-
-
-FUNCTION: DWORD GetLastError ( ) ;
-
-: (win32-error) ( id -- string )
-    "char*" f "error_message" [ "int" ] alien-invoke ;
-
-: win32-error ( -- )
-    GetLastError dup 0 = [ (win32-error) throw ] unless drop ;
-
-: GHND HEX: 40 ; inline
-: GMEM_FIXED 0 ; inline
-: GMEM_MOVEABLE 2 ; inline
-: GMEM_ZEROINIT HEX: 40 ; inline
-: GPTR HEX: 40 ; inline
-
-FUNCTION: HGLOBAL GlobalAlloc ( UINT uFlags, SIZE_T dwBytes ) ;
-FUNCTION: LPVOID GlobalLock ( HGLOBAL hMem ) ;
-! FUNCTION: char* GlobalLock ( HGLOBAL hMem ) ;
-FUNCTION: BOOL GlobalUnlock ( HGLOBAL hMem ) ;
-
-
diff --git a/library/windows/load.factor b/library/windows/load.factor
deleted file mode 100644 (file)
index e68cbfa..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-IN: scratchpad
-USING: alien compiler kernel namespaces parser sequences words ;
-
-{
-    { "gdi32" "gdi32" }
-    { "user32" "user32" }
-    { "kernel32" "kernel32" }
-    { "winsock" "ws2_32" }
-    { "mswsock" "mswsock" }
-} [ first2 add-simple-library ] each
-"libc"     "msvcrt.dll"   "cdecl"   add-library
-
-{ 
-    "windows-messages"
-    "types"
-    "gdi32"
-    "kernel32"
-    "user32"
-    "opengl32"
-    "utils"
-
-    "win32-io"
-    "win32-errors"
-    "winsock"
-    "win32-io-internals"
-    "win32-stream"
-    "win32-server"
-} [ "/library/windows/" swap ".factor" append3 run-resource ] each
-    
-"native-io" get [
-    "/library/bootstrap/win32-io.factor" run-resource
-] when
-
-IN: kernel
-: default-shell "ui" ;
diff --git a/library/windows/opengl32.factor b/library/windows/opengl32.factor
deleted file mode 100644 (file)
index 6c174ce..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-USING: alien parser namespaces kernel syntax words math io prettyprint ;
-IN: win32-api
-
-! PIXELFORMATDESCRIPTOR flags
-: PFD_DOUBLEBUFFER            HEX: 00000001 ; inline
-: PFD_STEREO                  HEX: 00000002 ; inline
-: PFD_DRAW_TO_WINDOW          HEX: 00000004 ; inline
-: PFD_DRAW_TO_BITMAP          HEX: 00000008 ; inline
-: PFD_SUPPORT_GDI             HEX: 00000010 ; inline
-: PFD_SUPPORT_OPENGL          HEX: 00000020 ; inline
-: PFD_GENERIC_FORMAT          HEX: 00000040 ; inline
-: PFD_NEED_PALETTE            HEX: 00000080 ; inline
-: PFD_NEED_SYSTEM_PALETTE     HEX: 00000100 ; inline
-: PFD_SWAP_EXCHANGE           HEX: 00000200 ; inline
-: PFD_SWAP_COPY               HEX: 00000400 ; inline
-: PFD_SWAP_LAYER_BUFFERS      HEX: 00000800 ; inline
-: PFD_GENERIC_ACCELERATED     HEX: 00001000 ; inline
-: PFD_SUPPORT_DIRECTDRAW      HEX: 00002000 ; inline
-
-! PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only
-: PFD_DEPTH_DONTCARE          HEX: 20000000 ; inline
-: PFD_DOUBLEBUFFER_DONTCARE   HEX: 40000000 ; inline
-: PFD_STEREO_DONTCARE         HEX: 80000000 ; inline
-
-! pixel types
-: PFD_TYPE_RGBA        0 ; inline
-: PFD_TYPE_COLORINDEX  1 ; inline
-! layer types
-: PFD_MAIN_PLANE       0 ; inline
-: PFD_OVERLAY_PLANE    1 ; inline
-: PFD_UNDERLAY_PLANE   -1 ; inline
-
-: LPD_TYPE_RGBA        0 ; inline
-: LPD_TYPE_COLORINDEX  1 ; inline
-
-! wglSwapLayerBuffers flags
-: WGL_SWAP_MAIN_PLANE     HEX: 00000001 ; inline
-: WGL_SWAP_OVERLAY1       HEX: 00000002 ; inline
-: WGL_SWAP_OVERLAY2       HEX: 00000004 ; inline
-: WGL_SWAP_OVERLAY3       HEX: 00000008 ; inline
-: WGL_SWAP_OVERLAY4       HEX: 00000010 ; inline
-: WGL_SWAP_OVERLAY5       HEX: 00000020 ; inline
-: WGL_SWAP_OVERLAY6       HEX: 00000040 ; inline
-: WGL_SWAP_OVERLAY7       HEX: 00000080 ; inline
-: WGL_SWAP_OVERLAY8       HEX: 00000100 ; inline
-: WGL_SWAP_OVERLAY9       HEX: 00000200 ; inline
-: WGL_SWAP_OVERLAY10      HEX: 00000400 ; inline
-: WGL_SWAP_OVERLAY11      HEX: 00000800 ; inline
-: WGL_SWAP_OVERLAY12      HEX: 00001000 ; inline
-: WGL_SWAP_OVERLAY13      HEX: 00002000 ; inline
-: WGL_SWAP_OVERLAY14      HEX: 00004000 ; inline
-: WGL_SWAP_OVERLAY15      HEX: 00008000 ; inline
-: WGL_SWAP_UNDERLAY1      HEX: 00010000 ; inline
-: WGL_SWAP_UNDERLAY2      HEX: 00020000 ; inline
-: WGL_SWAP_UNDERLAY3      HEX: 00040000 ; inline
-: WGL_SWAP_UNDERLAY4      HEX: 00080000 ; inline
-: WGL_SWAP_UNDERLAY5      HEX: 00100000 ; inline
-: WGL_SWAP_UNDERLAY6      HEX: 00200000 ; inline
-: WGL_SWAP_UNDERLAY7      HEX: 00400000 ; inline
-: WGL_SWAP_UNDERLAY8      HEX: 00800000 ; inline
-: WGL_SWAP_UNDERLAY9      HEX: 01000000 ; inline
-: WGL_SWAP_UNDERLAY10     HEX: 02000000 ; inline
-: WGL_SWAP_UNDERLAY11     HEX: 04000000 ; inline
-: WGL_SWAP_UNDERLAY12     HEX: 08000000 ; inline
-: WGL_SWAP_UNDERLAY13     HEX: 10000000 ; inline
-: WGL_SWAP_UNDERLAY14     HEX: 20000000 ; inline
-: WGL_SWAP_UNDERLAY15     HEX: 40000000 ; inline
-
-
-
-: pfd-dwFlags
-    PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL bitor PFD_DOUBLEBUFFER bitor ;
-
-! TODO: compare to http://www.nullterminator.net/opengl32.html
-: make-pfd ( bits -- pfd )
-    "PIXELFORMATDESCRIPTOR" <c-object>
-    "PIXELFORMATDESCRIPTOR" c-size over set-PIXELFORMATDESCRIPTOR-nSize
-    1 over set-PIXELFORMATDESCRIPTOR-nVersion
-    pfd-dwFlags over set-PIXELFORMATDESCRIPTOR-dwFlags
-    PFD_TYPE_RGBA over set-PIXELFORMATDESCRIPTOR-iPixelType
-    [ set-PIXELFORMATDESCRIPTOR-cColorBits ] keep
-    16 over set-PIXELFORMATDESCRIPTOR-cDepthBits
-    PFD_MAIN_PLANE over set-PIXELFORMATDESCRIPTOR-dwLayerMask ;
-
-
-LIBRARY: gl
-
-
-! FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC ) ;
-! FUNCTION: HDC ResetDC ( HDC hdc, DEVMODE* lpInitData ) ;
-! FUNCTION: BOOL RestoreDC ( HDC hdc, int nSavedDC ) ;
-! FUNCTION: int SaveDC( HDC hDC ) ;
-! FUNCTION: HGDIOBJ SelectObject ( HDC hDC, HGDIOBJ hgdiobj ) ;
-
-FUNCTION: HGLRC wglCreateContext ( HDC hDC ) ;
-FUNCTION: BOOL wglDeleteContext ( HGLRC hRC ) ;
-FUNCTION: BOOL wglMakeCurrent ( HDC hDC, HGLRC hglrc ) ;
-
-
diff --git a/library/windows/types.factor b/library/windows/types.factor
deleted file mode 100644 (file)
index 4203eb0..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
-USING: alien namespaces kernel words ;
-IN: win32-api
-
-! http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_data_types.asp
-
-SYMBOL: unicode f unicode set
-: unicode-exec ( unicode-func ascii-func -- func )
-       unicode get [
-               drop execute
-       ] [
-               nip execute
-       ] if ; inline
-
-: unicode? unicode get ; inline
-
-: win64? f ;
-
-! win64
-! char uchar short ushort int uint long ulong longlong ulonglong
-! 1    1     2     2      *   *    ?
-! win32
-! char uchar short ushort int uint long ulong longlong ulonglong
-! 1    1     2     2      *   *    4    4     8        8
-
-
-TYPEDEF: char                CHAR
-TYPEDEF: uchar               UCHAR
-TYPEDEF: uchar               BYTE
-
-TYPEDEF: short               wchar_t
-TYPEDEF: wchar_t             WCHAR
-
-TYPEDEF: short               SHORT
-TYPEDEF: ushort              USHORT
-
-TYPEDEF: ushort              WORD
-TYPEDEF: ulong               DWORD
-
-TYPEDEF: int                 INT
-TYPEDEF: uint                UINT
-
-TYPEDEF: int                 BOOL
-
-TYPEDEF: int*                PINT
-TYPEDEF: int*                LPINT
-TYPEDEF: int                 HFILE
-
-TYPEDEF: long                LONG
-TYPEDEF: long*               LPLONG
-TYPEDEF: long                LONG_PTR
-TYPEDEF: long*               PLONG_PTR
-
-TYPEDEF: uint                ULONG
-TYPEDEF: ulong               ULONG_PTR
-TYPEDEF: ulong*              PULONG_PTR
-
-TYPEDEF: void                VOID
-TYPEDEF: void*               PVOID
-TYPEDEF: void*               LPVOID
-TYPEDEF: void*               LPCVOID
-
-TYPEDEF: float               FLOAT
-! The following is commented out for two reasons.
-! 1) all of the code in both branches will be run because TYPEDEF: is a 
-!    parsing word
-! 2) we are waiting on gcc to be ported to win64/msys
-! 3) the TYPEDEF:s are probably wrong.
-
-! win64? [
-    ! ! TODO: check these!
-        ! TYPEDEF: INT32       HALF_PTR
-        ! TYPEDEF: UINT32      UHALF_PTR
-        ! TYPEDEF: long        INT_PTR
-        ! TYPEDEF: ulong       UINT_PTR
-        ! TYPEDEF: longlong    LONG_PTR ! 64bit
-        ! TYPEDEF: ulonglong   ULONG_PTR ! 64bit
-        ! TYPEDEF: int         INT32
-        ! TYPEDEF: uint        UINT32
-        ! TYPEDEF: uint        DWORD32
-        ! TYPEDEF: uint        ULONG32
-        ! TYPEDEF: ulong       ULONG64
-        ! TYPEDEF: int*        POINTER_32
-        ! TYPEDEF: long*       POINTER_64
-        ! TYPEDEF: longlong    INT64
-        ! TYPEDEF: ulonglong   UINT64
-        ! TYPEDEF: longlong    LONGLONG ! 64bit
-        ! TYPEDEF: ulonglong   ULONGLONG
-        ! TYPEDEF: longlong    LONG64
-        ! TYPEDEF: ulonglong   DWORD64
-    ! ] [
-! Correct for win32
-        TYPEDEF: short       HALF_PTR
-        TYPEDEF: ushort      UHALF_PTR
-        TYPEDEF: int         INT_PTR
-        TYPEDEF: uint        UINT_PTR
-
-        TYPEDEF: int         LONG_PTR
-        TYPEDEF: ulong       ULONG_PTR
-
-        TYPEDEF: int         INT32
-        TYPEDEF: uint        UINT32
-        TYPEDEF: uint        DWORD32
-        TYPEDEF: ulong       ULONG32
-        TYPEDEF: ulonglong   ULONG64
-        TYPEDEF: long*       POINTER_32
-        TYPEDEF: longlong*   POINTER_64
-        TYPEDEF: longlong    INT64
-        TYPEDEF: ulonglong   UINT64
-        TYPEDEF: longlong    LONGLONG
-        TYPEDEF: ulonglong   ULONGLONG
-        TYPEDEF: longlong    LONG64
-        TYPEDEF: ulonglong   DWORD64
-! ] if
-
-! unicode? [
-        ! TYPEDEF: WCHAR       TBYTE
-        ! TYPEDEF: WCHAR       TCHAR
-    ! ] [
-        TYPEDEF: uchar       TBYTE
-        TYPEDEF: char        TCHAR
-! ] if
-
-! Below down is based on the above definitions
-! There should be no 32/64bit issues
-
-TYPEDEF: WORD                ATOM
-TYPEDEF: BYTE                BOOLEAN
-! TYPEDEF: __stdcall           CALLBACK
-TYPEDEF: DWORD               COLORREF
-TYPEDEF: ULONGLONG           DWORDLONG
-TYPEDEF: ULONG_PTR           DWORD_PTR
-TYPEDEF: PVOID               HANDLE
-TYPEDEF: HANDLE              HACCEL
-TYPEDEF: HANDLE              HBITMAP
-TYPEDEF: HANDLE              HBRUSH
-TYPEDEF: HANDLE              HCOLORSPACE
-TYPEDEF: HANDLE              HCONV
-TYPEDEF: HANDLE              HCONVLIST
-TYPEDEF: HANDLE              HICON
-TYPEDEF: HICON               HCURSOR
-TYPEDEF: HANDLE              HDC
-TYPEDEF: HANDLE              HDDEDATA
-TYPEDEF: HANDLE              HDESK
-TYPEDEF: HANDLE              HDROP
-TYPEDEF: HANDLE              HDWP
-TYPEDEF: HANDLE              HENMETAFILE
-TYPEDEF: HANDLE              HFONT
-TYPEDEF: HANDLE              HGDIOBJ
-TYPEDEF: HANDLE              HGLOBAL
-TYPEDEF: HANDLE              HHOOK
-TYPEDEF: HANDLE              HINSTANCE
-TYPEDEF: HANDLE              HKEY
-TYPEDEF: HANDLE              HKL
-TYPEDEF: HANDLE              HLOCAL
-TYPEDEF: HANDLE              HMENU
-TYPEDEF: HANDLE              HMETAFILE
-TYPEDEF: HINSTANCE           HMODULE
-TYPEDEF: HANDLE              HMONITOR
-TYPEDEF: HANDLE              HPALETTE
-TYPEDEF: HANDLE              HPEN
-TYPEDEF: LONG                HRESULT
-TYPEDEF: HANDLE              HRGN
-TYPEDEF: HANDLE              HRSRC
-TYPEDEF: HANDLE              HSZ
-TYPEDEF: HANDLE              WINSTA   ! MS docs say  typedef HANDLE WINSTA ;
-TYPEDEF: HANDLE              HWINSTA  ! typo??
-TYPEDEF: HANDLE              HWND
-TYPEDEF: WORD                LANGID
-TYPEDEF: DWORD               LCID
-TYPEDEF: DWORD               LCTYPE
-TYPEDEF: DWORD               LGRPID
-TYPEDEF: LONG_PTR            LPARAM
-TYPEDEF: BOOL*               LPBOOL
-TYPEDEF: BYTE*               LPBYTE
-TYPEDEF: DWORD*              LPCOLORREF
-TYPEDEF: CHAR*               LPCSTR
-TYPEDEF: WCHAR*              LPCWSTR
-TYPEDEF: WCHAR*              LPWSTR
-unicode? [
-        TYPEDEF: LPCWSTR     LPCTSTR
-        TYPEDEF: LPWSTR      LPTSTR
-        TYPEDEF: LPCWSTR     PCTSTR
-        TYPEDEF: LPWSTR      PTSTR
-    ] [
-        TYPEDEF: LPCSTR      LPCTSTR
-        TYPEDEF: LPSTR       LPTSTR
-        TYPEDEF: LPCSTR      PCTSTR
-        TYPEDEF: LPSTR       PTSTR
-] if
-TYPEDEF: DWORD*              LPDWORD
-TYPEDEF: HANDLE*             LPHANDLE
-TYPEDEF: CHAR*               LPSTR
-TYPEDEF: WORD*               LPWORD
-TYPEDEF: WCHAR*              LPWSTR
-TYPEDEF: LONG_PTR            LRESULT
-TYPEDEF: BOOL*               PBOOL
-TYPEDEF: BOOLEAN*            PBOOLEAN
-TYPEDEF: BYTE*               PBYTE
-TYPEDEF: CHAR*               PCHAR
-TYPEDEF: CHAR*               PCSTR
-TYPEDEF: WCHAR*              PCWSTR
-TYPEDEF: DWORD*              PDWORD
-TYPEDEF: DWORDLONG*          PDWORDLONG
-TYPEDEF: DWORD_PTR*          PDWORD_PTR
-TYPEDEF: DWORD32*            PDWORD32
-TYPEDEF: DWORD64*            PDWORD64
-TYPEDEF: FLOAT*              PFLOAT
-TYPEDEF: HALF_PTR*           PHALF_PTR
-TYPEDEF: HANDLE*             PHANDLE
-TYPEDEF: HKEY*               PHKEY
-TYPEDEF: INT_PTR*            PINT_PTR
-TYPEDEF: INT32*              PINT32
-TYPEDEF: INT64*              PINT64
-TYPEDEF: PDWORD              PLCID
-TYPEDEF: LONG*               PLONG
-TYPEDEF: LONGLONG*           PLONGLONG
-TYPEDEF: LONG_PTR*           PLONG_PTR
-TYPEDEF: LONG32*             PLONG32
-TYPEDEF: LONG64*             PLONG64
-TYPEDEF: SHORT*              PSHORT
-TYPEDEF: SIZE_T*             PSIZE_T
-TYPEDEF: SSIZE_T*            PSSIZE_T
-TYPEDEF: CHAR*               PSTR
-TYPEDEF: TBYTE*              PTBYTE
-TYPEDEF: TCHAR*              PTCHAR
-TYPEDEF: UCHAR*              PUCHAR
-TYPEDEF: UHALF_PTR*          PUHALF_PTR
-TYPEDEF: UINT*               PUINT
-TYPEDEF: UINT_PTR*           PUINT_PTR
-TYPEDEF: UINT32*             PUINT32
-TYPEDEF: UINT64*             PUINT64
-TYPEDEF: ULONG*              PULONG
-TYPEDEF: ULONGLONG*          PULONGLONG
-TYPEDEF: ULONG_PTR*          PULONG_PTR
-TYPEDEF: ULONG32*            PULONG32
-TYPEDEF: ULONG64*            PULONG64
-TYPEDEF: USHORT*             PUSHORT
-TYPEDEF: WCHAR*              PWCHAR
-TYPEDEF: WORD*               PWORD
-TYPEDEF: WCHAR*              PWSTR
-TYPEDEF: HANDLE              SC_HANDLE
-TYPEDEF: LPVOID              SC_LOCK
-TYPEDEF: HANDLE              SERVICE_STATUS_HANDLE
-TYPEDEF: ULONG_PTR           SIZE_T
-TYPEDEF: LONG_PTR            SSIZE_T
-TYPEDEF: LONGLONG            USN
-! TYPEDEF: __stdcall           WINAPI
-TYPEDEF: UINT_PTR            WPARAM
-
-
-
-
-TYPEDEF: RECT* LPRECT
-TYPEDEF: void* PWNDCLASS
-TYPEDEF: void* PWNDCLASSEX
-
-TYPEDEF: void* WNDPROC
-
-! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
-
-BEGIN-STRUCT: WNDCLASS
-    FIELD: UINT style
-    FIELD: WNDPROC lpfnWndProc
-    FIELD: int cbClsExtra
-    FIELD: int cbWndExtra
-    FIELD: HINSTANCE hInstance
-    FIELD: HICON hIcon
-    FIELD: HCURSOR hCursor
-    FIELD: HBRUSH hbrBackground
-    FIELD: LPCTSTR lpszMenuName
-    FIELD: LPCTSTR lpszClassName
-END-STRUCT
-
-BEGIN-STRUCT: WNDCLASSEX
-    FIELD: UINT cbSize
-    FIELD: UINT style
-    FIELD: WNDPROC lpfnWndProc
-    FIELD: int cbClsExtra
-    FIELD: int cbWndExtra
-    FIELD: HINSTANCE hInstance
-    FIELD: HICON hIcon
-    FIELD: HCURSOR hCursor
-    FIELD: HBRUSH hbrBackground
-    FIELD: LPCTSTR lpszMenuName
-    FIELD: LPCTSTR lpszClassName
-    FIELD: HICON hIconSm
-END-STRUCT
-
-BEGIN-STRUCT: RECT
-    FIELD: LONG left
-    FIELD: LONG top
-    FIELD: LONG right
-    FIELD: LONG bottom
-END-STRUCT
-
-BEGIN-STRUCT: PAINTSTRUCT
-    FIELD: HDC  hdc
-    FIELD: BOOL fErase
-    FIELD: RECT rcPaint
-    FIELD: BOOL fRestore
-    FIELD: BOOL fIncUpdate
-    FIELD: BYTE rgbReserved[32]
-END-STRUCT
-
-TYPEDEF: PAINTSTRUCT* LPPAINTSTRUCT
-
-BEGIN-STRUCT: POINT
-    FIELD: LONG x
-    FIELD: LONG y
-END-STRUCT 
-
-BEGIN-STRUCT: MSG
-    FIELD: HWND        hWnd
-    FIELD: UINT        message
-    FIELD: WPARAM      wParam
-    FIELD: LPARAM      lParam
-    FIELD: DWORD       time
-    FIELD: POINT       pt
-END-STRUCT
-TYPEDEF: MSG*                LPMSG
-
-BEGIN-STRUCT: PIXELFORMATDESCRIPTOR
-  FIELD: WORD  nSize
-  FIELD: WORD  nVersion
-  FIELD: DWORD dwFlags 
-  FIELD: BYTE  iPixelType
-  FIELD: BYTE  cColorBits
-  FIELD: BYTE  cRedBits
-  FIELD: BYTE  cRedShift
-  FIELD: BYTE  cGreenBits
-  FIELD: BYTE  cGreenShift
-  FIELD: BYTE  cBlueBits
-  FIELD: BYTE  cBlueShift
-  FIELD: BYTE  cAlphaBits
-  FIELD: BYTE  cAlphaShift
-  FIELD: BYTE  cAccumBits
-  FIELD: BYTE  cAccumRedBits
-  FIELD: BYTE  cAccumGreenBits
-  FIELD: BYTE  cAccumBlueBits
-  FIELD: BYTE  cAccumAlphaBits
-  FIELD: BYTE  cDepthBits
-  FIELD: BYTE  cStencilBits
-  FIELD: BYTE  cAuxBuffers
-  FIELD: BYTE  iLayerType
-  FIELD: BYTE  bReserved
-  FIELD: DWORD dwLayerMask
-  FIELD: DWORD dwVisibleMask
-  FIELD: DWORD dwDamageMask
-END-STRUCT
-
-BEGIN-STRUCT: RECT
-    FIELD: LONG left
-    FIELD: LONG top
-    FIELD: LONG right
-    FIELD: LONG bottom
-END-STRUCT
-
-TYPEDEF: RECT* PRECT
-TYPEDEF: RECT* LPRECT
-TYPEDEF: PIXELFORMATDESCRIPTOR PFD
-TYPEDEF: PFD* LPPFD
-TYPEDEF: HANDLE HGLRC
-TYPEDEF: HANDLE HRGN
diff --git a/library/windows/ui.factor b/library/windows/ui.factor
deleted file mode 100644 (file)
index 536a647..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-USING: alien arrays errors freetype gadgets gadgets-launchpad gadgets-layouts
-       gadgets-listener hashtables io kernel \ math namespaces prettyprint 
-       sequences strings vectors words win32-api-messages win32-api ;
-USING: inspector threads memory ;
-IN: win32
-
-SYMBOL: windows
-SYMBOL: msg-obj
-
-! 'SYMBOL: windows' is a hashtable of 'gadget-window' objects indexed by hWnd.
-! hDC = handle to device context, hRC = handle to render context
-TUPLE: gadget-window world hWnd hDC hRC ;
-
-: class-name "Factor" ;
-
-: get-world ( hWnd -- world ) windows get hash gadget-window-world ;
-: get-gadget-window ( hWnd -- gadget-window )
-    windows get hash ;
-
-: style ( -- n ) WS_OVERLAPPEDWINDOW ; inline
-: ex-style ( -- n ) WS_EX_APPWINDOW WS_EX_WINDOWEDGE bitor ; inline
-
-: adjust-RECT ( RECT -- )
-    style 0 ex-style AdjustWindowRectEx win32-error=0 ;
-
-: make-RECT ( width height -- RECT )
-    "RECT" <c-object> [ set-RECT-bottom ] keep [ set-RECT-right ] keep ;
-
-: make-adjusted-RECT ( width height -- RECT )
-    make-RECT dup adjust-RECT ;
-
-: cleanup-gadget-window ( gadget-window -- )
-    dup gadget-window-hRC wglDeleteContext win32-error=0
-    [ gadget-window-hWnd ] keep gadget-window-hDC ReleaseDC win32-error=0 ;
-
-: get-RECT-dimensions ( RECT -- width height )
-    [ RECT-right ] keep [ RECT-left - ] keep
-    [ RECT-bottom ] keep RECT-top - ;
-
-: handle-wm-paint ( hWnd uMsg wParam lParam -- )
-    #! wParam and lParam are unused
-    3drop get-world redraw-world ;
-
-: handle-wm-size ( hWnd uMsg wParam lParam -- )
-    [ lo-word ] keep hi-word make-RECT get-RECT-dimensions 0 3array
-    2nip
-    dup { 0 0 0 } = [ 2drop ] [ swap get-world set-gadget-dim ] if ;
-
-: wm-keydown-codes ( n -- key )
-    H{
-        { 8 "BACKSPACE" }
-        { 9 "TAB" }
-        { 13 "RETURN" }
-        { 27 "ESCAPE" }
-        { 33 "PAGE_UP" }
-        { 34 "PAGE_DOWN" }
-        { 35 "END" }
-        { 36 "HOME" }
-        { 37 "LEFT" }
-        { 38 "UP" }
-        { 39 "RIGHT" }
-        { 40 "DOWN" }
-        { 45 "INSERT" }
-        { 46 "DELETE" }
-    } ;
-
-
-: key-state-down?
-    GetKeyState 1 16 shift bitand 0 > ;
-
-: left-shift? ( -- ? ) VK_LSHIFT key-state-down? ;
-: left-ctrl? ( -- ? ) VK_LCONTROL key-state-down? ;
-: left-alt? ( -- ? ) VK_LMENU key-state-down? ;
-: right-shift? ( -- ? ) VK_RSHIFT key-state-down? ;
-: right-ctrl? ( -- ? ) VK_RCONTROL key-state-down? ;
-: right-alt? ( -- ? ) VK_RMENU key-state-down? ;
-: shift? ( -- ? ) left-shift? right-shift? or ;
-: ctrl? ( -- ? ) left-ctrl? right-ctrl? or ;
-: alt? ( -- ? ) left-alt? right-alt? or ;
-: caps-lock? ( -- ? ) VK_CAPITAL GetKeyState zero? not ;
-
-: key-modifiers ( -- list )
-    [
-        shift? [ "SHIFT" , ] when
-        ctrl? [ "CTRL" , ] when
-        alt? [ "ALT" , ] when
-    ] V{ } make ;
-
-: wm-char-exclude-keys
-    H{
-        { 8 "BACKSPACE" }
-        { 9 "TAB" }
-        { 13 "RETURN" }
-    } ;
-
-: exclude-key? ( n -- bool ) wm-char-exclude-keys hash* nip ;
-: handle-key? ( n -- bool ) wm-keydown-codes hash* nip ;
-    
-: keystroke>gesture ( n -- list )
-    dup wm-keydown-codes hash* [ nip ] [ drop ch>string ] if
-    key-modifiers [ push ] keep ;
-
-SYMBOL: lParam
-SYMBOL: wParam
-SYMBOL: uMsg
-SYMBOL: hWnd
-
-: handle-wm-keydown ( hWnd uMsg wParam lParam -- )
-    lParam set wParam set uMsg set hWnd set
-    wParam get handle-key? [
-        wParam get hWnd get get-world world-focus
-        2dup >r keystroke>gesture r> handle-gesture [
-            >r ch>string r> user-input
-        ] [
-            2drop
-        ] if
-    ] when 0 ;
-
-: handle-wm-char ( hWnd uMsg wParam lParam -- )
-    lParam set wParam set uMsg set hWnd set
-    wParam get exclude-key? [
-        wParam get ch>string hWnd get get-world world-focus
-        2dup >r unit r> handle-gesture [
-            user-input
-        ] [
-            2drop
-        ] if
-    ] unless 0 ;
-
-: handle-wm-destroy ( hWnd uMsg wParam lParam -- )
-    3drop 
-    [
-        get-gadget-window 
-        dup gadget-window-world close-world
-        cleanup-gadget-window
-    ] keep
-    windows get remove-hash
-    0 PostQuitMessage ;
-
-: mouse-button ( uMsg -- n )
-    {
-        { [ dup WM_LBUTTONDOWN = ] [ drop 1 ] }
-        { [ dup WM_LBUTTONUP = ] [ drop 1 ] }
-        { [ dup WM_MBUTTONDOWN = ] [ drop 2 ] }
-        { [ dup WM_MBUTTONUP = ] [ drop 2 ] }
-        { [ dup WM_RBUTTONDOWN = ] [ drop 3 ] }
-        { [ dup WM_RBUTTONUP = ] [ drop 3 ] }
-        { [ t ] [ "bad button" throw ] }
-    } cond ;
-
-: mouse-coordinate ( lParam -- seq ) [ lo-word ] keep hi-word 0 3array ;
-: mouse-wheel ( lParam -- n ) hi-word 0 > 1 -1 ? ;
-
-: prepare-mouse ( hWnd uMsg wParam lParam -- )
-    nip >r mouse-button r> mouse-coordinate rot get-world ;
-
-: handle-wm-buttondown ( hWnd uMsg wParam lParam -- )
-    prepare-mouse send-button-down ;
-
-: handle-wm-buttonup ( hWnd uMsg wParam lParam -- )
-    prepare-mouse send-button-up ;
-
-: handle-wm-mousemove ( hWnd uMsg wParam lParam -- )
-    2nip mouse-coordinate swap get-world move-hand ;
-
-: handle-wm-mousewheel ( hWnd uMsg wParam lParam -- )
-    mouse-coordinate >r mouse-wheel nip r> rot get-world send-wheel ;
-
-! return 0 if you handle the message, else just let DefWindowProc return its val
-: ui-wndproc ( hWnd uMsg wParam lParam -- lresult )
-    "uint" { "void*" "uint" "long" "long" } [
-        [
-        pick 
-        ! "Message: " write dup get-windows-message-name write 
-            ! " " write dup unparse print
-            {
-                { [ dup WM_DESTROY = ]    [ drop handle-wm-destroy 0 ] }
-                { [ dup WM_PAINT = ]      [ drop handle-wm-paint 0 ] }
-                { [ dup WM_SIZE = ]      [ drop handle-wm-size 0 ] }
-
-                ! Keyboard events
-                { [ dup WM_KEYDOWN = over WM_SYSKEYDOWN = or ]
-                    [ drop handle-wm-keydown ] }
-                { [ dup WM_CHAR = over WM_SYSCHAR = or ]
-                    [ drop handle-wm-char ] }
-
-                ! Mouse events
-                { [ dup WM_LBUTTONDOWN = ] [ drop handle-wm-buttondown 0 ] }
-                { [ dup WM_MBUTTONDOWN = ] [ drop handle-wm-buttondown 0 ] }
-                { [ dup WM_RBUTTONDOWN = ] [ drop handle-wm-buttondown 0 ] }
-                { [ dup WM_LBUTTONUP = ] [ drop handle-wm-buttonup 0 ] }
-                { [ dup WM_MBUTTONUP = ] [ drop handle-wm-buttonup 0 ] }
-                { [ dup WM_RBUTTONUP = ] [ drop handle-wm-buttonup 0 ] }
-                { [ dup WM_MOUSEMOVE = ] [ drop handle-wm-mousemove 0 ] }
-                { [ dup WM_MOUSEWHEEL = ] [ drop handle-wm-mousewheel 0 ] }
-
-                { [ t ] [ drop DefWindowProc ] }
-            } cond
-        ] [ error. 0 ] recover
-     ] alien-callback ;
-
-: event-loop ( -- )
-    msg-obj get f 0 0 PM_REMOVE PeekMessage 
-    zero? not [
-        msg-obj get MSG-message WM_QUIT = [
-            msg-obj get [ TranslateMessage drop ] keep DispatchMessage drop
-        ] unless
-    ] when 
-    ui-step windows get hash-empty? [ event-loop ] unless ;
-
-: register-wndclassex ( classname wndproc -- )
-    "WNDCLASSEX" <c-object>
-    "WNDCLASSEX" c-size over set-WNDCLASSEX-cbSize
-    CS_HREDRAW CS_VREDRAW bitor CS_OWNDC bitor over set-WNDCLASSEX-style 
-    [ set-WNDCLASSEX-lpfnWndProc ] keep
-    0 over set-WNDCLASSEX-cbClsExtra
-    0 over set-WNDCLASSEX-cbWndExtra
-    f GetModuleHandle over set-WNDCLASSEX-hInstance
-    f IDI_APPLICATION LoadIcon over set-WNDCLASSEX-hIcon
-    f IDC_ARROW LoadCursor over set-WNDCLASSEX-hCursor
-    [ set-WNDCLASSEX-lpszClassName ] keep
-    RegisterClassEx dup win32-error=0 ;
-
-    
-: create-window ( className title width height -- hwnd )
-    make-adjusted-RECT
-    >r >r >r ex-style r> r>
-        WS_CLIPSIBLINGS WS_CLIPCHILDREN bitor style bitor
-        0 0 r>
-    get-RECT-dimensions
-    f f f GetModuleHandle f CreateWindowEx dup win32-error=0 ;
-
-: show-window ( hWnd -- )
-    dup SW_SHOW ShowWindow drop ! always succeeds
-    dup SetForegroundWindow drop
-    SetFocus drop ;
-
-: init-win32-ui
-    "MSG" <c-object> msg-obj set
-    class-name ui-wndproc register-wndclassex win32-error=0
-    H{ } clone windows set
-    init-timers
-    init-ui ;
-
-: cleanup-win32-ui ( -- ) class-name f UnregisterClass drop ;
-
-: setup-pixel-format ( hdc -- )
-    16 make-pfd [ ChoosePixelFormat dup win32-error=0 ] 2keep
-    swapd SetPixelFormat win32-error=0 ;
-
-: get-dc ( hWnd -- hDC ) GetDC dup win32-error=0 ;
-
-: get-rc ( hDC -- hRC )
-    dup wglCreateContext dup win32-error=0
-    [ wglMakeCurrent win32-error=0 ] keep ;
-
-: setup-gl ( hwnd -- hDC hRC )
-    get-dc 
-    dup setup-pixel-format
-    dup get-rc ;
-
-: make-gadget-window ( world title -- <gadget-window> )
-    class-name swap pick rect-dim first2 create-window
-    dup setup-gl <gadget-window> ;
-
-IN: gadgets
-
-: open-window* ( world title -- )
-    make-gadget-window
-    [ [ gadget-window-hWnd ] keep gadget-window-world set-world-handle ] keep
-    dup gadget-window-hWnd [ windows get set-hash ] keep show-window ;
-
-: select-gl-context ( handle -- )
-    get-gadget-window 
-    [
-        [ gadget-window-hDC ] keep gadget-window-hRC
-        wglMakeCurrent win32-error=0
-    ] when* ;
-
-: flush-gl-context ( handle -- )
-    get-gadget-window [ gadget-window-hDC SwapBuffers win32-error=0 ] when* ;
-
-IN: shells
-: ui
-    [
-        [
-            init-win32-ui
-            launchpad-window
-            listener-window
-            event-loop
-        ] with-freetype
-    ] [ cleanup-win32-ui ] cleanup ;
-
-IN: kernel
-: default-shell "ui" ;
diff --git a/library/windows/user32.factor b/library/windows/user32.factor
deleted file mode 100644 (file)
index ba59b42..0000000
+++ /dev/null
@@ -1,1371 +0,0 @@
-USING: alien parser namespaces kernel syntax words math io prettyprint ;
-IN: win32-api
-
-
-TYPEDEF: void* MSGBOXPARAMSA
-TYPEDEF: void* MSGBOXPARAMSW
-
-
-! HKL for ActivateKeyboardLayout
-: HKL_PREV 0 ;
-: HKL_NEXT 1 ;
-
-: CW_USEDEFAULT HEX: 80000000 ;
-
-: WS_OVERLAPPED       HEX: 00000000 ;
-: WS_POPUP            HEX: 80000000 ;
-: WS_CHILD            HEX: 40000000 ;
-: WS_MINIMIZE         HEX: 20000000 ;
-: WS_VISIBLE          HEX: 10000000 ;
-: WS_DISABLED         HEX: 08000000 ;
-: WS_CLIPSIBLINGS     HEX: 04000000 ;
-: WS_CLIPCHILDREN     HEX: 02000000 ;
-: WS_MAXIMIZE         HEX: 01000000 ;
-: WS_CAPTION          HEX: 00C00000 ; !    /* WS_BORDER | WS_DLGFRAME  */
-: WS_BORDER           HEX: 00800000 ;
-: WS_DLGFRAME         HEX: 00400000 ;
-: WS_VSCROLL          HEX: 00200000 ;
-: WS_HSCROLL          HEX: 00100000 ;
-: WS_SYSMENU          HEX: 00080000 ;
-: WS_THICKFRAME       HEX: 00040000 ;
-: WS_GROUP            HEX: 00020000 ;
-: WS_TABSTOP          HEX: 00010000 ;
-: WS_MINIMIZEBOX      HEX: 00020000 ;
-: WS_MAXIMIZEBOX      HEX: 00010000 ;
-
-! Common window styles
-: WS_OVERLAPPEDWINDOW WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX bitor bitor bitor bitor bitor ;
-
-: WS_POPUPWINDOW      WS_POPUP WS_BORDER WS_SYSMENU bitor bitor ;
-
-: WS_CHILDWINDOW      WS_CHILD ;
-
-: WS_TILED            WS_OVERLAPPED ;
-: WS_ICONIC           WS_MINIMIZE ;
-: WS_SIZEBOX          WS_THICKFRAME ;
-: WS_TILEDWINDOW      WS_OVERLAPPEDWINDOW ;
-
-
-
-! Extended window styles
-
-: WS_EX_DLGMODALFRAME     HEX: 00000001 ; inline
-: WS_EX_NOPARENTNOTIFY    HEX: 00000004 ; inline
-: WS_EX_TOPMOST           HEX: 00000008 ; inline
-: WS_EX_ACCEPTFILES       HEX: 00000010 ; inline
-: WS_EX_TRANSPARENT       HEX: 00000020 ; inline
-: WS_EX_MDICHILD          HEX: 00000040 ; inline
-: WS_EX_TOOLWINDOW        HEX: 00000080 ; inline
-: WS_EX_WINDOWEDGE        HEX: 00000100 ; inline
-: WS_EX_CLIENTEDGE        HEX: 00000200 ; inline
-: WS_EX_CONTEXTHELP       HEX: 00000400 ; inline
-
-: WS_EX_RIGHT             HEX: 00001000 ; inline
-: WS_EX_LEFT              HEX: 00000000 ; inline
-: WS_EX_RTLREADING        HEX: 00002000 ; inline
-: WS_EX_LTRREADING        HEX: 00000000 ; inline
-: WS_EX_LEFTSCROLLBAR     HEX: 00004000 ; inline
-: WS_EX_RIGHTSCROLLBAR    HEX: 00000000 ; inline
-: WS_EX_CONTROLPARENT     HEX: 00010000 ; inline
-: WS_EX_STATICEDGE        HEX: 00020000 ; inline
-: WS_EX_APPWINDOW         HEX: 00040000 ; inline
-: WS_EX_OVERLAPPEDWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; inline
-: WS_EX_PALETTEWINDOW
-    WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW bitor WS_EX_TOPMOST bitor ; inline
-
-
-: CS_VREDRAW          HEX: 0001 ;
-: CS_HREDRAW          HEX: 0002 ;
-: CS_DBLCLKS          HEX: 0008 ;
-: CS_OWNDC            HEX: 0020 ;
-: CS_CLASSDC          HEX: 0040 ;
-: CS_PARENTDC         HEX: 0080 ;
-: CS_NOCLOSE          HEX: 0200 ;
-: CS_SAVEBITS         HEX: 0800 ;
-: CS_BYTEALIGNCLIENT  HEX: 1000 ;
-: CS_BYTEALIGNWINDOW  HEX: 2000 ;
-: CS_GLOBALCLASS      HEX: 4000 ;
-
-: COLOR_SCROLLBAR         0 ;
-: COLOR_BACKGROUND        1 ;
-: COLOR_ACTIVECAPTION     2 ;
-: COLOR_INACTIVECAPTION   3 ;
-: COLOR_MENU              4 ;
-: COLOR_WINDOW            5 ;
-: COLOR_WINDOWFRAME       6 ;
-: COLOR_MENUTEXT          7 ;
-: COLOR_WINDOWTEXT        8 ;
-: COLOR_CAPTIONTEXT       9 ;
-: COLOR_ACTIVEBORDER      10 ;
-: COLOR_INACTIVEBORDER    11 ;
-: COLOR_APPWORKSPACE      12 ;
-: COLOR_HIGHLIGHT         13 ;
-: COLOR_HIGHLIGHTTEXT     14 ;
-: COLOR_BTNFACE           15 ;
-: COLOR_BTNSHADOW         16 ;
-: COLOR_GRAYTEXT          17 ;
-: COLOR_BTNTEXT           18 ;
-: COLOR_INACTIVECAPTIONTEXT 19 ;
-: COLOR_BTNHIGHLIGHT      20 ;
-
-: IDI_APPLICATION     32512 ;
-: IDI_HAND            32513 ;
-: IDI_QUESTION        32514 ;
-: IDI_EXCLAMATION     32515 ;
-: IDI_ASTERISK        32516 ;
-: IDI_WINLOGO         32517 ;
-
-! ShowWindow() Commands
-: SW_HIDE             0 ;
-: SW_SHOWNORMAL       1 ;
-: SW_NORMAL           1 ;
-: SW_SHOWMINIMIZED    2 ;
-: SW_SHOWMAXIMIZED    3 ;
-: SW_MAXIMIZE         3 ;
-: SW_SHOWNOACTIVATE   4 ;
-: SW_SHOW             5 ;
-: SW_MINIMIZE         6 ;
-: SW_SHOWMINNOACTIVE  7 ;
-: SW_SHOWNA           8 ;
-: SW_RESTORE          9 ;
-: SW_SHOWDEFAULT      10 ;
-: SW_FORCEMINIMIZE    11 ;
-: SW_MAX              11 ;
-
-! PeekMessage
-: PM_NOREMOVE   0 ;
-: PM_REMOVE     1 ;
-: PM_NOYIELD    2 ;
-! : PM_QS_INPUT         (QS_INPUT << 16) ;
-! : PM_QS_POSTMESSAGE   ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) ;
-! : PM_QS_PAINT         (QS_PAINT << 16) ;
-! : PM_QS_SENDMESSAGE   (QS_SENDMESSAGE << 16) ;
-
-
-! 
-! Standard Cursor IDs
-!
-: IDC_ARROW           32512 ;
-: IDC_IBEAM           32513 ;
-: IDC_WAIT            32514 ;
-: IDC_CROSS           32515 ;
-: IDC_UPARROW         32516 ;
-: IDC_SIZE            32640 ; ! OBSOLETE: use IDC_SIZEALL
-: IDC_ICON            32641 ; ! OBSOLETE: use IDC_ARROW
-: IDC_SIZENWSE        32642 ;
-: IDC_SIZENESW        32643 ;
-: IDC_SIZEWE          32644 ;
-: IDC_SIZENS          32645 ;
-: IDC_SIZEALL         32646 ;
-: IDC_NO              32648 ; ! not in win3.1
-: IDC_HAND            32649 ;
-: IDC_APPSTARTING     32650 ; ! not in win3.1
-: IDC_HELP            32651 ;
-
-
-
-
-
-! Predefined Clipboard Formats
-: CF_TEXT             1 ; inline
-: CF_BITMAP           2 ; inline
-: CF_METAFILEPICT     3 ; inline
-: CF_SYLK             4 ; inline
-: CF_DIF              5 ; inline
-: CF_TIFF             6 ; inline
-: CF_OEMTEXT          7 ; inline
-: CF_DIB              8 ; inline
-: CF_PALETTE          9 ; inline
-: CF_PENDATA          10 ; inline
-: CF_RIFF             11 ; inline
-: CF_WAVE             12 ; inline
-: CF_UNICODETEXT      13 ; inline
-: CF_ENHMETAFILE      14 ; inline
-: CF_HDROP            15 ; inline
-: CF_LOCALE           16 ; inline
-: CF_DIBV5            17 ; inline
-: CF_MAX              18 ; inline
-
-: CF_OWNERDISPLAY HEX: 0080 ; inline
-: CF_DSPTEXT HEX: 0081 ; inline
-: CF_DSPBITMAP HEX: 0082 ; inline
-: CF_DSPMETAFILEPICT HEX: 0083 ; inline
-: CF_DSPENHMETAFILE HEX: 008E ; inline
-
-! "Private" formats don't get GlobalFree()'d
-: CF_PRIVATEFIRST HEX: 200 ; inline
-: CF_PRIVATELAST HEX: 2FF ; inline
-
-
-
-
-
-! "GDIOBJ" formats do get DeleteObject()'d
-: CF_GDIOBJFIRST HEX: 300 ; inline
-: CF_GDIOBJLAST HEX: 3FF ; inline
-
-
-: WM_NULL                         0 ; inline
-: WM_CREATE                       1 ; inline
-: WM_DESTROY                      2 ; inline
-: WM_MOVE                         3 ; inline
-: WM_SIZE                         5 ; inline
-: WM_ACTIVATE                     6 ; inline
-
-
-! Virtual Keys, Standard Set
-: VK_LBUTTON        HEX: 01 ; inline
-: VK_RBUTTON        HEX: 02 ; inline
-: VK_CANCEL         HEX: 03 ; inline
-: VK_MBUTTON        HEX: 04 ; inline  ! NOT contiguous with L & RBUTTON
-: VK_XBUTTON1       HEX: 05 ; inline  ! NOT contiguous with L & RBUTTON
-: VK_XBUTTON2       HEX: 06 ; inline  ! NOT contiguous with L & RBUTTON
-! 0x07 : unassigned
-: VK_BACK           HEX: 08 ; inline
-: VK_TAB            HEX: 09 ; inline
-! 0x0A - 0x0B : reserved
-
-: VK_CLEAR          HEX: 0C ; inline
-: VK_RETURN         HEX: 0D ; inline
-
-: VK_SHIFT          HEX: 10 ; inline
-: VK_CONTROL        HEX: 11 ; inline
-: VK_MENU           HEX: 12 ; inline
-: VK_PAUSE          HEX: 13 ; inline
-: VK_CAPITAL        HEX: 14 ; inline
-
-: VK_KANA           HEX: 15 ; inline
-: VK_HANGEUL        HEX: 15 ; inline ! old name - here for compatibility
-: VK_HANGUL         HEX: 15 ; inline
-: VK_JUNJA          HEX: 17 ; inline
-: VK_FINAL          HEX: 18 ; inline
-: VK_HANJA          HEX: 19 ; inline
-: VK_KANJI          HEX: 19 ; inline
-
-: VK_ESCAPE         HEX: 1B ; inline
-
-: VK_CONVERT        HEX: 1C ; inline
-: VK_NONCONVERT     HEX: 1D ; inline
-: VK_ACCEPT         HEX: 1E ; inline
-: VK_MODECHANGE     HEX: 1F ; inline
-
-: VK_SPACE          HEX: 20 ; inline
-: VK_PRIOR          HEX: 21 ; inline
-: VK_NEXT           HEX: 22 ; inline
-: VK_END            HEX: 23 ; inline
-: VK_HOME           HEX: 24 ; inline
-: VK_LEFT           HEX: 25 ; inline
-: VK_UP             HEX: 26 ; inline
-: VK_RIGHT          HEX: 27 ; inline
-: VK_DOWN           HEX: 28 ; inline
-: VK_SELECT         HEX: 29 ; inline
-: VK_PRINT          HEX: 2A ; inline
-: VK_EXECUTE        HEX: 2B ; inline
-: VK_SNAPSHOT       HEX: 2C ; inline
-: VK_INSERT         HEX: 2D ; inline
-: VK_DELETE         HEX: 2E ; inline
-: VK_HELP           HEX: 2F ; inline
-
-! VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
-! 0x40 : unassigned
-! VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
-
-: VK_LWIN           HEX: 5B ; inline
-: VK_RWIN           HEX: 5C ; inline
-: VK_APPS           HEX: 5D ; inline
-
-! 0x5E : reserved
-
-: VK_SLEEP          HEX: 5F ; inline
-
-: VK_NUMPAD0        HEX: 60 ; inline
-: VK_NUMPAD1        HEX: 61 ; inline
-: VK_NUMPAD2        HEX: 62 ; inline
-: VK_NUMPAD3        HEX: 63 ; inline
-: VK_NUMPAD4        HEX: 64 ; inline
-: VK_NUMPAD5        HEX: 65 ; inline
-: VK_NUMPAD6        HEX: 66 ; inline
-: VK_NUMPAD7        HEX: 67 ; inline
-: VK_NUMPAD8        HEX: 68 ; inline
-: VK_NUMPAD9        HEX: 69 ; inline
-: VK_MULTIPLY       HEX: 6A ; inline
-: VK_ADD            HEX: 6B ; inline
-: VK_SEPARATOR      HEX: 6C ; inline
-: VK_SUBTRACT       HEX: 6D ; inline
-: VK_DECIMAL        HEX: 6E ; inline
-: VK_DIVIDE         HEX: 6F ; inline
-: VK_F1             HEX: 70 ; inline
-: VK_F2             HEX: 71 ; inline
-: VK_F3             HEX: 72 ; inline
-: VK_F4             HEX: 73 ; inline
-: VK_F5             HEX: 74 ; inline
-: VK_F6             HEX: 75 ; inline
-: VK_F7             HEX: 76 ; inline
-: VK_F8             HEX: 77 ; inline
-: VK_F9             HEX: 78 ; inline
-: VK_F10            HEX: 79 ; inline
-: VK_F11            HEX: 7A ; inline
-: VK_F12            HEX: 7B ; inline
-: VK_F13            HEX: 7C ; inline
-: VK_F14            HEX: 7D ; inline
-: VK_F15            HEX: 7E ; inline
-: VK_F16            HEX: 7F ; inline
-: VK_F17            HEX: 80 ; inline
-: VK_F18            HEX: 81 ; inline
-: VK_F19            HEX: 82 ; inline
-: VK_F20            HEX: 83 ; inline
-: VK_F21            HEX: 84 ; inline
-: VK_F22            HEX: 85 ; inline
-: VK_F23            HEX: 86 ; inline
-: VK_F24            HEX: 87 ; inline
-
-! 0x88 - 0x8F : unassigned
-
-: VK_NUMLOCK        HEX: 90 ; inline
-: VK_SCROLL         HEX: 91 ; inline
-
-! NEC PC-9800 kbd definitions
-: VK_OEM_NEC_EQUAL  HEX: 92 ; inline  ! '=' key on numpad
-
-! Fujitsu/OASYS kbd definitions
-: VK_OEM_FJ_JISHO   HEX: 92 ; inline  ! 'Dictionary' key
-: VK_OEM_FJ_MASSHOU HEX: 93 ; inline  ! 'Unregister word' key
-: VK_OEM_FJ_TOUROKU HEX: 94 ; inline  ! 'Register word' key
-: VK_OEM_FJ_LOYA    HEX: 95 ; inline  ! 'Left OYAYUBI' key
-: VK_OEM_FJ_ROYA    HEX: 96 ; inline  ! 'Right OYAYUBI' key
-
-! 0x97 - 0x9F : unassigned
-
-! VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
-! Used only as parameters to GetAsyncKeyState() and GetKeyState().
-! No other API or message will distinguish left and right keys in this way.
-: VK_LSHIFT         HEX: A0 ; inline
-: VK_RSHIFT         HEX: A1 ; inline
-: VK_LCONTROL       HEX: A2 ; inline
-: VK_RCONTROL       HEX: A3 ; inline
-: VK_LMENU          HEX: A4 ; inline
-: VK_RMENU          HEX: A5 ; inline
-
-: VK_BROWSER_BACK        HEX: A6 ; inline
-: VK_BROWSER_FORWARD     HEX: A7 ; inline
-: VK_BROWSER_REFRESH     HEX: A8 ; inline
-: VK_BROWSER_STOP        HEX: A9 ; inline
-: VK_BROWSER_SEARCH      HEX: AA ; inline
-: VK_BROWSER_FAVORITES   HEX: AB ; inline
-: VK_BROWSER_HOME        HEX: AC ; inline
-
-: VK_VOLUME_MUTE         HEX: AD ; inline
-: VK_VOLUME_DOWN         HEX: AE ; inline
-: VK_VOLUME_UP           HEX: AF ; inline
-: VK_MEDIA_NEXT_TRACK    HEX: B0 ; inline
-: VK_MEDIA_PREV_TRACK    HEX: B1 ; inline
-: VK_MEDIA_STOP          HEX: B2 ; inline
-: VK_MEDIA_PLAY_PAUSE    HEX: B3 ; inline
-: VK_LAUNCH_MAIL         HEX: B4 ; inline
-: VK_LAUNCH_MEDIA_SELECT HEX: B5 ; inline
-: VK_LAUNCH_APP1         HEX: B6 ; inline
-: VK_LAUNCH_APP2         HEX: B7 ; inline
-
-! 0xB8 - 0xB9 : reserved
-
-: VK_OEM_1          HEX: BA ; inline  ! ';:' for US
-: VK_OEM_PLUS       HEX: BB ; inline  ! '+' any country
-: VK_OEM_COMMA      HEX: BC ; inline  ! ',' any country
-: VK_OEM_MINUS      HEX: BD ; inline  ! '-' any country
-: VK_OEM_PERIOD     HEX: BE ; inline  ! '.' any country
-: VK_OEM_2          HEX: BF ; inline  ! '/?' for US
-: VK_OEM_3          HEX: C0 ; inline  ! '`~' for US
-
-! 0xC1 - 0xD7 : reserved
-
-! 0xD8 - 0xDA : unassigned
-
-: VK_OEM_4          HEX: DB ; inline !  '[{' for US
-: VK_OEM_5          HEX: DC ; inline !  '\|' for US
-: VK_OEM_6          HEX: DD ; inline !  ']}' for US
-: VK_OEM_7          HEX: DE ; inline !  ''"' for US
-: VK_OEM_8          HEX: DF ; inline
-
-! 0xE0 : reserved
-
-! Various extended or enhanced keyboards
-: VK_OEM_AX         HEX: E1 ; inline !  'AX' key on Japanese AX kbd
-: VK_OEM_102        HEX: E2 ; inline !  "<>" or "\|" on RT 102-key kbd.
-: VK_ICO_HELP       HEX: E3 ; inline !  Help key on ICO
-: VK_ICO_00         HEX: E4 ; inline !  00 key on ICO
-
-: VK_PROCESSKEY     HEX: E5 ; inline
-
-: VK_ICO_CLEAR      HEX: E6 ; inline
-
-: VK_PACKET         HEX: E7 ; inline
-
-! 0xE8 : unassigned
-
-! Nokia/Ericsson definitions
-: VK_OEM_RESET      HEX: E9 ; inline
-: VK_OEM_JUMP       HEX: EA ; inline
-: VK_OEM_PA1        HEX: EB ; inline
-: VK_OEM_PA2        HEX: EC ; inline
-: VK_OEM_PA3        HEX: ED ; inline
-: VK_OEM_WSCTRL     HEX: EE ; inline
-: VK_OEM_CUSEL      HEX: EF ; inline
-: VK_OEM_ATTN       HEX: F0 ; inline
-: VK_OEM_FINISH     HEX: F1 ; inline
-: VK_OEM_COPY       HEX: F2 ; inline
-: VK_OEM_AUTO       HEX: F3 ; inline
-: VK_OEM_ENLW       HEX: F4 ; inline
-: VK_OEM_BACKTAB    HEX: F5 ; inline
-
-: VK_ATTN           HEX: F6 ; inline
-: VK_CRSEL          HEX: F7 ; inline
-: VK_EXSEL          HEX: F8 ; inline
-: VK_EREOF          HEX: F9 ; inline
-: VK_PLAY           HEX: FA ; inline
-: VK_ZOOM           HEX: FB ; inline
-: VK_NONAME         HEX: FC ; inline
-: VK_PA1            HEX: FD ; inline
-: VK_OEM_CLEAR      HEX: FE ; inline
-! 0xFF : reserved
-
-! Key State Masks for Mouse Messages
-: MK_LBUTTON          HEX: 0001 ; inline
-: MK_RBUTTON          HEX: 0002 ; inline
-: MK_SHIFT            HEX: 0004 ; inline
-: MK_CONTROL          HEX: 0008 ; inline
-: MK_MBUTTON          HEX: 0010 ; inline
-: MK_XBUTTON1         HEX: 0020 ; inline
-: MK_XBUTTON2         HEX: 0040 ; inline
-
-
-! Some fields are not defined for win64
-! Window field offsets for GetWindowLong()
-! TODO: win32 only!!
-windows? [
-    : GWL_WNDPROC         -4 ;
-    : GWL_HINSTANCE       -6 ;
-    : GWL_HWNDPARENT      -8 ;
-    : GWL_USERDATA        -21 ;
-    : GWL_ID              -12 ;
-] when
-
-: GWL_STYLE           -16 ;
-: GWL_EXSTYLE         -20 ;
-
-: GWLP_WNDPROC        -4 ;
-: GWLP_HINSTANCE      -6 ;
-: GWLP_HWNDPARENT     -8 ;
-: GWLP_USERDATA       -21 ;
-: GWLP_ID             -12 ;
-
-! Class field offsets for GetClassLong()
-! TODO: win32 only!
-windows? [
-    : GCL_MENUNAME        -8 ;
-    : GCL_HBRBACKGROUND   -10 ;
-    : GCL_HCURSOR         -12 ;
-    : GCL_HICON           -14 ;
-    : GCL_HMODULE         -16 ;
-    : GCL_WNDPROC         -24 ;
-    : GCL_HICONSM         -34 ;
-] when
-: GCL_CBWNDEXTRA      -18 ;
-: GCL_CBCLSEXTRA      -20 ;
-: GCL_STYLE           -26 ;
-: GCW_ATOM            -32 ;
-
-: GCLP_MENUNAME       -8 ;
-: GCLP_HBRBACKGROUND  -10 ;
-: GCLP_HCURSOR        -12 ;
-: GCLP_HICON          -14 ;
-: GCLP_HMODULE        -16 ;
-: GCLP_WNDPROC        -24 ;
-: GCLP_HICONSM        -34 ;
-
-
-
-LIBRARY: user32
-FUNCTION: HKL ActivateKeyboardLayout ( HKL hkl, UINT Flags ) ;
-
-FUNCTION: BOOL AdjustWindowRect ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu ) ;
-FUNCTION: BOOL AdjustWindowRectEx ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle ) ;
-! FUNCTION: AlignRects
-! FUNCTION: AllowForegroundActivation
-! FUNCTION: AllowSetForegroundWindow
-! FUNCTION: AnimateWindow
-
-
-
-FUNCTION: BOOL AnyPopup ( ) ;
-
-! FUNCTION: AppendMenuA
-! FUNCTION: AppendMenuW
-! FUNCTION: ArrangeIconicWindows
-! FUNCTION: AttachThreadInput
-! FUNCTION: BeginDeferWindowPos
-
-
-FUNCTION: HDC BeginPaint ( HWND hwnd, LPPAINTSTRUCT lpPaint ) ;
-
-! FUNCTION: BlockInput
-! FUNCTION: BringWindowToTop
-! FUNCTION: BroadcastSystemMessage
-! FUNCTION: BroadcastSystemMessageA
-! FUNCTION: BroadcastSystemMessageExA
-! FUNCTION: BroadcastSystemMessageExW
-! FUNCTION: BroadcastSystemMessageW
-! FUNCTION: BuildReasonArray
-! FUNCTION: CalcMenuBar
-! FUNCTION: CallMsgFilter
-! FUNCTION: CallMsgFilterA
-! FUNCTION: CallMsgFilterW
-! FUNCTION: CallNextHookEx
-! FUNCTION: CallWindowProcA
-! FUNCTION: CallWindowProcW
-! FUNCTION: CascadeChildWindows
-! FUNCTION: CascadeWindows
-! FUNCTION: ChangeClipboardChain
-! FUNCTION: ChangeDisplaySettingsA
-! FUNCTION: ChangeDisplaySettingsExA
-! FUNCTION: ChangeDisplaySettingsExW
-! FUNCTION: ChangeDisplaySettingsW
-! FUNCTION: ChangeMenuA
-! FUNCTION: ChangeMenuW
-! FUNCTION: CharLowerA
-! FUNCTION: CharLowerBuffA
-! FUNCTION: CharLowerBuffW
-! FUNCTION: CharLowerW
-! FUNCTION: CharNextA
-! FUNCTION: CharNextExA
-! FUNCTION: CharNextW
-! FUNCTION: CharPrevA
-! FUNCTION: CharPrevExA
-! FUNCTION: CharPrevW
-! FUNCTION: CharToOemA
-! FUNCTION: CharToOemBuffA
-! FUNCTION: CharToOemBuffW
-! FUNCTION: CharToOemW
-! FUNCTION: CharUpperA
-! FUNCTION: CharUpperBuffA
-! FUNCTION: CharUpperBuffW
-! FUNCTION: CharUpperW
-! FUNCTION: CheckDlgButton
-! FUNCTION: CheckMenuItem
-! FUNCTION: CheckMenuRadioItem
-! FUNCTION: CheckRadioButton
-! FUNCTION: ChildWindowFromPoint
-! FUNCTION: ChildWindowFromPointEx
-! FUNCTION: ClientThreadSetup
-! FUNCTION: ClientToScreen
-! FUNCTION: CliImmSetHotKey
-! FUNCTION: ClipCursor
-FUNCTION: BOOL CloseClipboard ( ) ;
-! FUNCTION: CloseDesktop
-! FUNCTION: CloseWindow
-! FUNCTION: CloseWindowStation
-! FUNCTION: CopyAcceleratorTableA
-! FUNCTION: CopyAcceleratorTableW
-! FUNCTION: CopyIcon
-! FUNCTION: CopyImage
-! FUNCTION: CopyRect
-! FUNCTION: CountClipboardFormats
-! FUNCTION: CreateAcceleratorTableA
-! FUNCTION: CreateAcceleratorTableW
-! FUNCTION: CreateCaret
-! FUNCTION: CreateCursor
-! FUNCTION: CreateDesktopA
-! FUNCTION: CreateDesktopW
-! FUNCTION: CreateDialogIndirectParamA
-! FUNCTION: CreateDialogIndirectParamAorW
-! FUNCTION: CreateDialogIndirectParamW
-! FUNCTION: CreateDialogParamA
-! FUNCTION: CreateDialogParamW
-! FUNCTION: CreateIcon
-! FUNCTION: CreateIconFromResource
-! FUNCTION: CreateIconFromResourceEx
-! FUNCTION: CreateIconIndirect
-! FUNCTION: CreateMDIWindowA
-! FUNCTION: CreateMDIWindowW
-! FUNCTION: CreateMenu
-! FUNCTION: CreatePopupMenu
-! FUNCTION: CreateSystemThreads
-
-FUNCTION: HWND CreateWindowExA (
-                DWORD dwExStyle,
-                LPCSTR lpClassName,
-                LPCSTR lpWindowName,
-                DWORD dwStyle,
-                uint X,
-                uint Y,
-                uint nWidth,
-                uint nHeight,
-                HWND hWndParent,
-                HMENU hMenu,
-                HINSTANCE hInstance,
-                LPVOID lpParam ) ;
-
-FUNCTION: HWND CreateWindowExW (
-                DWORD dwExStyle,
-                LPCWSTR lpClassName,
-                LPCWSTR lpWindowName,
-                DWORD dwStyle,
-                uint X,
-                uint Y,
-                uint nWidth,
-                uint nHeight,
-                HWND hWndParent,
-                HMENU hMenu,
-                HINSTANCE hInstance,
-                LPVOID lpParam ) ;
-
-: CreateWindowEx \ CreateWindowExW \ CreateWindowExA unicode-exec ;
-
-! 11 >r <r
-: CreateWindow >r >r >r >r >r >r >r >r >r >r >r 0 r> r> r> r> r> r> r> r> r> r> r> CreateWindowEx ;
-
-
-! FUNCTION: CreateWindowStationA
-! FUNCTION: CreateWindowStationW
-! FUNCTION: CsrBroadcastSystemMessageExW
-! FUNCTION: CtxInitUser32
-! FUNCTION: DdeAbandonTransaction
-! FUNCTION: DdeAccessData
-! FUNCTION: DdeAddData
-! FUNCTION: DdeClientTransaction
-! FUNCTION: DdeCmpStringHandles
-! FUNCTION: DdeConnect
-! FUNCTION: DdeConnectList
-! FUNCTION: DdeCreateDataHandle
-! FUNCTION: DdeCreateStringHandleA
-! FUNCTION: DdeCreateStringHandleW
-! FUNCTION: DdeDisconnect
-! FUNCTION: DdeDisconnectList
-! FUNCTION: DdeEnableCallback
-! FUNCTION: DdeFreeDataHandle
-! FUNCTION: DdeFreeStringHandle
-! FUNCTION: DdeGetData
-! FUNCTION: DdeGetLastError
-! FUNCTION: DdeGetQualityOfService
-! FUNCTION: DdeImpersonateClient
-! FUNCTION: DdeInitializeA
-! FUNCTION: DdeInitializeW
-! FUNCTION: DdeKeepStringHandle
-! FUNCTION: DdeNameService
-! FUNCTION: DdePostAdvise
-! FUNCTION: DdeQueryConvInfo
-! FUNCTION: DdeQueryNextServer
-! FUNCTION: DdeQueryStringA
-! FUNCTION: DdeQueryStringW
-! FUNCTION: DdeReconnect
-! FUNCTION: DdeSetQualityOfService
-! FUNCTION: DdeSetUserHandle
-! FUNCTION: DdeUnaccessData
-! FUNCTION: DdeUninitialize
-! FUNCTION: DefDlgProcA
-! FUNCTION: DefDlgProcW
-! FUNCTION: DeferWindowPos
-! FUNCTION: DefFrameProcA
-! FUNCTION: DefFrameProcW
-! FUNCTION: DefMDIChildProcA
-! FUNCTION: DefMDIChildProcW
-! FUNCTION: DefRawInputProc
-FUNCTION: LRESULT DefWindowProcA ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ) ;
-FUNCTION: LRESULT DefWindowProcW ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ) ;
-: DefWindowProc \ DefWindowProcW \ DefWindowProcA unicode-exec ;
-! FUNCTION: DeleteMenu
-! FUNCTION: DeregisterShellHookWindow
-! FUNCTION: DestroyAcceleratorTable
-! FUNCTION: DestroyCaret
-! FUNCTION: DestroyCursor
-! FUNCTION: DestroyIcon
-! FUNCTION: DestroyMenu
-! FUNCTION: DestroyReasons
-FUNCTION: BOOL DestroyWindow ( HWND hWnd ) ;
-! FUNCTION: DeviceEventWorker
-! FUNCTION: DialogBoxIndirectParamA
-! FUNCTION: DialogBoxIndirectParamAorW
-! FUNCTION: DialogBoxIndirectParamW
-! FUNCTION: DialogBoxParamA
-! FUNCTION: DialogBoxParamW
-! FUNCTION: DisableProcessWindowsGhosting
-
-FUNCTION: LONG DispatchMessageA ( MSG* lpMsg ) ;
-FUNCTION: LONG DispatchMessageW ( MSG* lpMsg ) ;
-: DispatchMessage \ DispatchMessageW \ DispatchMessageA unicode-exec ;
-
-! FUNCTION: DisplayExitWindowsWarnings
-! FUNCTION: DlgDirListA
-! FUNCTION: DlgDirListComboBoxA
-! FUNCTION: DlgDirListComboBoxW
-! FUNCTION: DlgDirListW
-! FUNCTION: DlgDirSelectComboBoxExA
-! FUNCTION: DlgDirSelectComboBoxExW
-! FUNCTION: DlgDirSelectExA
-! FUNCTION: DlgDirSelectExW
-! FUNCTION: DragDetect
-! FUNCTION: DragObject
-
-
-FUNCTION: BOOL DrawAnimatedRects ( HWND hWnd, int idAni, RECT* lprcFrom, RECT* lprcTo ) ;
-! FUNCTION: BOOL DrawCaption ( HWND hWnd, HDC hdc, LPRECT lprc, UINT uFlags ) ;
-
-! FUNCTION: DrawEdge
-! FUNCTION: DrawFocusRect
-! FUNCTION: DrawFrame
-! FUNCTION: DrawFrameControl
-! FUNCTION: DrawIcon
-! FUNCTION: DrawIconEx
-! FUNCTION: DrawMenuBar
-! FUNCTION: DrawMenuBarTemp
-! FUNCTION: DrawStateA
-! FUNCTION: DrawStateW
-! FUNCTION: DrawTextA
-! FUNCTION: DrawTextExA
-! FUNCTION: DrawTextExW
-! FUNCTION: DrawTextW
-! FUNCTION: EditWndProc
-FUNCTION: BOOL EmptyClipboard ( ) ;
-! FUNCTION: EnableMenuItem
-! FUNCTION: EnableScrollBar
-! FUNCTION: EnableWindow
-! FUNCTION: EndDeferWindowPos
-! FUNCTION: EndDialog
-! FUNCTION: EndMenu
-
-FUNCTION: BOOL EndPaint ( HWND hWnd, PAINTSTRUCT* lpPaint) ;
-
-! FUNCTION: EndTask
-! FUNCTION: EnterReaderModeHelper
-! FUNCTION: EnumChildWindows
-FUNCTION: UINT EnumClipboardFormats ( UINT format ) ;
-! FUNCTION: EnumDesktopsA
-! FUNCTION: EnumDesktopsW
-! FUNCTION: EnumDesktopWindows
-! FUNCTION: EnumDisplayDevicesA
-! FUNCTION: EnumDisplayDevicesW
-! FUNCTION: EnumDisplayMonitors
-! FUNCTION: EnumDisplaySettingsA
-! FUNCTION: EnumDisplaySettingsExA
-! FUNCTION: EnumDisplaySettingsExW
-! FUNCTION: EnumDisplaySettingsW
-! FUNCTION: EnumPropsA
-! FUNCTION: EnumPropsExA
-! FUNCTION: EnumPropsExW
-! FUNCTION: EnumPropsW
-! FUNCTION: EnumThreadWindows
-! FUNCTION: EnumWindows
-! FUNCTION: EnumWindowStationsA
-! FUNCTION: EnumWindowStationsW
-! FUNCTION: EqualRect
-! FUNCTION: ExcludeUpdateRgn
-! FUNCTION: ExitWindowsEx
-! FUNCTION: FillRect
-! FUNCTION: FindWindowA
-! FUNCTION: FindWindowExA
-! FUNCTION: FindWindowExW
-! FUNCTION: FindWindowW
-! FUNCTION: FlashWindow
-! FUNCTION: FlashWindowEx
-! FUNCTION: FrameRect
-! FUNCTION: FreeDDElParam
-! FUNCTION: GetActiveWindow
-! FUNCTION: GetAltTabInfo
-! FUNCTION: GetAltTabInfoA
-! FUNCTION: GetAltTabInfoW
-! FUNCTION: GetAncestor
-! FUNCTION: GetAppCompatFlags
-! FUNCTION: GetAppCompatFlags2
-! FUNCTION: GetAsyncKeyState
-! FUNCTION: GetCapture
-! FUNCTION: GetCaretBlinkTime
-! FUNCTION: GetCaretPos
-FUNCTION: BOOL GetClassInfoA ( HINSTANCE hInst, LPCTSTR lpszClass, LPWNDCLASS lpwcx ) ;
-FUNCTION: BOOL GetClassInfoW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASS lpwcx ) ;
-: GetClassInfo \ GetClassInfoW \ GetClassInfoA unicode-exec ;
-
-FUNCTION: BOOL GetClassInfoExA ( HINSTANCE hInst, LPCTSTR lpszClass, LPWNDCLASSEX lpwcx ) ;
-FUNCTION: BOOL GetClassInfoExW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASSEX lpwcx ) ;
-: GetClassInfoEx \ GetClassInfoExW \ GetClassInfoExA unicode-exec ;
-
-FUNCTION: ULONG_PTR GetClassLongA ( HWND hWnd, int nIndex ) ;
-FUNCTION: ULONG_PTR GetClassLongW ( HWND hWnd, int nIndex ) ;
-: GetClassLong \ GetClassLongW \ GetClassLongA unicode-exec ;
-: GetClassLongPtr \ GetClassLongW \ GetClassLongA unicode-exec ;
-
-
-! FUNCTION: GetClassNameA
-! FUNCTION: GetClassNameW
-! FUNCTION: GetClassWord
-! FUNCTION: BOOL GetClientRect ( HWND hWnd, LPRECT lpRect ) ;
-
-FUNCTION: HANDLE GetClipboardData ( UINT uFormat ) ;
-
-! FUNCTION: GetClipboardFormatNameA
-! FUNCTION: GetClipboardFormatNameW
-FUNCTION: HWND GetClipboardOwner ( ) ;
-FUNCTION: DWORD GetClipboardSequenceNumber ( ) ;
-! FUNCTION: GetClipboardViewer
-! FUNCTION: GetClipCursor
-! FUNCTION: GetComboBoxInfo
-! FUNCTION: GetCursor
-! FUNCTION: GetCursorFrameInfo
-! FUNCTION: GetCursorInfo
-! FUNCTION: GetCursorPos
-FUNCTION: HDC GetDC ( HWND hWnd ) ;
-FUNCTION: HDC GetDCEx ( HWND hWnd, HRGN hrgnClip, DWORD flags ) ;
-! FUNCTION: GetDesktopWindow
-! FUNCTION: GetDialogBaseUnits
-! FUNCTION: GetDlgCtrlID
-! FUNCTION: GetDlgItem
-! FUNCTION: GetDlgItemInt
-! FUNCTION: GetDlgItemTextA
-! FUNCTION: GetDlgItemTextW
-! FUNCTION: GetDoubleClickTime
-FUNCTION: HWND GetFocus ( ) ;
-! FUNCTION: GetForegroundWindow
-! FUNCTION: GetGuiResources
-! FUNCTION: GetGUIThreadInfo
-! FUNCTION: GetIconInfo
-! FUNCTION: GetInputDesktop
-! FUNCTION: GetInputState
-! FUNCTION: GetInternalWindowPos
-! FUNCTION: GetKBCodePage
-! FUNCTION: GetKeyboardLayout
-! FUNCTION: GetKeyboardLayoutList
-! FUNCTION: GetKeyboardLayoutNameA
-! FUNCTION: GetKeyboardLayoutNameW
-! FUNCTION: GetKeyboardState
-! FUNCTION: GetKeyboardType
-! FUNCTION: GetKeyNameTextA
-! FUNCTION: GetKeyNameTextW
-FUNCTION: SHORT GetKeyState ( int nVirtKey ) ;
-! FUNCTION: GetLastActivePopup
-! FUNCTION: GetLastInputInfo
-! FUNCTION: GetLayeredWindowAttributes
-! FUNCTION: GetListBoxInfo
-! FUNCTION: GetMenu
-! FUNCTION: GetMenuBarInfo
-! FUNCTION: GetMenuCheckMarkDimensions
-! FUNCTION: GetMenuContextHelpId
-! FUNCTION: GetMenuDefaultItem
-! FUNCTION: GetMenuInfo
-! FUNCTION: GetMenuItemCount
-! FUNCTION: GetMenuItemID
-! FUNCTION: GetMenuItemInfoA
-! FUNCTION: GetMenuItemInfoW
-! FUNCTION: GetMenuItemRect
-! FUNCTION: GetMenuState
-! FUNCTION: GetMenuStringA
-! FUNCTION: GetMenuStringW
-
-FUNCTION: BOOL GetMessageA ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) ;
-FUNCTION: BOOL GetMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) ;
-: GetMessage \ GetMessageW \ GetMessageA unicode-exec ;
-
-! FUNCTION: GetMessageExtraInfo
-! FUNCTION: GetMessagePos
-! FUNCTION: GetMessageTime
-! FUNCTION: GetMonitorInfoA
-! FUNCTION: GetMonitorInfoW
-! FUNCTION: GetMouseMovePointsEx
-! FUNCTION: GetNextDlgGroupItem
-! FUNCTION: GetNextDlgTabItem
-! FUNCTION: GetOpenClipboardWindow
-FUNCTION: HWND GetParent ( HWND hWnd ) ;
-FUNCTION: int GetPriorityClipboardFormat ( UINT* paFormatPriorityList, int cFormats ) ;
-! FUNCTION: GetProcessDefaultLayout
-! FUNCTION: GetProcessWindowStation
-! FUNCTION: GetProgmanWindow
-! FUNCTION: GetPropA
-! FUNCTION: GetPropW
-! FUNCTION: GetQueueStatus
-! FUNCTION: GetRawInputBuffer
-! FUNCTION: GetRawInputData
-! FUNCTION: GetRawInputDeviceInfoA
-! FUNCTION: GetRawInputDeviceInfoW
-! FUNCTION: GetRawInputDeviceList
-! FUNCTION: GetReasonTitleFromReasonCode
-! FUNCTION: GetRegisteredRawInputDevices
-! FUNCTION: GetScrollBarInfo
-! FUNCTION: GetScrollInfo
-! FUNCTION: GetScrollPos
-! FUNCTION: GetScrollRange
-! FUNCTION: GetShellWindow
-! FUNCTION: GetSubMenu
-! FUNCTION: GetSysColor
-FUNCTION: HBRUSH GetSysColorBrush ( int nIndex ) ;
-! FUNCTION: GetSystemMenu
-! FUNCTION: GetSystemMetrics
-! FUNCTION: GetTabbedTextExtentA
-! FUNCTION: GetTabbedTextExtentW
-! FUNCTION: GetTaskmanWindow
-! FUNCTION: GetThreadDesktop
-! FUNCTION: GetTitleBarInfo
-
-
-FUNCTION: HWND GetTopWindow ( HWND hWnd ) ;
-! FUNCTION: BOOL GetUpdateRect ( HWND hWnd, LPRECT lpRect, BOOL bErase ) ;
-FUNCTION: int GetUpdateRgn ( HWND hWnd, HRGN hRgn, BOOL bErase ) ;
-
-
-! FUNCTION: GetUserObjectInformationA
-! FUNCTION: GetUserObjectInformationW
-! FUNCTION: GetUserObjectSecurity
-FUNCTION: HWND GetWindow ( HWND hWnd, UINT uCmd ) ;
-! FUNCTION: GetWindowContextHelpId
-! FUNCTION: GetWindowDC
-! FUNCTION: GetWindowInfo
-! FUNCTION: GetWindowLongA
-! FUNCTION: GetWindowLongW
-! FUNCTION: GetWindowModuleFileName
-! FUNCTION: GetWindowModuleFileNameA
-! FUNCTION: GetWindowModuleFileNameW
-! FUNCTION: GetWindowPlacement
-! FUNCTION: BOOL GetWindowRect ( HWND hWnd, LPRECT lpRect ) ;
-! FUNCTION: GetWindowRgn
-! FUNCTION: GetWindowRgnBox
-! FUNCTION: GetWindowTextA
-! FUNCTION: GetWindowTextLengthA
-! FUNCTION: GetWindowTextLengthW
-! FUNCTION: GetWindowTextW
-! FUNCTION: GetWindowThreadProcessId
-! FUNCTION: GetWindowWord
-! FUNCTION: GetWinStationInfo
-! FUNCTION: GrayStringA
-! FUNCTION: GrayStringW
-! FUNCTION: HideCaret
-! FUNCTION: HiliteMenuItem
-! FUNCTION: ImpersonateDdeClientWindow
-! FUNCTION: IMPGetIMEA
-! FUNCTION: IMPGetIMEW
-! FUNCTION: IMPQueryIMEA
-! FUNCTION: IMPQueryIMEW
-! FUNCTION: IMPSetIMEA
-! FUNCTION: IMPSetIMEW
-! FUNCTION: InflateRect
-! FUNCTION: InitializeLpkHooks
-! FUNCTION: InitializeWin32EntryTable
-! FUNCTION: InSendMessage
-! FUNCTION: InSendMessageEx
-! FUNCTION: InsertMenuA
-! FUNCTION: InsertMenuItemA
-! FUNCTION: InsertMenuItemW
-! FUNCTION: InsertMenuW
-! FUNCTION: InternalGetWindowText
-! FUNCTION: IntersectRect
-! FUNCTION: InvalidateRect
-! FUNCTION: InvalidateRgn
-! FUNCTION: InvertRect
-! FUNCTION: IsCharAlphaA
-! FUNCTION: IsCharAlphaNumericA
-! FUNCTION: IsCharAlphaNumericW
-! FUNCTION: IsCharAlphaW
-! FUNCTION: IsCharLowerA
-! FUNCTION: IsCharLowerW
-! FUNCTION: IsCharUpperA
-! FUNCTION: IsCharUpperW
-FUNCTION: BOOL IsChild ( HWND hWndParent, HWND hWnd ) ;
-FUNCTION: BOOL IsClipboardFormatAvailable ( UINT format ) ;
-! FUNCTION: IsDialogMessage
-! FUNCTION: IsDialogMessageA
-! FUNCTION: IsDialogMessageW
-! FUNCTION: IsDlgButtonChecked
-FUNCTION: BOOL IsGUIThread ( BOOL bConvert ) ;
-FUNCTION: BOOL IsHungAppWindow ( HWND hWnd ) ;
-FUNCTION: BOOL IsIconic ( HWND hWnd ) ;
-FUNCTION: BOOL IsMenu ( HMENU hMenu ) ;
-! FUNCTION: BOOL IsRectEmpty
-! FUNCTION: BOOL IsServerSideWindow
-FUNCTION: BOOL IsWindow ( HWND hWnd ) ;
-! FUNCTION: BOOL IsWindowEnabled
-! FUNCTION: BOOL IsWindowInDestroy
-FUNCTION: BOOL IsWindowUnicode ( HWND hWnd ) ;
-FUNCTION: BOOL IsWindowVisible ( HWND hWnd ) ;
-! FUNCTION: BOOL IsWinEventHookInstalled
-FUNCTION: BOOL IsZoomed ( HWND hWnd ) ;
-! FUNCTION: keybd_event
-! FUNCTION: KillSystemTimer
-! FUNCTION: KillTimer
-! FUNCTION: LoadAcceleratorsA
-! FUNCTION: LoadAcceleratorsW
-! FUNCTION: LoadBitmapA
-! FUNCTION: LoadBitmapW
-! FUNCTION: LoadCursorFromFileA
-! FUNCTION: LoadCursorFromFileW
-
-
-! FUNCTION: HCURSOR LoadCursorA ( HINSTANCE hInstance, LPCTSTR lpCursorName ) ;
-! FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, LPCWSTR lpCursorName ) ;
-FUNCTION: HCURSOR LoadCursorA ( HINSTANCE hInstance, ushort lpCursorName ) ;
-FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, ushort lpCursorName ) ;
-: LoadCursor \ LoadCursorW \ LoadCursorA unicode-exec ;
-
-! FUNCTION: HICON LoadIconA ( HINSTANCE hInstance, LPCTSTR lpIconName ) ;
-! FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCWSTR lpIconName ) ;
-FUNCTION: HICON LoadIconA ( HINSTANCE hInstance, ushort lpIconName ) ;
-FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, ushort lpIconName ) ;
-: LoadIcon \ LoadIconW \ LoadIconA unicode-exec ;
-
-! FUNCTION: LoadImageA
-! FUNCTION: LoadImageW
-! FUNCTION: LoadKeyboardLayoutA
-! FUNCTION: LoadKeyboardLayoutEx
-! FUNCTION: LoadKeyboardLayoutW
-! FUNCTION: LoadLocalFonts
-! FUNCTION: LoadMenuA
-! FUNCTION: LoadMenuIndirectA
-! FUNCTION: LoadMenuIndirectW
-! FUNCTION: LoadMenuW
-! FUNCTION: LoadRemoteFonts
-! FUNCTION: LoadStringA
-! FUNCTION: LoadStringW
-! FUNCTION: LockSetForegroundWindow
-! FUNCTION: LockWindowStation
-! FUNCTION: LockWindowUpdate
-! FUNCTION: LockWorkStation
-! FUNCTION: LookupIconIdFromDirectory
-! FUNCTION: LookupIconIdFromDirectoryEx
-! FUNCTION: MapDialogRect
-! FUNCTION: MapVirtualKeyA
-! FUNCTION: MapVirtualKeyExA
-! FUNCTION: MapVirtualKeyExW
-! FUNCTION: MapVirtualKeyW
-! FUNCTION: MapWindowPoints
-! FUNCTION: MB_GetString
-! FUNCTION: MBToWCSEx
-! FUNCTION: MenuItemFromPoint
-! FUNCTION: MenuWindowProcA
-! FUNCTION: MenuWindowProcW
-
-
-: MB_ICONASTERISK    HEX: 00000040 ;
-: MB_ICONEXCLAMATION HEX: 00000030 ;
-: MB_ICONHAND        HEX: 00000010 ;
-: MB_ICONQUESTION    HEX: 00000020 ;
-: MB_OK              HEX: 00000000 ;
-! -1 is Simple beep
-FUNCTION: BOOL MessageBeep ( UINT uType ) ;
-
-FUNCTION: int MessageBoxA ( 
-                HWND hWnd,
-                LPCSTR lpText,
-                LPCSTR lpCaption,
-                UINT uType ) ;
-
-FUNCTION: int MessageBoxW (
-                HWND hWnd,
-                LPCWSTR lpText,
-                LPCWSTR lpCaption,
-                UINT uType) ;
-
-FUNCTION: int MessageBoxExA ( HWND hWnd,
-                LPCSTR lpText,
-                LPCSTR lpCaption,
-                UINT uType,
-                WORD wLanguageId
-                ) ;
-
-FUNCTION: int MessageBoxExW (
-                HWND hWnd,
-                LPCWSTR lpText,
-                LPCWSTR lpCaption,
-                UINT uType,
-                WORD wLanguageId ) ;
-
-FUNCTION: int MessageBoxIndirectA (
-                 MSGBOXPARAMSA* params ) ;
-
-FUNCTION: int MessageBoxIndirectW (
-                 MSGBOXPARAMSW* params ) ;
-
-
-: MessageBox ( -- )
-    \ MessageBoxW \ MessageBoxA unicode-exec ;
-
-: MessageBoxEx ( -- )
-    \ MessageBoxExW \ MessageBoxExA unicode-exec ;
-
-: MessageBoxIndirect ( -- )
-    \ MessageBoxIndirectW \ MessageBoxIndirectA unicode-exec ;
-
-! FUNCTION: MessageBoxTimeoutA ! dllexported, not in header
-! FUNCTION: MessageBoxTimeoutW ! dllexported, not in header
-
-! FUNCTION: ModifyMenuA
-! FUNCTION: ModifyMenuW
-! FUNCTION: MonitorFromPoint
-! FUNCTION: MonitorFromRect
-! FUNCTION: MonitorFromWindow
-! FUNCTION: mouse_event
-
-
-
-FUNCTION: BOOL MoveWindow (
-    HWND hWnd,
-    int X,
-    int Y,
-    int nWidth,
-    int nHeight,
-    BOOL bRepaint ) ;
-
-
-! FUNCTION: MsgWaitForMultipleObjects
-! FUNCTION: MsgWaitForMultipleObjectsEx
-! FUNCTION: NotifyWinEvent
-! FUNCTION: OemKeyScan
-! FUNCTION: OemToCharA
-! FUNCTION: OemToCharBuffA
-! FUNCTION: OemToCharBuffW
-! FUNCTION: OemToCharW
-! FUNCTION: OffsetRect
-FUNCTION: BOOL OpenClipboard ( HWND hWndNewOwner ) ;
-! FUNCTION: OpenDesktopA
-! FUNCTION: OpenDesktopW
-! FUNCTION: OpenIcon
-! FUNCTION: OpenInputDesktop
-! FUNCTION: OpenWindowStationA
-! FUNCTION: OpenWindowStationW
-! FUNCTION: PackDDElParam
-! FUNCTION: PaintDesktop
-! FUNCTION: PaintMenuBar
-FUNCTION: BOOL PeekMessageA ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg ) ;
-FUNCTION: BOOL PeekMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg ) ;
-: PeekMessage \ PeekMessageW \ PeekMessageA unicode-exec ;
-
-! FUNCTION: PostMessageA
-! FUNCTION: PostMessageW
-FUNCTION: void PostQuitMessage ( int nExitCode ) ;
-! FUNCTION: PostThreadMessageA
-! FUNCTION: PostThreadMessageW
-! FUNCTION: PrintWindow
-! FUNCTION: PrivateExtractIconExA
-! FUNCTION: PrivateExtractIconExW
-! FUNCTION: PrivateExtractIconsA
-! FUNCTION: PrivateExtractIconsW
-! FUNCTION: PrivateSetDbgTag
-! FUNCTION: PrivateSetRipFlags
-! FUNCTION: PtInRect
-! FUNCTION: QuerySendMessage
-! FUNCTION: QueryUserCounters
-! FUNCTION: RealChildWindowFromPoint
-! FUNCTION: RealGetWindowClass
-! FUNCTION: RealGetWindowClassA
-! FUNCTION: RealGetWindowClassW
-! FUNCTION: ReasonCodeNeedsBugID
-! FUNCTION: ReasonCodeNeedsComment
-! FUNCTION: RecordShutdownReason
-! FUNCTION: RedrawWindow
-
-FUNCTION: ATOM RegisterClassA ( WNDCLASS* lpWndClass) ;
-FUNCTION: ATOM RegisterClassW ( WNDCLASS* lpWndClass ) ;
-FUNCTION: ATOM RegisterClassExA ( WNDCLASSEX* lpwcx ) ;
-FUNCTION: ATOM RegisterClassExW ( WNDCLASSEX* lpwcx ) ;
-
-: RegisterClass \ RegisterClassW \ RegisterClassA unicode-exec ;
-: RegisterClassEx \ RegisterClassExW \ RegisterClassExA unicode-exec ;
-
-! FUNCTION: RegisterClipboardFormatA
-! FUNCTION: RegisterClipboardFormatW
-! FUNCTION: RegisterDeviceNotificationA
-! FUNCTION: RegisterDeviceNotificationW
-! FUNCTION: RegisterHotKey
-! FUNCTION: RegisterLogonProcess
-! FUNCTION: RegisterMessagePumpHook
-! FUNCTION: RegisterRawInputDevices
-! FUNCTION: RegisterServicesProcess
-! FUNCTION: RegisterShellHookWindow
-! FUNCTION: RegisterSystemThread
-! FUNCTION: RegisterTasklist
-! FUNCTION: RegisterUserApiHook
-! FUNCTION: RegisterWindowMessageA
-! FUNCTION: RegisterWindowMessageW
-! FUNCTION: ReleaseCapture
-FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC ) ;
-! FUNCTION: RemoveMenu
-! FUNCTION: RemovePropA
-! FUNCTION: RemovePropW
-! FUNCTION: ReplyMessage
-! FUNCTION: ResolveDesktopForWOW
-! FUNCTION: ReuseDDElParam
-! FUNCTION: ScreenToClient
-! FUNCTION: ScrollChildren
-! FUNCTION: ScrollDC
-! FUNCTION: ScrollWindow
-! FUNCTION: ScrollWindowEx
-! FUNCTION: SendDlgItemMessageA
-! FUNCTION: SendDlgItemMessageW
-! FUNCTION: SendIMEMessageExA
-! FUNCTION: SendIMEMessageExW
-! FUNCTION: UINT SendInput ( UINT nInputs, LPINPUT pInputs, int cbSize ) ;
-! FUNCTION: SendMessageA
-! FUNCTION: SendMessageCallbackA
-! FUNCTION: SendMessageCallbackW
-! FUNCTION: SendMessageTimeoutA
-! FUNCTION: SendMessageTimeoutW
-! FUNCTION: SendMessageW
-! FUNCTION: SendNotifyMessageA
-! FUNCTION: SendNotifyMessageW
-! FUNCTION: SetActiveWindow
-! FUNCTION: SetCapture
-! FUNCTION: SetCaretBlinkTime
-! FUNCTION: SetCaretPos
-
-FUNCTION: ULONG_PTR SetClassLongW ( HWND hWnd, int nIndex, LONG_PTR dwNewLong ) ;
-FUNCTION: ULONG_PTR SetClassLongA ( HWND hWnd, int nIndex, LONG_PTR dwNewLong ) ;
-: SetClassLongPtr \ SetClassLongW \ SetClassLongA unicode-exec ;
-: SetClassLong \ SetClassLongW \ SetClassLongA unicode-exec ;
-
-! FUNCTION: SetClassWord
-FUNCTION: HANDLE SetClipboardData ( UINT uFormat, HANDLE hMem ) ;
-! FUNCTION: SetClipboardViewer
-! FUNCTION: SetConsoleReserveKeys
-! FUNCTION: SetCursor
-! FUNCTION: SetCursorContents
-! FUNCTION: SetCursorPos
-! FUNCTION: SetDebugErrorLevel
-! FUNCTION: SetDeskWallpaper
-! FUNCTION: SetDlgItemInt
-! FUNCTION: SetDlgItemTextA
-! FUNCTION: SetDlgItemTextW
-! FUNCTION: SetDoubleClickTime
-FUNCTION: HWND SetFocus ( HWND hWnd ) ;
-FUNCTION: BOOL SetForegroundWindow ( HWND hWnd ) ;
-! FUNCTION: SetInternalWindowPos
-! FUNCTION: SetKeyboardState
-! type is ignored
-FUNCTION: void SetLastErrorEx ( DWORD dwErrCode, DWORD dwType ) ; 
-: SetLastError 0 SetLastErrorEx ;
-! FUNCTION: SetLayeredWindowAttributes
-! FUNCTION: SetLogonNotifyWindow
-! FUNCTION: SetMenu
-! FUNCTION: SetMenuContextHelpId
-! FUNCTION: SetMenuDefaultItem
-! FUNCTION: SetMenuInfo
-! FUNCTION: SetMenuItemBitmaps
-! FUNCTION: SetMenuItemInfoA
-! FUNCTION: SetMenuItemInfoW
-! FUNCTION: SetMessageExtraInfo
-! FUNCTION: SetMessageQueue
-! FUNCTION: SetParent
-! FUNCTION: SetProcessDefaultLayout
-! FUNCTION: SetProcessWindowStation
-! FUNCTION: SetProgmanWindow
-! FUNCTION: SetPropA
-! FUNCTION: SetPropW
-! FUNCTION: SetRect
-! FUNCTION: SetRectEmpty
-! FUNCTION: SetScrollInfo
-! FUNCTION: SetScrollPos
-! FUNCTION: SetScrollRange
-! FUNCTION: SetShellWindow
-! FUNCTION: SetShellWindowEx
-! FUNCTION: SetSysColors
-! FUNCTION: SetSysColorsTemp
-! FUNCTION: SetSystemCursor
-! FUNCTION: SetSystemMenu
-! FUNCTION: SetSystemTimer
-! FUNCTION: SetTaskmanWindow
-! FUNCTION: SetThreadDesktop
-! FUNCTION: SetTimer
-! FUNCTION: SetUserObjectInformationA
-! FUNCTION: SetUserObjectInformationW
-! FUNCTION: SetUserObjectSecurity
-! FUNCTION: SetWindowContextHelpId
-! FUNCTION: SetWindowLongA
-! FUNCTION: SetWindowLongW
-! FUNCTION: SetWindowPlacement
-! FUNCTION: SetWindowPos
-! FUNCTION: SetWindowRgn
-! FUNCTION: SetWindowsHookA
-! FUNCTION: SetWindowsHookExA
-! FUNCTION: SetWindowsHookExW
-! FUNCTION: SetWindowsHookW
-! FUNCTION: SetWindowStationUser
-! FUNCTION: SetWindowTextA
-! FUNCTION: SetWindowTextW
-! FUNCTION: SetWindowWord
-! FUNCTION: SetWinEventHook
-! FUNCTION: ShowCaret
-! FUNCTION: ShowCursor
-! FUNCTION: ShowOwnedPopups
-! FUNCTION: ShowScrollBar
-! FUNCTION: ShowStartGlass
-
-FUNCTION: BOOL ShowWindow ( HWND hWnd, int nCmdShow ) ;
-
-! FUNCTION: ShowWindowAsync
-! FUNCTION: SoftModalMessageBox
-! FUNCTION: SubtractRect
-! FUNCTION: SwapMouseButton
-! FUNCTION: SwitchDesktop
-! FUNCTION: SwitchToThisWindow
-! FUNCTION: SystemParametersInfoA
-! FUNCTION: SystemParametersInfoW
-! FUNCTION: TabbedTextOutA
-! FUNCTION: TabbedTextOutW
-! FUNCTION: TileChildWindows
-! FUNCTION: TileWindows
-! FUNCTION: ToAscii
-! FUNCTION: ToAsciiEx
-! FUNCTION: ToUnicode
-! FUNCTION: ToUnicodeEx
-! FUNCTION: TrackMouseEvent
-! FUNCTION: TrackPopupMenu
-! FUNCTION: TrackPopupMenuEx
-! FUNCTION: TranslateAccelerator
-! FUNCTION: TranslateAcceleratorA
-! FUNCTION: TranslateAcceleratorW
-! FUNCTION: TranslateMDISysAccel
-FUNCTION: BOOL TranslateMessage ( MSG* lpMsg ) ;
-
-! FUNCTION: UnhookWindowsHook
-! FUNCTION: UnhookWindowsHookEx
-! FUNCTION: UnhookWinEvent
-! FUNCTION: UnionRect
-! FUNCTION: UnloadKeyboardLayout
-! FUNCTION: UnlockWindowStation
-! FUNCTION: UnpackDDElParam
-FUNCTION: BOOL UnregisterClassA ( LPCTSTR lpClassName, HINSTANCE hInstance ) ;
-FUNCTION: BOOL UnregisterClassW ( LPCWSTR lpClassName, HINSTANCE hInstance ) ;
-: UnregisterClass \ UnregisterClassW \ UnregisterClassA unicode-exec ;
-! FUNCTION: UnregisterDeviceNotification
-! FUNCTION: UnregisterHotKey
-! FUNCTION: UnregisterMessagePumpHook
-! FUNCTION: UnregisterUserApiHook
-! FUNCTION: UpdateLayeredWindow
-! FUNCTION: UpdatePerUserSystemParameters
-
-
-FUNCTION: BOOL UpdateWindow ( HWND hWnd ) ;
-
-! FUNCTION: User32InitializeImmEntryTable
-! FUNCTION: UserClientDllInitialize
-! FUNCTION: UserHandleGrantAccess
-! FUNCTION: UserLpkPSMTextOut
-! FUNCTION: UserLpkTabbedTextOut
-! FUNCTION: UserRealizePalette
-! FUNCTION: UserRegisterWowHandlers
-! FUNCTION: ValidateRect
-! FUNCTION: ValidateRgn
-! FUNCTION: VkKeyScanA
-! FUNCTION: VkKeyScanExA
-! FUNCTION: VkKeyScanExW
-! FUNCTION: VkKeyScanW
-! FUNCTION: VRipOutput
-! FUNCTION: VTagOutput
-! FUNCTION: WaitForInputIdle
-! FUNCTION: WaitMessage
-! FUNCTION: WCSToMBEx
-! FUNCTION: Win32PoolAllocationStats
-! FUNCTION: WindowFromDC
-! FUNCTION: WindowFromPoint
-! FUNCTION: WinHelpA
-! FUNCTION: WinHelpW
-! FUNCTION: WINNLSEnableIME
-! FUNCTION: WINNLSGetEnableStatus
-! FUNCTION: WINNLSGetIMEHotkey
-! FUNCTION: wsprintfA
-! FUNCTION: wsprintfW
-! FUNCTION: wvsprintfA
-! FUNCTION: wvsprintfW
-
diff --git a/library/windows/utils.factor b/library/windows/utils.factor
deleted file mode 100644 (file)
index bd203c3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-USING: alien parser namespaces kernel syntax words math io prettyprint ;
-IN: win32-api
-
-: win32-error=0 zero? [ win32-error ] when ;
-: win32-error>0 0 > [ win32-error ] when ;
-: win32-error<0 0 < [ win32-error ] when ;
-: win32-error<>0 zero? [ win32-error ] unless ;
-
-: lo-word ( wparam -- lo ) HEX: ffff bitand ;
-: hi-word ( wparam -- hi ) -16 shift ;
-
-: msgbox ( str -- )
-    f swap "DebugMsg" MB_OK MessageBox drop ;
-
diff --git a/library/windows/win32-errors.factor b/library/windows/win32-errors.factor
deleted file mode 100644 (file)
index 15549ae..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-! :folding=indent:collapseFolds=1:
-
-! $Id: win32-errors.factor,v 1.11 2005/12/22 02:30:00 erg Exp $
-!
-! Copyright (C) 2004 Mackenzie Straight.
-! 
-! Redistribution and use in source and binary forms, with or without
-! modification, are permitted provided that the following conditions are met:
-! 
-! 1. Redistributions of source code must retain the above copyright notice,
-!    this list of conditions and the following disclaimer.
-! 
-! 2. Redistributions in binary form must reproduce the above copyright notice,
-!    this list of conditions and the following disclaimer in the documentation
-!    and/or other materials provided with the distribution.
-! 
-! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-IN: win32-api
-USE: errors
-USE: kernel
-USE: io-internals
-USE: lists
-USE: math
-USE: parser
-USE: alien
-USE: words
-USE: sequences
-
-: CONSTANT: CREATE 
-    [ [ [ parsed ] each ] cons define-compound POSTPONE: parsing ] 
-    [ ] ; parsing
-
-CONSTANT: ERROR_SUCCESS 0 ;
-CONSTANT: ERROR_HANDLE_EOF 38 ;
-CONSTANT: ERROR_IO_PENDING 997 ;
-CONSTANT: WAIT_TIMEOUT 258 ;
-
-: FORMAT_MESSAGE_ALLOCATE_BUFFER HEX: 00000100 ;
-: FORMAT_MESSAGE_IGNORE_INSERTS  HEX: 00000200 ;
-: FORMAT_MESSAGE_FROM_STRING     HEX: 00000400 ;
-: FORMAT_MESSAGE_FROM_HMODULE    HEX: 00000800 ;
-: FORMAT_MESSAGE_FROM_SYSTEM     HEX: 00001000 ;
-: FORMAT_MESSAGE_ARGUMENT_ARRAY  HEX: 00002000 ;
-: FORMAT_MESSAGE_MAX_WIDTH_MASK  HEX: 000000FF ;
-
-: MAKELANGID ( primary sub -- lang )
-    10 shift bitor ;
-
-: LANG_NEUTRAL 0 ;
-: SUBLANG_DEFAULT 1 ;
-
-: GetLastError ( -- int )
-    "int" "kernel32" "GetLastError" [ ] alien-invoke ;
-
-: win32-error-message ( id -- string )
-    "char*" f "error_message" [ "int" ] alien-invoke ;
-
-: win32-throw-error ( -- )
-    GetLastError win32-error-message throw ;
-
diff --git a/library/windows/win32-io-internals.factor b/library/windows/win32-io-internals.factor
deleted file mode 100644 (file)
index ea9c3ed..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-! $Id: win32-io-internals.factor,v 1.15 2006/01/28 20:49:31 spestov Exp $
-!
-! Copyright (C) 2004, 2005 Mackenzie Straight.
-! 
-! Redistribution and use in source and binary forms, with or without
-! modification, are permitted provided that the following conditions are met:
-! 
-! 1. Redistributions of source code must retain the above copyright notice,
-!    this list of conditions and the following disclaimer.
-! 
-! 2. Redistributions in binary form must reproduce the above copyright notice,
-!    this list of conditions and the following disclaimer in the documentation
-!    and/or other materials provided with the distribution.
-! 
-! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-IN: win32-io-internals
-USING: alien errors kernel kernel-internals lists math namespaces threads 
-       vectors win32-api io generic io-internals sequences ;
-
-SYMBOL: completion-port
-SYMBOL: io-queue
-
-TUPLE: io-queue free-list callbacks ;
-TUPLE: io-callback overlapped quotation stream ;
-
-GENERIC: expire
-
-: expected-error? ( -- bool )
-    [ 
-        ERROR_IO_PENDING ERROR_HANDLE_EOF ERROR_SUCCESS WAIT_TIMEOUT 
-    ] member? ;
-
-: handle-io-error ( -- )
-    GetLastError expected-error? [ win32-throw-error ] unless ;
-
-: queue-error ( len/status -- len/status )
-    GetLastError expected-error? [ drop f ] unless ;
-
-: add-completion ( handle -- )
-    completion-port get f 1 CreateIoCompletionPort drop ;
-
-: get-access ( -- file-mode )
-    "file-mode" get uncons 
-    GENERIC_WRITE 0 ? >r
-    GENERIC_READ 0 ? r> bitor ;
-
-: get-sharemode ( -- share-mode )
-     FILE_SHARE_READ FILE_SHARE_WRITE bitor ;
-
-: get-create ( -- creation-disposition )
-    "file-mode" get uncons [
-      [ OPEN_ALWAYS ] [ CREATE_ALWAYS ] if  
-    ] [
-      [ OPEN_EXISTING ] [ 0 ] if
-    ] if ;
-
-: win32-open-file ( file r w -- handle )
-    [ 
-        cons "file-mode" set
-        get-access get-sharemode f get-create FILE_FLAG_OVERLAPPED f 
-        CreateFile dup INVALID_HANDLE_VALUE = [ win32-throw-error ] when
-        dup add-completion
-    ] with-scope ;
-
-: <overlapped> ( -- overlapped )
-    "overlapped-ext" <malloc-object> ;
-
-C: io-queue ( -- queue )
-    V{ } clone over set-io-queue-callbacks ;
-
-C: io-callback ( -- callback )
-    io-queue get io-queue-callbacks [ push ] 2keep
-    length 1 - <overlapped> [ set-overlapped-ext-user-data ] keep
-    swap [ set-io-callback-overlapped ] keep ;
-
-: alloc-io-callback ( quot stream -- overlapped )
-    io-queue get io-queue-free-list [ 
-        uncons io-queue get [ set-io-queue-free-list ] keep
-        io-queue-callbacks nth
-    ] [ <io-callback> ] if*
-    [ set-io-callback-stream ] keep
-    [ set-io-callback-quotation ] keep
-    io-callback-overlapped ;
-
-: get-io-callback ( index -- callback )
-    dup io-queue get io-queue-callbacks nth swap
-    io-queue get [ io-queue-free-list cons ] keep set-io-queue-free-list 
-    [ f swap set-io-callback-stream ] keep
-    io-callback-quotation ;
-
-: (wait-for-io) ( timeout -- error overlapped len )
-    >r completion-port get  0 <int>  0 <int> 0 <int>
-    pick over r> -rot >r >r GetQueuedCompletionStatus r> r> ;
-
-: overlapped>callback ( overlapped -- callback )
-    *int dup zero? [
-        drop f
-    ] [
-        <alien> overlapped-ext-user-data get-io-callback
-    ] if ;
-
-: cancel-timedout ( -- )
-    io-queue get 
-    io-queue-callbacks [ io-callback-stream [ expire ] when* ] each ;
-
-: wait-for-io ( timeout -- callback len )
-    (wait-for-io) overlapped>callback swap *int 
-    rot [ queue-error ] unless ;
-
-: win32-init-io ( -- )
-    stdio off
-    INVALID_HANDLE_VALUE f f 1 CreateIoCompletionPort
-    completion-port set 
-    <io-queue> io-queue set ;
-
diff --git a/library/windows/win32-io.factor b/library/windows/win32-io.factor
deleted file mode 100644 (file)
index b35591e..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-! :folding=indent:collapseFolds=1:
-
-! $Id: win32-io.factor,v 1.4 2005/07/23 06:11:07 eiz Exp $
-!
-! Copyright (C) 2004 Mackenzie Straight.
-! 
-! Redistribution and use in source and binary forms, with or without
-! modification, are permitted provided that the following conditions are met:
-! 
-! 1. Redistributions of source code must retain the above copyright notice,
-!    this list of conditions and the following disclaimer.
-! 
-! 2. Redistributions in binary form must reproduce the above copyright notice,
-!    this list of conditions and the following disclaimer in the documentation
-!    and/or other materials provided with the distribution.
-! 
-! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-IN: win32-api
-USE: kernel
-USE: alien
-
-BEGIN-STRUCT: overlapped-ext
-    FIELD: int internal
-    FIELD: int internal-high
-    FIELD: int offset
-    FIELD: int offset-high
-    FIELD: void* event
-    FIELD: int user-data
-END-STRUCT
-
-: GENERIC_READ    HEX: 80000000 ;
-: GENERIC_WRITE   HEX: 40000000 ;
-: GENERIC_EXECUTE HEX: 20000000 ;
-: GENERIC_ALL     HEX: 10000000 ;
-
-: CREATE_NEW        1 ;
-: CREATE_ALWAYS     2 ;
-: OPEN_EXISTING     3 ;
-: OPEN_ALWAYS       4 ;
-: TRUNCATE_EXISTING 5 ;
-
-: FILE_SHARE_READ 1 ;
-: FILE_SHARE_WRITE 2 ;
-: FILE_SHARE_DELETE 4 ;
-
-: FILE_FLAG_WRITE_THROUGH       HEX: 80000000 ;
-: FILE_FLAG_OVERLAPPED          HEX: 40000000 ;
-: FILE_FLAG_NO_BUFFERING        HEX: 20000000 ;
-: FILE_FLAG_RANDOM_ACCESS       HEX: 10000000 ;
-: FILE_FLAG_SEQUENTIAL_SCAN     HEX: 08000000 ;
-: FILE_FLAG_DELETE_ON_CLOSE     HEX: 04000000 ;
-: FILE_FLAG_BACKUP_SEMANTICS    HEX: 02000000 ;
-: FILE_FLAG_POSIX_SEMANTICS     HEX: 01000000 ;
-: FILE_FLAG_OPEN_REPARSE_POINT  HEX: 00200000 ;
-: FILE_FLAG_OPEN_NO_RECALL      HEX: 00100000 ;
-: FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000 ;
-
-: STD_INPUT_HANDLE  -10 ;
-: STD_OUTPUT_HANDLE -11 ;
-: STD_ERROR_HANDLE  -12 ;
-
-: INVALID_HANDLE_VALUE -1 <alien> ;
-: INVALID_FILE_SIZE HEX: FFFFFFFF ;
-
-: INFINITE HEX: FFFFFFFF ;
-
-: GetStdHandle ( id -- handle )
-    "void*" "kernel32" "GetStdHandle" [ "int" ] alien-invoke ; 
-
-: GetFileSize ( handle out -- int )
-    "int" "kernel32" "GetFileSize" [ "void*" "void*" ] alien-invoke ; 
-
-: SetConsoleTextAttribute ( handle attrs -- ? )
-    "bool" "kernel32" "SetConsoleTextAttribute" [ "void*" "int" ] 
-    alien-invoke ;
-
-: GetConsoleTitle ( buf size -- len )
-    "int" "kernel32" "GetConsoleTitleA" [ "int" "int" ] alien-invoke ;
-
-: SetConsoleTitle ( str -- ? )
-    "bool" "kernel32" "SetConsoleTitleA" [ "char*" ] alien-invoke ;
-
-: ReadFile ( handle buffer len out-len overlapped -- ? )
-    "bool" "kernel32" "ReadFile" 
-    [ "void*" "int" "int" "void*" "overlapped-ext*" ]
-    alien-invoke ;
-
-: WriteFile ( handle buffer len out-len overlapped -- ? )
-    "bool" "kernel32" "WriteFile"
-    [ "void*" "int" "int" "void*" "overlapped-ext*" ]
-    alien-invoke ;
-
-: CreateIoCompletionPort ( handle existing-port key numthreads -- )
-    "void*" "kernel32" "CreateIoCompletionPort"
-    [ "void*" "void*" "void*" "int" ]
-    alien-invoke ;
-
-: GetQueuedCompletionStatus 
-    ( port out-len out-key out-overlapped timeout -- ? )
-    "bool" "kernel32" "GetQueuedCompletionStatus"
-    [ "void*" "void*" "void*" "void*" "int" ]
-    alien-invoke ;
-
-: CreateFile ( name access sharemode security create flags template -- handle )
-    "void*" "kernel32" "CreateFileA"
-    [ "char*" "int" "int" "void*" "int" "int" "void*" ]
-    alien-invoke ;
-
-: CloseHandle ( handle -- ? )
-    "bool" "kernel32" "CloseHandle" [ "void*" ] alien-invoke ;
-
-: CancelIo ( handle -- ) 
-    "bool" "kernel32" "CancelIo" [ "void*" ] alien-invoke drop ;
-
diff --git a/library/windows/win32-server.factor b/library/windows/win32-server.factor
deleted file mode 100644 (file)
index 3d6ac78..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-! $Id: win32-server.factor,v 1.13 2006/01/28 20:49:31 spestov Exp $
-!
-! Copyright (C) 2004, 2005 Mackenzie Straight.
-! 
-! Redistribution and use in source and binary forms, with or without
-! modification, are permitted provided that the following conditions are met:
-! 
-! 1. Redistributions of source code must retain the above copyright notice,
-!    this list of conditions and the following disclaimer.
-! 
-! 2. Redistributions in binary form must reproduce the above copyright notice,
-!    this list of conditions and the following disclaimer in the documentation
-!    and/or other materials provided with the distribution.
-! 
-! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-IN: win32-stream
-USING: alien errors generic kernel kernel-internals lists math namespaces
-       prettyprint sequences io strings threads win32-api
-       win32-io-internals io-internals ;
-
-TUPLE: win32-server this ;
-TUPLE: win32-client-stream host port ;
-SYMBOL: winsock
-SYMBOL: socket
-
-: maybe-init-winsock ( -- )
-    winsock get [
-        HEX: 0202 <wsadata> WSAStartup drop winsock on
-    ] unless ;
-
-: handle-socket-error ( -- )
-    WSAGetLastError [
-      ERROR_IO_PENDING ERROR_SUCCESS
-    ] member? [
-      WSAGetLastError win32-error-message throw 
-    ] unless ;
-
-: new-socket ( -- socket )
-    AF_INET SOCK_STREAM 0 f f WSA_FLAG_OVERLAPPED WSASocket ;
-
-: setup-sockaddr ( port -- sockaddr )
-    "sockaddr-in" <c-object> swap
-    htons over set-sockaddr-in-port
-    INADDR_ANY over set-sockaddr-in-addr 
-    AF_INET over set-sockaddr-in-family ;
-
-: bind-socket ( port socket -- )
-    swap setup-sockaddr "sockaddr-in" c-size wsa-bind zero? [
-        handle-socket-error
-    ] unless ;
-
-: listen-socket ( socket -- )
-    20 wsa-listen zero? [ handle-socket-error ] unless ;
-
-: sockaddr> ( sockaddr -- port host )
-    dup sockaddr-in-port ntohs swap sockaddr-in-addr inet-ntoa ;
-
-: extract-remote-host ( buffer -- port host )
-    buffer-ptr <alien> 0 32 32 0 <int> 
-                               0 <int>
-                               0 <int> 
-                        dup >r 0 <int>
-    GetAcceptExSockaddrs r> *int <alien> sockaddr> ;
-
-C: win32-client-stream ( buf stream -- stream )
-    [ set-delegate extract-remote-host ] keep
-    [ set-win32-client-stream-host ] keep 
-    [ set-win32-client-stream-port ] keep ;
-
-M: win32-client-stream client-stream-host win32-client-stream-host ;
-M: win32-client-stream client-stream-port win32-client-stream-port ;
-
-C: win32-server ( port -- server )
-    swap [ 
-        maybe-init-winsock new-socket swap over bind-socket dup listen-socket 
-        dup add-completion
-        socket set
-        dup stream set
-    ] make-hash over set-win32-server-this ;
-
-M: win32-server stream-close ( server -- )
-    win32-server-this [ socket get CloseHandle drop ] bind ;
-
-M: win32-server set-timeout ( timeout server -- )
-    win32-server-this [ timeout set ] bind ;
-
-M: win32-server expire ( -- )
-    win32-server-this [
-        timeout get [ millis cutoff get > [ socket get CancelIo ] when ] when
-    ] bind ;
-
-: client-sockaddr ( host port -- sockaddr )
-    setup-sockaddr [
-        >r gethostbyname handle-socket-error hostent-addr
-        r> set-sockaddr-in-addr
-    ] keep ;
-
-IN: io
-: accept ( server -- client )
-    win32-server-this [
-        update-timeout new-socket 64 <buffer>
-        [
-            stream get alloc-io-callback init-overlapped
-            >r >r >r socket get r> r> 
-            buffer-ptr <alien> 0 32 32 f r> AcceptEx
-            [ handle-socket-error ] unless stop
-        ] callcc1 pending-error drop
-        swap dup add-completion <win32-stream> <line-reader> 
-        dupd <win32-client-stream> swap buffer-free
-    ] bind ;
-
-: <client> ( host port -- stream )
-    maybe-init-winsock client-sockaddr new-socket
-    [ swap "sockaddr-in" c-size connect drop handle-socket-error ] keep 
-    dup add-completion <win32-stream> <line-reader> ;
-
diff --git a/library/windows/win32-stream.factor b/library/windows/win32-stream.factor
deleted file mode 100644 (file)
index 943f1a2..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-! $Id: win32-stream.factor,v 1.16 2006/01/28 20:49:31 spestov Exp $
-!
-! Copyright (C) 2004, 2005 Mackenzie Straight.
-! 
-! Redistribution and use in source and binary forms, with or without
-! modification, are permitted provided that the following conditions are met:
-! 
-! 1. Redistributions of source code must retain the above copyright notice,
-!    this list of conditions and the following disclaimer.
-! 
-! 2. Redistributions in binary form must reproduce the above copyright notice,
-!    this list of conditions and the following disclaimer in the documentation
-!    and/or other materials provided with the distribution.
-! 
-! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-IN: win32-stream
-USING: alien generic io-internals kernel
-kernel-internals lists math namespaces prettyprint sequences
-io strings threads win32-api win32-io-internals ;
-
-TUPLE: win32-stream this ; ! FIXME: rewrite using tuples
-GENERIC: win32-stream-handle
-GENERIC: do-write
-
-SYMBOL: handle
-SYMBOL: in-buffer
-SYMBOL: out-buffer
-SYMBOL: fileptr
-SYMBOL: file-size
-SYMBOL: stream
-SYMBOL: timeout
-SYMBOL: cutoff
-
-: pending-error ( len/status -- len/status )
-    dup [ win32-throw-error ] unless ;
-
-: init-overlapped ( overlapped -- overlapped )
-    0 over set-overlapped-ext-internal
-    0 over set-overlapped-ext-internal-high
-    fileptr get dup 0 ? over set-overlapped-ext-offset
-    0 over set-overlapped-ext-offset-high
-    f over set-overlapped-ext-event ;
-
-: update-file-pointer ( whence -- )
-    file-size get [ fileptr [ + ] change ] [ drop ] if ;
-
-: update-timeout ( -- )
-    timeout get [ millis + cutoff set ] when* ;
-
-: flush-output ( -- ) 
-    update-timeout [
-        stream get alloc-io-callback init-overlapped >r
-        handle get out-buffer get [ buffer@ ] keep buffer-length
-        f r> WriteFile [ handle-io-error ] unless stop
-    ] callcc1 pending-error
-
-    dup update-file-pointer
-    out-buffer get [ buffer-consume ] keep 
-    buffer-length 0 > [ flush-output ] when ;
-
-: maybe-flush-output ( -- )
-    out-buffer get buffer-length 0 > [ flush-output ] when ;
-
-M: integer do-write ( int -- )
-    out-buffer get [ buffer-capacity zero? [ flush-output ] when ] keep
-    >r ch>string r> >buffer ;
-
-M: string do-write ( str -- )
-    dup length out-buffer get buffer-capacity <= [
-        out-buffer get >buffer
-    ] [
-        dup length out-buffer get buffer-size > [
-            dup length out-buffer get extend-buffer do-write
-        ] [ flush-output do-write ] if
-    ] if ;
-
-: fill-input ( -- ) 
-    update-timeout [
-        stream get alloc-io-callback init-overlapped >r
-        handle get in-buffer get [ buffer@ ] keep 
-        buffer-capacity file-size get [ fileptr get - min ] when*
-        f r>
-        ReadFile [ handle-io-error ] unless stop
-    ] callcc1 pending-error
-
-    dup in-buffer get n>buffer update-file-pointer ;
-
-: consume-input ( count -- str ) 
-    in-buffer get buffer-length zero? [ fill-input ] when
-    in-buffer get buffer-size min
-    dup in-buffer get buffer-first-n
-    swap in-buffer get buffer-consume ;
-
-: >string-or-f ( sbuf -- str-or-? )
-    dup length 0 > [ >string ] [ drop f ] if ;
-
-: do-read-count ( sbuf count -- str )
-    dup zero? [ 
-        drop >string 
-    ] [
-        dup consume-input
-        dup length dup zero? [
-            3drop >string-or-f
-        ] [
-            >r swap r> - >r swap [ swap nappend ] keep r> do-read-count
-        ] if
-    ] if ;
-
-: peek-input ( -- str )
-    1 in-buffer get buffer-first-n ;
-
-M: win32-stream stream-write ( str stream -- )
-    win32-stream-this [ do-write ] bind ;
-
-M: win32-stream stream-write1 ( char stream -- )
-    win32-stream-this [ >fixnum do-write ] bind ;
-
-M: win32-stream stream-read ( count stream -- str )
-    win32-stream-this [ dup <sbuf> swap do-read-count ] bind ;
-
-M: win32-stream stream-read1 ( stream -- str )
-    win32-stream-this [
-        1 consume-input dup length zero? [ drop f ] when first 
-    ] bind ;
-
-M: win32-stream stream-readln ( stream -- str )
-    win32-stream-this [ readln ] bind ;
-
-M: win32-stream stream-terpri
-    win32-stream-this [ CHAR: \n do-write ] bind ;
-
-M: win32-stream stream-flush ( stream -- )
-    win32-stream-this [ maybe-flush-output ] bind ;
-
-M: win32-stream stream-close ( stream -- )
-    win32-stream-this [
-        maybe-flush-output
-        handle get CloseHandle drop 
-        in-buffer get buffer-free 
-        out-buffer get buffer-free
-    ] bind ;
-
-M: win32-stream stream-format ( string style stream -- )
-    win32-stream-this [ drop do-write ] bind ;
-
-M: win32-stream win32-stream-handle ( stream -- handle )
-    win32-stream-this [ handle get ] bind ;
-
-M: win32-stream set-timeout ( timeout stream -- )
-    win32-stream-this [ timeout set ] bind ;
-
-M: win32-stream expire ( stream -- )
-    win32-stream-this [
-        timeout get [ millis cutoff get > [ handle get CancelIo ] when ] when
-    ] bind ;
-
-M: win32-stream with-nested-stream ( quot style stream -- )
-    win32-stream-this [ drop stream get swap with-stream* ] bind ;
-
-C: win32-stream ( handle -- stream )
-    swap [
-        dup f GetFileSize dup -1 = not [
-            file-size set
-        ] [ drop f file-size set ] if
-        handle set 
-        4096 <buffer> in-buffer set 
-        4096 <buffer> out-buffer set
-        0 fileptr set 
-        dup stream set
-    ] make-hash over set-win32-stream-this ;
-
-: <win32-file-reader> ( path -- stream )
-    t f win32-open-file <win32-stream> <line-reader> ;
-
-: <win32-file-writer> ( path -- stream )
-    f t win32-open-file <win32-stream> ;
-
diff --git a/library/windows/windows-messages.factor b/library/windows/windows-messages.factor
deleted file mode 100644 (file)
index 3c1f5ad..0000000
+++ /dev/null
@@ -1,1003 +0,0 @@
-USING: hashtables kernel math namespaces parser prettyprint words ;
-IN: win32-api-messages
-
-SYMBOL: windows-messages
-
-USE: inspector
-
-: maybe-create-windows-messages
-    windows-messages get hashtable? 
-    [ H{ } clone global [ windows-messages set ] bind ] unless ;
-
-: add-windows-message ( -- )
-    word [ unparse ] keep execute maybe-create-windows-messages
-    windows-messages get set-hash ; parsing
-
-: get-windows-message-name ( n -- name )
-    windows-messages get hash* [ drop "unknown message" ] unless ;
-
-: WM_NULL HEX: 0000 ; inline add-windows-message
-: WM_CREATE HEX: 0001 ; inline add-windows-message
-: WM_DESTROY HEX: 0002 ; inline add-windows-message
-: WM_MOVE HEX: 0003 ; inline add-windows-message
-: WM_SIZE HEX: 0005 ; inline add-windows-message
-: WM_ACTIVATE HEX: 0006 ; inline add-windows-message
-: WM_SETFOCUS HEX: 0007 ; inline add-windows-message
-: WM_KILLFOCUS HEX: 0008 ; inline add-windows-message
-: WM_ENABLE HEX: 000A ; inline add-windows-message
-: WM_SETREDRAW HEX: 000B ; inline add-windows-message
-: WM_SETTEXT HEX: 000C ; inline add-windows-message
-: WM_GETTEXT HEX: 000D ; inline add-windows-message
-: WM_GETTEXTLENGTH HEX: 000E ; inline add-windows-message
-: WM_PAINT HEX: 000F ; inline add-windows-message
-: WM_CLOSE HEX: 0010 ; inline add-windows-message
-: WM_QUERYENDSESSION HEX: 0011 ; inline add-windows-message
-: WM_QUERYOPEN HEX: 0013 ; inline add-windows-message
-: WM_ENDSESSION HEX: 0016 ; inline add-windows-message
-: WM_QUIT HEX: 0012 ; inline add-windows-message
-: WM_ERASEBKGND HEX: 0014 ; inline add-windows-message
-: WM_SYSCOLORCHANGE HEX: 0015 ; inline add-windows-message
-: WM_SHOWWINDOW HEX: 0018 ; inline add-windows-message
-: WM_WININICHANGE HEX: 001A ; inline add-windows-message
-: WM_SETTINGCHANGE HEX: 001A ; inline add-windows-message
-: WM_DEVMODECHANGE HEX: 001B ; inline add-windows-message
-: WM_ACTIVATEAPP HEX: 001C ; inline add-windows-message
-: WM_FONTCHANGE HEX: 001D ; inline add-windows-message
-: WM_TIMECHANGE HEX: 001E ; inline add-windows-message
-: WM_CANCELMODE HEX: 001F ; inline add-windows-message
-: WM_SETCURSOR HEX: 0020 ; inline add-windows-message
-: WM_MOUSEACTIVATE HEX: 0021 ; inline add-windows-message
-: WM_CHILDACTIVATE HEX: 0022 ; inline add-windows-message
-: WM_QUEUESYNC HEX: 0023 ; inline add-windows-message
-: WM_GETMINMAXINFO HEX: 0024 ; inline add-windows-message
-: WM_PAINTICON HEX: 0026 ; inline add-windows-message
-: WM_ICONERASEBKGND HEX: 0027 ; inline add-windows-message
-: WM_NEXTDLGCTL HEX: 0028 ; inline add-windows-message
-: WM_SPOOLERSTATUS HEX: 002A ; inline add-windows-message
-: WM_DRAWITEM HEX: 002B ; inline add-windows-message
-: WM_MEASUREITEM HEX: 002C ; inline add-windows-message
-: WM_DELETEITEM HEX: 002D ; inline add-windows-message
-: WM_VKEYTOITEM HEX: 002E ; inline add-windows-message
-: WM_CHARTOITEM HEX: 002F ; inline add-windows-message
-: WM_SETFONT HEX: 0030 ; inline add-windows-message
-: WM_GETFONT HEX: 0031 ; inline add-windows-message
-: WM_SETHOTKEY HEX: 0032 ; inline add-windows-message
-: WM_GETHOTKEY HEX: 0033 ; inline add-windows-message
-: WM_QUERYDRAGICON HEX: 0037 ; inline add-windows-message
-: WM_COMPAREITEM HEX: 0039 ; inline add-windows-message
-: WM_GETOBJECT HEX: 003D ; inline add-windows-message
-: WM_COMPACTING HEX: 0041 ; inline add-windows-message
-: WM_COMMNOTIFY HEX: 0044 ; inline add-windows-message
-: WM_WINDOWPOSCHANGING HEX: 0046 ; inline add-windows-message
-: WM_WINDOWPOSCHANGED HEX: 0047 ; inline add-windows-message
-: WM_POWER HEX: 0048 ; inline add-windows-message
-: WM_COPYDATA HEX: 004A ; inline add-windows-message
-: WM_CANCELJOURNAL HEX: 004B ; inline add-windows-message
-: WM_NOTIFY HEX: 004E ; inline add-windows-message
-: WM_INPUTLANGCHANGEREQUEST HEX: 0050 ; inline add-windows-message
-: WM_INPUTLANGCHANGE HEX: 0051 ; inline add-windows-message
-: WM_TCARD HEX: 0052 ; inline add-windows-message
-: WM_HELP HEX: 0053 ; inline add-windows-message
-: WM_USERCHANGED HEX: 0054 ; inline add-windows-message
-: WM_NOTIFYFORMAT HEX: 0055 ; inline add-windows-message
-: WM_CONTEXTMENU HEX: 007B ; inline add-windows-message
-: WM_STYLECHANGING HEX: 007C ; inline add-windows-message
-: WM_STYLECHANGED HEX: 007D ; inline add-windows-message
-: WM_DISPLAYCHANGE HEX: 007E ; inline add-windows-message
-: WM_GETICON HEX: 007F ; inline add-windows-message
-: WM_SETICON HEX: 0080 ; inline add-windows-message
-: WM_NCCREATE HEX: 0081 ; inline add-windows-message
-: WM_NCDESTROY HEX: 0082 ; inline add-windows-message
-: WM_NCCALCSIZE HEX: 0083 ; inline add-windows-message
-: WM_NCHITTEST HEX: 0084 ; inline add-windows-message
-: WM_NCPAINT HEX: 0085 ; inline add-windows-message
-: WM_NCACTIVATE HEX: 0086 ; inline add-windows-message
-: WM_GETDLGCODE HEX: 0087 ; inline add-windows-message
-: WM_SYNCPAINT HEX: 0088 ; inline add-windows-message
-: WM_NCMOUSEMOVE HEX: 00A0 ; inline add-windows-message
-: WM_NCLBUTTONDOWN HEX: 00A1 ; inline add-windows-message
-: WM_NCLBUTTONUP HEX: 00A2 ; inline add-windows-message
-: WM_NCLBUTTONDBLCLK HEX: 00A3 ; inline add-windows-message
-: WM_NCRBUTTONDOWN HEX: 00A4 ; inline add-windows-message
-: WM_NCRBUTTONUP HEX: 00A5 ; inline add-windows-message
-: WM_NCRBUTTONDBLCLK HEX: 00A6 ; inline add-windows-message
-: WM_NCMBUTTONDOWN HEX: 00A7 ; inline add-windows-message
-: WM_NCMBUTTONUP HEX: 00A8 ; inline add-windows-message
-: WM_NCMBUTTONDBLCLK HEX: 00A9 ; inline add-windows-message
-: WM_NCXBUTTONDOWN HEX: 00AB ; inline add-windows-message
-: WM_NCXBUTTONUP HEX: 00AC ; inline add-windows-message
-: WM_NCXBUTTONDBLCLK HEX: 00AD ; inline add-windows-message
-: WM_INPUT HEX: 00FF ; inline add-windows-message
-: WM_KEYFIRST HEX: 0100 ; inline add-windows-message
-: WM_KEYDOWN HEX: 0100 ; inline add-windows-message
-: WM_KEYUP HEX: 0101 ; inline add-windows-message
-: WM_CHAR HEX: 0102 ; inline add-windows-message
-: WM_DEADCHAR HEX: 0103 ; inline add-windows-message
-: WM_SYSKEYDOWN HEX: 0104 ; inline add-windows-message
-: WM_SYSKEYUP HEX: 0105 ; inline add-windows-message
-: WM_SYSCHAR HEX: 0106 ; inline add-windows-message
-: WM_SYSDEADCHAR HEX: 0107 ; inline add-windows-message
-: WM_UNICHAR HEX: 0109 ; inline add-windows-message
-: WM_KEYLAST_NT501 HEX: 0109 ; inline add-windows-message
-: UNICODE_NOCHAR HEX: FFFF ; inline add-windows-message
-: WM_KEYLAST_PRE501 HEX: 0108 ; inline add-windows-message
-: WM_IME_STARTCOMPOSITION HEX: 010D ; inline add-windows-message
-: WM_IME_ENDCOMPOSITION HEX: 010E ; inline add-windows-message
-: WM_IME_COMPOSITION HEX: 010F ; inline add-windows-message
-: WM_IME_KEYLAST HEX: 010F ; inline add-windows-message
-: WM_INITDIALOG HEX: 0110 ; inline add-windows-message
-: WM_COMMAND HEX: 0111 ; inline add-windows-message
-: WM_SYSCOMMAND HEX: 0112 ; inline add-windows-message
-: WM_TIMER HEX: 0113 ; inline add-windows-message
-: WM_HSCROLL HEX: 0114 ; inline add-windows-message
-: WM_VSCROLL HEX: 0115 ; inline add-windows-message
-: WM_INITMENU HEX: 0116 ; inline add-windows-message
-: WM_INITMENUPOPUP HEX: 0117 ; inline add-windows-message
-: WM_MENUSELECT HEX: 011F ; inline add-windows-message
-: WM_MENUCHAR HEX: 0120 ; inline add-windows-message
-: WM_ENTERIDLE HEX: 0121 ; inline add-windows-message
-: WM_MENURBUTTONUP HEX: 0122 ; inline add-windows-message
-: WM_MENUDRAG HEX: 0123 ; inline add-windows-message
-: WM_MENUGETOBJECT HEX: 0124 ; inline add-windows-message
-: WM_UNINITMENUPOPUP HEX: 0125 ; inline add-windows-message
-: WM_MENUCOMMAND HEX: 0126 ; inline add-windows-message
-: WM_CHANGEUISTATE HEX: 0127 ; inline add-windows-message
-: WM_UPDATEUISTATE HEX: 0128 ; inline add-windows-message
-: WM_QUERYUISTATE HEX: 0129 ; inline add-windows-message
-: WM_CTLCOLORMSGBOX HEX: 0132 ; inline add-windows-message
-: WM_CTLCOLOREDIT HEX: 0133 ; inline add-windows-message
-: WM_CTLCOLORLISTBOX HEX: 0134 ; inline add-windows-message
-: WM_CTLCOLORBTN HEX: 0135 ; inline add-windows-message
-: WM_CTLCOLORDLG HEX: 0136 ; inline add-windows-message
-: WM_CTLCOLORSCROLLBAR HEX: 0137 ; inline add-windows-message
-: WM_CTLCOLORSTATIC HEX: 0138 ; inline add-windows-message
-: WM_MOUSEFIRST HEX: 0200 ; inline add-windows-message
-: WM_MOUSEMOVE HEX: 0200 ; inline add-windows-message
-: WM_LBUTTONDOWN HEX: 0201 ; inline add-windows-message
-: WM_LBUTTONUP HEX: 0202 ; inline add-windows-message
-: WM_LBUTTONDBLCLK HEX: 0203 ; inline add-windows-message
-: WM_RBUTTONDOWN HEX: 0204 ; inline add-windows-message
-: WM_RBUTTONUP HEX: 0205 ; inline add-windows-message
-: WM_RBUTTONDBLCLK HEX: 0206 ; inline add-windows-message
-: WM_MBUTTONDOWN HEX: 0207 ; inline add-windows-message
-: WM_MBUTTONUP HEX: 0208 ; inline add-windows-message
-: WM_MBUTTONDBLCLK HEX: 0209 ; inline add-windows-message
-: WM_MOUSEWHEEL HEX: 020A ; inline add-windows-message
-: WM_XBUTTONDOWN HEX: 020B ; inline add-windows-message
-: WM_XBUTTONUP HEX: 020C ; inline add-windows-message
-: WM_XBUTTONDBLCLK HEX: 020D ; inline add-windows-message
-: WM_MOUSELAST_5 HEX: 020D ; inline add-windows-message
-: WM_MOUSELAST_4 HEX: 020A ; inline add-windows-message
-: WM_MOUSELAST_PRE_4 HEX: 0209 ; inline add-windows-message
-: WM_PARENTNOTIFY HEX: 0210 ; inline add-windows-message
-: WM_ENTERMENULOOP HEX: 0211 ; inline add-windows-message
-: WM_EXITMENULOOP HEX: 0212 ; inline add-windows-message
-: WM_NEXTMENU HEX: 0213 ; inline add-windows-message
-: WM_SIZING HEX: 0214 ; inline add-windows-message
-: WM_CAPTURECHANGED HEX: 0215 ; inline add-windows-message
-: WM_MOVING HEX: 0216 ; inline add-windows-message
-: WM_POWERBROADCAST HEX: 0218 ; inline add-windows-message
-: WM_DEVICECHANGE HEX: 0219 ; inline add-windows-message
-: WM_MDICREATE HEX: 0220 ; inline add-windows-message
-: WM_MDIDESTROY HEX: 0221 ; inline add-windows-message
-: WM_MDIACTIVATE HEX: 0222 ; inline add-windows-message
-: WM_MDIRESTORE HEX: 0223 ; inline add-windows-message
-: WM_MDINEXT HEX: 0224 ; inline add-windows-message
-: WM_MDIMAXIMIZE HEX: 0225 ; inline add-windows-message
-: WM_MDITILE HEX: 0226 ; inline add-windows-message
-: WM_MDICASCADE HEX: 0227 ; inline add-windows-message
-: WM_MDIICONARRANGE HEX: 0228 ; inline add-windows-message
-: WM_MDIGETACTIVE HEX: 0229 ; inline add-windows-message
-: WM_MDISETMENU HEX: 0230 ; inline add-windows-message
-: WM_ENTERSIZEMOVE HEX: 0231 ; inline add-windows-message
-: WM_EXITSIZEMOVE HEX: 0232 ; inline add-windows-message
-: WM_DROPFILES HEX: 0233 ; inline add-windows-message
-: WM_MDIREFRESHMENU HEX: 0234 ; inline add-windows-message
-: WM_IME_SETCONTEXT HEX: 0281 ; inline add-windows-message
-: WM_IME_NOTIFY HEX: 0282 ; inline add-windows-message
-: WM_IME_CONTROL HEX: 0283 ; inline add-windows-message
-: WM_IME_COMPOSITIONFULL HEX: 0284 ; inline add-windows-message
-: WM_IME_SELECT HEX: 0285 ; inline add-windows-message
-: WM_IME_CHAR HEX: 0286 ; inline add-windows-message
-: WM_IME_REQUEST HEX: 0288 ; inline add-windows-message
-: WM_IME_KEYDOWN HEX: 0290 ; inline add-windows-message
-: WM_IME_KEYUP HEX: 0291 ; inline add-windows-message
-: WM_MOUSEHOVER HEX: 02A1 ; inline add-windows-message
-: WM_MOUSELEAVE HEX: 02A3 ; inline add-windows-message
-: WM_NCMOUSEHOVER HEX: 02A0 ; inline add-windows-message
-: WM_NCMOUSELEAVE HEX: 02A2 ; inline add-windows-message
-: WM_WTSSESSION_CHANGE HEX: 02B1 ; inline add-windows-message
-: WM_TABLET_FIRST HEX: 02c0 ; inline add-windows-message
-: WM_TABLET_LAST HEX: 02df ; inline add-windows-message
-: WM_CUT HEX: 0300 ; inline add-windows-message
-: WM_COPY HEX: 0301 ; inline add-windows-message
-: WM_PASTE HEX: 0302 ; inline add-windows-message
-: WM_CLEAR HEX: 0303 ; inline add-windows-message
-: WM_UNDO HEX: 0304 ; inline add-windows-message
-: WM_RENDERFORMAT HEX: 0305 ; inline add-windows-message
-: WM_RENDERALLFORMATS HEX: 0306 ; inline add-windows-message
-: WM_DESTROYCLIPBOARD HEX: 0307 ; inline add-windows-message
-: WM_DRAWCLIPBOARD HEX: 0308 ; inline add-windows-message
-: WM_PAINTCLIPBOARD HEX: 0309 ; inline add-windows-message
-: WM_VSCROLLCLIPBOARD HEX: 030A ; inline add-windows-message
-: WM_SIZECLIPBOARD HEX: 030B ; inline add-windows-message
-: WM_ASKCBFORMATNAME HEX: 030C ; inline add-windows-message
-: WM_CHANGECBCHAIN HEX: 030D ; inline add-windows-message
-: WM_HSCROLLCLIPBOARD HEX: 030E ; inline add-windows-message
-: WM_QUERYNEWPALETTE HEX: 030F ; inline add-windows-message
-: WM_PALETTEISCHANGING HEX: 0310 ; inline add-windows-message
-: WM_PALETTECHANGED HEX: 0311 ; inline add-windows-message
-: WM_HOTKEY HEX: 0312 ; inline add-windows-message
-: WM_PRINT HEX: 0317 ; inline add-windows-message
-: WM_PRINTCLIENT HEX: 0318 ; inline add-windows-message
-: WM_APPCOMMAND HEX: 0319 ; inline add-windows-message
-: WM_THEMECHANGED HEX: 031A ; inline add-windows-message
-: WM_HANDHELDFIRST HEX: 0358 ; inline add-windows-message
-: WM_HANDHELDLAST HEX: 035F ; inline add-windows-message
-: WM_AFXFIRST HEX: 0360 ; inline add-windows-message
-: WM_AFXLAST HEX: 037F ; inline add-windows-message
-: WM_PENWINFIRST HEX: 0380 ; inline add-windows-message
-: WM_PENWINLAST HEX: 038F ; inline add-windows-message
-: WM_APP HEX: 8000 ; inline add-windows-message
-: WM_USER HEX: 0400 ; inline add-windows-message
-: EM_GETSEL HEX: 00B0 ; inline add-windows-message
-: EM_SETSEL HEX: 00B1 ; inline add-windows-message
-: EM_GETRECT HEX: 00B2 ; inline add-windows-message
-: EM_SETRECT HEX: 00B3 ; inline add-windows-message
-: EM_SETRECTNP HEX: 00B4 ; inline add-windows-message
-: EM_SCROLL HEX: 00B5 ; inline add-windows-message
-: EM_LINESCROLL HEX: 00B6 ; inline add-windows-message
-: EM_SCROLLCARET HEX: 00B7 ; inline add-windows-message
-: EM_GETMODIFY HEX: 00B8 ; inline add-windows-message
-: EM_SETMODIFY HEX: 00B9 ; inline add-windows-message
-: EM_GETLINECOUNT HEX: 00BA ; inline add-windows-message
-: EM_LINEINDEX HEX: 00BB ; inline add-windows-message
-: EM_SETHANDLE HEX: 00BC ; inline add-windows-message
-: EM_GETHANDLE HEX: 00BD ; inline add-windows-message
-: EM_GETTHUMB HEX: 00BE ; inline add-windows-message
-: EM_LINELENGTH HEX: 00C1 ; inline add-windows-message
-: EM_REPLACESEL HEX: 00C2 ; inline add-windows-message
-: EM_GETLINE HEX: 00C4 ; inline add-windows-message
-: EM_LIMITTEXT HEX: 00C5 ; inline add-windows-message
-: EM_CANUNDO HEX: 00C6 ; inline add-windows-message
-: EM_UNDO HEX: 00C7 ; inline add-windows-message
-: EM_FMTLINES HEX: 00C8 ; inline add-windows-message
-: EM_LINEFROMCHAR HEX: 00C9 ; inline add-windows-message
-: EM_SETTABSTOPS HEX: 00CB ; inline add-windows-message
-: EM_SETPASSWORDCHAR HEX: 00CC ; inline add-windows-message
-: EM_EMPTYUNDOBUFFER HEX: 00CD ; inline add-windows-message
-: EM_GETFIRSTVISIBLELINE HEX: 00CE ; inline add-windows-message
-: EM_SETREADONLY HEX: 00CF ; inline add-windows-message
-: EM_SETWORDBREAKPROC HEX: 00D0 ; inline add-windows-message
-: EM_GETWORDBREAKPROC HEX: 00D1 ; inline add-windows-message
-: EM_GETPASSWORDCHAR HEX: 00D2 ; inline add-windows-message
-: EM_SETMARGINS HEX: 00D3 ; inline add-windows-message
-: EM_GETMARGINS HEX: 00D4 ; inline add-windows-message
-: EM_SETLIMITTEXT EM_LIMITTEXT ; inline add-windows-message
-: EM_GETLIMITTEXT HEX: 00D5 ; inline add-windows-message
-: EM_POSFROMCHAR HEX: 00D6 ; inline add-windows-message
-: EM_CHARFROMPOS HEX: 00D7 ; inline add-windows-message
-: EM_SETIMESTATUS HEX: 00D8 ; inline add-windows-message
-: EM_GETIMESTATUS HEX: 00D9 ; inline add-windows-message
-: BM_GETCHECK HEX: 00F0 ; inline add-windows-message
-: BM_SETCHECK HEX: 00F1 ; inline add-windows-message
-: BM_GETSTATE HEX: 00F2 ; inline add-windows-message
-: BM_SETSTATE HEX: 00F3 ; inline add-windows-message
-: BM_SETSTYLE HEX: 00F4 ; inline add-windows-message
-: BM_CLICK HEX: 00F5 ; inline add-windows-message
-: BM_GETIMAGE HEX: 00F6 ; inline add-windows-message
-: BM_SETIMAGE HEX: 00F7 ; inline add-windows-message
-: STM_SETICON HEX: 0170 ; inline add-windows-message
-: STM_GETICON HEX: 0171 ; inline add-windows-message
-: STM_SETIMAGE HEX: 0172 ; inline add-windows-message
-: STM_GETIMAGE HEX: 0173 ; inline add-windows-message
-: STM_MSGMAX HEX: 0174 ; inline add-windows-message
-: DM_GETDEFID WM_USER ; inline add-windows-message
-: DM_SETDEFID  WM_USER 1 + ; inline add-windows-message
-: DM_REPOSITION WM_USER 2 + ; inline add-windows-message
-: LB_ADDSTRING HEX: 0180 ; inline add-windows-message
-: LB_INSERTSTRING HEX: 0181 ; inline add-windows-message
-: LB_DELETESTRING HEX: 0182 ; inline add-windows-message
-: LB_SELITEMRANGEEX HEX: 0183 ; inline add-windows-message
-: LB_RESETCONTENT HEX: 0184 ; inline add-windows-message
-: LB_SETSEL HEX: 0185 ; inline add-windows-message
-: LB_SETCURSEL HEX: 0186 ; inline add-windows-message
-: LB_GETSEL HEX: 0187 ; inline add-windows-message
-: LB_GETCURSEL HEX: 0188 ; inline add-windows-message
-: LB_GETTEXT HEX: 0189 ; inline add-windows-message
-: LB_GETTEXTLEN HEX: 018A ; inline add-windows-message
-: LB_GETCOUNT HEX: 018B ; inline add-windows-message
-: LB_SELECTSTRING HEX: 018C ; inline add-windows-message
-: LB_DIR HEX: 018D ; inline add-windows-message
-: LB_GETTOPINDEX HEX: 018E ; inline add-windows-message
-: LB_FINDSTRING HEX: 018F ; inline add-windows-message
-: LB_GETSELCOUNT HEX: 0190 ; inline add-windows-message
-: LB_GETSELITEMS HEX: 0191 ; inline add-windows-message
-: LB_SETTABSTOPS HEX: 0192 ; inline add-windows-message
-: LB_GETHORIZONTALEXTENT HEX: 0193 ; inline add-windows-message
-: LB_SETHORIZONTALEXTENT HEX: 0194 ; inline add-windows-message
-: LB_SETCOLUMNWIDTH HEX: 0195 ; inline add-windows-message
-: LB_ADDFILE HEX: 0196 ; inline add-windows-message
-: LB_SETTOPINDEX HEX: 0197 ; inline add-windows-message
-: LB_GETITEMRECT HEX: 0198 ; inline add-windows-message
-: LB_GETITEMDATA HEX: 0199 ; inline add-windows-message
-: LB_SETITEMDATA HEX: 019A ; inline add-windows-message
-: LB_SELITEMRANGE HEX: 019B ; inline add-windows-message
-: LB_SETANCHORINDEX HEX: 019C ; inline add-windows-message
-: LB_GETANCHORINDEX HEX: 019D ; inline add-windows-message
-: LB_SETCARETINDEX HEX: 019E ; inline add-windows-message
-: LB_GETCARETINDEX HEX: 019F ; inline add-windows-message
-: LB_SETITEMHEIGHT HEX: 01A0 ; inline add-windows-message
-: LB_GETITEMHEIGHT HEX: 01A1 ; inline add-windows-message
-: LB_FINDSTRINGEXACT HEX: 01A2 ; inline add-windows-message
-: LB_SETLOCALE HEX: 01A5 ; inline add-windows-message
-: LB_GETLOCALE HEX: 01A6 ; inline add-windows-message
-: LB_SETCOUNT HEX: 01A7 ; inline add-windows-message
-: LB_INITSTORAGE HEX: 01A8 ; inline add-windows-message
-: LB_ITEMFROMPOINT HEX: 01A9 ; inline add-windows-message
-: LB_MULTIPLEADDSTRING HEX: 01B1 ; inline add-windows-message
-: LB_GETLISTBOXINFO HEX: 01B2 ; inline add-windows-message
-: LB_MSGMAX_501 HEX: 01B3 ; inline add-windows-message
-: LB_MSGMAX_WCE4 HEX: 01B1 ; inline add-windows-message
-: LB_MSGMAX_4 HEX: 01B0 ; inline add-windows-message
-: LB_MSGMAX_PRE4 HEX: 01A8 ; inline add-windows-message
-: CB_GETEDITSEL HEX: 0140 ; inline add-windows-message
-: CB_LIMITTEXT HEX: 0141 ; inline add-windows-message
-: CB_SETEDITSEL HEX: 0142 ; inline add-windows-message
-: CB_ADDSTRING HEX: 0143 ; inline add-windows-message
-: CB_DELETESTRING HEX: 0144 ; inline add-windows-message
-: CB_DIR HEX: 0145 ; inline add-windows-message
-: CB_GETCOUNT HEX: 0146 ; inline add-windows-message
-: CB_GETCURSEL HEX: 0147 ; inline add-windows-message
-: CB_GETLBTEXT HEX: 0148 ; inline add-windows-message
-: CB_GETLBTEXTLEN HEX: 0149 ; inline add-windows-message
-: CB_INSERTSTRING HEX: 014A ; inline add-windows-message
-: CB_RESETCONTENT HEX: 014B ; inline add-windows-message
-: CB_FINDSTRING HEX: 014C ; inline add-windows-message
-: CB_SELECTSTRING HEX: 014D ; inline add-windows-message
-: CB_SETCURSEL HEX: 014E ; inline add-windows-message
-: CB_SHOWDROPDOWN HEX: 014F ; inline add-windows-message
-: CB_GETITEMDATA HEX: 0150 ; inline add-windows-message
-: CB_SETITEMDATA HEX: 0151 ; inline add-windows-message
-: CB_GETDROPPEDCONTROLRECT HEX: 0152 ; inline add-windows-message
-: CB_SETITEMHEIGHT HEX: 0153 ; inline add-windows-message
-: CB_GETITEMHEIGHT HEX: 0154 ; inline add-windows-message
-: CB_SETEXTENDEDUI HEX: 0155 ; inline add-windows-message
-: CB_GETEXTENDEDUI HEX: 0156 ; inline add-windows-message
-: CB_GETDROPPEDSTATE HEX: 0157 ; inline add-windows-message
-: CB_FINDSTRINGEXACT HEX: 0158 ; inline add-windows-message
-: CB_SETLOCALE HEX: 0159 ; inline add-windows-message
-: CB_GETLOCALE HEX: 015A ; inline add-windows-message
-: CB_GETTOPINDEX HEX: 015B ; inline add-windows-message
-: CB_SETTOPINDEX HEX: 015C ; inline add-windows-message
-: CB_GETHORIZONTALEXTENT HEX: 015d ; inline add-windows-message
-: CB_SETHORIZONTALEXTENT HEX: 015e ; inline add-windows-message
-: CB_GETDROPPEDWIDTH HEX: 015f ; inline add-windows-message
-: CB_SETDROPPEDWIDTH HEX: 0160 ; inline add-windows-message
-: CB_INITSTORAGE HEX: 0161 ; inline add-windows-message
-: CB_MULTIPLEADDSTRING HEX: 0163 ; inline add-windows-message
-: CB_GETCOMBOBOXINFO HEX: 0164 ; inline add-windows-message
-: CB_MSGMAX_501 HEX: 0165 ; inline add-windows-message
-: CB_MSGMAX_WCE400 HEX: 0163 ; inline add-windows-message
-: CB_MSGMAX_400 HEX: 0162 ; inline add-windows-message
-: CB_MSGMAX_PRE400 HEX: 015B ; inline add-windows-message
-: SBM_SETPOS HEX: 00E0 ; inline add-windows-message 
-: SBM_GETPOS HEX: 00E1 ; inline add-windows-message 
-: SBM_SETRANGE HEX: 00E2 ; inline add-windows-message 
-: SBM_SETRANGEREDRAW HEX: 00E6 ; inline add-windows-message
-: SBM_GETRANGE HEX: 00E3 ; inline add-windows-message
-: SBM_ENABLE_ARROWS HEX: 00E4 ; inline add-windows-message
-: SBM_SETSCROLLINFO HEX: 00E9 ; inline add-windows-message
-: SBM_GETSCROLLINFO HEX: 00EA ; inline add-windows-message
-: SBM_GETSCROLLBARINFO HEX: 00EB ; inline add-windows-message
-: LVM_FIRST HEX: 1000 ; inline add-windows-message ! ListView messages
-: TV_FIRST HEX: 1100 ; inline add-windows-message ! TreeView messages
-: HDM_FIRST HEX: 1200 ; inline add-windows-message ! Header messages
-: TCM_FIRST HEX: 1300 ; inline add-windows-message ! Tab control messages
-: PGM_FIRST HEX: 1400 ; inline add-windows-message ! Pager control messages
-: ECM_FIRST HEX: 1500 ; inline add-windows-message ! Edit control messages
-: BCM_FIRST HEX: 1600 ; inline add-windows-message ! Button control messages
-: CBM_FIRST HEX: 1700 ; inline add-windows-message ! Combobox control messages
-: CCM_FIRST HEX: 2000 ; inline add-windows-message ! Common control shared messages
-: CCM_LAST CCM_FIRST HEX: 0200 + ; inline add-windows-message
-: CCM_SETBKCOLOR CCM_FIRST  1 +  ; inline add-windows-message
-: CCM_SETCOLORSCHEME CCM_FIRST  2 +  ; inline add-windows-message
-: CCM_GETCOLORSCHEME CCM_FIRST  3 +  ; inline add-windows-message
-: CCM_GETDROPTARGET CCM_FIRST  4 +  ; inline add-windows-message
-: CCM_SETUNICODEFORMAT CCM_FIRST  5 +  ; inline add-windows-message
-: CCM_GETUNICODEFORMAT CCM_FIRST  6 +  ; inline add-windows-message
-: CCM_SETVERSION CCM_FIRST  7 +  ; inline add-windows-message
-: CCM_GETVERSION CCM_FIRST  8 +  ; inline add-windows-message
-: CCM_SETNOTIFYWINDOW CCM_FIRST  9 +  ; inline add-windows-message
-: CCM_SETWINDOWTHEME CCM_FIRST  HEX: b +  ; inline add-windows-message
-: CCM_DPISCALE CCM_FIRST  HEX: c +  ; inline add-windows-message
-: HDM_GETITEMCOUNT HDM_FIRST  0 +  ; inline add-windows-message
-: HDM_INSERTITEMA HDM_FIRST  1 +  ; inline add-windows-message
-: HDM_INSERTITEMW HDM_FIRST  10 +  ; inline add-windows-message
-: HDM_DELETEITEM HDM_FIRST  2 +  ; inline add-windows-message
-: HDM_GETITEMA HDM_FIRST  3 +  ; inline add-windows-message
-: HDM_GETITEMW HDM_FIRST  11 +  ; inline add-windows-message
-: HDM_SETITEMA HDM_FIRST  4 +  ; inline add-windows-message
-: HDM_SETITEMW HDM_FIRST  12 +  ; inline add-windows-message
-: HDM_LAYOUT HDM_FIRST  5 +  ; inline add-windows-message
-: HDM_HITTEST HDM_FIRST  6 +  ; inline add-windows-message
-: HDM_GETITEMRECT HDM_FIRST  7 +  ; inline add-windows-message
-: HDM_SETIMAGELIST HDM_FIRST  8 +  ; inline add-windows-message
-: HDM_GETIMAGELIST HDM_FIRST  9 +  ; inline add-windows-message
-: HDM_ORDERTOINDEX HDM_FIRST  15 +  ; inline add-windows-message
-: HDM_CREATEDRAGIMAGE HDM_FIRST  16 +  ; inline add-windows-message
-: HDM_GETORDERARRAY HDM_FIRST  17 +  ; inline add-windows-message
-: HDM_SETORDERARRAY HDM_FIRST  18 +  ; inline add-windows-message
-: HDM_SETHOTDIVIDER HDM_FIRST  19 +  ; inline add-windows-message
-: HDM_SETBITMAPMARGIN HDM_FIRST  20 +  ; inline add-windows-message
-: HDM_GETBITMAPMARGIN HDM_FIRST  21 +  ; inline add-windows-message
-: HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: HDM_SETFILTERCHANGETIMEOUT HDM_FIRST 22 + ; inline add-windows-message
-: HDM_EDITFILTER HDM_FIRST 23 + ; inline add-windows-message
-: HDM_CLEARFILTER HDM_FIRST 24 + ; inline add-windows-message
-: TB_ENABLEBUTTON WM_USER 1 + ; inline add-windows-message
-: TB_CHECKBUTTON WM_USER 2 + ; inline add-windows-message
-: TB_PRESSBUTTON WM_USER 3 + ; inline add-windows-message
-: TB_HIDEBUTTON WM_USER  4 +  ; inline add-windows-message
-: TB_INDETERMINATE WM_USER  5 +  ; inline add-windows-message
-: TB_MARKBUTTON WM_USER  6 +  ; inline add-windows-message
-: TB_ISBUTTONENABLED WM_USER  9 +  ; inline add-windows-message
-: TB_ISBUTTONCHECKED WM_USER  10 +  ; inline add-windows-message
-: TB_ISBUTTONPRESSED WM_USER  11 +  ; inline add-windows-message
-: TB_ISBUTTONHIDDEN WM_USER  12 +  ; inline add-windows-message
-: TB_ISBUTTONINDETERMINATE WM_USER  13 +  ; inline add-windows-message
-: TB_ISBUTTONHIGHLIGHTED WM_USER  14 +  ; inline add-windows-message
-: TB_SETSTATE WM_USER  17 +  ; inline add-windows-message
-: TB_GETSTATE WM_USER  18 +  ; inline add-windows-message
-: TB_ADDBITMAP WM_USER  19 +  ; inline add-windows-message
-: TB_ADDBUTTONSA WM_USER  20 +  ; inline add-windows-message
-: TB_INSERTBUTTONA WM_USER  21 +  ; inline add-windows-message
-: TB_ADDBUTTONS WM_USER  20 +  ; inline add-windows-message
-: TB_INSERTBUTTON WM_USER  21 +  ; inline add-windows-message
-: TB_DELETEBUTTON WM_USER  22 +  ; inline add-windows-message
-: TB_GETBUTTON WM_USER  23 +  ; inline add-windows-message
-: TB_BUTTONCOUNT WM_USER  24 +  ; inline add-windows-message
-: TB_COMMANDTOINDEX WM_USER  25 +  ; inline add-windows-message
-: TB_SAVERESTOREA WM_USER  26 +  ; inline add-windows-message
-: TB_SAVERESTOREW WM_USER  76 +  ; inline add-windows-message
-: TB_CUSTOMIZE WM_USER  27 +  ; inline add-windows-message
-: TB_ADDSTRINGA WM_USER  28 +  ; inline add-windows-message
-: TB_ADDSTRINGW WM_USER  77 +  ; inline add-windows-message
-: TB_GETITEMRECT WM_USER  29 +  ; inline add-windows-message
-: TB_BUTTONSTRUCTSIZE WM_USER  30 +  ; inline add-windows-message
-: TB_SETBUTTONSIZE WM_USER  31 +  ; inline add-windows-message
-: TB_SETBITMAPSIZE WM_USER  32 +  ; inline add-windows-message
-: TB_AUTOSIZE WM_USER  33 +  ; inline add-windows-message
-: TB_GETTOOLTIPS WM_USER  35 +  ; inline add-windows-message
-: TB_SETTOOLTIPS WM_USER  36 +  ; inline add-windows-message
-: TB_SETPARENT WM_USER  37 +  ; inline add-windows-message
-: TB_SETROWS WM_USER  39 +  ; inline add-windows-message
-: TB_GETROWS WM_USER  40 +  ; inline add-windows-message
-: TB_SETCMDID WM_USER  42 +  ; inline add-windows-message
-: TB_CHANGEBITMAP WM_USER  43 +  ; inline add-windows-message
-: TB_GETBITMAP WM_USER  44 +  ; inline add-windows-message
-: TB_GETBUTTONTEXTA WM_USER  45 +  ; inline add-windows-message
-: TB_GETBUTTONTEXTW WM_USER  75 +  ; inline add-windows-message
-: TB_REPLACEBITMAP WM_USER  46 +  ; inline add-windows-message
-: TB_SETINDENT WM_USER  47 +  ; inline add-windows-message
-: TB_SETIMAGELIST WM_USER  48 +  ; inline add-windows-message
-: TB_GETIMAGELIST WM_USER  49 +  ; inline add-windows-message
-: TB_LOADIMAGES WM_USER  50 +  ; inline add-windows-message
-: TB_GETRECT WM_USER  51 +  ; inline add-windows-message
-: TB_SETHOTIMAGELIST WM_USER  52 +  ; inline add-windows-message
-: TB_GETHOTIMAGELIST WM_USER  53 +  ; inline add-windows-message
-: TB_SETDISABLEDIMAGELIST WM_USER  54 +  ; inline add-windows-message
-: TB_GETDISABLEDIMAGELIST WM_USER  55 +  ; inline add-windows-message
-: TB_SETSTYLE WM_USER  56 +  ; inline add-windows-message
-: TB_GETSTYLE WM_USER  57 +  ; inline add-windows-message
-: TB_GETBUTTONSIZE WM_USER  58 +  ; inline add-windows-message
-: TB_SETBUTTONWIDTH WM_USER  59 +  ; inline add-windows-message
-: TB_SETMAXTEXTROWS WM_USER  60 +  ; inline add-windows-message
-: TB_GETTEXTROWS WM_USER  61 +  ; inline add-windows-message
-: TB_GETOBJECT WM_USER  62 +  ; inline add-windows-message
-: TB_GETHOTITEM WM_USER  71 +  ; inline add-windows-message
-: TB_SETHOTITEM WM_USER  72 +  ; inline add-windows-message 
-: TB_SETANCHORHIGHLIGHT WM_USER  73 +  ; inline add-windows-message 
-: TB_GETANCHORHIGHLIGHT WM_USER  74 +  ; inline add-windows-message
-: TB_MAPACCELERATORA WM_USER  78 +  ; inline add-windows-message 
-: TB_GETINSERTMARK WM_USER  79 +  ; inline add-windows-message 
-: TB_SETINSERTMARK WM_USER  80 +  ; inline add-windows-message 
-: TB_INSERTMARKHITTEST WM_USER  81 +  ; inline add-windows-message
-: TB_MOVEBUTTON WM_USER  82 +  ; inline add-windows-message
-: TB_GETMAXSIZE WM_USER  83 +  ; inline add-windows-message
-: TB_SETEXTENDEDSTYLE WM_USER  84 +  ; inline add-windows-message
-: TB_GETEXTENDEDSTYLE WM_USER  85 +  ; inline add-windows-message
-: TB_GETPADDING WM_USER  86 +  ; inline add-windows-message
-: TB_SETPADDING WM_USER  87 +  ; inline add-windows-message
-: TB_SETINSERTMARKCOLOR WM_USER  88 +  ; inline add-windows-message
-: TB_GETINSERTMARKCOLOR WM_USER  89 +  ; inline add-windows-message
-: TB_SETCOLORSCHEME CCM_SETCOLORSCHEME ; inline add-windows-message
-: TB_GETCOLORSCHEME CCM_GETCOLORSCHEME ; inline add-windows-message
-: TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: TB_MAPACCELERATORW WM_USER  90 +  ; inline add-windows-message
-: TB_GETBITMAPFLAGS WM_USER  41 +  ; inline add-windows-message
-: TB_GETBUTTONINFOW WM_USER  63 +  ; inline add-windows-message
-: TB_SETBUTTONINFOW WM_USER  64 +  ; inline add-windows-message
-: TB_GETBUTTONINFOA WM_USER  65 +  ; inline add-windows-message
-: TB_SETBUTTONINFOA WM_USER  66 +  ; inline add-windows-message
-: TB_INSERTBUTTONW WM_USER  67 +  ; inline add-windows-message
-: TB_ADDBUTTONSW WM_USER  68 +  ; inline add-windows-message
-: TB_HITTEST WM_USER  69 +  ; inline add-windows-message
-: TB_SETDRAWTEXTFLAGS WM_USER  70 +  ; inline add-windows-message
-: TB_GETSTRINGW WM_USER  91 +  ; inline add-windows-message
-: TB_GETSTRINGA WM_USER  92 +  ; inline add-windows-message
-: TB_GETMETRICS WM_USER  101 +  ; inline add-windows-message
-: TB_SETMETRICS WM_USER  102 +  ; inline add-windows-message
-: TB_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline add-windows-message
-: RB_INSERTBANDA WM_USER  1 +  ; inline add-windows-message
-: RB_DELETEBAND WM_USER  2 +  ; inline add-windows-message
-: RB_GETBARINFO WM_USER  3 +  ; inline add-windows-message
-: RB_SETBARINFO WM_USER  4 +  ; inline add-windows-message
-: RB_GETBANDINFO WM_USER  5 +  ; inline add-windows-message
-: RB_SETBANDINFOA WM_USER  6 +  ; inline add-windows-message
-: RB_SETPARENT WM_USER  7 +  ; inline add-windows-message
-: RB_HITTEST WM_USER  8 +  ; inline add-windows-message
-: RB_GETRECT WM_USER  9 +  ; inline add-windows-message
-: RB_INSERTBANDW WM_USER  10 +  ; inline add-windows-message
-: RB_SETBANDINFOW WM_USER  11 +  ; inline add-windows-message
-: RB_GETBANDCOUNT WM_USER  12 +  ; inline add-windows-message
-: RB_GETROWCOUNT WM_USER  13 +  ; inline add-windows-message
-: RB_GETROWHEIGHT WM_USER  14 +  ; inline add-windows-message
-: RB_IDTOINDEX WM_USER  16 +  ; inline add-windows-message 
-: RB_GETTOOLTIPS WM_USER  17 +  ; inline add-windows-message
-: RB_SETTOOLTIPS WM_USER  18 +  ; inline add-windows-message
-: RB_SETBKCOLOR WM_USER  19 +  ; inline add-windows-message
-: RB_GETBKCOLOR WM_USER  20 +  ; inline add-windows-message
-: RB_SETTEXTCOLOR WM_USER  21 +  ; inline add-windows-message
-: RB_GETTEXTCOLOR WM_USER  22 +  ; inline add-windows-message
-: RB_SIZETORECT WM_USER  23 +  ; inline add-windows-message
-: RB_SETCOLORSCHEME CCM_SETCOLORSCHEME ; inline add-windows-message
-: RB_GETCOLORSCHEME CCM_GETCOLORSCHEME ; inline add-windows-message
-: RB_BEGINDRAG WM_USER  24 +  ; inline add-windows-message
-: RB_ENDDRAG WM_USER  25 +  ; inline add-windows-message
-: RB_DRAGMOVE WM_USER  26 +  ; inline add-windows-message
-: RB_GETBARHEIGHT WM_USER  27 +  ; inline add-windows-message
-: RB_GETBANDINFOW WM_USER  28 +  ; inline add-windows-message
-: RB_GETBANDINFOA WM_USER  29 +  ; inline add-windows-message
-: RB_MINIMIZEBAND WM_USER  30 +  ; inline add-windows-message
-: RB_MAXIMIZEBAND WM_USER  31 +  ; inline add-windows-message
-: RB_GETDROPTARGET CCM_GETDROPTARGET ; inline add-windows-message
-: RB_GETBANDBORDERS WM_USER  34 +  ; inline add-windows-message 
-: RB_SHOWBAND WM_USER  35 +  ; inline add-windows-message 
-: RB_SETPALETTE WM_USER  37 +  ; inline add-windows-message
-: RB_GETPALETTE WM_USER  38 +  ; inline add-windows-message
-: RB_MOVEBAND WM_USER  39 +  ; inline add-windows-message
-: RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: RB_GETBANDMARGINS WM_USER  40 +  ; inline add-windows-message
-: RB_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline add-windows-message
-: RB_PUSHCHEVRON WM_USER  43 +  ; inline add-windows-message
-: TTM_ACTIVATE WM_USER  1 +  ; inline add-windows-message
-: TTM_SETDELAYTIME WM_USER  3 +  ; inline add-windows-message
-: TTM_ADDTOOLA WM_USER  4 +  ; inline add-windows-message
-: TTM_ADDTOOLW WM_USER  50 +  ; inline add-windows-message
-: TTM_DELTOOLA WM_USER  5 +  ; inline add-windows-message
-: TTM_DELTOOLW WM_USER  51 +  ; inline add-windows-message
-: TTM_NEWTOOLRECTA WM_USER  6 +  ; inline add-windows-message
-: TTM_NEWTOOLRECTW WM_USER  52 +  ; inline add-windows-message
-: TTM_RELAYEVENT WM_USER  7 +  ; inline add-windows-message
-: TTM_GETTOOLINFOA WM_USER  8 +  ; inline add-windows-message
-: TTM_GETTOOLINFOW WM_USER  53 +  ; inline add-windows-message
-: TTM_SETTOOLINFOA WM_USER  9 +  ; inline add-windows-message
-: TTM_SETTOOLINFOW WM_USER  54 +  ; inline add-windows-message
-: TTM_HITTESTA WM_USER 10 + ; inline add-windows-message
-: TTM_HITTESTW WM_USER 55 + ; inline add-windows-message
-: TTM_GETTEXTA WM_USER 11 + ; inline add-windows-message
-: TTM_GETTEXTW WM_USER 56 + ; inline add-windows-message
-: TTM_UPDATETIPTEXTA WM_USER 12 + ; inline add-windows-message
-: TTM_UPDATETIPTEXTW WM_USER 57 + ; inline add-windows-message
-: TTM_GETTOOLCOUNT WM_USER 13 + ; inline add-windows-message
-: TTM_ENUMTOOLSA WM_USER 14 + ; inline add-windows-message
-: TTM_ENUMTOOLSW WM_USER 58 + ; inline add-windows-message
-: TTM_GETCURRENTTOOLA WM_USER  15 +  ; inline add-windows-message
-: TTM_GETCURRENTTOOLW WM_USER  59 +  ; inline add-windows-message
-: TTM_WINDOWFROMPOINT WM_USER  16 +  ; inline add-windows-message
-: TTM_TRACKACTIVATE WM_USER  17 +  ; inline add-windows-message
-: TTM_TRACKPOSITION WM_USER  18 +  ; inline add-windows-message
-: TTM_SETTIPBKCOLOR WM_USER  19 +  ; inline add-windows-message
-: TTM_SETTIPTEXTCOLOR WM_USER  20 +  ; inline add-windows-message
-: TTM_GETDELAYTIME WM_USER  21 +  ; inline add-windows-message
-: TTM_GETTIPBKCOLOR WM_USER  22 +  ; inline add-windows-message
-: TTM_GETTIPTEXTCOLOR WM_USER  23 +  ; inline add-windows-message
-: TTM_SETMAXTIPWIDTH WM_USER  24 +  ; inline add-windows-message
-: TTM_GETMAXTIPWIDTH WM_USER  25 +  ; inline add-windows-message
-: TTM_SETMARGIN WM_USER  26 +  ; inline add-windows-message
-: TTM_GETMARGIN WM_USER  27 +  ; inline add-windows-message
-: TTM_POP WM_USER  28 +  ; inline add-windows-message
-: TTM_UPDATE WM_USER  29 +  ; inline add-windows-message
-: TTM_GETBUBBLESIZE WM_USER  30 +  ; inline add-windows-message
-: TTM_ADJUSTRECT WM_USER  31 +  ; inline add-windows-message
-: TTM_SETTITLEA WM_USER  32 +  ; inline add-windows-message
-: TTM_SETTITLEW WM_USER  33 +  ; inline add-windows-message
-: TTM_POPUP WM_USER  34 +  ; inline add-windows-message
-: TTM_GETTITLE WM_USER  35 +  ; inline add-windows-message
-: TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME ; inline add-windows-message
-: SB_SETTEXTA WM_USER 1+  ; inline add-windows-message
-: SB_SETTEXTW WM_USER 11 +  ; inline add-windows-message
-: SB_GETTEXTA WM_USER 2 +  ; inline add-windows-message
-: SB_GETTEXTW WM_USER 13 +  ; inline add-windows-message
-: SB_GETTEXTLENGTHA WM_USER 3 +  ; inline add-windows-message
-: SB_GETTEXTLENGTHW WM_USER 12 +  ; inline add-windows-message
-: SB_SETPARTS WM_USER 4 +  ; inline add-windows-message
-: SB_GETPARTS WM_USER 6 +  ; inline add-windows-message
-: SB_GETBORDERS WM_USER 7 +  ; inline add-windows-message
-: SB_SETMINHEIGHT WM_USER 8 +  ; inline add-windows-message
-: SB_SIMPLE WM_USER 9 +  ; inline add-windows-message
-: SB_GETRECT WM_USER 10 +  ; inline add-windows-message
-: SB_ISSIMPLE WM_USER 14 +  ; inline add-windows-message
-: SB_SETICON WM_USER 15 +  ; inline add-windows-message
-: SB_SETTIPTEXTA WM_USER 16 +  ; inline add-windows-message
-: SB_SETTIPTEXTW WM_USER 17 +  ; inline add-windows-message
-: SB_GETTIPTEXTA WM_USER 18 +  ; inline add-windows-message
-: SB_GETTIPTEXTW WM_USER 19 +  ; inline add-windows-message
-: SB_GETICON WM_USER 20 +  ; inline add-windows-message
-: SB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: SB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: SB_SETBKCOLOR CCM_SETBKCOLOR ; inline add-windows-message
-: SB_SIMPLEID HEX: 00ff ; inline add-windows-message
-: TBM_GETPOS WM_USER ; inline add-windows-message
-: TBM_GETRANGEMIN WM_USER 1 +  ; inline add-windows-message
-: TBM_GETRANGEMAX WM_USER 2 +  ; inline add-windows-message
-: TBM_GETTIC WM_USER 3 +  ; inline add-windows-message
-: TBM_SETTIC WM_USER 4 +  ; inline add-windows-message
-: TBM_SETPOS WM_USER 5 +  ; inline add-windows-message
-: TBM_SETRANGE WM_USER 6 +  ; inline add-windows-message
-: TBM_SETRANGEMIN WM_USER 7 +  ; inline add-windows-message
-: TBM_SETRANGEMAX WM_USER 8 +  ; inline add-windows-message
-: TBM_CLEARTICS WM_USER 9 +  ; inline add-windows-message
-: TBM_SETSEL WM_USER 10 +  ; inline add-windows-message
-: TBM_SETSELSTART WM_USER 11 +  ; inline add-windows-message
-: TBM_SETSELEND WM_USER 12 +  ; inline add-windows-message
-: TBM_GETPTICS WM_USER 14 +  ; inline add-windows-message
-: TBM_GETTICPOS WM_USER 15 +  ; inline add-windows-message
-: TBM_GETNUMTICS WM_USER 16 +  ; inline add-windows-message
-: TBM_GETSELSTART WM_USER 17 +  ; inline add-windows-message
-: TBM_GETSELEND WM_USER 18 +  ; inline add-windows-message
-: TBM_CLEARSEL WM_USER 19 +  ; inline add-windows-message
-: TBM_SETTICFREQ WM_USER 20 +  ; inline add-windows-message
-: TBM_SETPAGESIZE WM_USER 21 +  ; inline add-windows-message
-: TBM_GETPAGESIZE WM_USER 22 +  ; inline add-windows-message
-: TBM_SETLINESIZE WM_USER 23 +  ; inline add-windows-message
-: TBM_GETLINESIZE WM_USER 24 +  ; inline add-windows-message
-: TBM_GETTHUMBRECT WM_USER 25 +  ; inline add-windows-message
-: TBM_GETCHANNELRECT WM_USER 26 +  ; inline add-windows-message
-: TBM_SETTHUMBLENGTH WM_USER 27 +  ; inline add-windows-message
-: TBM_GETTHUMBLENGTH WM_USER 28 +  ; inline add-windows-message
-: TBM_SETTOOLTIPS WM_USER 29 +  ; inline add-windows-message
-: TBM_GETTOOLTIPS WM_USER 30 +  ; inline add-windows-message
-: TBM_SETTIPSIDE WM_USER 31 +  ; inline add-windows-message
-: TBM_SETBUDDY WM_USER 32 +  ; inline add-windows-message 
-: TBM_GETBUDDY WM_USER 33 +  ; inline add-windows-message 
-: TBM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: TBM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: DL_BEGINDRAG WM_USER 133 +  ; inline add-windows-message
-: DL_DRAGGING WM_USER 134 +  ; inline add-windows-message
-: DL_DROPPED WM_USER 135 +  ; inline add-windows-message
-: DL_CANCELDRAG WM_USER 136 +  ; inline add-windows-message
-: UDM_SETRANGE WM_USER 101 +  ; inline add-windows-message
-: UDM_GETRANGE WM_USER 102 +  ; inline add-windows-message
-: UDM_SETPOS WM_USER 103 +  ; inline add-windows-message
-: UDM_GETPOS WM_USER 104 +  ; inline add-windows-message
-: UDM_SETBUDDY WM_USER 105 +  ; inline add-windows-message
-: UDM_GETBUDDY WM_USER 106 +  ; inline add-windows-message
-: UDM_SETACCEL WM_USER 107 +  ; inline add-windows-message
-: UDM_GETACCEL WM_USER 108 +  ; inline add-windows-message
-: UDM_SETBASE WM_USER 109 +  ; inline add-windows-message
-: UDM_GETBASE WM_USER 110 +  ; inline add-windows-message
-: UDM_SETRANGE32 WM_USER 111 +  ; inline add-windows-message
-: UDM_GETRANGE32 WM_USER 112 +  ; inline add-windows-message
-: UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: UDM_SETPOS32 WM_USER 113 +  ; inline add-windows-message
-: UDM_GETPOS32 WM_USER 114 +  ; inline add-windows-message
-: PBM_SETRANGE WM_USER 1 +  ; inline add-windows-message
-: PBM_SETPOS WM_USER 2 +  ; inline add-windows-message
-: PBM_DELTAPOS WM_USER 3 +  ; inline add-windows-message
-: PBM_SETSTEP WM_USER 4 +  ; inline add-windows-message
-: PBM_STEPIT WM_USER 5 +  ; inline add-windows-message
-: PBM_SETRANGE32 WM_USER 6 +  ; inline add-windows-message
-: PBM_GETRANGE WM_USER 7 +  ; inline add-windows-message 
-: PBM_GETPOS WM_USER 8 +  ; inline add-windows-message
-: PBM_SETBARCOLOR WM_USER 9 +  ; inline add-windows-message
-: PBM_SETBKCOLOR CCM_SETBKCOLOR ; inline add-windows-message 
-: HKM_SETHOTKEY WM_USER 1 +  ; inline add-windows-message
-: HKM_GETHOTKEY WM_USER 2 +  ; inline add-windows-message
-: HKM_SETRULES WM_USER 3 +  ; inline add-windows-message
-: LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: LVM_GETBKCOLOR LVM_FIRST  0 +  ; inline add-windows-message
-: LVM_SETBKCOLOR LVM_FIRST  1 +  ; inline add-windows-message
-: LVM_GETIMAGELIST LVM_FIRST  2 +  ; inline add-windows-message
-: LVM_SETIMAGELIST LVM_FIRST  3 +  ; inline add-windows-message
-: LVM_GETITEMCOUNT LVM_FIRST  4 +  ; inline add-windows-message
-: LVM_GETITEMA LVM_FIRST  5 +  ; inline add-windows-message
-: LVM_GETITEMW LVM_FIRST  75 +  ; inline add-windows-message
-: LVM_SETITEMA LVM_FIRST  6 +  ; inline add-windows-message
-: LVM_SETITEMW LVM_FIRST  76 +  ; inline add-windows-message
-: LVM_INSERTITEMA LVM_FIRST  7 +  ; inline add-windows-message
-: LVM_INSERTITEMW LVM_FIRST  77 +  ; inline add-windows-message
-: LVM_DELETEITEM LVM_FIRST  8 +  ; inline add-windows-message
-: LVM_DELETEALLITEMS LVM_FIRST  9 +  ; inline add-windows-message
-: LVM_GETCALLBACKMASK LVM_FIRST  10 +  ; inline add-windows-message
-: LVM_SETCALLBACKMASK LVM_FIRST  11 +  ; inline add-windows-message
-: LVM_FINDITEMA LVM_FIRST  13 +  ; inline add-windows-message
-: LVM_FINDITEMW LVM_FIRST  83 +  ; inline add-windows-message
-: LVM_GETITEMRECT LVM_FIRST  14 +  ; inline add-windows-message
-: LVM_SETITEMPOSITION LVM_FIRST  15 +  ; inline add-windows-message
-: LVM_GETITEMPOSITION LVM_FIRST  16 +  ; inline add-windows-message
-: LVM_GETSTRINGWIDTHA LVM_FIRST  17 +  ; inline add-windows-message
-: LVM_GETSTRINGWIDTHW LVM_FIRST  87 +  ; inline add-windows-message
-: LVM_HITTEST LVM_FIRST  18 +  ; inline add-windows-message
-: LVM_ENSUREVISIBLE LVM_FIRST  19 +  ; inline add-windows-message
-: LVM_SCROLL LVM_FIRST  20 +  ; inline add-windows-message
-: LVM_REDRAWITEMS LVM_FIRST  21 +  ; inline add-windows-message
-: LVM_ARRANGE LVM_FIRST  22 +  ; inline add-windows-message
-: LVM_EDITLABELA LVM_FIRST  23 +  ; inline add-windows-message
-: LVM_EDITLABELW LVM_FIRST  118 +  ; inline add-windows-message
-: LVM_GETEDITCONTROL LVM_FIRST  24 +  ; inline add-windows-message
-: LVM_GETCOLUMNA LVM_FIRST  25 +  ; inline add-windows-message
-: LVM_GETCOLUMNW LVM_FIRST  95 +  ; inline add-windows-message
-: LVM_SETCOLUMNA LVM_FIRST  26 +  ; inline add-windows-message
-: LVM_SETCOLUMNW LVM_FIRST  96 +  ; inline add-windows-message
-: LVM_INSERTCOLUMNA LVM_FIRST  27 +  ; inline add-windows-message
-: LVM_INSERTCOLUMNW LVM_FIRST  97 +  ; inline add-windows-message
-: LVM_DELETECOLUMN LVM_FIRST  28 +  ; inline add-windows-message
-: LVM_GETCOLUMNWIDTH LVM_FIRST  29 +  ; inline add-windows-message
-: LVM_SETCOLUMNWIDTH LVM_FIRST  30 +  ; inline add-windows-message
-: LVM_CREATEDRAGIMAGE LVM_FIRST  33 +  ; inline add-windows-message
-: LVM_GETVIEWRECT LVM_FIRST  34 +  ; inline add-windows-message
-: LVM_GETTEXTCOLOR LVM_FIRST  35 +  ; inline add-windows-message
-: LVM_SETTEXTCOLOR LVM_FIRST  36 +  ; inline add-windows-message
-: LVM_GETTEXTBKCOLOR LVM_FIRST  37 +  ; inline add-windows-message
-: LVM_SETTEXTBKCOLOR LVM_FIRST  38 +  ; inline add-windows-message
-: LVM_GETTOPINDEX LVM_FIRST  39 +  ; inline add-windows-message
-: LVM_GETCOUNTPERPAGE LVM_FIRST  40 +  ; inline add-windows-message
-: LVM_GETORIGIN LVM_FIRST  41 +  ; inline add-windows-message
-: LVM_UPDATE LVM_FIRST  42 +  ; inline add-windows-message
-: LVM_SETITEMSTATE LVM_FIRST  43 +  ; inline add-windows-message
-: LVM_GETITEMSTATE LVM_FIRST  44 +  ; inline add-windows-message
-: LVM_GETITEMTEXTA LVM_FIRST  45 +  ; inline add-windows-message
-: LVM_GETITEMTEXTW LVM_FIRST  115 +  ; inline add-windows-message
-: LVM_SETITEMTEXTA LVM_FIRST  46 +  ; inline add-windows-message
-: LVM_SETITEMTEXTW LVM_FIRST  116 +  ; inline add-windows-message
-: LVM_SETITEMCOUNT LVM_FIRST  47 +  ; inline add-windows-message
-: LVM_SORTITEMS LVM_FIRST  48 +  ; inline add-windows-message
-: LVM_SETITEMPOSITION32 LVM_FIRST  49 +  ; inline add-windows-message
-: LVM_GETSELECTEDCOUNT LVM_FIRST  50 +  ; inline add-windows-message
-: LVM_GETITEMSPACING LVM_FIRST  51 +  ; inline add-windows-message
-: LVM_GETISEARCHSTRINGA LVM_FIRST  52 +  ; inline add-windows-message
-: LVM_GETISEARCHSTRINGW LVM_FIRST  117 +  ; inline add-windows-message
-: LVM_SETICONSPACING LVM_FIRST  53 +  ; inline add-windows-message
-: LVM_SETEXTENDEDLISTVIEWSTYLE LVM_FIRST  54 +  ; inline add-windows-message
-: LVM_GETEXTENDEDLISTVIEWSTYLE LVM_FIRST  55 +  ; inline add-windows-message
-: LVM_GETSUBITEMRECT LVM_FIRST  56 +  ; inline add-windows-message
-: LVM_SUBITEMHITTEST LVM_FIRST  57 +  ; inline add-windows-message
-: LVM_SETCOLUMNORDERARRAY LVM_FIRST  58 +  ; inline add-windows-message
-: LVM_GETCOLUMNORDERARRAY LVM_FIRST  59 +  ; inline add-windows-message
-: LVM_SETHOTITEM LVM_FIRST  60 +  ; inline add-windows-message
-: LVM_GETHOTITEM LVM_FIRST  61 +  ; inline add-windows-message
-: LVM_SETHOTCURSOR LVM_FIRST  62 +  ; inline add-windows-message
-: LVM_GETHOTCURSOR LVM_FIRST  63 +  ; inline add-windows-message
-: LVM_APPROXIMATEVIEWRECT LVM_FIRST  64 +  ; inline add-windows-message
-: LVM_SETWORKAREAS LVM_FIRST  65 +  ; inline add-windows-message
-: LVM_GETWORKAREAS LVM_FIRST  70 +  ; inline add-windows-message
-: LVM_GETNUMBEROFWORKAREAS LVM_FIRST  73 +  ; inline add-windows-message
-: LVM_GETSELECTIONMARK LVM_FIRST  66 +  ; inline add-windows-message
-: LVM_SETSELECTIONMARK LVM_FIRST  67 +  ; inline add-windows-message
-: LVM_SETHOVERTIME LVM_FIRST  71 +  ; inline add-windows-message
-: LVM_GETHOVERTIME LVM_FIRST  72 +  ; inline add-windows-message
-: LVM_SETTOOLTIPS LVM_FIRST  74 +  ; inline add-windows-message
-: LVM_GETTOOLTIPS LVM_FIRST  78 +  ; inline add-windows-message
-: LVM_SORTITEMSEX LVM_FIRST  81 +  ; inline add-windows-message
-: LVM_SETBKIMAGEA LVM_FIRST  68 +  ; inline add-windows-message
-: LVM_SETBKIMAGEW LVM_FIRST  138 +  ; inline add-windows-message
-: LVM_GETBKIMAGEA LVM_FIRST  69 +  ; inline add-windows-message
-: LVM_GETBKIMAGEW LVM_FIRST  139 +  ; inline add-windows-message
-: LVM_SETSELECTEDCOLUMN LVM_FIRST  140 +  ; inline add-windows-message
-: LVM_SETTILEWIDTH LVM_FIRST  141 +  ; inline add-windows-message
-: LVM_SETVIEW LVM_FIRST  142 +  ; inline add-windows-message
-: LVM_GETVIEW LVM_FIRST  143 +  ; inline add-windows-message
-: LVM_INSERTGROUP LVM_FIRST  145 +  ; inline add-windows-message
-: LVM_SETGROUPINFO LVM_FIRST  147 +  ; inline add-windows-message
-: LVM_GETGROUPINFO LVM_FIRST  149 +  ; inline add-windows-message
-: LVM_REMOVEGROUP LVM_FIRST  150 +  ; inline add-windows-message
-: LVM_MOVEGROUP LVM_FIRST  151 +  ; inline add-windows-message
-: LVM_MOVEITEMTOGROUP LVM_FIRST  154 +  ; inline add-windows-message
-: LVM_SETGROUPMETRICS LVM_FIRST  155 +  ; inline add-windows-message
-: LVM_GETGROUPMETRICS LVM_FIRST  156 +  ; inline add-windows-message
-: LVM_ENABLEGROUPVIEW LVM_FIRST  157 +  ; inline add-windows-message
-: LVM_SORTGROUPS LVM_FIRST  158 +  ; inline add-windows-message
-: LVM_INSERTGROUPSORTED LVM_FIRST  159 +  ; inline add-windows-message
-: LVM_REMOVEALLGROUPS LVM_FIRST  160 +  ; inline add-windows-message
-: LVM_HASGROUP LVM_FIRST  161 +  ; inline add-windows-message
-: LVM_SETTILEVIEWINFO LVM_FIRST  162 +  ; inline add-windows-message
-: LVM_GETTILEVIEWINFO LVM_FIRST  163 +  ; inline add-windows-message
-: LVM_SETTILEINFO LVM_FIRST  164 +  ; inline add-windows-message
-: LVM_GETTILEINFO LVM_FIRST  165 +  ; inline add-windows-message
-: LVM_SETINSERTMARK LVM_FIRST  166 +  ; inline add-windows-message
-: LVM_GETINSERTMARK LVM_FIRST  167 +  ; inline add-windows-message
-: LVM_INSERTMARKHITTEST LVM_FIRST  168 +  ; inline add-windows-message
-: LVM_GETINSERTMARKRECT LVM_FIRST  169 +  ; inline add-windows-message
-: LVM_SETINSERTMARKCOLOR LVM_FIRST  170 +  ; inline add-windows-message
-: LVM_GETINSERTMARKCOLOR LVM_FIRST  171 +  ; inline add-windows-message
-: LVM_SETINFOTIP LVM_FIRST  173 +  ; inline add-windows-message
-: LVM_GETSELECTEDCOLUMN LVM_FIRST  174 +  ; inline add-windows-message
-: LVM_ISGROUPVIEWENABLED LVM_FIRST  175 +  ; inline add-windows-message
-: LVM_GETOUTLINECOLOR LVM_FIRST  176 +  ; inline add-windows-message
-: LVM_SETOUTLINECOLOR LVM_FIRST  177 +  ; inline add-windows-message
-: LVM_CANCELEDITLABEL LVM_FIRST  179 +  ; inline add-windows-message
-: LVM_MAPINDEXTOID LVM_FIRST  180 +  ; inline add-windows-message
-: LVM_MAPIDTOINDEX LVM_FIRST  181 +  ; inline add-windows-message
-: TVM_INSERTITEMA TV_FIRST  0 +  ; inline add-windows-message
-: TVM_INSERTITEMW TV_FIRST  50 +  ; inline add-windows-message
-: TVM_DELETEITEM TV_FIRST  1 +  ; inline add-windows-message
-: TVM_EXPAND TV_FIRST  2 +  ; inline add-windows-message
-: TVM_GETITEMRECT TV_FIRST  4 +  ; inline add-windows-message
-: TVM_GETCOUNT TV_FIRST  5 +  ; inline add-windows-message
-: TVM_GETINDENT TV_FIRST  6 +  ; inline add-windows-message
-: TVM_SETINDENT TV_FIRST  7 +  ; inline add-windows-message
-: TVM_GETIMAGELIST TV_FIRST  8 +  ; inline add-windows-message
-: TVM_SETIMAGELIST TV_FIRST  9 +  ; inline add-windows-message
-: TVM_GETNEXTITEM TV_FIRST  10 +  ; inline add-windows-message
-: TVM_SELECTITEM TV_FIRST  11 +  ; inline add-windows-message
-: TVM_GETITEMA TV_FIRST  12 +  ; inline add-windows-message
-: TVM_GETITEMW TV_FIRST  62 +  ; inline add-windows-message
-: TVM_SETITEMA TV_FIRST  13 +  ; inline add-windows-message
-: TVM_SETITEMW TV_FIRST  63 +  ; inline add-windows-message
-: TVM_EDITLABELA TV_FIRST  14 +  ; inline add-windows-message
-: TVM_EDITLABELW TV_FIRST  65 +  ; inline add-windows-message
-: TVM_GETEDITCONTROL TV_FIRST  15 +  ; inline add-windows-message
-: TVM_GETVISIBLECOUNT TV_FIRST  16 +  ; inline add-windows-message
-: TVM_HITTEST TV_FIRST  17 +  ; inline add-windows-message
-: TVM_CREATEDRAGIMAGE TV_FIRST  18 +  ; inline add-windows-message
-: TVM_SORTCHILDREN TV_FIRST  19 +  ; inline add-windows-message
-: TVM_ENSUREVISIBLE TV_FIRST  20 +  ; inline add-windows-message
-: TVM_SORTCHILDRENCB TV_FIRST  21 +  ; inline add-windows-message
-: TVM_ENDEDITLABELNOW TV_FIRST  22 +  ; inline add-windows-message
-: TVM_GETISEARCHSTRINGA TV_FIRST  23 +  ; inline add-windows-message
-: TVM_GETISEARCHSTRINGW TV_FIRST  64 +  ; inline add-windows-message
-: TVM_SETTOOLTIPS TV_FIRST  24 +  ; inline add-windows-message
-: TVM_GETTOOLTIPS TV_FIRST  25 +  ; inline add-windows-message
-: TVM_SETINSERTMARK TV_FIRST  26 +  ; inline add-windows-message
-: TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: TVM_SETITEMHEIGHT TV_FIRST  27 +  ; inline add-windows-message
-: TVM_GETITEMHEIGHT TV_FIRST  28 +  ; inline add-windows-message
-: TVM_SETBKCOLOR TV_FIRST  29 +  ; inline add-windows-message
-: TVM_SETTEXTCOLOR TV_FIRST  30 +  ; inline add-windows-message
-: TVM_GETBKCOLOR TV_FIRST  31 +  ; inline add-windows-message
-: TVM_GETTEXTCOLOR TV_FIRST  32 +  ; inline add-windows-message
-: TVM_SETSCROLLTIME TV_FIRST  33 +  ; inline add-windows-message
-: TVM_GETSCROLLTIME TV_FIRST  34 +  ; inline add-windows-message
-: TVM_SETINSERTMARKCOLOR TV_FIRST  37 +  ; inline add-windows-message
-: TVM_GETINSERTMARKCOLOR TV_FIRST  38 +  ; inline add-windows-message
-: TVM_GETITEMSTATE TV_FIRST  39 +  ; inline add-windows-message
-: TVM_SETLINECOLOR TV_FIRST  40 +  ; inline add-windows-message
-: TVM_GETLINECOLOR TV_FIRST  41 +  ; inline add-windows-message
-: TVM_MAPACCIDTOHTREEITEM TV_FIRST  42 +  ; inline add-windows-message
-: TVM_MAPHTREEITEMTOACCID TV_FIRST  43 +  ; inline add-windows-message
-: CBEM_INSERTITEMA WM_USER  1 +  ; inline add-windows-message
-: CBEM_SETIMAGELIST WM_USER  2 +  ; inline add-windows-message
-: CBEM_GETIMAGELIST WM_USER  3 +  ; inline add-windows-message
-: CBEM_GETITEMA WM_USER  4 +  ; inline add-windows-message
-: CBEM_SETITEMA WM_USER  5 +  ; inline add-windows-message
-: CBEM_DELETEITEM CB_DELETESTRING ; inline add-windows-message
-: CBEM_GETCOMBOCONTROL WM_USER  6 +  ; inline add-windows-message
-: CBEM_GETEDITCONTROL WM_USER  7 +  ; inline add-windows-message
-: CBEM_SETEXTENDEDSTYLE WM_USER  14 +  ; inline add-windows-message
-: CBEM_GETEXTENDEDSTYLE WM_USER  9 +  ; inline add-windows-message
-: CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: CBEM_SETEXSTYLE WM_USER  8 +  ; inline add-windows-message
-: CBEM_GETEXSTYLE WM_USER  9 +  ; inline add-windows-message
-: CBEM_HASEDITCHANGED WM_USER  10 +  ; inline add-windows-message
-: CBEM_INSERTITEMW WM_USER  11 +  ; inline add-windows-message
-: CBEM_SETITEMW WM_USER  12 +  ; inline add-windows-message
-: CBEM_GETITEMW WM_USER  13 +  ; inline add-windows-message
-: TCM_GETIMAGELIST TCM_FIRST  2 +  ; inline add-windows-message
-: TCM_SETIMAGELIST TCM_FIRST  3 +  ; inline add-windows-message
-: TCM_GETITEMCOUNT TCM_FIRST  4 +  ; inline add-windows-message
-: TCM_GETITEMA TCM_FIRST  5 +  ; inline add-windows-message
-: TCM_GETITEMW TCM_FIRST  60 +  ; inline add-windows-message
-: TCM_SETITEMA TCM_FIRST  6 +  ; inline add-windows-message
-: TCM_SETITEMW TCM_FIRST  61 +  ; inline add-windows-message
-: TCM_INSERTITEMA TCM_FIRST  7 +  ; inline add-windows-message
-: TCM_INSERTITEMW TCM_FIRST  62 +  ; inline add-windows-message
-: TCM_DELETEITEM TCM_FIRST  8 +  ; inline add-windows-message
-: TCM_DELETEALLITEMS TCM_FIRST  9 +  ; inline add-windows-message
-: TCM_GETITEMRECT TCM_FIRST  10 +  ; inline add-windows-message
-: TCM_GETCURSEL TCM_FIRST  11 +  ; inline add-windows-message
-: TCM_SETCURSEL TCM_FIRST  12 +  ; inline add-windows-message
-: TCM_HITTEST TCM_FIRST  13 +  ; inline add-windows-message
-: TCM_SETITEMEXTRA TCM_FIRST  14 +  ; inline add-windows-message
-: TCM_ADJUSTRECT TCM_FIRST  40 +  ; inline add-windows-message
-: TCM_SETITEMSIZE TCM_FIRST  41 +  ; inline add-windows-message
-: TCM_REMOVEIMAGE TCM_FIRST  42 +  ; inline add-windows-message
-: TCM_SETPADDING TCM_FIRST  43 +  ; inline add-windows-message
-: TCM_GETROWCOUNT TCM_FIRST  44 +  ; inline add-windows-message
-: TCM_GETTOOLTIPS TCM_FIRST  45 +  ; inline add-windows-message
-: TCM_SETTOOLTIPS TCM_FIRST  46 +  ; inline add-windows-message
-: TCM_GETCURFOCUS TCM_FIRST  47 +  ; inline add-windows-message
-: TCM_SETCURFOCUS TCM_FIRST  48 +  ; inline add-windows-message
-: TCM_SETMINTABWIDTH TCM_FIRST  49 +  ; inline add-windows-message
-: TCM_DESELECTALL TCM_FIRST  50 +  ; inline add-windows-message
-: TCM_HIGHLIGHTITEM TCM_FIRST  51 +  ; inline add-windows-message
-: TCM_SETEXTENDEDSTYLE TCM_FIRST  52 +  ; inline add-windows-message
-: TCM_GETEXTENDEDSTYLE TCM_FIRST  53 +  ; inline add-windows-message
-: TCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: TCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: ACM_OPENA WM_USER 100 +  ; inline add-windows-message
-: ACM_OPENW WM_USER 103 +  ; inline add-windows-message
-: ACM_PLAY WM_USER 101 +  ; inline add-windows-message
-: ACM_STOP WM_USER 102 +  ; inline add-windows-message
-: MCM_FIRST HEX: 1000 ; inline add-windows-message
-: MCM_GETCURSEL MCM_FIRST  1 +  ; inline add-windows-message
-: MCM_SETCURSEL MCM_FIRST  2 +  ; inline add-windows-message
-: MCM_GETMAXSELCOUNT MCM_FIRST  3 +  ; inline add-windows-message
-: MCM_SETMAXSELCOUNT MCM_FIRST  4 +  ; inline add-windows-message
-: MCM_GETSELRANGE MCM_FIRST  5 +  ; inline add-windows-message
-: MCM_SETSELRANGE MCM_FIRST  6 +  ; inline add-windows-message
-: MCM_GETMONTHRANGE MCM_FIRST  7 +  ; inline add-windows-message
-: MCM_SETDAYSTATE MCM_FIRST  8 +  ; inline add-windows-message
-: MCM_GETMINREQRECT MCM_FIRST  9 +  ; inline add-windows-message
-: MCM_SETCOLOR MCM_FIRST  10 +  ; inline add-windows-message
-: MCM_GETCOLOR MCM_FIRST  11 +  ; inline add-windows-message
-: MCM_SETTODAY MCM_FIRST  12 +  ; inline add-windows-message
-: MCM_GETTODAY MCM_FIRST  13 +  ; inline add-windows-message
-: MCM_HITTEST MCM_FIRST  14 +  ; inline add-windows-message
-: MCM_SETFIRSTDAYOFWEEK MCM_FIRST  15 +  ; inline add-windows-message
-: MCM_GETFIRSTDAYOFWEEK MCM_FIRST  16 +  ; inline add-windows-message
-: MCM_GETRANGE MCM_FIRST  17 +  ; inline add-windows-message
-: MCM_SETRANGE MCM_FIRST  18 +  ; inline add-windows-message
-: MCM_GETMONTHDELTA MCM_FIRST  19 +  ; inline add-windows-message
-: MCM_SETMONTHDELTA MCM_FIRST  20 +  ; inline add-windows-message
-: MCM_GETMAXTODAYWIDTH MCM_FIRST  21 +  ; inline add-windows-message
-: MCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT ; inline add-windows-message
-: MCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT ; inline add-windows-message
-: DTM_FIRST HEX: 1000 ; inline add-windows-message
-: DTM_GETSYSTEMTIME DTM_FIRST  1 +  ; inline add-windows-message
-: DTM_SETSYSTEMTIME DTM_FIRST  2 +  ; inline add-windows-message
-: DTM_GETRANGE DTM_FIRST  3 +  ; inline add-windows-message
-: DTM_SETRANGE DTM_FIRST  4 +  ; inline add-windows-message
-: DTM_SETFORMATA DTM_FIRST  5 +  ; inline add-windows-message
-: DTM_SETFORMATW DTM_FIRST  50 +  ; inline add-windows-message
-: DTM_SETMCCOLOR DTM_FIRST  6 +  ; inline add-windows-message
-: DTM_GETMCCOLOR DTM_FIRST  7 +  ; inline add-windows-message
-: DTM_GETMONTHCAL DTM_FIRST  8 +  ; inline add-windows-message
-: DTM_SETMCFONT DTM_FIRST  9 +  ; inline add-windows-message
-: DTM_GETMCFONT DTM_FIRST  10 +  ; inline add-windows-message
-: PGM_SETCHILD PGM_FIRST  1 +  ; inline add-windows-message
-: PGM_RECALCSIZE PGM_FIRST  2 +  ; inline add-windows-message
-: PGM_FORWARDMOUSE PGM_FIRST  3 +  ; inline add-windows-message
-: PGM_SETBKCOLOR PGM_FIRST  4 +  ; inline add-windows-message
-: PGM_GETBKCOLOR PGM_FIRST  5 +  ; inline add-windows-message
-: PGM_SETBORDER PGM_FIRST  6 +  ; inline add-windows-message
-: PGM_GETBORDER PGM_FIRST  7 +  ; inline add-windows-message
-: PGM_SETPOS PGM_FIRST  8 +  ; inline add-windows-message
-: PGM_GETPOS PGM_FIRST  9 +  ; inline add-windows-message
-: PGM_SETBUTTONSIZE PGM_FIRST  10 +  ; inline add-windows-message
-: PGM_GETBUTTONSIZE PGM_FIRST  11 +  ; inline add-windows-message
-: PGM_GETBUTTONSTATE PGM_FIRST  12 +  ; inline add-windows-message
-: PGM_GETDROPTARGET CCM_GETDROPTARGET ; inline add-windows-message
-: BCM_GETIDEALSIZE BCM_FIRST  1 +  ; inline add-windows-message
-: BCM_SETIMAGELIST BCM_FIRST  2 +  ; inline add-windows-message
-: BCM_GETIMAGELIST BCM_FIRST  3 +  ; inline add-windows-message
-: BCM_SETTEXTMARGIN BCM_FIRST 4 +  ; inline add-windows-message
-: BCM_GETTEXTMARGIN BCM_FIRST 5 +  ; inline add-windows-message
-: EM_SETCUEBANNER       ECM_FIRST  1 +  ; inline add-windows-message
-: EM_GETCUEBANNER       ECM_FIRST  2 +  ; inline add-windows-message
-: EM_SHOWBALLOONTIP ECM_FIRST  3 +  ; inline add-windows-message
-: EM_HIDEBALLOONTIP ECM_FIRST  4 +  ; inline add-windows-message 
-: CB_SETMINVISIBLE CBM_FIRST  1 +  ; inline add-windows-message
-: CB_GETMINVISIBLE CBM_FIRST  2 +  ; inline add-windows-message
-: LM_HITTEST WM_USER  HEX: 0300 +  ; inline add-windows-message 
-: LM_GETIDEALHEIGHT WM_USER  HEX: 0301 +  ; inline add-windows-message
-: LM_SETITEM WM_USER  HEX: 0302 + ; inline add-windows-message 
-: LM_GETITEM WM_USER  HEX: 0303 + ; inline add-windows-message
diff --git a/library/windows/winsock.factor b/library/windows/winsock.factor
deleted file mode 100644 (file)
index f127b7b..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-! :folding=indent:collapseFolds=1:
-
-! $Id: winsock.factor,v 1.8 2005/09/12 15:10:33 erg Exp $
-!
-! Copyright (C) 2004 Mackenzie Straight.
-! 
-! Redistribution and use in source and binary forms, with or without
-! modification, are permitted provided that the following conditions are met:
-! 
-! 1. Redistributions of source code must retain the above copyright notice,
-!    this list of conditions and the following disclaimer.
-! 
-! 2. Redistributions in binary form must reproduce the above copyright notice,
-!    this list of conditions and the following disclaimer in the documentation
-!    and/or other materials provided with the distribution.
-! 
-! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-IN: win32-api
-USE: alien
-USE: kernel
-USE: kernel-internals
-USE: sequences-internals
-USE: arrays
-
-: <wsadata> HEX: 190 <byte-array> ;
-
-: AF_INET 2 ;
-: SOCK_STREAM 1 ;
-: WSA_FLAG_OVERLAPPED 1 ;
-: INADDR_ANY 0 ;
-
-BEGIN-STRUCT: sockaddr-in
-    FIELD: short family
-    FIELD: short port
-    FIELD: int addr
-    FIELD: char pad
-    FIELD: char pad
-    FIELD: char pad
-    FIELD: char pad
-    FIELD: char pad
-    FIELD: char pad
-    FIELD: char pad
-    FIELD: char pad
-END-STRUCT
-
-: WSAStartup ( version out-data -- int )
-    "int" "winsock" "WSAStartup" [ "short" "void*" ] alien-invoke ;
-
-: WSASocket ( af type protocol protocol-info g flags -- socket )
-    "void*" "winsock" "WSASocketA" [ "int" "int" "int" "void*" "void*" "int" ]
-    alien-invoke ;
-
-: htons ( short -- short ) 
-    "ushort" "winsock" "htons" [ "ushort" ] alien-invoke ;
-
-: ntohs ( short -- short )
-    "ushort" "winsock" "ntohs" [ "ushort" ] alien-invoke ;
-
-: wsa-bind ( socket sockaddr len -- status )
-    "int" "winsock" "bind" [ "void*" "sockaddr-in*" "int" ] alien-invoke ;
-
-: wsa-listen ( socket backlog -- status )
-    "int" "winsock" "listen" [ "void*" "int" ] alien-invoke ;
-
-: WSAGetLastError ( -- error )
-    "int" "winsock" "WSAGetLastError" [ ] alien-invoke ;
-
-: inet-ntoa ( in-addr -- str )
-    "char*" "winsock" "inet_ntoa" [ "int" ] alien-invoke ; 
-
-: AcceptEx 
-( listen accept out-buf recv-len addr-len remote-len out-len overlapped -- ? )
-    "bool" "mswsock" "AcceptEx"
-    [ "void*" "void*" "void*" "int" "int" "int" "void*" "void*" ]
-    alien-invoke ;
-
-: GetAcceptExSockaddrs ( stack effect is too long to put here -- )
-    "void" "mswsock" "GetAcceptExSockaddrs"
-    [ "void*" "int" "int" "int" "void*" "void*" "void*" "void*" ] alien-invoke ;
-
-BEGIN-STRUCT: hostent
-    FIELD: char* name
-    FIELD: void* aliases
-    FIELD: short addrtype
-    FIELD: short length
-    FIELD: void* addr-list
-END-STRUCT
-
-: hostent-addr hostent-addr-list *void* *uint ;
-
-: gethostbyname ( name -- hostent )
-    "hostent*" "winsock" "gethostbyname" [ "char*" ] alien-invoke ;
-
-: connect ( socket sockaddr addrlen -- int )
-    "int" "winsock" "connect" [ "void*" "sockaddr-in*" "int" ] 
-    alien-invoke ;
-
index 155b8cf343b6a9c1ab66567b78f45a42e698a5e3..75dd8d1f12a5b461a6676169e84230ea978cb767 100644 (file)
@@ -1,3 +1,4 @@
 CFLAGS += -DWINDOWS
 LIBS = -lm
 PLAF_SUFFIX = .exe
+PLAF_OBJS = vm/os-windows.o
index 5832c020bc19ba37076f388c3d6e311cad99ef3b..829f34a7772b1ffed3f5ac6eceee2ba7996c7131 100644 (file)
-#include "factor.h"
-
-/* test if alien is no longer valid (it survived an image save/load) */
-void primitive_expired(void)
-{
-       CELL object = dpeek();
-
-       if(type_of(object) == ALIEN_TYPE)
-       {
-               ALIEN *alien = untag_alien_fast(object);
-               drepl(tag_boolean(alien->expired));
-       }
-       else if(object == F)
-               drepl(T);
-       else
-               drepl(F);
-}
-
-/* gets the address of an object representing a C pointer */
-void *alien_offset(CELL object)
-{
-       ALIEN *alien;
-       F_ARRAY *array;
-
-       switch(type_of(object))
-       {
-       case BYTE_ARRAY_TYPE:
-               array = untag_byte_array_fast(object);
-               return array + 1;
-       case ALIEN_TYPE:
-               alien = untag_alien_fast(object);
-               if(alien->expired)
-                       general_error(ERROR_EXPIRED,object,F,true);
-               return alien_offset(alien->alien) + alien->displacement;
-       case F_TYPE:
-               return NULL;
-       default:
-               type_error(ALIEN_TYPE,object);
-               return (void*)-1; /* can't happen */
-       }
-}
-
-/* pop an object representing a C pointer */
-void *unbox_alien(void)
-{
-       return alien_offset(dpop());
-}
-
-/* pop ( alien n ) from datastack, return alien's address plus n */
-INLINE void *alien_pointer(void)
-{
-       F_FIXNUM offset = unbox_signed_cell();
-       return unbox_alien() + offset;
-}
-
-/* make an alien */
-ALIEN *make_alien(CELL delegate, CELL displacement)
-{
-       ALIEN *alien = allot_object(ALIEN_TYPE,sizeof(ALIEN));
-       alien->alien = delegate;
-       alien->displacement = displacement;
-       alien->expired = false;
-       return alien;
-}
-
-/* make an alien and push */
-void box_alien(CELL ptr)
-{
-       if(ptr == 0)
-               dpush(F);
-       else
-               dpush(tag_object(make_alien(F,ptr)));
-}
-
-/* make an alien pointing at an offset of another alien */
-void primitive_displaced_alien(void)
-{
-       CELL alien;
-       CELL displacement;
-       maybe_gc(sizeof(ALIEN));
-       alien = dpop();
-       displacement = unbox_unsigned_cell();
-       if(alien == F && displacement == 0)
-               dpush(F);
-       else
-               dpush(tag_object(make_alien(alien,displacement)));
-}
-
-/* address of an object representing a C pointer */
-void primitive_alien_address(void)
-{
-       box_unsigned_cell((CELL)alien_offset(dpop()));
-}
-
-/* image loading */
-void fixup_alien(ALIEN *d)
-{
-       data_fixup(&d->alien);
-       d->expired = true;
-}
-
-/* GC */
-void collect_alien(ALIEN *d)
-{
-       copy_handle(&d->alien);
-}
-
-/* define words to read/write numericals values at an alien address */
-#define DEF_ALIEN_SLOT(name,type,boxer) \
-void primitive_alien_##name (void) \
-{ \
-       box_##boxer (*(type*)alien_pointer()); \
-} \
-void primitive_set_alien_##name (void) \
-{ \
-       type* ptr = alien_pointer(); \
-       type value = unbox_##boxer(); \
-       *ptr = value; \
-}
-
-DEF_ALIEN_SLOT(signed_cell,F_FIXNUM,signed_cell)
-DEF_ALIEN_SLOT(unsigned_cell,CELL,unsigned_cell)
-DEF_ALIEN_SLOT(signed_8,s64,signed_8)
-DEF_ALIEN_SLOT(unsigned_8,u64,unsigned_8)
-DEF_ALIEN_SLOT(signed_4,s32,signed_4)
-DEF_ALIEN_SLOT(unsigned_4,u32,unsigned_4)
-DEF_ALIEN_SLOT(signed_2,s16,signed_2)
-DEF_ALIEN_SLOT(unsigned_2,u16,unsigned_2)
-DEF_ALIEN_SLOT(signed_1,u8,signed_1)
-DEF_ALIEN_SLOT(unsigned_1,u8,unsigned_1)
-DEF_ALIEN_SLOT(float,float,float)
-DEF_ALIEN_SLOT(double,double,double)
-
-/* for FFI calls passing structs by value */
-void unbox_value_struct(void *dest, CELL size)
-{
-       memcpy(dest,unbox_alien(),size);
-}
-
-/* for FFI callbacks receiving structs by value */
-void box_value_struct(void *src, CELL size)
-{
-       F_ARRAY *array = byte_array(size);
-       memcpy(array + 1,src,size);
-       dpush(tag_object(array));
-}
-
-/* for FFI calls returning an 8-byte struct. This only
-happends on Intel Mac OS X */
-void box_value_pair(CELL x, CELL y)
-{
-       F_ARRAY *array = byte_array(8);
-       put(AREF(array,0),x);
-       put(AREF(array,1),y);
-       dpush(tag_object(array));
-}
-
-void primitive_dlopen(void)
-{
-       DLL* dll;
-       F_STRING* path;
-
-       maybe_gc(sizeof(DLL));
-
-       path = untag_string(dpop());
-       dll = allot_object(DLL_TYPE,sizeof(DLL));
-       dll->path = tag_object(path);
-       ffi_dlopen(dll,true);
-
-       dpush(tag_object(dll));
-}
-
-void primitive_dlsym(void)
-{
-       CELL dll;
-       F_STRING *sym;
-       DLL *d;
-
-       maybe_gc(0);
-
-       dll = dpop();
-       sym = untag_string(dpop());
-       
-       if(dll == F)
-               d = NULL;
-       else
-       {
-               d = untag_dll(dll);
-               if(d->dll == NULL)
-                       general_error(ERROR_EXPIRED,dll,F,true);
-       }
-
-       dpush(tag_cell((CELL)ffi_dlsym(d,sym,true)));
-}
-
-void primitive_dlclose(void)
-{
-       ffi_dlclose(untag_dll(dpop()));
-}
-
-void fixup_dll(DLL* dll)
-{
-       data_fixup(&dll->path);
-       ffi_dlopen(dll,false);
-}
-
-void collect_dll(DLL* dll)
-{
-       copy_handle(&dll->path);
-}
+#include "factor.h"\r
+\r
+/* test if alien is no longer valid (it survived an image save/load) */\r
+void primitive_expired(void)\r
+{\r
+       CELL object = dpeek();\r
+\r
+       if(type_of(object) == ALIEN_TYPE)\r
+       {\r
+               ALIEN *alien = untag_alien_fast(object);\r
+               drepl(tag_boolean(alien->expired));\r
+       }\r
+       else if(object == F)\r
+               drepl(T);\r
+       else\r
+               drepl(F);\r
+}\r
+\r
+/* gets the address of an object representing a C pointer */\r
+void *alien_offset(CELL object)\r
+{\r
+       ALIEN *alien;\r
+       F_ARRAY *array;\r
+\r
+       switch(type_of(object))\r
+       {\r
+       case BYTE_ARRAY_TYPE:\r
+               array = untag_byte_array_fast(object);\r
+               return array + 1;\r
+       case ALIEN_TYPE:\r
+               alien = untag_alien_fast(object);\r
+               if(alien->expired)\r
+                       general_error(ERROR_EXPIRED,object,F,true);\r
+               return alien_offset(alien->alien) + alien->displacement;\r
+       case F_TYPE:\r
+               return NULL;\r
+       default:\r
+               type_error(ALIEN_TYPE,object);\r
+               return (void*)-1; /* can't happen */\r
+       }\r
+}\r
+\r
+/* pop an object representing a C pointer */\r
+void *unbox_alien(void)\r
+{\r
+       return alien_offset(dpop());\r
+}\r
+\r
+/* pop ( alien n ) from datastack, return alien's address plus n */\r
+INLINE void *alien_pointer(void)\r
+{\r
+       F_FIXNUM offset = unbox_signed_cell();\r
+       return unbox_alien() + offset;\r
+}\r
+\r
+/* make an alien */\r
+ALIEN *make_alien(CELL delegate, CELL displacement)\r
+{\r
+       ALIEN *alien = allot_object(ALIEN_TYPE,sizeof(ALIEN));\r
+       alien->alien = delegate;\r
+       alien->displacement = displacement;\r
+       alien->expired = false;\r
+       return alien;\r
+}\r
+\r
+/* make an alien and push */\r
+void box_alien(CELL ptr)\r
+{\r
+       if(ptr == 0)\r
+               dpush(F);\r
+       else\r
+               dpush(tag_object(make_alien(F,ptr)));\r
+}\r
+\r
+/* make an alien pointing at an offset of another alien */\r
+void primitive_displaced_alien(void)\r
+{\r
+       CELL alien;\r
+       CELL displacement;\r
+       maybe_gc(sizeof(ALIEN));\r
+       alien = dpop();\r
+       displacement = unbox_unsigned_cell();\r
+       if(alien == F && displacement == 0)\r
+               dpush(F);\r
+       else\r
+               dpush(tag_object(make_alien(alien,displacement)));\r
+}\r
+\r
+/* address of an object representing a C pointer */\r
+void primitive_alien_address(void)\r
+{\r
+       box_unsigned_cell((CELL)alien_offset(dpop()));\r
+}\r
+\r
+/* image loading */\r
+void fixup_alien(ALIEN *d)\r
+{\r
+       data_fixup(&d->alien);\r
+       d->expired = true;\r
+}\r
+\r
+/* GC */\r
+void collect_alien(ALIEN *d)\r
+{\r
+       copy_handle(&d->alien);\r
+}\r
+\r
+/* define words to read/write numericals values at an alien address */\r
+#define DEF_ALIEN_SLOT(name,type,boxer) \\r
+void primitive_alien_##name (void) \\r
+{ \\r
+       box_##boxer (*(type*)alien_pointer()); \\r
+} \\r
+void primitive_set_alien_##name (void) \\r
+{ \\r
+       type* ptr = alien_pointer(); \\r
+       type value = unbox_##boxer(); \\r
+       *ptr = value; \\r
+}\r
+\r
+DEF_ALIEN_SLOT(signed_cell,F_FIXNUM,signed_cell)\r
+DEF_ALIEN_SLOT(unsigned_cell,CELL,unsigned_cell)\r
+DEF_ALIEN_SLOT(signed_8,s64,signed_8)\r
+DEF_ALIEN_SLOT(unsigned_8,u64,unsigned_8)\r
+DEF_ALIEN_SLOT(signed_4,s32,signed_4)\r
+DEF_ALIEN_SLOT(unsigned_4,u32,unsigned_4)\r
+DEF_ALIEN_SLOT(signed_2,s16,signed_2)\r
+DEF_ALIEN_SLOT(unsigned_2,u16,unsigned_2)\r
+DEF_ALIEN_SLOT(signed_1,u8,signed_1)\r
+DEF_ALIEN_SLOT(unsigned_1,u8,unsigned_1)\r
+DEF_ALIEN_SLOT(float,float,float)\r
+DEF_ALIEN_SLOT(double,double,double)\r
+\r
+/* for FFI calls passing structs by value */\r
+void unbox_value_struct(void *dest, CELL size)\r
+{\r
+       memcpy(dest,unbox_alien(),size);\r
+}\r
+\r
+/* for FFI callbacks receiving structs by value */\r
+void box_value_struct(void *src, CELL size)\r
+{\r
+       F_ARRAY *array = byte_array(size);\r
+       memcpy(array + 1,src,size);\r
+       dpush(tag_object(array));\r
+}\r
+\r
+/* for FFI calls returning an 8-byte struct. This only\r
+happends on Intel Mac OS X */\r
+void box_value_pair(CELL x, CELL y)\r
+{\r
+       F_ARRAY *array = byte_array(8);\r
+       put(AREF(array,0),x);\r
+       put(AREF(array,1),y);\r
+       dpush(tag_object(array));\r
+}\r
+\r
+void primitive_dlopen(void)\r
+{\r
+       DLL* dll;\r
+       F_STRING* path;\r
+\r
+       maybe_gc(sizeof(DLL));\r
+\r
+       path = untag_string(dpop());\r
+       dll = allot_object(DLL_TYPE,sizeof(DLL));\r
+       dll->path = tag_object(path);\r
+       ffi_dlopen(dll,true);\r
+\r
+       dpush(tag_object(dll));\r
+}\r
+\r
+void primitive_dlsym(void)\r
+{\r
+       CELL dll;\r
+       F_STRING *sym;\r
+       DLL *d;\r
+\r
+       maybe_gc(0);\r
+\r
+       dll = dpop();\r
+       sym = untag_string(dpop());\r
+       \r
+       if(dll == F)\r
+               d = NULL;\r
+       else\r
+       {\r
+               d = untag_dll(dll);\r
+               if(d->dll == NULL)\r
+                       general_error(ERROR_EXPIRED,dll,F,true);\r
+       }\r
+\r
+       dpush(tag_cell((CELL)ffi_dlsym(d,sym,true)));\r
+}\r
+\r
+void primitive_dlclose(void)\r
+{\r
+       ffi_dlclose(untag_dll(dpop()));\r
+}\r
+\r
+void fixup_dll(DLL* dll)\r
+{\r
+       data_fixup(&dll->path);\r
+       ffi_dlopen(dll,false);\r
+}\r
+\r
+void collect_dll(DLL* dll)\r
+{\r
+       copy_handle(&dll->path);\r
+}\r
index 7b41e09b58a21f641d7d42998e83562000d8a73f..effd9410c0653ee6694cd78aebcf8ed1edcadd57 100644 (file)
-#include "factor.h"
-
-/* frees memory allocated by win32 api calls */
-char *buffer_to_c_string(char *buffer)
-{
-       int capacity = strlen(buffer);
-       F_STRING *_c_str = allot_string(capacity / CHARS + 1);
-       u8 *c_str = (u8*)(_c_str + 1);
-       strcpy(c_str, buffer);
-       LocalFree(buffer);
-       return (char*)c_str;
-}
-
-F_STRING *get_error_message()
-{
-       DWORD id = GetLastError();
-       return from_c_string(error_message(id));
-}
-
-char *error_message(DWORD id)
-{
-       char *buffer;
-       int index;
-       
-       FormatMessage(
-               FORMAT_MESSAGE_ALLOCATE_BUFFER |
-               FORMAT_MESSAGE_FROM_SYSTEM,
-               NULL,
-               id,
-               MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-               (LPTSTR) &buffer,
-               0, NULL);
-
-       /* strip whitespace from end */
-       index = strlen(buffer) - 1;
-       while(index >= 0 && isspace(buffer[index]))
-               buffer[index--] = 0;
-       
-       return buffer_to_c_string(buffer);
-}
-
-s64 current_millis(void)
-{
-       FILETIME t;
-       GetSystemTimeAsFileTime(&t);
-       return (((s64)t.dwLowDateTime | (s64)t.dwHighDateTime<<32) - EPOCH_OFFSET) 
-               / 10000;
-}
-
-void ffi_dlopen (DLL *dll, bool error)
-{
-       HMODULE module;
-       char *path = to_c_string(untag_string(dll->path),true);
-
-       module = LoadLibrary(path);
-
-       if (!module)
-       {
-               dll->dll = NULL;
-               if(error)
-                       general_error(ERROR_FFI, tag_object(get_error_message()),true);
-               else
-                       return;
-       }
-
-       dll->dll = module;
-}
-
-void *ffi_dlsym (DLL *dll, F_STRING *symbol, bool error)
-{
-       void *sym = GetProcAddress(dll ? (HMODULE)dll->dll : GetModuleHandle(NULL),
-               to_c_string(symbol,true));
-
-       if (!sym)
-       {
-               if(error)
-                       general_error(ERROR_FFI, tag_object(get_error_message()),true);
-               else
-                       return NULL;
-       }
-
-       return sym;
-}
-
-void ffi_dlclose (DLL *dll)
-{
-       FreeLibrary((HMODULE)dll->dll);
-       dll->dll = NULL;
-}
-
-void primitive_stat(void)
-{
-       F_STRING *path;
-       WIN32_FILE_ATTRIBUTE_DATA st;
-
-       maybe_gc(0);
-       path = untag_string(dpop());
-
-       if(!GetFileAttributesEx(to_c_string(path,true), GetFileExInfoStandard, &st)) 
-       {
-               dpush(F);
-       } 
-       else 
-       {
-               CELL dirp = tag_boolean(st.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
-               CELL size = tag_bignum(s48_long_long_to_bignum(
-                       (s64)st.nFileSizeLow | (s64)st.nFileSizeHigh << 32));
-               CELL mtime = tag_integer((int)
-                       ((*(s64*)&st.ftLastWriteTime - EPOCH_OFFSET) / 10000000));
-               dpush(make_array_4(dirp,tag_fixnum(0),size,mtime));
-       }
-}
-
-void primitive_read_dir(void)
-{
-       F_STRING *path;
-       HANDLE dir;
-       WIN32_FIND_DATA find_data;
-       F_ARRAY *result;
-       CELL result_count = 0;
-
-       maybe_gc(0);
-
-       result = array(ARRAY_TYPE,100,F);
-
-       path = untag_string(dpop());
-       if (INVALID_HANDLE_VALUE != (dir = FindFirstFile(".\\*", &find_data)))
-       {
-               do
-               {
-                       CELL name = tag_object(from_c_string(
-                               find_data.cFileName));
-
-                       if(result_count == array_capacity(result))
-                       {
-                               result = resize_array(result,
-                                       result_count * 2,F);
-                       }
-                       
-                       put(AREF(result,result_count),name);
-                       result_count++;
-               } 
-               while (FindNextFile(dir, &find_data));
-               CloseHandle(dir);
-       }
-
-       result = resize_array(result,result_count,F);
-
-       dpush(tag_object(result));
-}
-
-void primitive_cwd(void)
-{
-       char buf[MAX_PATH];
-
-       maybe_gc(0);
-       if(!GetCurrentDirectory(MAX_PATH, buf))
-               io_error();
-
-       box_c_string(buf);
-}
-
-void primitive_cd(void)
-{
-       maybe_gc(0);
-       SetCurrentDirectory(pop_c_string());
-}
-
-BOUNDED_BLOCK *alloc_bounded_block(CELL size)
-{
-    SYSTEM_INFO si;
-    char *mem;
-    DWORD ignore;
-
-    GetSystemInfo(&si);
-    if((mem = (char *)VirtualAlloc(NULL, si.dwPageSize*2 + size, MEM_COMMIT, PAGE_EXECUTE_READWRITE)) == 0)
-        fatal_error("VirtualAlloc() failed in alloc_bounded_block()",0);
-
-    if (!VirtualProtect(mem, si.dwPageSize, PAGE_NOACCESS, &ignore))
-        fatal_error("Cannot allocate low guard page", (CELL)mem);
-
-    if (!VirtualProtect(mem+size+si.dwPageSize, si.dwPageSize, PAGE_NOACCESS, &ignore))
-        fatal_error("Cannot allocate high guard page", (CELL)mem);
-
-    BOUNDED_BLOCK *block = safe_malloc(sizeof(BOUNDED_BLOCK));
-
-    block->start = (int)mem + si.dwPageSize;
-    block->size = size;
-
-    return block;
-}
-
-void dealloc_bounded_block(BOUNDED_BLOCK *block)
-{
-    SYSTEM_INFO si;
-    GetSystemInfo(&si);
-    if(!VirtualFree((void*)(block->start - si.dwPageSize), 0, MEM_RELEASE))
-        fatal_error("VirtualFree() failed",0);
-    free(block);
-}
-
-/* SEH support. Proceed with caution. */
-typedef long exception_handler_t(
-       void *rec, void *frame, void *context, void *dispatch);
-
-typedef struct exception_record {
-       struct exception_record *next_handler;
-       void *handler_func;
-} exception_record_t;
-
-void seh_call(void (*func)(), exception_handler_t *handler)
-{
-       exception_record_t record;
-       asm("mov %%fs:0, %0" : "=r" (record.next_handler));
-       asm("mov %0, %%fs:0" : : "r" (&record));
-       record.handler_func = handler;
-       func();
-       asm("mov %0, %%fs:0" : "=r" (record.next_handler));
-}
-
-static long exception_handler(void *rec, void *frame, void *ctx, void *dispatch)
-{
-       signal_error(SIGSEGV);
-}
-
-void platform_run(void)
-{
-       seh_call(run_toplevel, exception_handler);
-}
-
-const char *default_image_path(void)
-{
-       return "factor.image";
-}
+#include "factor.h"\r
+\r
+/* frees memory allocated by win32 api calls */\r
+char *buffer_to_char_string(char *buffer)\r
+{\r
+       int capacity = strlen(buffer);\r
+       F_STRING *_c_str = allot_string(capacity / CHARS + 1);\r
+       u8 *c_str = (u8*)(_c_str + 1);\r
+       strcpy(c_str, buffer);\r
+       LocalFree(buffer);\r
+       return (char*)c_str;\r
+}\r
+\r
+F_STRING *get_error_message()\r
+{\r
+       DWORD id = GetLastError();\r
+       return from_char_string(error_message(id));\r
+}\r
+\r
+char *error_message(DWORD id)\r
+{\r
+       char *buffer;\r
+       int index;\r
+       \r
+       FormatMessage(\r
+               FORMAT_MESSAGE_ALLOCATE_BUFFER |\r
+               FORMAT_MESSAGE_FROM_SYSTEM,\r
+               NULL,\r
+               id,\r
+               MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),\r
+               (LPTSTR) &buffer,\r
+               0, NULL);\r
+\r
+       /* strip whitespace from end */\r
+       index = strlen(buffer) - 1;\r
+       while(index >= 0 && isspace(buffer[index]))\r
+               buffer[index--] = 0;\r
+       \r
+       return buffer_to_char_string(buffer);\r
+}\r
+\r
+s64 current_millis(void)\r
+{\r
+       FILETIME t;\r
+       GetSystemTimeAsFileTime(&t);\r
+       return (((s64)t.dwLowDateTime | (s64)t.dwHighDateTime<<32) - EPOCH_OFFSET) \r
+               / 10000;\r
+}\r
+\r
+void ffi_dlopen (DLL *dll, bool error)\r
+{\r
+       HMODULE module;\r
+       char *path = to_char_string(untag_string(dll->path),true);\r
+\r
+       module = LoadLibrary(path);\r
+\r
+       if (!module)\r
+       {\r
+               dll->dll = NULL;\r
+               if(error)\r
+                       general_error(ERROR_FFI, tag_object(get_error_message()),F,true);\r
+               else\r
+                       return;\r
+       }\r
+\r
+       dll->dll = module;\r
+}\r
+\r
+void *ffi_dlsym (DLL *dll, F_STRING *symbol, bool error)\r
+{\r
+       void *sym = GetProcAddress(dll ? (HMODULE)dll->dll : GetModuleHandle(NULL),\r
+               to_char_string(symbol,true));\r
+\r
+       if (!sym)\r
+       {\r
+               if(error)\r
+                       general_error(ERROR_FFI, tag_object(get_error_message()),F,true);\r
+               else\r
+                       return NULL;\r
+       }\r
+\r
+       return sym;\r
+}\r
+\r
+void ffi_dlclose (DLL *dll)\r
+{\r
+       FreeLibrary((HMODULE)dll->dll);\r
+       dll->dll = NULL;\r
+}\r
+\r
+void primitive_stat(void)\r
+{\r
+       F_STRING *path;\r
+       WIN32_FILE_ATTRIBUTE_DATA st;\r
+\r
+       maybe_gc(0);\r
+       path = untag_string(dpop());\r
+\r
+       if(!GetFileAttributesEx(to_char_string(path,true), GetFileExInfoStandard, &st)) \r
+       {\r
+               dpush(F);\r
+       } \r
+       else \r
+       {\r
+               CELL dirp = tag_boolean(st.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);\r
+               CELL size = tag_bignum(s48_long_long_to_bignum(\r
+                       (s64)st.nFileSizeLow | (s64)st.nFileSizeHigh << 32));\r
+               CELL mtime = tag_integer((int)\r
+                       ((*(s64*)&st.ftLastWriteTime - EPOCH_OFFSET) / 10000000));\r
+               dpush(make_array_4(dirp,tag_fixnum(0),size,mtime));\r
+       }\r
+}\r
+\r
+void primitive_read_dir(void)\r
+{\r
+       F_STRING *path;\r
+       HANDLE dir;\r
+       WIN32_FIND_DATA find_data;\r
+       F_ARRAY *result;\r
+       CELL result_count = 0;\r
+\r
+       maybe_gc(0);\r
+\r
+       result = array(ARRAY_TYPE,100,F);\r
+\r
+       path = untag_string(dpop());\r
+       if (INVALID_HANDLE_VALUE != (dir = FindFirstFile(".\\*", &find_data)))\r
+       {\r
+               do\r
+               {\r
+                       CELL name = tag_object(from_char_string(\r
+                               find_data.cFileName));\r
+\r
+                       if(result_count == array_capacity(result))\r
+                       {\r
+                               result = resize_array(result,\r
+                                       result_count * 2,F);\r
+                       }\r
+                       \r
+                       put(AREF(result,result_count),name);\r
+                       result_count++;\r
+               } \r
+               while (FindNextFile(dir, &find_data));\r
+               CloseHandle(dir);\r
+       }\r
+\r
+       result = resize_array(result,result_count,F);\r
+\r
+       dpush(tag_object(result));\r
+}\r
+\r
+void primitive_cwd(void)\r
+{\r
+       char buf[MAX_PATH];\r
+\r
+       maybe_gc(0);\r
+       if(!GetCurrentDirectory(MAX_PATH, buf))\r
+               io_error();\r
+\r
+       box_char_string(buf);\r
+}\r
+\r
+void primitive_cd(void)\r
+{\r
+       maybe_gc(0);\r
+       SetCurrentDirectory(pop_char_string());\r
+}\r
+\r
+BOUNDED_BLOCK *alloc_bounded_block(CELL size)\r
+{\r
+    SYSTEM_INFO si;\r
+    char *mem;\r
+    DWORD ignore;\r
+\r
+    GetSystemInfo(&si);\r
+    if((mem = (char *)VirtualAlloc(NULL, si.dwPageSize*2 + size, MEM_COMMIT, PAGE_EXECUTE_READWRITE)) == 0)\r
+        fatal_error("VirtualAlloc() failed in alloc_bounded_block()",0);\r
+\r
+    if (!VirtualProtect(mem, si.dwPageSize, PAGE_NOACCESS, &ignore))\r
+        fatal_error("Cannot allocate low guard page", (CELL)mem);\r
+\r
+    if (!VirtualProtect(mem+size+si.dwPageSize, si.dwPageSize, PAGE_NOACCESS, &ignore))\r
+        fatal_error("Cannot allocate high guard page", (CELL)mem);\r
+\r
+    BOUNDED_BLOCK *block = safe_malloc(sizeof(BOUNDED_BLOCK));\r
+\r
+    block->start = (int)mem + si.dwPageSize;\r
+    block->size = size;\r
+\r
+    return block;\r
+}\r
+\r
+void dealloc_bounded_block(BOUNDED_BLOCK *block)\r
+{\r
+    SYSTEM_INFO si;\r
+    GetSystemInfo(&si);\r
+    if(!VirtualFree((void*)(block->start - si.dwPageSize), 0, MEM_RELEASE))\r
+        fatal_error("VirtualFree() failed",0);\r
+    free(block);\r
+}\r
+\r
+/* SEH support. Proceed with caution. */\r
+typedef long exception_handler_t(\r
+       void *rec, void *frame, void *context, void *dispatch);\r
+\r
+typedef struct exception_record {\r
+       struct exception_record *next_handler;\r
+       void *handler_func;\r
+} exception_record_t;\r
+\r
+void seh_call(void (*func)(), exception_handler_t *handler)\r
+{\r
+       exception_record_t record;\r
+       asm("mov %%fs:0, %0" : "=r" (record.next_handler));\r
+       asm("mov %0, %%fs:0" : : "r" (&record));\r
+       record.handler_func = handler;\r
+       func();\r
+       asm("mov %0, %%fs:0" : "=r" (record.next_handler));\r
+}\r
+\r
+static long exception_handler(void *rec, void *frame, void *ctx, void *dispatch)\r
+{\r
+       signal_error(SIGSEGV);\r
+}\r
+\r
+void platform_run(void)\r
+{\r
+       seh_call(run_toplevel, exception_handler);\r
+}\r
+\r
+const char *default_image_path(void)\r
+{\r
+       return "factor.image";\r
+}\r