]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/kernel32/kernel32.factor
more api work for windows
[factor.git] / basis / windows / kernel32 / kernel32.factor
old mode 100644 (file)
new mode 100755 (executable)
index 7d6f0ab..4d3dd81
@@ -1,93 +1,93 @@
 ! Copyright (C) 2005, 2006 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax kernel windows.types alias ;
+USING: alien alien.syntax kernel windows.types multiline ;
 IN: windows.kernel32
 
-: MAX_PATH 260 ; inline
+CONSTANT: MAX_PATH 260
 
-: GHND          HEX: 40 ; inline
-: GMEM_FIXED          0 ; inline
-: GMEM_MOVEABLE       2 ; inline
-: GMEM_ZEROINIT HEX: 40 ; inline
-: GPTR          HEX: 40 ; inline
+CONSTANT: GHND          HEX: 40
+CONSTANT: GMEM_FIXED          0
+CONSTANT: GMEM_MOVEABLE       2
+CONSTANT: GMEM_ZEROINIT HEX: 40
+CONSTANT: GPTR          HEX: 40
 
-: GENERIC_READ    HEX: 80000000 ; inline
-: GENERIC_WRITE   HEX: 40000000 ; inline
-: GENERIC_EXECUTE HEX: 20000000 ; inline
-: GENERIC_ALL     HEX: 10000000 ; inline
+CONSTANT: GENERIC_READ    HEX: 80000000
+CONSTANT: GENERIC_WRITE   HEX: 40000000
+CONSTANT: GENERIC_EXECUTE HEX: 20000000
+CONSTANT: GENERIC_ALL     HEX: 10000000
 
-: CREATE_NEW        1 ; inline
-: CREATE_ALWAYS     2 ; inline
-: OPEN_EXISTING     3 ; inline
-: OPEN_ALWAYS       4 ; inline
-: TRUNCATE_EXISTING 5 ; inline
+CONSTANT: CREATE_NEW        1
+CONSTANT: CREATE_ALWAYS     2
+CONSTANT: OPEN_EXISTING     3
+CONSTANT: OPEN_ALWAYS       4
+CONSTANT: TRUNCATE_EXISTING 5
               
-: FILE_LIST_DIRECTORY       HEX: 00000001 ; inline
-: FILE_READ_DAT             HEX: 00000001 ; inline
-: FILE_ADD_FILE             HEX: 00000002 ; inline
-: FILE_WRITE_DATA           HEX: 00000002 ; inline
-: FILE_ADD_SUBDIRECTORY     HEX: 00000004 ; inline
-: FILE_APPEND_DATA          HEX: 00000004 ; inline
-: FILE_CREATE_PIPE_INSTANCE HEX: 00000004 ; inline
-: FILE_READ_EA              HEX: 00000008 ; inline
-: FILE_READ_PROPERTIES      HEX: 00000008 ; inline
-: FILE_WRITE_EA             HEX: 00000010 ; inline
-: FILE_WRITE_PROPERTIES     HEX: 00000010 ; inline
-: FILE_EXECUTE              HEX: 00000020 ; inline
-: FILE_TRAVERSE             HEX: 00000020 ; inline
-: FILE_DELETE_CHILD         HEX: 00000040 ; inline
-: FILE_READ_ATTRIBUTES      HEX: 00000080 ; inline
-: FILE_WRITE_ATTRIBUTES     HEX: 00000100 ; inline
-
-: FILE_SHARE_READ        1 ; inline
-: FILE_SHARE_WRITE       2 ; inline
-: FILE_SHARE_DELETE      4 ; inline
-: FILE_SHARE_VALID_FLAGS 7 ; inline
-
-: FILE_FLAG_WRITE_THROUGH       HEX: 80000000 ; inline
-: FILE_FLAG_OVERLAPPED          HEX: 40000000 ; inline
-: FILE_FLAG_NO_BUFFERING        HEX: 20000000 ; inline
-: FILE_FLAG_RANDOM_ACCESS       HEX: 10000000 ; inline
-: FILE_FLAG_SEQUENTIAL_SCAN     HEX: 08000000 ; inline
-: FILE_FLAG_DELETE_ON_CLOSE     HEX: 04000000 ; inline
-: FILE_FLAG_BACKUP_SEMANTICS    HEX: 02000000 ; inline
-: FILE_FLAG_POSIX_SEMANTICS     HEX: 01000000 ; inline
-: FILE_FLAG_OPEN_REPARSE_POINT  HEX: 00200000 ; inline
-: FILE_FLAG_OPEN_NO_RECALL      HEX: 00100000 ; inline
-: FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000 ; inline
-
-: FILE_ATTRIBUTE_READONLY            HEX: 00000001 ; inline
-: FILE_ATTRIBUTE_HIDDEN              HEX: 00000002 ; inline
-: FILE_ATTRIBUTE_SYSTEM              HEX: 00000004 ; inline
-: FILE_ATTRIBUTE_DIRECTORY           HEX: 00000010 ; inline
-: FILE_ATTRIBUTE_ARCHIVE             HEX: 00000020 ; inline
-: FILE_ATTRIBUTE_DEVICE              HEX: 00000040 ; inline
-: FILE_ATTRIBUTE_NORMAL              HEX: 00000080 ; inline
-: FILE_ATTRIBUTE_TEMPORARY           HEX: 00000100 ; inline
-: FILE_ATTRIBUTE_SPARSE_FILE         HEX: 00000200 ; inline
-: FILE_ATTRIBUTE_REPARSE_POINT       HEX: 00000400 ; inline
-: FILE_ATTRIBUTE_COMPRESSED          HEX: 00000800 ; inline
-: FILE_ATTRIBUTE_OFFLINE             HEX: 00001000 ; inline
-: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED HEX: 00002000 ; inline
-: FILE_ATTRIBUTE_ENCRYPTED           HEX: 00004000 ; inline
-
-: FILE_NOTIFY_CHANGE_FILE        HEX: 001 ; inline
-: FILE_NOTIFY_CHANGE_DIR_NAME    HEX: 002 ; inline
-: FILE_NOTIFY_CHANGE_ATTRIBUTES  HEX: 004 ; inline
-: FILE_NOTIFY_CHANGE_SIZE        HEX: 008 ; inline
-: FILE_NOTIFY_CHANGE_LAST_WRITE  HEX: 010 ; inline
-: FILE_NOTIFY_CHANGE_LAST_ACCESS HEX: 020 ; inline
-: FILE_NOTIFY_CHANGE_CREATION    HEX: 040 ; inline
-: FILE_NOTIFY_CHANGE_EA          HEX: 080 ; inline
-: FILE_NOTIFY_CHANGE_SECURITY    HEX: 100 ; inline
-: FILE_NOTIFY_CHANGE_FILE_NAME   HEX: 200 ; inline
-: FILE_NOTIFY_CHANGE_ALL         HEX: 3ff ; inline
-
-: FILE_ACTION_ADDED 1 ; inline
-: FILE_ACTION_REMOVED 2 ; inline
-: FILE_ACTION_MODIFIED 3 ; inline
-: FILE_ACTION_RENAMED_OLD_NAME 4 ; inline
-: FILE_ACTION_RENAMED_NEW_NAME 5 ; inline
+CONSTANT: FILE_LIST_DIRECTORY       HEX: 00000001
+CONSTANT: FILE_READ_DAT             HEX: 00000001
+CONSTANT: FILE_ADD_FILE             HEX: 00000002
+CONSTANT: FILE_WRITE_DATA           HEX: 00000002
+CONSTANT: FILE_ADD_SUBDIRECTORY     HEX: 00000004
+CONSTANT: FILE_APPEND_DATA          HEX: 00000004
+CONSTANT: FILE_CREATE_PIPE_INSTANCE HEX: 00000004
+CONSTANT: FILE_READ_EA              HEX: 00000008
+CONSTANT: FILE_READ_PROPERTIES      HEX: 00000008
+CONSTANT: FILE_WRITE_EA             HEX: 00000010
+CONSTANT: FILE_WRITE_PROPERTIES     HEX: 00000010
+CONSTANT: FILE_EXECUTE              HEX: 00000020
+CONSTANT: FILE_TRAVERSE             HEX: 00000020
+CONSTANT: FILE_DELETE_CHILD         HEX: 00000040
+CONSTANT: FILE_READ_ATTRIBUTES      HEX: 00000080
+CONSTANT: FILE_WRITE_ATTRIBUTES     HEX: 00000100
+
+CONSTANT: FILE_SHARE_READ        1
+CONSTANT: FILE_SHARE_WRITE       2
+CONSTANT: FILE_SHARE_DELETE      4
+CONSTANT: FILE_SHARE_VALID_FLAGS 7
+
+CONSTANT: FILE_FLAG_WRITE_THROUGH       HEX: 80000000
+CONSTANT: FILE_FLAG_OVERLAPPED          HEX: 40000000
+CONSTANT: FILE_FLAG_NO_BUFFERING        HEX: 20000000
+CONSTANT: FILE_FLAG_RANDOM_ACCESS       HEX: 10000000
+CONSTANT: FILE_FLAG_SEQUENTIAL_SCAN     HEX: 08000000
+CONSTANT: FILE_FLAG_DELETE_ON_CLOSE     HEX: 04000000
+CONSTANT: FILE_FLAG_BACKUP_SEMANTICS    HEX: 02000000
+CONSTANT: FILE_FLAG_POSIX_SEMANTICS     HEX: 01000000
+CONSTANT: FILE_FLAG_OPEN_REPARSE_POINT  HEX: 00200000
+CONSTANT: FILE_FLAG_OPEN_NO_RECALL      HEX: 00100000
+CONSTANT: FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000
+
+CONSTANT: FILE_ATTRIBUTE_READONLY            HEX: 00000001
+CONSTANT: FILE_ATTRIBUTE_HIDDEN              HEX: 00000002
+CONSTANT: FILE_ATTRIBUTE_SYSTEM              HEX: 00000004
+CONSTANT: FILE_ATTRIBUTE_DIRECTORY           HEX: 00000010
+CONSTANT: FILE_ATTRIBUTE_ARCHIVE             HEX: 00000020
+CONSTANT: FILE_ATTRIBUTE_DEVICE              HEX: 00000040
+CONSTANT: FILE_ATTRIBUTE_NORMAL              HEX: 00000080
+CONSTANT: FILE_ATTRIBUTE_TEMPORARY           HEX: 00000100
+CONSTANT: FILE_ATTRIBUTE_SPARSE_FILE         HEX: 00000200
+CONSTANT: FILE_ATTRIBUTE_REPARSE_POINT       HEX: 00000400
+CONSTANT: FILE_ATTRIBUTE_COMPRESSED          HEX: 00000800
+CONSTANT: FILE_ATTRIBUTE_OFFLINE             HEX: 00001000
+CONSTANT: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED HEX: 00002000
+CONSTANT: FILE_ATTRIBUTE_ENCRYPTED           HEX: 00004000
+
+CONSTANT: FILE_NOTIFY_CHANGE_FILE        HEX: 001
+CONSTANT: FILE_NOTIFY_CHANGE_DIR_NAME    HEX: 002
+CONSTANT: FILE_NOTIFY_CHANGE_ATTRIBUTES  HEX: 004
+CONSTANT: FILE_NOTIFY_CHANGE_SIZE        HEX: 008
+CONSTANT: FILE_NOTIFY_CHANGE_LAST_WRITE  HEX: 010
+CONSTANT: FILE_NOTIFY_CHANGE_LAST_ACCESS HEX: 020
+CONSTANT: FILE_NOTIFY_CHANGE_CREATION    HEX: 040
+CONSTANT: FILE_NOTIFY_CHANGE_EA          HEX: 080
+CONSTANT: FILE_NOTIFY_CHANGE_SECURITY    HEX: 100
+CONSTANT: FILE_NOTIFY_CHANGE_FILE_NAME   HEX: 200
+CONSTANT: FILE_NOTIFY_CHANGE_ALL         HEX: 3ff
+
+CONSTANT: FILE_ACTION_ADDED 1
+CONSTANT: FILE_ACTION_REMOVED 2
+CONSTANT: FILE_ACTION_MODIFIED 3
+CONSTANT: FILE_ACTION_RENAMED_OLD_NAME 4
+CONSTANT: FILE_ACTION_RENAMED_NEW_NAME 5
 
 C-STRUCT: FILE_NOTIFY_INFORMATION
     { "DWORD" "NextEntryOffset" }
@@ -96,107 +96,119 @@ C-STRUCT: FILE_NOTIFY_INFORMATION
     { "WCHAR[1]" "FileName" } ;
 TYPEDEF: FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION
 
-: STD_INPUT_HANDLE  -10 ; inline
-: STD_OUTPUT_HANDLE -11 ; inline
-: STD_ERROR_HANDLE  -12 ; inline
-
-: INVALID_HANDLE_VALUE -1 <alien> ; inline
-: INVALID_FILE_SIZE HEX: FFFFFFFF ; inline
-: INVALID_SET_FILE_POINTER HEX: ffffffff ; inline
-
-: FILE_BEGIN 0 ; inline
-: FILE_CURRENT 1 ; inline
-: FILE_END 2 ; inline
-
-: OF_READ 0 ;
-: OF_READWRITE    2 ;
-: OF_WRITE    1 ;
-: OF_SHARE_COMPAT    0 ;
-: OF_SHARE_DENY_NONE    64 ;
-: OF_SHARE_DENY_READ    48 ;
-: OF_SHARE_DENY_WRITE    32 ;
-: OF_SHARE_EXCLUSIVE    16 ;
-: OF_CANCEL    2048 ;
-: OF_CREATE    4096 ;
-: OF_DELETE    512 ;
-: OF_EXIST    16384 ;
-: OF_PARSE    256 ;
-: OF_PROMPT    8192 ;
-: OF_REOPEN    32768 ;
-: OF_VERIFY    1024 ;
-
-: INFINITE HEX: FFFFFFFF ; inline
+CONSTANT: STD_INPUT_HANDLE  -10
+CONSTANT: STD_OUTPUT_HANDLE -11
+CONSTANT: STD_ERROR_HANDLE  -12
+
+: INVALID_HANDLE_VALUE ( -- alien ) -1 <alien> ; inline
+CONSTANT: INVALID_FILE_SIZE HEX: FFFFFFFF
+CONSTANT: INVALID_SET_FILE_POINTER HEX: ffffffff
+
+CONSTANT: FILE_BEGIN 0
+CONSTANT: FILE_CURRENT 1
+CONSTANT: FILE_END 2
+
+CONSTANT: OF_READ 0
+CONSTANT: OF_READWRITE    2
+CONSTANT: OF_WRITE    1
+CONSTANT: OF_SHARE_COMPAT    0
+CONSTANT: OF_SHARE_DENY_NONE    64
+CONSTANT: OF_SHARE_DENY_READ    48
+CONSTANT: OF_SHARE_DENY_WRITE    32
+CONSTANT: OF_SHARE_EXCLUSIVE    16
+CONSTANT: OF_CANCEL    2048
+CONSTANT: OF_CREATE    4096
+CONSTANT: OF_DELETE    512
+CONSTANT: OF_EXIST    16384
+CONSTANT: OF_PARSE    256
+CONSTANT: OF_PROMPT    8192
+CONSTANT: OF_REOPEN    32768
+CONSTANT: OF_VERIFY    1024
+
+CONSTANT: INFINITE HEX: FFFFFFFF
 
 ! From C:\cygwin\usr\include\w32api\winbase.h
-: FILE_TYPE_UNKNOWN 0 ;
-: FILE_TYPE_DISK 1 ;
-: FILE_TYPE_CHAR 2 ;
-: FILE_TYPE_PIPE 3 ;
-: FILE_TYPE_REMOTE HEX: 8000 ;
-
-: TIME_ZONE_ID_UNKNOWN 0 ; inline
-: TIME_ZONE_ID_STANDARD 1 ; inline
-: TIME_ZONE_ID_DAYLIGHT 2 ; inline
-: TIME_ZONE_ID_INVALID HEX: FFFFFFFF ; inline
-
-
-: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 ; inline
-: PF_SSE3_INSTRUCTIONS_AVAILABLE 13 ; inline
-
-: MAX_COMPUTERNAME_LENGTH 15 ; inline
-: UNLEN 256 ; inline
-
-: PROCESS_TERMINATE ( -- n ) HEX: 1 ; inline
-: PROCESS_CREATE_THREAD ( -- n ) HEX: 2 ; inline
-: PROCESS_VM_OPERATION ( -- n ) HEX: 8 ; inline
-: PROCESS_VM_READ ( -- n ) HEX: 10 ; inline
-: PROCESS_VM_WRITE ( -- n ) HEX: 20 ; inline
-: PROCESS_DUP_HANDLE ( -- n ) HEX: 40 ; inline
-: PROCESS_CREATE_PROCESS ( -- n ) HEX: 80 ; inline
-: PROCESS_SET_QUOTA ( -- n ) HEX: 100 ; inline
-: PROCESS_SET_INFORMATION ( -- n ) HEX: 200 ; inline
-: PROCESS_QUERY_INFORMATION ( -- n ) HEX: 400 ; inline
-
-: MEM_COMMIT ( -- n ) HEX: 1000 ; inline
-: MEM_RELEASE ( -- n ) HEX: 8000 ; inline
-
-: PAGE_NOACCESS    1 ; inline
-: PAGE_READONLY    2 ; inline
-: PAGE_READWRITE 4 ; inline
-: PAGE_WRITECOPY 8 ; inline
-: PAGE_EXECUTE HEX: 10 ; inline
-: PAGE_EXECUTE_READ HEX: 20 ; inline
-: PAGE_EXECUTE_READWRITE HEX: 40 ; inline
-: PAGE_EXECUTE_WRITECOPY HEX: 80 ; inline
-: PAGE_GUARD HEX: 100 ; inline
-: PAGE_NOCACHE HEX: 200 ; inline
-
-: SEC_BASED HEX: 00200000 ; inline
-: SEC_NO_CHANGE HEX: 00400000 ; inline
-: SEC_FILE HEX: 00800000 ; inline
-: SEC_IMAGE HEX: 01000000 ; inline
-: SEC_VLM HEX: 02000000 ; inline
-: SEC_RESERVE HEX: 04000000 ; inline
-: SEC_COMMIT HEX: 08000000 ; inline
-: SEC_NOCACHE HEX: 10000000 ; inline
-: MEM_IMAGE SEC_IMAGE ; inline
-
-: ERROR_ALREADY_EXISTS 183 ; inline
-
-: FILE_MAP_ALL_ACCESS HEX: f001f ;
-: FILE_MAP_READ   4 ;
-: FILE_MAP_WRITE  2 ;
-: FILE_MAP_COPY   1 ;
-
-: THREAD_MODE_BACKGROUND_BEGIN HEX: 10000 ; inline
-: THREAD_MODE_BACKGROUND_END   HEX: 20000 ; inline
-: THREAD_PRIORITY_ABOVE_NORMAL 1 ; inline
-: THREAD_PRIORITY_BELOW_NORMAL -1 ; inline
-: THREAD_PRIORITY_HIGHEST 2 ; inline
-: THREAD_PRIORITY_IDLE -15 ; inline
-: THREAD_PRIORITY_LOWEST -2 ; inline
-: THREAD_PRIORITY_NORMAL 0 ; inline
-: THREAD_PRIORITY_TIME_CRITICAL 15 ; inline
+CONSTANT: FILE_TYPE_UNKNOWN 0
+CONSTANT: FILE_TYPE_DISK 1
+CONSTANT: FILE_TYPE_CHAR 2
+CONSTANT: FILE_TYPE_PIPE 3
+CONSTANT: FILE_TYPE_REMOTE HEX: 8000
+
+CONSTANT: TIME_ZONE_ID_UNKNOWN 0
+CONSTANT: TIME_ZONE_ID_STANDARD 1
+CONSTANT: TIME_ZONE_ID_DAYLIGHT 2
+CONSTANT: TIME_ZONE_ID_INVALID HEX: FFFFFFFF
+
+CONSTANT: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
+CONSTANT: PF_SSE3_INSTRUCTIONS_AVAILABLE 13
+
+CONSTANT: MAX_COMPUTERNAME_LENGTH 15
+CONSTANT: UNLEN 256
+
+CONSTANT: PROCESS_TERMINATE HEX: 1
+CONSTANT: PROCESS_CREATE_THREAD HEX: 2
+CONSTANT: PROCESS_VM_OPERATION HEX: 8
+CONSTANT: PROCESS_VM_READ HEX: 10
+CONSTANT: PROCESS_VM_WRITE HEX: 20
+CONSTANT: PROCESS_DUP_HANDLE HEX: 40
+CONSTANT: PROCESS_CREATE_PROCESS HEX: 80
+CONSTANT: PROCESS_SET_QUOTA HEX: 100
+CONSTANT: PROCESS_SET_INFORMATION HEX: 200
+CONSTANT: PROCESS_QUERY_INFORMATION HEX: 400
+
+CONSTANT: MEM_COMMIT HEX: 1000
+CONSTANT: MEM_RELEASE  HEX: 8000
+
+CONSTANT: PAGE_NOACCESS    1
+CONSTANT: PAGE_READONLY    2
+CONSTANT: PAGE_READWRITE 4
+CONSTANT: PAGE_WRITECOPY 8
+CONSTANT: PAGE_EXECUTE HEX: 10
+CONSTANT: PAGE_EXECUTE_READ HEX: 20
+CONSTANT: PAGE_EXECUTE_READWRITE HEX: 40
+CONSTANT: PAGE_EXECUTE_WRITECOPY HEX: 80
+CONSTANT: PAGE_GUARD HEX: 100
+CONSTANT: PAGE_NOCACHE HEX: 200
+
+CONSTANT: SEC_BASED HEX: 00200000
+CONSTANT: SEC_NO_CHANGE HEX: 00400000
+CONSTANT: SEC_FILE HEX: 00800000
+CONSTANT: SEC_IMAGE HEX: 01000000
+CONSTANT: SEC_VLM HEX: 02000000
+CONSTANT: SEC_RESERVE HEX: 04000000
+CONSTANT: SEC_COMMIT HEX: 08000000
+CONSTANT: SEC_NOCACHE HEX: 10000000
+ALIAS: MEM_IMAGE SEC_IMAGE
+
+CONSTANT: ERROR_ALREADY_EXISTS 183
+
+CONSTANT: FILE_MAP_ALL_ACCESS HEX: f001f
+CONSTANT: FILE_MAP_READ   4
+CONSTANT: FILE_MAP_WRITE  2
+CONSTANT: FILE_MAP_COPY   1
+
+CONSTANT: THREAD_MODE_BACKGROUND_BEGIN HEX: 10000
+CONSTANT: THREAD_MODE_BACKGROUND_END   HEX: 20000
+CONSTANT: THREAD_PRIORITY_ABOVE_NORMAL 1
+CONSTANT: THREAD_PRIORITY_BELOW_NORMAL -1
+CONSTANT: THREAD_PRIORITY_HIGHEST 2
+CONSTANT: THREAD_PRIORITY_IDLE -15
+CONSTANT: THREAD_PRIORITY_LOWEST -2
+CONSTANT: THREAD_PRIORITY_NORMAL 0
+CONSTANT: THREAD_PRIORITY_TIME_CRITICAL 15
+
+C-ENUM:
+    ComputerNameNetBIOS
+    ComputerNameDnsHostname
+    ComputerNameDnsDomain
+    ComputerNameDnsFullyQualified
+    ComputerNamePhysicalNetBIOS
+    ComputerNamePhysicalDnsHostname
+    ComputerNamePhysicalDnsDomain
+    ComputerNamePhysicalDnsFullyQualified
+    ComputerNameMax ;
+
+TYPEDEF: uint COMPUTER_NAME_FORMAT
 
 C-STRUCT: OVERLAPPED
     { "UINT_PTR" "internal" }
@@ -320,75 +332,318 @@ C-STRUCT: GUID
     { "WORD"  "Data3" }
     { { "UCHAR" 8 } "Data4" } ;
 
-
-: SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege" ;
-: SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege" ;
-: SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege" ;
-: SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege" ;
-: SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege" ;
-: SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege" ;
-: SE_TCB_NAME "SeTcbPrivilege" ;
-: SE_SECURITY_NAME "SeSecurityPrivilege" ;
-: SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege" ;
-: SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege" ;
-: SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege" ;
-: SE_SYSTEMTIME_NAME "SeSystemtimePrivilege" ;
-: SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege" ;
-: SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege" ;
-: SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege" ;
-: SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege" ;
-: SE_BACKUP_NAME "SeBackupPrivilege" ;
-: SE_RESTORE_NAME "SeRestorePrivilege" ;
-: SE_SHUTDOWN_NAME "SeShutdownPrivilege" ;
-: SE_DEBUG_NAME "SeDebugPrivilege" ;
-: SE_AUDIT_NAME "SeAuditPrivilege" ;
-: SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege" ;
-: SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege" ;
-: SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege" ;
-: SE_UNDOCK_NAME "SeUndockPrivilege" ;
-: SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege" ;
-: SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege" ;
-: SE_IMPERSONATE_NAME "SeImpersonatePrivilege" ;
-: SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege" ;
-
-: SE_GROUP_MANDATORY HEX: 00000001 ;
-: SE_GROUP_ENABLED_BY_DEFAULT HEX: 00000002 ;
-: SE_GROUP_ENABLED HEX: 00000004 ;
-: SE_GROUP_OWNER HEX: 00000008 ;
-: SE_GROUP_USE_FOR_DENY_ONLY HEX: 00000010 ;
-: SE_GROUP_LOGON_ID HEX: C0000000 ;
-: SE_GROUP_RESOURCE HEX: 20000000 ;
-
-: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001 ;
-: SE_PRIVILEGE_ENABLED HEX: 00000002 ;
-: SE_PRIVILEGE_REMOVE HEX: 00000004 ;
-: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000 ;
-
-: PRIVILEGE_SET_ALL_NECESSARY 1 ;
-
-: SE_OWNER_DEFAULTED HEX: 00000001 ;
-: SE_GROUP_DEFAULTED HEX: 00000002 ;
-: SE_DACL_PRESENT HEX: 00000004 ;
-: SE_DACL_DEFAULTED HEX: 00000008 ;
-: SE_SACL_PRESENT HEX: 00000010 ;
-: SE_SACL_DEFAULTED HEX: 00000020 ;
-: SE_DACL_AUTO_INHERIT_REQ HEX: 00000100 ;
-: SE_SACL_AUTO_INHERIT_REQ HEX: 00000200 ;
-: SE_DACL_AUTO_INHERITED HEX: 00000400 ;
-: SE_SACL_AUTO_INHERITED HEX: 00000800 ;
-: SE_DACL_PROTECTED  HEX: 00001000 ;
-: SE_SACL_PROTECTED  HEX: 00002000 ;
-: SE_SELF_RELATIVE HEX: 00008000 ;
-
-: ANYSIZE_ARRAY 1 ; inline
-
-: MAXIMUM_WAIT_OBJECTS 64 ; inline
-: MAXIMUM_SUSPEND_COUNT HEX: 7f ; inline
-: WAIT_OBJECT_0 0 ; inline
-: WAIT_ABANDONED_0 128 ; inline
-: WAIT_TIMEOUT 258 ; inline
-: WAIT_IO_COMPLETION HEX: c0 ; inline
-: WAIT_FAILED HEX: ffffffff ; inline
+/*
+    fBinary  :1;
+    fParity  :1;
+    fOutxCtsFlow  :1;
+    fOutxDsrFlow  :1;
+    fDtrControl  :2;
+    fDsrSensitivity  :1;
+    fTXContinueOnXoff  :1;
+    fOutX  :1;
+    fInX  :1;
+    fErrorChar  :1;
+    fNull  :1;
+    fRtsControl  :2;
+    fAbortOnError  :1;
+    fDummy2  :17;
+*/
+
+CONSTANT: SP_SERIALCOMM   HEX: 1
+CONSTANT: BAUD_075        HEX: 1
+CONSTANT: BAUD_110        HEX: 2
+CONSTANT: BAUD_134_5      HEX: 4
+CONSTANT: BAUD_150        HEX: 8
+CONSTANT: BAUD_300        HEX: 10
+CONSTANT: BAUD_600        HEX: 20
+CONSTANT: BAUD_1200       HEX: 40
+CONSTANT: BAUD_1800       HEX: 80
+CONSTANT: BAUD_2400       HEX: 100
+CONSTANT: BAUD_4800       HEX: 200
+CONSTANT: BAUD_7200       HEX: 400
+CONSTANT: BAUD_9600       HEX: 800
+CONSTANT: BAUD_14400      HEX: 1000
+CONSTANT: BAUD_19200      HEX: 2000
+CONSTANT: BAUD_38400      HEX: 4000
+CONSTANT: BAUD_56K        HEX: 8000
+CONSTANT: BAUD_57600      HEX: 40000
+CONSTANT: BAUD_115200     HEX: 20000
+CONSTANT: BAUD_128K       HEX: 10000
+CONSTANT: BAUD_USER       HEX: 10000000
+CONSTANT: PST_FAX     HEX: 21
+CONSTANT: PST_LAT     HEX: 101
+CONSTANT: PST_MODEM       HEX: 6
+CONSTANT: PST_NETWORK_BRIDGE  HEX: 100
+CONSTANT: PST_PARALLELPORT    HEX: 2
+CONSTANT: PST_RS232       HEX: 1
+CONSTANT: PST_RS422       HEX: 3
+CONSTANT: PST_RS423       HEX: 4
+CONSTANT: PST_RS449       HEX: 5
+CONSTANT: PST_SCANNER     HEX: 22
+CONSTANT: PST_TCPIP_TELNET    HEX: 102
+CONSTANT: PST_UNSPECIFIED 0
+CONSTANT: PST_X25     HEX: 103
+CONSTANT: PCF_16BITMODE   HEX: 200
+CONSTANT: PCF_DTRDSR      HEX: 1
+CONSTANT: PCF_INTTIMEOUTS HEX: 80
+CONSTANT: PCF_PARITY_CHECK    HEX: 8
+CONSTANT: PCF_RLSD        HEX: 4
+CONSTANT: PCF_RTSCTS      HEX: 2
+CONSTANT: PCF_SETXCHAR    HEX: 20
+CONSTANT: PCF_SPECIALCHARS    HEX: 100
+CONSTANT: PCF_TOTALTIMEOUTS   HEX: 40
+CONSTANT: PCF_XONXOFF     HEX: 10
+CONSTANT: SP_BAUD     HEX: 2
+CONSTANT: SP_DATABITS     HEX: 4
+CONSTANT: SP_HANDSHAKING  HEX: 10
+CONSTANT: SP_PARITY       HEX: 1
+CONSTANT: SP_PARITY_CHECK HEX: 20
+CONSTANT: SP_RLSD     HEX: 40
+CONSTANT: SP_STOPBITS     HEX: 8
+CONSTANT: DATABITS_5      1
+CONSTANT: DATABITS_6      2
+CONSTANT: DATABITS_7      4
+CONSTANT: DATABITS_8      8
+CONSTANT: DATABITS_16     16
+CONSTANT: DATABITS_16X    32
+CONSTANT: STOPBITS_10     1
+CONSTANT: STOPBITS_15     2
+CONSTANT: STOPBITS_20     4
+CONSTANT: PARITY_NONE     256
+CONSTANT: PARITY_ODD      512
+CONSTANT: PARITY_EVEN     1024
+CONSTANT: PARITY_MARK     2048
+CONSTANT: PARITY_SPACE    4096
+CONSTANT: COMMPROP_INITIALIZED    HEX: e73cf52e
+
+CONSTANT: CBR_110         110
+CONSTANT: CBR_300         300
+CONSTANT: CBR_600         600
+CONSTANT: CBR_1200            1200
+CONSTANT: CBR_2400            2400
+CONSTANT: CBR_4800            4800
+CONSTANT: CBR_9600            9600
+CONSTANT: CBR_14400           14400
+CONSTANT: CBR_19200           19200
+CONSTANT: CBR_38400           38400
+CONSTANT: CBR_56000           56000
+CONSTANT: CBR_57600           57600
+CONSTANT: CBR_115200          115200
+CONSTANT: CBR_128000          128000
+CONSTANT: CBR_256000          256000
+CONSTANT: DTR_CONTROL_DISABLE     0
+CONSTANT: DTR_CONTROL_ENABLE      1
+CONSTANT: DTR_CONTROL_HANDSHAKE   2
+CONSTANT: RTS_CONTROL_DISABLE     0
+CONSTANT: RTS_CONTROL_ENABLE      1
+CONSTANT: RTS_CONTROL_HANDSHAKE   2
+CONSTANT: RTS_CONTROL_TOGGLE      3
+CONSTANT: EVENPARITY          2
+CONSTANT: MARKPARITY          3
+CONSTANT: NOPARITY            0
+CONSTANT: ODDPARITY           1
+CONSTANT: SPACEPARITY         4
+CONSTANT: ONESTOPBIT          0
+CONSTANT: ONE5STOPBITS        1
+CONSTANT: TWOSTOPBITS         2
+
+! Flowcontrol bit mask in DCB
+CONSTANT: FM_fBinary          HEX: 1
+CONSTANT: FM_fParity          HEX: 2
+CONSTANT: FM_fOutxCtsFlow     HEX: 4
+CONSTANT: FM_fOutxDsrFlow     HEX: 8
+CONSTANT: FM_fDtrControl      HEX: 30
+CONSTANT: FM_fDsrSensitivity      HEX: 40
+CONSTANT: FM_fTXContinueOnXoff    HEX: 80
+CONSTANT: FM_fOutX            HEX: 100
+CONSTANT: FM_fInX         HEX: 200
+CONSTANT: FM_fErrorChar       HEX: 400
+CONSTANT: FM_fNull            HEX: 800
+CONSTANT: FM_fRtsControl      HEX: 3000
+CONSTANT: FM_fAbortOnError        HEX: 4000
+CONSTANT: FM_fDummy2          HEX: ffff8000
+
+CONSTANT: BM_fCtsHold     HEX: 1
+CONSTANT: BM_fDsrHold     HEX: 2
+CONSTANT: BM_fRlsdHold    HEX: 4
+CONSTANT: BM_fXoffHold    HEX: 8
+CONSTANT: BM_fXoffSent    HEX: 10
+CONSTANT: BM_fEof     HEX: 20
+CONSTANT: BM_fTxim        HEX: 40
+CONSTANT: BM_AllBits      HEX: 7f
+
+! PurgeComm bit mask
+CONSTANT: PURGE_TXABORT   HEX: 1
+CONSTANT: PURGE_RXABORT   HEX: 2
+CONSTANT: PURGE_TXCLEAR   HEX: 4
+CONSTANT: PURGE_RXCLEAR   HEX: 8
+
+! GetCommModemStatus bit mask
+CONSTANT: MS_CTS_ON       HEX: 10
+CONSTANT: MS_DSR_ON       HEX: 20
+CONSTANT: MS_RING_ON      HEX: 40
+CONSTANT: MS_RLSD_ON      HEX: 80
+
+! EscapeCommFunction operations
+CONSTANT: SETXOFF     HEX: 1
+CONSTANT: SETXON      HEX: 2
+CONSTANT: SETRTS      HEX: 3
+CONSTANT: CLRRTS      HEX: 4
+CONSTANT: SETDTR      HEX: 5
+CONSTANT: CLRDTR      HEX: 6
+CONSTANT: SETBREAK        HEX: 8
+CONSTANT: CLRBREAK        HEX: 9
+
+! ClearCommError bit mask
+CONSTANT: CE_RXOVER       HEX: 1
+CONSTANT: CE_OVERRUN      HEX: 2
+CONSTANT: CE_RXPARITY     HEX: 4
+CONSTANT: CE_FRAME        HEX: 8
+CONSTANT: CE_BREAK        HEX: 10
+CONSTANT: CE_TXFULL       HEX: 100
+! LPT only
+CONSTANT: CE_PTO        HEX: 200
+CONSTANT: CE_IOE        HEX: 400
+CONSTANT: CE_DNS        HEX: 800
+CONSTANT: CE_OOP        HEX: 1000
+! LPT only
+CONSTANT: CE_MODE     HEX: 8000
+
+! GetCommMask bits
+CONSTANT: EV_RXCHAR       HEX: 1
+CONSTANT: EV_RXFLAG       HEX: 2
+CONSTANT: EV_TXEMPTY      HEX: 4
+CONSTANT: EV_CTS      HEX: 8
+CONSTANT: EV_DSR      HEX: 10
+CONSTANT: EV_RLSD     HEX: 20
+CONSTANT: EV_BREAK        HEX: 40
+CONSTANT: EV_ERR      HEX: 80
+CONSTANT: EV_RING     HEX: 100
+CONSTANT: EV_PERR     HEX: 200
+CONSTANT: EV_RX80FULL     HEX: 400
+CONSTANT: EV_EVENT1       HEX: 800
+CONSTANT: EV_EVENT2       HEX: 1000
+
+C-STRUCT: DCB
+    { "DWORD" "DCBlength" }
+    { "DWORD" "BaudRate" }
+    { "DWORD" "flags" }
+    { "WORD"  "wReserved" }
+    { "WORD"  "XonLim" }
+    { "WORD"  "XoffLim" }
+    { "BYTE"  "ByteSize" }
+    { "BYTE"  "Parity" }
+    { "BYTE"  "StopBits" }
+    { "char"  "XonChar" }
+    { "char"  "XoffChar" }
+    { "char"  "ErrorChar" }
+    { "char"  "EofChar" }
+    { "char"  "EvtChar" }
+    { "WORD"  "wReserved1" } ;
+TYPEDEF: DCB* PDCB
+TYPEDEF: DCB* LPDCB
+
+C-STRUCT: COMM_CONFIG
+    { "DWORD" "dwSize" }
+    { "WORD" "wVersion" }
+    { "WORD" "wReserved" }
+    { "DCB" "dcb" }
+    { "DWORD" "dwProviderSubType" }
+    { "DWORD" "dwProviderOffset" }
+    { "DWORD" "dwProviderSize" }
+    { { "WCHAR" 1 } "wcProviderData" } ;
+TYPEDEF: COMMCONFIG* LPCOMMCONFIG
+
+C-STRUCT: COMMPROP
+    { "WORD" "wPacketLength" }
+    { "WORD" "wPacketVersion" }
+    { "DWORD" "dwServiceMask" }
+    { "DWORD" "dwReserved1" }
+    { "DWORD" "dwMaxTxQueue" }
+    { "DWORD" "dwMaxRxQueue" }
+    { "DWORD" "dwMaxBaud" }
+    { "DWORD" "dwProvSubType" }
+    { "DWORD" "dwProvCapabilities" }
+    { "DWORD" "dwSettableParams" }
+    { "DWORD" "dwSettableBaud" }
+    { "WORD"  "wSettableData" }
+    { "WORD"  "wSettableStopParity" }
+    { "DWORD" "dwCurrentTxQueue" }
+    { "DWORD" "dwCurrentRxQueue" }
+    { "DWORD" "dwProvSpec1" }
+    { "DWORD" "dwProvSpec2" }
+    { { "WCHAR" 1 } "wcProvChar" } ;
+TYPEDEF: COMMPROP* LPCOMMPROP
+
+
+CONSTANT: SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege"
+CONSTANT: SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege"
+CONSTANT: SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege"
+CONSTANT: SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege"
+CONSTANT: SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege"
+CONSTANT: SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege"
+CONSTANT: SE_TCB_NAME "SeTcbPrivilege"
+CONSTANT: SE_SECURITY_NAME "SeSecurityPrivilege"
+CONSTANT: SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege"
+CONSTANT: SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege"
+CONSTANT: SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege"
+CONSTANT: SE_SYSTEMTIME_NAME "SeSystemtimePrivilege"
+CONSTANT: SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege"
+CONSTANT: SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege"
+CONSTANT: SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege"
+CONSTANT: SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege"
+CONSTANT: SE_BACKUP_NAME "SeBackupPrivilege"
+CONSTANT: SE_RESTORE_NAME "SeRestorePrivilege"
+CONSTANT: SE_SHUTDOWN_NAME "SeShutdownPrivilege"
+CONSTANT: SE_DEBUG_NAME "SeDebugPrivilege"
+CONSTANT: SE_AUDIT_NAME "SeAuditPrivilege"
+CONSTANT: SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege"
+CONSTANT: SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege"
+CONSTANT: SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege"
+CONSTANT: SE_UNDOCK_NAME "SeUndockPrivilege"
+CONSTANT: SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege"
+CONSTANT: SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege"
+CONSTANT: SE_IMPERSONATE_NAME "SeImpersonatePrivilege"
+CONSTANT: SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege"
+
+CONSTANT: SE_GROUP_MANDATORY HEX: 00000001
+CONSTANT: SE_GROUP_ENABLED_BY_DEFAULT HEX: 00000002
+CONSTANT: SE_GROUP_ENABLED HEX: 00000004
+CONSTANT: SE_GROUP_OWNER HEX: 00000008
+CONSTANT: SE_GROUP_USE_FOR_DENY_ONLY HEX: 00000010
+CONSTANT: SE_GROUP_LOGON_ID HEX: C0000000
+CONSTANT: SE_GROUP_RESOURCE HEX: 20000000
+
+CONSTANT: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001
+CONSTANT: SE_PRIVILEGE_ENABLED HEX: 00000002
+CONSTANT: SE_PRIVILEGE_REMOVE HEX: 00000004
+CONSTANT: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000
+
+CONSTANT: PRIVILEGE_SET_ALL_NECESSARY 1
+
+CONSTANT: SE_OWNER_DEFAULTED HEX: 00000001
+CONSTANT: SE_GROUP_DEFAULTED HEX: 00000002
+CONSTANT: SE_DACL_PRESENT HEX: 00000004
+CONSTANT: SE_DACL_DEFAULTED HEX: 00000008
+CONSTANT: SE_SACL_PRESENT HEX: 00000010
+CONSTANT: SE_SACL_DEFAULTED HEX: 00000020
+CONSTANT: SE_DACL_AUTO_INHERIT_REQ HEX: 00000100
+CONSTANT: SE_SACL_AUTO_INHERIT_REQ HEX: 00000200
+CONSTANT: SE_DACL_AUTO_INHERITED HEX: 00000400
+CONSTANT: SE_SACL_AUTO_INHERITED HEX: 00000800
+CONSTANT: SE_DACL_PROTECTED  HEX: 00001000
+CONSTANT: SE_SACL_PROTECTED  HEX: 00002000
+CONSTANT: SE_SELF_RELATIVE HEX: 00008000
+
+CONSTANT: ANYSIZE_ARRAY 1
+
+CONSTANT: MAXIMUM_WAIT_OBJECTS 64
+CONSTANT: MAXIMUM_SUSPEND_COUNT HEX: 7f
+CONSTANT: WAIT_OBJECT_0 0
+CONSTANT: WAIT_ABANDONED_0 128
+CONSTANT: WAIT_TIMEOUT 258
+CONSTANT: WAIT_IO_COMPLETION HEX: c0
+CONSTANT: WAIT_FAILED HEX: ffffffff
 
 C-STRUCT: LUID
     { "DWORD" "LowPart" }
@@ -427,7 +682,7 @@ C-STRUCT: BY_HANDLE_FILE_INFORMATION
   { "DWORD" "nFileIndexLow" } ;
 TYPEDEF: BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION
 
-: OFS_MAXPATHNAME 128 ;
+CONSTANT: OFS_MAXPATHNAME 128
 
 C-STRUCT: OFSTRUCT
     { "BYTE" "cBytes" }
@@ -489,34 +744,34 @@ C-STRUCT: SECURITY_ATTRIBUTES
     { "LPVOID" "lpSecurityDescriptor" }
     { "BOOL" "bInheritHandle" } ;
 
-: HANDLE_FLAG_INHERIT 1 ; inline
-: HANDLE_FLAG_PROTECT_FROM_CLOSE 2 ; inline
+CONSTANT: HANDLE_FLAG_INHERIT 1
+CONSTANT: HANDLE_FLAG_PROTECT_FROM_CLOSE 2
 
-: STARTF_USESHOWWINDOW    HEX: 00000001 ; inline
-: STARTF_USESIZE          HEX: 00000002 ; inline
-: STARTF_USEPOSITION      HEX: 00000004 ; inline
-: STARTF_USECOUNTCHARS    HEX: 00000008 ; inline
-: STARTF_USEFILLATTRIBUTE HEX: 00000010 ; inline
-: STARTF_RUNFULLSCREEN    HEX: 00000020 ; inline
-: STARTF_FORCEONFEEDBACK  HEX: 00000040 ; inline
-: STARTF_FORCEOFFFEEDBACK HEX: 00000080 ; inline
-: STARTF_USESTDHANDLES    HEX: 00000100 ; inline
-: STARTF_USEHOTKEY        HEX: 00000200 ; inline
+CONSTANT: STARTF_USESHOWWINDOW    HEX: 00000001
+CONSTANT: STARTF_USESIZE          HEX: 00000002
+CONSTANT: STARTF_USEPOSITION      HEX: 00000004
+CONSTANT: STARTF_USECOUNTCHARS    HEX: 00000008
+CONSTANT: STARTF_USEFILLATTRIBUTE HEX: 00000010
+CONSTANT: STARTF_RUNFULLSCREEN    HEX: 00000020
+CONSTANT: STARTF_FORCEONFEEDBACK  HEX: 00000040
+CONSTANT: STARTF_FORCEOFFFEEDBACK HEX: 00000080
+CONSTANT: STARTF_USESTDHANDLES    HEX: 00000100
+CONSTANT: STARTF_USEHOTKEY        HEX: 00000200
 
-: PIPE_ACCESS_INBOUND  1 ; inline
-: PIPE_ACCESS_OUTBOUND 2 ; inline
-: PIPE_ACCESS_DUPLEX   3 ; inline
+CONSTANT: PIPE_ACCESS_INBOUND  1
+CONSTANT: PIPE_ACCESS_OUTBOUND 2
+CONSTANT: PIPE_ACCESS_DUPLEX   3
 
-: PIPE_TYPE_BYTE    0 ; inline
-: PIPE_TYPE_MESSAGE 4 ; inline
+CONSTANT: PIPE_TYPE_BYTE    0
+CONSTANT: PIPE_TYPE_MESSAGE 4
 
-: PIPE_READMODE_BYTE    0 ; inline
-: PIPE_READMODE_MESSAGE 2 ; inline
+CONSTANT: PIPE_READMODE_BYTE    0
+CONSTANT: PIPE_READMODE_MESSAGE 2
 
-: PIPE_WAIT   0 ; inline
-: PIPE_NOWAIT 1 ; inline
+CONSTANT: PIPE_WAIT   0
+CONSTANT: PIPE_NOWAIT 1
 
-: PIPE_UNLIMITED_INSTANCES 255 ; inline
+CONSTANT: PIPE_UNLIMITED_INSTANCES 255
 
 LIBRARY: kernel32
 ! FUNCTION: _hread
@@ -537,7 +792,7 @@ LIBRARY: kernel32
 ! FUNCTION: AddRefActCtx
 ! FUNCTION: AddVectoredExceptionHandler
 ! FUNCTION: AllocateUserPhysicalPages
-! FUNCTION: AllocConsole
+FUNCTION: BOOL AllocConsole ( ) ;
 ! FUNCTION: AreFileApisANSI
 ! FUNCTION: AssignProcessToJobObject
 ! FUNCTION: AttachConsole
@@ -641,29 +896,29 @@ ALIAS: CreateNamedPipe CreateNamedPipeW
 ! FUNCTION: CreateNlsSecurityDescriptor
 FUNCTION: BOOL CreatePipe ( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ) ;
 
-: DEBUG_PROCESS                   HEX: 00000001 ;
-: DEBUG_ONLY_THIS_PROCESS         HEX: 00000002 ;
-: CREATE_SUSPENDED                HEX: 00000004 ;
-: DETACHED_PROCESS                HEX: 00000008 ;
-: CREATE_NEW_CONSOLE              HEX: 00000010 ;
-: NORMAL_PRIORITY_CLASS           HEX: 00000020 ;
-: IDLE_PRIORITY_CLASS             HEX: 00000040 ;
-: HIGH_PRIORITY_CLASS             HEX: 00000080 ;
-: REALTIME_PRIORITY_CLASS         HEX: 00000100 ;
-: CREATE_NEW_PROCESS_GROUP        HEX: 00000200 ;
-: CREATE_UNICODE_ENVIRONMENT      HEX: 00000400 ;
-: CREATE_SEPARATE_WOW_VDM         HEX: 00000800 ;
-: CREATE_SHARED_WOW_VDM           HEX: 00001000 ;
-: CREATE_FORCEDOS                 HEX: 00002000 ;
-: BELOW_NORMAL_PRIORITY_CLASS     HEX: 00004000 ;
-: ABOVE_NORMAL_PRIORITY_CLASS     HEX: 00008000 ;
-: CREATE_BREAKAWAY_FROM_JOB       HEX: 01000000 ;
-: CREATE_WITH_USERPROFILE         HEX: 02000000 ;
-: CREATE_DEFAULT_ERROR_MODE       HEX: 04000000 ;
-: CREATE_NO_WINDOW                HEX: 08000000 ;
-: PROFILE_USER                    HEX: 10000000 ;
-: PROFILE_KERNEL                  HEX: 20000000 ;
-: PROFILE_SERVER                  HEX: 40000000 ;
+CONSTANT: DEBUG_PROCESS                   HEX: 00000001
+CONSTANT: DEBUG_ONLY_THIS_PROCESS         HEX: 00000002
+CONSTANT: CREATE_SUSPENDED                HEX: 00000004
+CONSTANT: DETACHED_PROCESS                HEX: 00000008
+CONSTANT: CREATE_NEW_CONSOLE              HEX: 00000010
+CONSTANT: NORMAL_PRIORITY_CLASS           HEX: 00000020
+CONSTANT: IDLE_PRIORITY_CLASS             HEX: 00000040
+CONSTANT: HIGH_PRIORITY_CLASS             HEX: 00000080
+CONSTANT: REALTIME_PRIORITY_CLASS         HEX: 00000100
+CONSTANT: CREATE_NEW_PROCESS_GROUP        HEX: 00000200
+CONSTANT: CREATE_UNICODE_ENVIRONMENT      HEX: 00000400
+CONSTANT: CREATE_SEPARATE_WOW_VDM         HEX: 00000800
+CONSTANT: CREATE_SHARED_WOW_VDM           HEX: 00001000
+CONSTANT: CREATE_FORCEDOS                 HEX: 00002000
+CONSTANT: BELOW_NORMAL_PRIORITY_CLASS     HEX: 00004000
+CONSTANT: ABOVE_NORMAL_PRIORITY_CLASS     HEX: 00008000
+CONSTANT: CREATE_BREAKAWAY_FROM_JOB       HEX: 01000000
+CONSTANT: CREATE_WITH_USERPROFILE         HEX: 02000000
+CONSTANT: CREATE_DEFAULT_ERROR_MODE       HEX: 04000000
+CONSTANT: CREATE_NO_WINDOW                HEX: 08000000
+CONSTANT: PROFILE_USER                    HEX: 10000000
+CONSTANT: PROFILE_KERNEL                  HEX: 20000000
+CONSTANT: PROFILE_SERVER                  HEX: 40000000
 
 FUNCTION: BOOL CreateProcessW ( LPCTSTR lpApplicationname,
                                 LPTSTR lpCommandLine,
@@ -738,8 +993,8 @@ FUNCTION: BOOL DuplicateHandle (
     BOOL bInheritHandle,
     DWORD dwOptions ) ;
 
-: DUPLICATE_CLOSE_SOURCE 1 ;
-: DUPLICATE_SAME_ACCESS 2 ;
+CONSTANT: DUPLICATE_CLOSE_SOURCE 1
+CONSTANT: DUPLICATE_SAME_ACCESS 2
 
 ! FUNCTION: EncodePointer
 ! FUNCTION: EncodeSystemPointer
@@ -856,7 +1111,7 @@ FUNCTION: BOOL FindVolumeMountPointClose ( HANDLE hFindVolumeMountPoint ) ;
 ! FUNCTION: FoldStringW
 ! FUNCTION: FormatMessageA
 ! FUNCTION: FormatMessageW
-! FUNCTION: FreeConsole
+FUNCTION: BOOL FreeConsole ( ) ;
 ! FUNCTION: FreeEnvironmentStringsA
 FUNCTION: BOOL FreeEnvironmentStringsW ( LPTCH lpszEnvironmentBlock ) ;
 ALIAS: FreeEnvironmentStrings FreeEnvironmentStringsW
@@ -876,19 +1131,19 @@ ALIAS: FreeEnvironmentStrings FreeEnvironmentStringsW
 ! FUNCTION: GetCalendarInfoW
 ! FUNCTION: GetCommandLineA
 ! FUNCTION: GetCommandLineW
-! FUNCTION: GetCommConfig
-! FUNCTION: GetCommMask
-! FUNCTION: GetCommModemStatus
-! FUNCTION: GetCommProperties
-! FUNCTION: GetCommState
+FUNCTION: BOOL GetCommConfig ( HANDLE hCommDev, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ) ;
+FUNCTION: BOOL GetCommMask ( HANDLE hFile, LPDWORD lpEvtMask ) ;
+FUNCTION: BOOL GetCommModemStatus ( HANDLE hFile, LPDWORD lpModemStat ) ;
+FUNCTION: BOOL GetCommProperties ( HANDLE hFile, LPCOMMPROP lpCommProp ) ;
+FUNCTION: BOOL GetCommState ( HANDLE hFile, LPDCB lpDCB ) ;
 ! FUNCTION: GetCommTimeouts
 ! FUNCTION: GetComPlusPackageInstallStatus
 ! FUNCTION: GetCompressedFileSizeA
 ! FUNCTION: GetCompressedFileSizeW
 FUNCTION: BOOL GetComputerNameW ( LPTSTR lpBuffer, LPDWORD lpnSize ) ;
-! FUNCTION: GetComputerNameExW
-! FUNCTION: GetComputerNameW
 ALIAS: GetComputerName GetComputerNameW
+FUNCTION: BOOL GetComputerNameExW ( COMPUTER_NAME_FORMAT NameType, LPTSTR lpBuffer, LPDWORD lpnSize ) ;
+ALIAS: GetComputerNameEx GetComputerNameExW
 ! FUNCTION: GetConsoleAliasA
 ! FUNCTION: GetConsoleAliasesA
 ! FUNCTION: GetConsoleAliasesLengthA
@@ -924,7 +1179,7 @@ ALIAS: GetComputerName GetComputerNameW
 ! FUNCTION: GetConsoleSelectionInfo
 FUNCTION: DWORD GetConsoleTitleW ( LPWSTR lpConsoleTitle, DWORD nSize ) ;
 ALIAS: GetConsoleTitle GetConsoleTitleW
-! FUNCTION: GetConsoleWindow
+FUNCTION: HWND GetConsoleWindow ( ) ;
 ! FUNCTION: GetCPFileNameFromRegistry
 ! FUNCTION: GetCPInfo
 ! FUNCTION: GetCPInfoExA
@@ -943,7 +1198,8 @@ FUNCTION: HANDLE GetCurrentThread ( ) ;
 ! FUNCTION: GetDateFormatA
 ! FUNCTION: GetDateFormatW
 ! FUNCTION: GetDefaultCommConfigA
-! FUNCTION: GetDefaultCommConfigW
+FUNCTION: BOOL GetDefaultCommConfigW ( LPCTSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ) ;
+ALIAS: GetDefaultCommConfig GetDefaultCommConfigW
 ! FUNCTION: GetDefaultSortkeySize
 ! FUNCTION: GetDevicePowerState
 ! FUNCTION: GetDiskFreeSpaceA
@@ -970,7 +1226,7 @@ FUNCTION: BOOL GetExitCodeProcess ( HANDLE hProcess, LPDWORD lpExitCode ) ;
 FUNCTION: DWORD GetFileAttributesW ( LPCTSTR lpFileName ) ;
 ! FUNCTION: GetFileAttributesExA
 
-: GetFileExInfoStandard 0 ; inline
+CONSTANT: GetFileExInfoStandard 0
 
 
 FUNCTION: BOOL GetFileAttributesExW ( LPCTSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation ) ;
@@ -979,7 +1235,7 @@ ALIAS: GetFileAttributesEx GetFileAttributesExW
 
 FUNCTION: BOOL GetFileInformationByHandle ( HANDLE hFile, LPBY_HANDLE_FILE_INFORMATION lpFileInformation ) ;
 FUNCTION: DWORD GetFileSize ( HANDLE hFile, LPDWORD lpFileSizeHigh ) ;
-! FUNCTION: GetFileSizeEx
+FUNCTION: BOOL GetFileSizeEx ( HANDLE hFile, PLARGE_INTEGER lpFileSize ) ;
 FUNCTION: BOOL GetFileTime ( HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime ) ;
 FUNCTION: DWORD GetFileType ( HANDLE hFile ) ;
 ! FUNCTION: GetFirmwareEnvironmentVariableA
@@ -988,8 +1244,6 @@ FUNCTION: DWORD GetFileType ( HANDLE hFile ) ;
 FUNCTION: DWORD GetFullPathNameW ( LPCTSTR lpFileName, DWORD nBufferLength, LPTSTR lpBuffer, LPTSTR* lpFilePart ) ;
 ALIAS: GetFullPathName GetFullPathNameW
 
-!  clear "license.txt" 32768 "char[32768]" <c-object> f over >r GetFullPathName r> swap 2 * head >string .
-
 ! FUNCTION: GetGeoInfoA
 ! FUNCTION: GetGeoInfoW
 ! FUNCTION: GetHandleContext
@@ -1223,7 +1477,7 @@ ALIAS: LoadLibraryEx LoadLibraryExW
 ! FUNCTION: LoadLibraryW
 ! FUNCTION: LoadModule
 ! FUNCTION: LoadResource
-! FUNCTION: LocalAlloc
+FUNCTION: HLOCAL LocalAlloc ( UINT uFlags, SIZE_T uBytes ) ;
 ! FUNCTION: LocalCompact
 ! FUNCTION: LocalFileTimeToFileTime
 ! FUNCTION: LocalFlags
@@ -1403,10 +1657,10 @@ ALIAS: RemoveDirectory RemoveDirectoryW
 ! FUNCTION: SetCalendarInfoA
 ! FUNCTION: SetCalendarInfoW
 ! FUNCTION: SetClientTimeZoneInformation
-! FUNCTION: SetCommBreak
-! FUNCTION: SetCommConfig
-! FUNCTION: SetCommMask
-! FUNCTION: SetCommState
+FUNCTION: BOOL SetCommBreak ( HANDLE hFile ) ;
+FUNCTION: BOOL SetCommConfig ( HANDLE hCommDev, LPCOMMCONFIG lpCC, DWORD dwSize ) ;
+FUNCTION: BOOL SetCommMask ( HANDLE hFile, DWORD dwEvtMask ) ;
+FUNCTION: BOOL SetCommState ( HANDLE hFile, LPDCB lpDCB ) ;
 ! FUNCTION: SetCommTimeouts
 ! FUNCTION: SetComPlusPackageInstallStatus
 ! FUNCTION: SetComputerNameA
@@ -1449,7 +1703,8 @@ ALIAS: SetConsoleTitle SetConsoleTitleW
 FUNCTION: BOOL SetCurrentDirectoryW ( LPCWSTR lpDirectory ) ;
 ALIAS: SetCurrentDirectory SetCurrentDirectoryW
 ! FUNCTION: SetDefaultCommConfigA
-! FUNCTION: SetDefaultCommConfigW
+FUNCTION: BOOL SetDefaultCommConfigW ( LPCTSTR lpszName, LPCOMMCONFIG lpCC, LPDWORD lpdwSize ) ;
+ALIAS: SetDefaultCommConfig SetDefaultCommConfigW
 ! FUNCTION: SetDllDirectoryA
 ! FUNCTION: SetDllDirectoryW
 FUNCTION: BOOL SetEndOfFile ( HANDLE hFile ) ;