Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2008-12-15 22:50:03 -06:00
commit 5d83236d47
24 changed files with 1840 additions and 1818 deletions

View File

@ -1,6 +1,6 @@
USING: definitions kernel parser words sequences math.parser USING: definitions kernel parser words sequences math.parser
namespaces editors io.launcher windows.shell32 io.files namespaces editors io.launcher windows.shell32 io.files
io.paths.windows strings unicode.case make ; io.directories.search.windows strings unicode.case make ;
IN: editors.editpadlite IN: editors.editpadlite
: editpadlite-path ( -- path ) : editpadlite-path ( -- path )

View File

@ -1,6 +1,6 @@
USING: definitions kernel parser words sequences math.parser USING: definitions kernel parser words sequences math.parser
namespaces editors io.launcher windows.shell32 io.files namespaces editors io.launcher windows.shell32 io.files
io.paths.windows strings unicode.case make ; io.directories.search.windows strings unicode.case make ;
IN: editors.editpadpro IN: editors.editpadpro
: editpadpro-path ( -- path ) : editpadpro-path ( -- path )

View File

@ -1,5 +1,6 @@
USING: editors io.files io.launcher kernel math.parser USING: editors io.files io.launcher kernel math.parser
namespaces sequences windows.shell32 make io.paths.windows ; namespaces sequences windows.shell32 make
io.directories.search.windows ;
IN: editors.editplus IN: editors.editplus
: editplus-path ( -- path ) : editplus-path ( -- path )

View File

@ -1,5 +1,6 @@
USING: editors io.files io.launcher kernel math.parser USING: editors io.files io.launcher kernel math.parser
namespaces sequences windows.shell32 make io.paths.windows ; namespaces sequences windows.shell32 make
io.directories.search.windows ;
IN: editors.emeditor IN: editors.emeditor
: emeditor-path ( -- path ) : emeditor-path ( -- path )

View File

@ -1,7 +1,7 @@
! Copyright (C) 2008 Kibleur Christophe. ! Copyright (C) 2008 Kibleur Christophe.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: editors io.files io.launcher kernel math.parser USING: editors io.files io.launcher kernel math.parser make
namespaces sequences windows.shell32 io.paths.windows make ; namespaces sequences windows.shell32 io.directories.search.windows ;
IN: editors.etexteditor IN: editors.etexteditor
: etexteditor-path ( -- str ) : etexteditor-path ( -- str )

View File

@ -1,5 +1,6 @@
USING: editors.gvim io.files kernel namespaces sequences USING: editors.gvim io.files kernel namespaces sequences
windows.shell32 io.paths.windows system ; windows.shell32 io.directories.search.windows system
io.pathnames ;
IN: editors.gvim.windows IN: editors.gvim.windows
M: windows gvim-path M: windows gvim-path

View File

@ -1,10 +1,10 @@
USING: editors io.files io.launcher kernel math.parser USING: editors io.files io.launcher kernel math.parser
namespaces sequences windows.shell32 make ; namespaces sequences windows.shell32 make io.pathnames ;
IN: editors.notepad2 IN: editors.notepad2
: notepad2-path ( -- path ) : notepad2-path ( -- path )
\ notepad2-path get-global [ \ notepad2-path get-global [
"C:\\Windows\\system32\\notepad.exe" windows-directory "system32\\notepad.exe" append-path
] unless* ; ] unless* ;
: notepad2 ( file line -- ) : notepad2 ( file line -- )

View File

@ -1,5 +1,5 @@
USING: editors io.files io.launcher kernel math.parser USING: editors io.files io.launcher kernel math.parser
namespaces sequences io.paths.windows make ; namespaces sequences io.directories.search.windows make ;
IN: editors.notepadpp IN: editors.notepadpp
: notepadpp-path ( -- path ) : notepadpp-path ( -- path )

View File

@ -1,7 +1,7 @@
! Copyright (C) 2007 Clemens F. Hofreither. ! Copyright (C) 2007 Clemens F. Hofreither.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
! clemens.hofreither@gmx.net ! clemens.hofreither@gmx.net
USING: io.files io.launcher kernel namespaces io.paths.windows USING: io.files io.launcher kernel namespaces io.directories.search.windows
math math.parser editors sequences make unicode.case ; math math.parser editors sequences make unicode.case ;
IN: editors.scite IN: editors.scite

View File

@ -1,5 +1,5 @@
USING: editors io.files io.launcher kernel math.parser USING: editors io.files io.launcher kernel math.parser
namespaces sequences io.paths.windows make ; namespaces sequences io.directories.search.windows make ;
IN: editors.ted-notepad IN: editors.ted-notepad
: ted-notepad-path ( -- path ) : ted-notepad-path ( -- path )

View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -0,0 +1 @@
TextPad editor integration

View File

@ -0,0 +1,16 @@
USING: editors io.files io.launcher kernel math.parser
namespaces sequences make io.directories.search
io.directories.search.windows ;
IN: editors.textpad
: textpad-path ( -- path )
\ textpad-path get-global [
"TextPad 5" t [ "TextPad.exe" tail? ] find-in-program-files
] unless* ;
: textpad ( file line -- )
[
textpad-path , [ , ] [ number>string "(" ",0)" surround , ] bi*
] { } make run-detached drop ;
[ textpad ] edit-hook set-global

View File

@ -1,5 +1,5 @@
USING: editors io.files io.launcher kernel math.parser USING: editors io.files io.launcher kernel math.parser
namespaces sequences io.paths.windows make ; namespaces sequences io.directories.search.windows make ;
IN: editors.ultraedit IN: editors.ultraedit
: ultraedit-path ( -- path ) : ultraedit-path ( -- path )

View File

@ -1,4 +1,4 @@
USING: editors io.launcher kernel io.paths.windows USING: editors io.launcher kernel io.directories.search.windows
math.parser namespaces sequences io.files arrays ; math.parser namespaces sequences io.files arrays ;
IN: editors.wordpad IN: editors.wordpad

View File

@ -56,4 +56,4 @@ PRIVATE>
: find-in-directories ( directories bfs? quot -- path' ) : find-in-directories ( directories bfs? quot -- path' )
'[ _ _ find-file ] attempt-all ; inline '[ _ _ find-file ] attempt-all ; inline
os windows? [ "io.paths.windows" require ] when os windows? [ "io.directories.search.windows" require ] when

View File

@ -1,7 +1,8 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays fry io.pathnames kernel sequences windows.shell32 ; USING: arrays fry io.pathnames kernel sequences windows.shell32
IN: io.paths io.directories.search ;
IN: io.directories.search.windows
: program-files-directories ( -- array ) : program-files-directories ( -- array )
program-files program-files-x86 2array ; inline program-files program-files-x86 2array ; inline

View File

@ -1,65 +1,65 @@
USING: alias alien.syntax kernel math windows.types math.bitwise ; USING: alias alien.syntax kernel math windows.types math.bitwise
constants ;
IN: windows.advapi32 IN: windows.advapi32
LIBRARY: advapi32 LIBRARY: advapi32
: PROV_RSA_FULL 1 ; inline CONSTANT: PROV_RSA_FULL 1
: PROV_RSA_SIG 2 ; inline CONSTANT: PROV_RSA_SIG 2
: PROV_DSS 3 ; inline CONSTANT: PROV_DSS 3
: PROV_FORTEZZA 4 ; inline CONSTANT: PROV_FORTEZZA 4
: PROV_MS_EXCHANGE 5 ; inline CONSTANT: PROV_MS_EXCHANGE 5
: PROV_SSL 6 ; inline CONSTANT: PROV_SSL 6
: PROV_RSA_SCHANNEL 12 ; inline CONSTANT: PROV_RSA_SCHANNEL 12
: PROV_DSS_DH 13 ; inline CONSTANT: PROV_DSS_DH 13
: PROV_EC_ECDSA_SIG 14 ; inline CONSTANT: PROV_EC_ECDSA_SIG 14
: PROV_EC_ECNRA_SIG 15 ; inline CONSTANT: PROV_EC_ECNRA_SIG 15
: PROV_EC_ECDSA_FULL 16 ; inline CONSTANT: PROV_EC_ECDSA_FULL 16
: PROV_EC_ECNRA_FULL 17 ; inline CONSTANT: PROV_EC_ECNRA_FULL 17
: PROV_DH_SCHANNEL 18 ; inline CONSTANT: PROV_DH_SCHANNEL 18
: PROV_SPYRUS_LYNKS 20 ; inline CONSTANT: PROV_SPYRUS_LYNKS 20
: PROV_RNG 21 ; inline CONSTANT: PROV_RNG 21
: PROV_INTEL_SEC 22 ; inline CONSTANT: PROV_INTEL_SEC 22
: PROV_REPLACE_OWF 23 ; inline CONSTANT: PROV_REPLACE_OWF 23
: PROV_RSA_AES 24 ; inline CONSTANT: PROV_RSA_AES 24
: MS_DEF_DH_SCHANNEL_PROV CONSTANT: MS_DEF_DH_SCHANNEL_PROV "Microsoft DH Schannel Cryptographic Provider"
"Microsoft DH Schannel Cryptographic Provider" ; inline
: MS_DEF_DSS_DH_PROV CONSTANT: MS_DEF_DSS_DH_PROV
"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" ; inline "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
: MS_DEF_DSS_PROV CONSTANT: MS_DEF_DSS_PROV
"Microsoft Base DSS Cryptographic Provider" ; inline "Microsoft Base DSS Cryptographic Provider"
: MS_DEF_PROV CONSTANT: MS_DEF_PROV
"Microsoft Base Cryptographic Provider v1.0" ; inline "Microsoft Base Cryptographic Provider v1.0"
: MS_DEF_RSA_SCHANNEL_PROV CONSTANT: MS_DEF_RSA_SCHANNEL_PROV
"Microsoft RSA Schannel Cryptographic Provider" ; inline "Microsoft RSA Schannel Cryptographic Provider"
! Unsupported (!) ! Unsupported (!)
: MS_DEF_RSA_SIG_PROV CONSTANT: MS_DEF_RSA_SIG_PROV
"Microsoft RSA Signature Cryptographic Provider" ; inline "Microsoft RSA Signature Cryptographic Provider"
: MS_ENH_DSS_DH_PROV CONSTANT: MS_ENH_DSS_DH_PROV
"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" ; inline "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
: MS_ENH_RSA_AES_PROV CONSTANT: MS_ENH_RSA_AES_PROV
"Microsoft Enhanced RSA and AES Cryptographic Provider" ; inline "Microsoft Enhanced RSA and AES Cryptographic Provider"
: MS_ENHANCED_PROV CONSTANT: MS_ENHANCED_PROV
"Microsoft Enhanced Cryptographic Provider v1.0" ; inline "Microsoft Enhanced Cryptographic Provider v1.0"
: MS_SCARD_PROV CONSTANT: MS_SCARD_PROV
"Microsoft Base Smart Card Crypto Provider" ; inline "Microsoft Base Smart Card Crypto Provider"
: MS_STRONG_PROV CONSTANT: MS_STRONG_PROV
"Microsoft Strong Cryptographic Provider" ; inline "Microsoft Strong Cryptographic Provider"
: CRYPT_VERIFYCONTEXT HEX: F0000000 ; inline CONSTANT: CRYPT_VERIFYCONTEXT HEX: F0000000
: CRYPT_NEWKEYSET HEX: 8 ; inline CONSTANT: CRYPT_NEWKEYSET HEX: 8
: CRYPT_DELETEKEYSET HEX: 10 ; inline CONSTANT: CRYPT_DELETEKEYSET HEX: 10
: CRYPT_MACHINE_KEYSET HEX: 20 ; inline CONSTANT: CRYPT_MACHINE_KEYSET HEX: 20
: CRYPT_SILENT HEX: 40 ; inline CONSTANT: CRYPT_SILENT HEX: 40
C-STRUCT: ACL C-STRUCT: ACL
{ "BYTE" "AclRevision" } { "BYTE" "AclRevision" }
@ -70,16 +70,16 @@ C-STRUCT: ACL
TYPEDEF: ACL* PACL TYPEDEF: ACL* PACL
: ACCESS_ALLOWED_ACE_TYPE 0 ; inline CONSTANT: ACCESS_ALLOWED_ACE_TYPE 0
: ACCESS_DENIED_ACE_TYPE 1 ; inline CONSTANT: ACCESS_DENIED_ACE_TYPE 1
: SYSTEM_AUDIT_ACE_TYPE 2 ; inline CONSTANT: SYSTEM_AUDIT_ACE_TYPE 2
: SYSTEM_ALARM_ACE_TYPE 3 ; inline CONSTANT: SYSTEM_ALARM_ACE_TYPE 3
: OBJECT_INHERIT_ACE HEX: 1 ; inline CONSTANT: OBJECT_INHERIT_ACE HEX: 1
: CONTAINER_INHERIT_ACE HEX: 2 ; inline CONSTANT: CONTAINER_INHERIT_ACE HEX: 2
: NO_PROPAGATE_INHERIT_ACE HEX: 4 ; inline CONSTANT: NO_PROPAGATE_INHERIT_ACE HEX: 4
: INHERIT_ONLY_ACE HEX: 8 ; inline CONSTANT: INHERIT_ONLY_ACE HEX: 8
: VALID_INHERIT_FLAGS HEX: f ; inline CONSTANT: VALID_INHERIT_FLAGS HEX: f
C-STRUCT: ACE_HEADER C-STRUCT: ACE_HEADER
{ "BYTE" "AceType" } { "BYTE" "AceType" }
@ -125,46 +125,46 @@ TYPEDEF: ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE
! typedef enum _TOKEN_INFORMATION_CLASS { ! typedef enum _TOKEN_INFORMATION_CLASS {
: TokenUser 1 ; inline CONSTANT: TokenUser 1
: TokenGroups 2 ; inline CONSTANT: TokenGroups 2
: TokenPrivileges 3 ; inline CONSTANT: TokenPrivileges 3
: TokenOwner 4 ; inline CONSTANT: TokenOwner 4
: TokenPrimaryGroup 5 ; inline CONSTANT: TokenPrimaryGroup 5
: TokenDefaultDacl 6 ; inline CONSTANT: TokenDefaultDacl 6
: TokenSource 7 ; inline CONSTANT: TokenSource 7
: TokenType 8 ; inline CONSTANT: TokenType 8
: TokenImpersonationLevel 9 ; inline CONSTANT: TokenImpersonationLevel 9
: TokenStatistics 10 ; inline CONSTANT: TokenStatistics 10
: TokenRestrictedSids 11 ; inline CONSTANT: TokenRestrictedSids 11
: TokenSessionId 12 ; inline CONSTANT: TokenSessionId 12
: TokenGroupsAndPrivileges 13 ; inline CONSTANT: TokenGroupsAndPrivileges 13
: TokenSessionReference 14 ; inline CONSTANT: TokenSessionReference 14
: TokenSandBoxInert 15 ; inline CONSTANT: TokenSandBoxInert 15
! } TOKEN_INFORMATION_CLASS; ! } TOKEN_INFORMATION_CLASS;
: DELETE HEX: 00010000 ; inline CONSTANT: DELETE HEX: 00010000
: READ_CONTROL HEX: 00020000 ; inline CONSTANT: READ_CONTROL HEX: 00020000
: WRITE_DAC HEX: 00040000 ; inline CONSTANT: WRITE_DAC HEX: 00040000
: WRITE_OWNER HEX: 00080000 ; inline CONSTANT: WRITE_OWNER HEX: 00080000
: SYNCHRONIZE HEX: 00100000 ; inline CONSTANT: SYNCHRONIZE HEX: 00100000
: STANDARD_RIGHTS_REQUIRED HEX: 000f0000 ; inline CONSTANT: STANDARD_RIGHTS_REQUIRED HEX: 000f0000
: STANDARD_RIGHTS_READ READ_CONTROL ; inline ALIAS: STANDARD_RIGHTS_READ READ_CONTROL
: STANDARD_RIGHTS_WRITE READ_CONTROL ; inline ALIAS: STANDARD_RIGHTS_WRITE READ_CONTROL
: STANDARD_RIGHTS_EXECUTE READ_CONTROL ; inline ALIAS: STANDARD_RIGHTS_EXECUTE READ_CONTROL
: TOKEN_TOKEN_ADJUST_DEFAULT HEX: 0080 ; inline CONSTANT: TOKEN_TOKEN_ADJUST_DEFAULT HEX: 0080
: TOKEN_ADJUST_GROUPS HEX: 0040 ; inline CONSTANT: TOKEN_ADJUST_GROUPS HEX: 0040
: TOKEN_ADJUST_PRIVILEGES HEX: 0020 ; inline CONSTANT: TOKEN_ADJUST_PRIVILEGES HEX: 0020
: TOKEN_ADJUST_SESSIONID HEX: 0100 ; inline CONSTANT: TOKEN_ADJUST_SESSIONID HEX: 0100
: TOKEN_ASSIGN_PRIMARY HEX: 0001 ; inline CONSTANT: TOKEN_ASSIGN_PRIMARY HEX: 0001
: TOKEN_DUPLICATE HEX: 0002 ; inline CONSTANT: TOKEN_DUPLICATE HEX: 0002
: TOKEN_EXECUTE STANDARD_RIGHTS_EXECUTE ; inline ALIAS: TOKEN_EXECUTE STANDARD_RIGHTS_EXECUTE
: TOKEN_IMPERSONATE HEX: 0004 ; inline CONSTANT: TOKEN_IMPERSONATE HEX: 0004
: TOKEN_QUERY HEX: 0008 ; inline CONSTANT: TOKEN_QUERY HEX: 0008
: TOKEN_QUERY_SOURCE HEX: 0010 ; inline CONSTANT: TOKEN_QUERY_SOURCE HEX: 0010
: TOKEN_ADJUST_DEFAULT HEX: 0080 ; inline CONSTANT: TOKEN_ADJUST_DEFAULT HEX: 0080
: TOKEN_READ ( -- n ) STANDARD_RIGHTS_READ TOKEN_QUERY bitor ; : TOKEN_READ ( -- n ) { STANDARD_RIGHTS_READ TOKEN_QUERY } flags ;
: TOKEN_WRITE ( -- n ) : TOKEN_WRITE ( -- n )
{ {

557
basis/windows/dinput/dinput.factor Normal file → Executable file
View File

@ -1,5 +1,6 @@
USING: windows.kernel32 windows.ole32 windows.com windows.com.syntax USING: windows.kernel32 windows.ole32 windows.com windows.com.syntax
alien alien.c-types alien.syntax kernel system namespaces math ; alien alien.c-types alien.syntax kernel system namespaces math constants
alias ;
IN: windows.dinput IN: windows.dinput
<< <<
@ -384,314 +385,314 @@ COM-INTERFACE: IDirectInput8W IUnknown {BF798031-483A-4DA2-AA99-5D64ED369700}
FUNCTION: HRESULT DirectInput8Create ( HINSTANCE hinst, DWORD dwVersion, REFIID riidtlf, LPVOID* ppvOut, LPUNKNOWN punkOuter ) ; FUNCTION: HRESULT DirectInput8Create ( HINSTANCE hinst, DWORD dwVersion, REFIID riidtlf, LPVOID* ppvOut, LPUNKNOWN punkOuter ) ;
: DIRECTINPUT_VERSION HEX: 0800 ; inline CONSTANT: DIRECTINPUT_VERSION HEX: 0800
: DI8DEVCLASS_ALL 0 ; inline CONSTANT: DI8DEVCLASS_ALL 0
: DI8DEVCLASS_DEVICE 1 ; inline CONSTANT: DI8DEVCLASS_DEVICE 1
: DI8DEVCLASS_POINTER 2 ; inline CONSTANT: DI8DEVCLASS_POINTER 2
: DI8DEVCLASS_KEYBOARD 3 ; inline CONSTANT: DI8DEVCLASS_KEYBOARD 3
: DI8DEVCLASS_GAMECTRL 4 ; inline CONSTANT: DI8DEVCLASS_GAMECTRL 4
: DIEDFL_ALLDEVICES HEX: 00000000 ; inline CONSTANT: DIEDFL_ALLDEVICES HEX: 00000000
: DIEDFL_ATTACHEDONLY HEX: 00000001 ; inline CONSTANT: DIEDFL_ATTACHEDONLY HEX: 00000001
: DIEDFL_FORCEFEEDBACK HEX: 00000100 ; inline CONSTANT: DIEDFL_FORCEFEEDBACK HEX: 00000100
: DIEDFL_INCLUDEALIASES HEX: 00010000 ; inline CONSTANT: DIEDFL_INCLUDEALIASES HEX: 00010000
: DIEDFL_INCLUDEPHANTOMS HEX: 00020000 ; inline CONSTANT: DIEDFL_INCLUDEPHANTOMS HEX: 00020000
: DIEDFL_INCLUDEHIDDEN HEX: 00040000 ; inline CONSTANT: DIEDFL_INCLUDEHIDDEN HEX: 00040000
: DIENUM_STOP 0 ; inline CONSTANT: DIENUM_STOP 0
: DIENUM_CONTINUE 1 ; inline CONSTANT: DIENUM_CONTINUE 1
: DIDF_ABSAXIS 1 ; CONSTANT: DIDF_ABSAXIS 1
: DIDF_RELAXIS 2 ; CONSTANT: DIDF_RELAXIS 2
: DIDFT_ALL HEX: 00000000 ; inline CONSTANT: DIDFT_ALL HEX: 00000000
: DIDFT_RELAXIS HEX: 00000001 ; inline CONSTANT: DIDFT_RELAXIS HEX: 00000001
: DIDFT_ABSAXIS HEX: 00000002 ; inline CONSTANT: DIDFT_ABSAXIS HEX: 00000002
: DIDFT_AXIS HEX: 00000003 ; inline CONSTANT: DIDFT_AXIS HEX: 00000003
: DIDFT_PSHBUTTON HEX: 00000004 ; inline CONSTANT: DIDFT_PSHBUTTON HEX: 00000004
: DIDFT_TGLBUTTON HEX: 00000008 ; inline CONSTANT: DIDFT_TGLBUTTON HEX: 00000008
: DIDFT_BUTTON HEX: 0000000C ; inline CONSTANT: DIDFT_BUTTON HEX: 0000000C
: DIDFT_POV HEX: 00000010 ; inline CONSTANT: DIDFT_POV HEX: 00000010
: DIDFT_COLLECTION HEX: 00000040 ; inline CONSTANT: DIDFT_COLLECTION HEX: 00000040
: DIDFT_NODATA HEX: 00000080 ; inline CONSTANT: DIDFT_NODATA HEX: 00000080
: DIDFT_ANYINSTANCE HEX: 00FFFF00 ; inline CONSTANT: DIDFT_ANYINSTANCE HEX: 00FFFF00
: DIDFT_INSTANCEMASK DIDFT_ANYINSTANCE ; inline ALIAS: DIDFT_INSTANCEMASK DIDFT_ANYINSTANCE
: DIDFT_MAKEINSTANCE ( n -- instance ) 8 shift ; inline : DIDFT_MAKEINSTANCE ( n -- instance ) 8 shift ; inline
: DIDFT_GETTYPE ( n -- type ) HEX: FF bitand ; inline : DIDFT_GETTYPE ( n -- type ) HEX: FF bitand ; inline
: DIDFT_GETINSTANCE ( n -- instance ) -8 shift HEX: FFFF bitand ; inline : DIDFT_GETINSTANCE ( n -- instance ) -8 shift HEX: FFFF bitand ; inline
: DIDFT_FFACTUATOR HEX: 01000000 ; inline CONSTANT: DIDFT_FFACTUATOR HEX: 01000000
: DIDFT_FFEFFECTTRIGGER HEX: 02000000 ; inline CONSTANT: DIDFT_FFEFFECTTRIGGER HEX: 02000000
: DIDFT_OUTPUT HEX: 10000000 ; inline CONSTANT: DIDFT_OUTPUT HEX: 10000000
: DIDFT_VENDORDEFINED HEX: 04000000 ; inline CONSTANT: DIDFT_VENDORDEFINED HEX: 04000000
: DIDFT_ALIAS HEX: 08000000 ; inline CONSTANT: DIDFT_ALIAS HEX: 08000000
: DIDFT_OPTIONAL HEX: 80000000 ; inline CONSTANT: DIDFT_OPTIONAL HEX: 80000000
: DIDFT_ENUMCOLLECTION ( n -- instance ) 8 shift HEX: FFFF bitand ; inline : DIDFT_ENUMCOLLECTION ( n -- instance ) 8 shift HEX: FFFF bitand ; inline
: DIDFT_NOCOLLECTION HEX: 00FFFF00 ; inline CONSTANT: DIDFT_NOCOLLECTION HEX: 00FFFF00
: DIDOI_FFACTUATOR HEX: 00000001 ; inline CONSTANT: DIDOI_FFACTUATOR HEX: 00000001
: DIDOI_FFEFFECTTRIGGER HEX: 00000002 ; inline CONSTANT: DIDOI_FFEFFECTTRIGGER HEX: 00000002
: DIDOI_POLLED HEX: 00008000 ; inline CONSTANT: DIDOI_POLLED HEX: 00008000
: DIDOI_ASPECTPOSITION HEX: 00000100 ; inline CONSTANT: DIDOI_ASPECTPOSITION HEX: 00000100
: DIDOI_ASPECTVELOCITY HEX: 00000200 ; inline CONSTANT: DIDOI_ASPECTVELOCITY HEX: 00000200
: DIDOI_ASPECTACCEL HEX: 00000300 ; inline CONSTANT: DIDOI_ASPECTACCEL HEX: 00000300
: DIDOI_ASPECTFORCE HEX: 00000400 ; inline CONSTANT: DIDOI_ASPECTFORCE HEX: 00000400
: DIDOI_ASPECTMASK HEX: 00000F00 ; inline CONSTANT: DIDOI_ASPECTMASK HEX: 00000F00
: DIDOI_GUIDISUSAGE HEX: 00010000 ; inline CONSTANT: DIDOI_GUIDISUSAGE HEX: 00010000
: DISCL_EXCLUSIVE HEX: 00000001 ; inline CONSTANT: DISCL_EXCLUSIVE HEX: 00000001
: DISCL_NONEXCLUSIVE HEX: 00000002 ; inline CONSTANT: DISCL_NONEXCLUSIVE HEX: 00000002
: DISCL_FOREGROUND HEX: 00000004 ; inline CONSTANT: DISCL_FOREGROUND HEX: 00000004
: DISCL_BACKGROUND HEX: 00000008 ; inline CONSTANT: DISCL_BACKGROUND HEX: 00000008
: DISCL_NOWINKEY HEX: 00000010 ; inline CONSTANT: DISCL_NOWINKEY HEX: 00000010
: DIK_ESCAPE HEX: 01 ; inline CONSTANT: DIK_ESCAPE HEX: 01
: DIK_1 HEX: 02 ; inline CONSTANT: DIK_1 HEX: 02
: DIK_2 HEX: 03 ; inline CONSTANT: DIK_2 HEX: 03
: DIK_3 HEX: 04 ; inline CONSTANT: DIK_3 HEX: 04
: DIK_4 HEX: 05 ; inline CONSTANT: DIK_4 HEX: 05
: DIK_5 HEX: 06 ; inline CONSTANT: DIK_5 HEX: 06
: DIK_6 HEX: 07 ; inline CONSTANT: DIK_6 HEX: 07
: DIK_7 HEX: 08 ; inline CONSTANT: DIK_7 HEX: 08
: DIK_8 HEX: 09 ; inline CONSTANT: DIK_8 HEX: 09
: DIK_9 HEX: 0A ; inline CONSTANT: DIK_9 HEX: 0A
: DIK_0 HEX: 0B ; inline CONSTANT: DIK_0 HEX: 0B
: DIK_MINUS HEX: 0C ; inline CONSTANT: DIK_MINUS HEX: 0C
: DIK_EQUALS HEX: 0D ; inline CONSTANT: DIK_EQUALS HEX: 0D
: DIK_BACK HEX: 0E ; inline CONSTANT: DIK_BACK HEX: 0E
: DIK_TAB HEX: 0F ; inline CONSTANT: DIK_TAB HEX: 0F
: DIK_Q HEX: 10 ; inline CONSTANT: DIK_Q HEX: 10
: DIK_W HEX: 11 ; inline CONSTANT: DIK_W HEX: 11
: DIK_E HEX: 12 ; inline CONSTANT: DIK_E HEX: 12
: DIK_R HEX: 13 ; inline CONSTANT: DIK_R HEX: 13
: DIK_T HEX: 14 ; inline CONSTANT: DIK_T HEX: 14
: DIK_Y HEX: 15 ; inline CONSTANT: DIK_Y HEX: 15
: DIK_U HEX: 16 ; inline CONSTANT: DIK_U HEX: 16
: DIK_I HEX: 17 ; inline CONSTANT: DIK_I HEX: 17
: DIK_O HEX: 18 ; inline CONSTANT: DIK_O HEX: 18
: DIK_P HEX: 19 ; inline CONSTANT: DIK_P HEX: 19
: DIK_LBRACKET HEX: 1A ; inline CONSTANT: DIK_LBRACKET HEX: 1A
: DIK_RBRACKET HEX: 1B ; inline CONSTANT: DIK_RBRACKET HEX: 1B
: DIK_RETURN HEX: 1C ; inline CONSTANT: DIK_RETURN HEX: 1C
: DIK_LCONTROL HEX: 1D ; inline CONSTANT: DIK_LCONTROL HEX: 1D
: DIK_A HEX: 1E ; inline CONSTANT: DIK_A HEX: 1E
: DIK_S HEX: 1F ; inline CONSTANT: DIK_S HEX: 1F
: DIK_D HEX: 20 ; inline CONSTANT: DIK_D HEX: 20
: DIK_F HEX: 21 ; inline CONSTANT: DIK_F HEX: 21
: DIK_G HEX: 22 ; inline CONSTANT: DIK_G HEX: 22
: DIK_H HEX: 23 ; inline CONSTANT: DIK_H HEX: 23
: DIK_J HEX: 24 ; inline CONSTANT: DIK_J HEX: 24
: DIK_K HEX: 25 ; inline CONSTANT: DIK_K HEX: 25
: DIK_L HEX: 26 ; inline CONSTANT: DIK_L HEX: 26
: DIK_SEMICOLON HEX: 27 ; inline CONSTANT: DIK_SEMICOLON HEX: 27
: DIK_APOSTROPHE HEX: 28 ; inline CONSTANT: DIK_APOSTROPHE HEX: 28
: DIK_GRAVE HEX: 29 ; inline CONSTANT: DIK_GRAVE HEX: 29
: DIK_LSHIFT HEX: 2A ; inline CONSTANT: DIK_LSHIFT HEX: 2A
: DIK_BACKSLASH HEX: 2B ; inline CONSTANT: DIK_BACKSLASH HEX: 2B
: DIK_Z HEX: 2C ; inline CONSTANT: DIK_Z HEX: 2C
: DIK_X HEX: 2D ; inline CONSTANT: DIK_X HEX: 2D
: DIK_C HEX: 2E ; inline CONSTANT: DIK_C HEX: 2E
: DIK_V HEX: 2F ; inline CONSTANT: DIK_V HEX: 2F
: DIK_B HEX: 30 ; inline CONSTANT: DIK_B HEX: 30
: DIK_N HEX: 31 ; inline CONSTANT: DIK_N HEX: 31
: DIK_M HEX: 32 ; inline CONSTANT: DIK_M HEX: 32
: DIK_COMMA HEX: 33 ; inline CONSTANT: DIK_COMMA HEX: 33
: DIK_PERIOD HEX: 34 ; inline CONSTANT: DIK_PERIOD HEX: 34
: DIK_SLASH HEX: 35 ; inline CONSTANT: DIK_SLASH HEX: 35
: DIK_RSHIFT HEX: 36 ; inline CONSTANT: DIK_RSHIFT HEX: 36
: DIK_MULTIPLY HEX: 37 ; inline CONSTANT: DIK_MULTIPLY HEX: 37
: DIK_LMENU HEX: 38 ; inline CONSTANT: DIK_LMENU HEX: 38
: DIK_SPACE HEX: 39 ; inline CONSTANT: DIK_SPACE HEX: 39
: DIK_CAPITAL HEX: 3A ; inline CONSTANT: DIK_CAPITAL HEX: 3A
: DIK_F1 HEX: 3B ; inline CONSTANT: DIK_F1 HEX: 3B
: DIK_F2 HEX: 3C ; inline CONSTANT: DIK_F2 HEX: 3C
: DIK_F3 HEX: 3D ; inline CONSTANT: DIK_F3 HEX: 3D
: DIK_F4 HEX: 3E ; inline CONSTANT: DIK_F4 HEX: 3E
: DIK_F5 HEX: 3F ; inline CONSTANT: DIK_F5 HEX: 3F
: DIK_F6 HEX: 40 ; inline CONSTANT: DIK_F6 HEX: 40
: DIK_F7 HEX: 41 ; inline CONSTANT: DIK_F7 HEX: 41
: DIK_F8 HEX: 42 ; inline CONSTANT: DIK_F8 HEX: 42
: DIK_F9 HEX: 43 ; inline CONSTANT: DIK_F9 HEX: 43
: DIK_F10 HEX: 44 ; inline CONSTANT: DIK_F10 HEX: 44
: DIK_NUMLOCK HEX: 45 ; inline CONSTANT: DIK_NUMLOCK HEX: 45
: DIK_SCROLL HEX: 46 ; inline CONSTANT: DIK_SCROLL HEX: 46
: DIK_NUMPAD7 HEX: 47 ; inline CONSTANT: DIK_NUMPAD7 HEX: 47
: DIK_NUMPAD8 HEX: 48 ; inline CONSTANT: DIK_NUMPAD8 HEX: 48
: DIK_NUMPAD9 HEX: 49 ; inline CONSTANT: DIK_NUMPAD9 HEX: 49
: DIK_SUBTRACT HEX: 4A ; inline CONSTANT: DIK_SUBTRACT HEX: 4A
: DIK_NUMPAD4 HEX: 4B ; inline CONSTANT: DIK_NUMPAD4 HEX: 4B
: DIK_NUMPAD5 HEX: 4C ; inline CONSTANT: DIK_NUMPAD5 HEX: 4C
: DIK_NUMPAD6 HEX: 4D ; inline CONSTANT: DIK_NUMPAD6 HEX: 4D
: DIK_ADD HEX: 4E ; inline CONSTANT: DIK_ADD HEX: 4E
: DIK_NUMPAD1 HEX: 4F ; inline CONSTANT: DIK_NUMPAD1 HEX: 4F
: DIK_NUMPAD2 HEX: 50 ; inline CONSTANT: DIK_NUMPAD2 HEX: 50
: DIK_NUMPAD3 HEX: 51 ; inline CONSTANT: DIK_NUMPAD3 HEX: 51
: DIK_NUMPAD0 HEX: 52 ; inline CONSTANT: DIK_NUMPAD0 HEX: 52
: DIK_DECIMAL HEX: 53 ; inline CONSTANT: DIK_DECIMAL HEX: 53
: DIK_OEM_102 HEX: 56 ; inline CONSTANT: DIK_OEM_102 HEX: 56
: DIK_F11 HEX: 57 ; inline CONSTANT: DIK_F11 HEX: 57
: DIK_F12 HEX: 58 ; inline CONSTANT: DIK_F12 HEX: 58
: DIK_F13 HEX: 64 ; inline CONSTANT: DIK_F13 HEX: 64
: DIK_F14 HEX: 65 ; inline CONSTANT: DIK_F14 HEX: 65
: DIK_F15 HEX: 66 ; inline CONSTANT: DIK_F15 HEX: 66
: DIK_KANA HEX: 70 ; inline CONSTANT: DIK_KANA HEX: 70
: DIK_ABNT_C1 HEX: 73 ; inline CONSTANT: DIK_ABNT_C1 HEX: 73
: DIK_CONVERT HEX: 79 ; inline CONSTANT: DIK_CONVERT HEX: 79
: DIK_NOCONVERT HEX: 7B ; inline CONSTANT: DIK_NOCONVERT HEX: 7B
: DIK_YEN HEX: 7D ; inline CONSTANT: DIK_YEN HEX: 7D
: DIK_ABNT_C2 HEX: 7E ; inline CONSTANT: DIK_ABNT_C2 HEX: 7E
: DIK_NUMPADEQUALS HEX: 8D ; inline CONSTANT: DIK_NUMPADEQUALS HEX: 8D
: DIK_PREVTRACK HEX: 90 ; inline CONSTANT: DIK_PREVTRACK HEX: 90
: DIK_AT HEX: 91 ; inline CONSTANT: DIK_AT HEX: 91
: DIK_COLON HEX: 92 ; inline CONSTANT: DIK_COLON HEX: 92
: DIK_UNDERLINE HEX: 93 ; inline CONSTANT: DIK_UNDERLINE HEX: 93
: DIK_KANJI HEX: 94 ; inline CONSTANT: DIK_KANJI HEX: 94
: DIK_STOP HEX: 95 ; inline CONSTANT: DIK_STOP HEX: 95
: DIK_AX HEX: 96 ; inline CONSTANT: DIK_AX HEX: 96
: DIK_UNLABELED HEX: 97 ; inline CONSTANT: DIK_UNLABELED HEX: 97
: DIK_NEXTTRACK HEX: 99 ; inline CONSTANT: DIK_NEXTTRACK HEX: 99
: DIK_NUMPADENTER HEX: 9C ; inline CONSTANT: DIK_NUMPADENTER HEX: 9C
: DIK_RCONTROL HEX: 9D ; inline CONSTANT: DIK_RCONTROL HEX: 9D
: DIK_MUTE HEX: A0 ; inline CONSTANT: DIK_MUTE HEX: A0
: DIK_CALCULATOR HEX: A1 ; inline CONSTANT: DIK_CALCULATOR HEX: A1
: DIK_PLAYPAUSE HEX: A2 ; inline CONSTANT: DIK_PLAYPAUSE HEX: A2
: DIK_MEDIASTOP HEX: A4 ; inline CONSTANT: DIK_MEDIASTOP HEX: A4
: DIK_VOLUMEDOWN HEX: AE ; inline CONSTANT: DIK_VOLUMEDOWN HEX: AE
: DIK_VOLUMEUP HEX: B0 ; inline CONSTANT: DIK_VOLUMEUP HEX: B0
: DIK_WEBHOME HEX: B2 ; inline CONSTANT: DIK_WEBHOME HEX: B2
: DIK_NUMPADCOMMA HEX: B3 ; inline CONSTANT: DIK_NUMPADCOMMA HEX: B3
: DIK_DIVIDE HEX: B5 ; inline CONSTANT: DIK_DIVIDE HEX: B5
: DIK_SYSRQ HEX: B7 ; inline CONSTANT: DIK_SYSRQ HEX: B7
: DIK_RMENU HEX: B8 ; inline CONSTANT: DIK_RMENU HEX: B8
: DIK_PAUSE HEX: C5 ; inline CONSTANT: DIK_PAUSE HEX: C5
: DIK_HOME HEX: C7 ; inline CONSTANT: DIK_HOME HEX: C7
: DIK_UP HEX: C8 ; inline CONSTANT: DIK_UP HEX: C8
: DIK_PRIOR HEX: C9 ; inline CONSTANT: DIK_PRIOR HEX: C9
: DIK_LEFT HEX: CB ; inline CONSTANT: DIK_LEFT HEX: CB
: DIK_RIGHT HEX: CD ; inline CONSTANT: DIK_RIGHT HEX: CD
: DIK_END HEX: CF ; inline CONSTANT: DIK_END HEX: CF
: DIK_DOWN HEX: D0 ; inline CONSTANT: DIK_DOWN HEX: D0
: DIK_NEXT HEX: D1 ; inline CONSTANT: DIK_NEXT HEX: D1
: DIK_INSERT HEX: D2 ; inline CONSTANT: DIK_INSERT HEX: D2
: DIK_DELETE HEX: D3 ; inline CONSTANT: DIK_DELETE HEX: D3
: DIK_LWIN HEX: DB ; inline CONSTANT: DIK_LWIN HEX: DB
: DIK_RWIN HEX: DC ; inline CONSTANT: DIK_RWIN HEX: DC
: DIK_APPS HEX: DD ; inline CONSTANT: DIK_APPS HEX: DD
: DIK_POWER HEX: DE ; inline CONSTANT: DIK_POWER HEX: DE
: DIK_SLEEP HEX: DF ; inline CONSTANT: DIK_SLEEP HEX: DF
: DIK_WAKE HEX: E3 ; inline CONSTANT: DIK_WAKE HEX: E3
: DIK_WEBSEARCH HEX: E5 ; inline CONSTANT: DIK_WEBSEARCH HEX: E5
: DIK_WEBFAVORITES HEX: E6 ; inline CONSTANT: DIK_WEBFAVORITES HEX: E6
: DIK_WEBREFRESH HEX: E7 ; inline CONSTANT: DIK_WEBREFRESH HEX: E7
: DIK_WEBSTOP HEX: E8 ; inline CONSTANT: DIK_WEBSTOP HEX: E8
: DIK_WEBFORWARD HEX: E9 ; inline CONSTANT: DIK_WEBFORWARD HEX: E9
: DIK_WEBBACK HEX: EA ; inline CONSTANT: DIK_WEBBACK HEX: EA
: DIK_MYCOMPUTER HEX: EB ; inline CONSTANT: DIK_MYCOMPUTER HEX: EB
: DIK_MAIL HEX: EC ; inline CONSTANT: DIK_MAIL HEX: EC
: DIK_MEDIASELECT HEX: ED ; inline CONSTANT: DIK_MEDIASELECT HEX: ED
: DIK_BACKSPACE DIK_BACK ; inline ALIAS: DIK_BACKSPACE DIK_BACK
: DIK_NUMPADSTAR DIK_MULTIPLY ; inline ALIAS: DIK_NUMPADSTAR DIK_MULTIPLY
: DIK_LALT DIK_LMENU ; inline ALIAS: DIK_LALT DIK_LMENU
: DIK_CAPSLOCK DIK_CAPITAL ; inline ALIAS: DIK_CAPSLOCK DIK_CAPITAL
: DIK_NUMPADMINUS DIK_SUBTRACT ; inline ALIAS: DIK_NUMPADMINUS DIK_SUBTRACT
: DIK_NUMPADPLUS DIK_ADD ; inline ALIAS: DIK_NUMPADPLUS DIK_ADD
: DIK_NUMPADPERIOD DIK_DECIMAL ; inline ALIAS: DIK_NUMPADPERIOD DIK_DECIMAL
: DIK_NUMPADSLASH DIK_DIVIDE ; inline ALIAS: DIK_NUMPADSLASH DIK_DIVIDE
: DIK_RALT DIK_RMENU ; inline ALIAS: DIK_RALT DIK_RMENU
: DIK_UPARROW DIK_UP ; inline ALIAS: DIK_UPARROW DIK_UP
: DIK_PGUP DIK_PRIOR ; inline ALIAS: DIK_PGUP DIK_PRIOR
: DIK_LEFTARROW DIK_LEFT ; inline ALIAS: DIK_LEFTARROW DIK_LEFT
: DIK_RIGHTARROW DIK_RIGHT ; inline ALIAS: DIK_RIGHTARROW DIK_RIGHT
: DIK_DOWNARROW DIK_DOWN ; inline ALIAS: DIK_DOWNARROW DIK_DOWN
: DIK_PGDN DIK_NEXT ; inline ALIAS: DIK_PGDN DIK_NEXT
: DIK_CIRCUMFLEX DIK_PREVTRACK ; inline ALIAS: DIK_CIRCUMFLEX DIK_PREVTRACK
: DI8DEVTYPE_DEVICE HEX: 11 ; inline CONSTANT: DI8DEVTYPE_DEVICE HEX: 11
: DI8DEVTYPE_MOUSE HEX: 12 ; inline CONSTANT: DI8DEVTYPE_MOUSE HEX: 12
: DI8DEVTYPE_KEYBOARD HEX: 13 ; inline CONSTANT: DI8DEVTYPE_KEYBOARD HEX: 13
: DI8DEVTYPE_JOYSTICK HEX: 14 ; inline CONSTANT: DI8DEVTYPE_JOYSTICK HEX: 14
: DI8DEVTYPE_GAMEPAD HEX: 15 ; inline CONSTANT: DI8DEVTYPE_GAMEPAD HEX: 15
: DI8DEVTYPE_DRIVING HEX: 16 ; inline CONSTANT: DI8DEVTYPE_DRIVING HEX: 16
: DI8DEVTYPE_FLIGHT HEX: 17 ; inline CONSTANT: DI8DEVTYPE_FLIGHT HEX: 17
: DI8DEVTYPE_1STPERSON HEX: 18 ; inline CONSTANT: DI8DEVTYPE_1STPERSON HEX: 18
: DI8DEVTYPE_DEVICECTRL HEX: 19 ; inline CONSTANT: DI8DEVTYPE_DEVICECTRL HEX: 19
: DI8DEVTYPE_SCREENPOINTER HEX: 1A ; inline CONSTANT: DI8DEVTYPE_SCREENPOINTER HEX: 1A
: DI8DEVTYPE_REMOTE HEX: 1B ; inline CONSTANT: DI8DEVTYPE_REMOTE HEX: 1B
: DI8DEVTYPE_SUPPLEMENTAL HEX: 1C ; inline CONSTANT: DI8DEVTYPE_SUPPLEMENTAL HEX: 1C
: GET_DIDEVICE_TYPE ( dwType -- type ) HEX: FF bitand ; inline : GET_DIDEVICE_TYPE ( dwType -- type ) HEX: FF bitand ; inline
: DIPROPRANGE_NOMIN HEX: 80000000 ; inline CONSTANT: DIPROPRANGE_NOMIN HEX: 80000000
: DIPROPRANGE_NOMAX HEX: 7FFFFFFF ; inline CONSTANT: DIPROPRANGE_NOMAX HEX: 7FFFFFFF
: MAXCPOINTSNUM 8 ; inline CONSTANT: MAXCPOINTSNUM 8
: DIPH_DEVICE 0 ; inline CONSTANT: DIPH_DEVICE 0
: DIPH_BYOFFSET 1 ; inline CONSTANT: DIPH_BYOFFSET 1
: DIPH_BYID 2 ; inline CONSTANT: DIPH_BYID 2
: DIPH_BYUSAGE 3 ; inline CONSTANT: DIPH_BYUSAGE 3
: DIMAKEUSAGEDWORD ( UsagePage Usage -- DWORD ) 16 shift bitor ; inline : DIMAKEUSAGEDWORD ( UsagePage Usage -- DWORD ) 16 shift bitor ; inline
: DIPROP_BUFFERSIZE 1 <alien> ; inline : DIPROP_BUFFERSIZE ( -- alien ) 1 <alien> ; inline
: DIPROP_AXISMODE 2 <alien> ; inline : DIPROP_AXISMODE ( -- alien ) 2 <alien> ; inline
: DIPROPAXISMODE_ABS 0 ; inline CONSTANT: DIPROPAXISMODE_ABS 0
: DIPROPAXISMODE_REL 1 ; inline CONSTANT: DIPROPAXISMODE_REL 1
: DIPROP_GRANULARITY 3 <alien> ; inline : DIPROP_GRANULARITY ( -- alien ) 3 <alien> ; inline
: DIPROP_RANGE 4 <alien> ; inline : DIPROP_RANGE ( -- alien ) 4 <alien> ; inline
: DIPROP_DEADZONE 5 <alien> ; inline : DIPROP_DEADZONE ( -- alien ) 5 <alien> ; inline
: DIPROP_SATURATION 6 <alien> ; inline : DIPROP_SATURATION ( -- alien ) 6 <alien> ; inline
: DIPROP_FFGAIN 7 <alien> ; inline : DIPROP_FFGAIN ( -- alien ) 7 <alien> ; inline
: DIPROP_FFLOAD 8 <alien> ; inline : DIPROP_FFLOAD ( -- alien ) 8 <alien> ; inline
: DIPROP_AUTOCENTER 9 <alien> ; inline : DIPROP_AUTOCENTER ( -- alien ) 9 <alien> ; inline
: DIPROPAUTOCENTER_OFF 0 ; inline CONSTANT: DIPROPAUTOCENTER_OFF 0
: DIPROPAUTOCENTER_ON 1 ; inline CONSTANT: DIPROPAUTOCENTER_ON 1
: DIPROP_CALIBRATIONMODE 10 <alien> ; inline : DIPROP_CALIBRATIONMODE ( -- alien ) 10 <alien> ; inline
: DIPROPCALIBRATIONMODE_COOKED 0 ; inline CONSTANT: DIPROPCALIBRATIONMODE_COOKED 0
: DIPROPCALIBRATIONMODE_RAW 1 ; inline CONSTANT: DIPROPCALIBRATIONMODE_RAW 1
: DIPROP_CALIBRATION 11 <alien> ; inline : DIPROP_CALIBRATION ( -- alien ) 11 <alien> ; inline
: DIPROP_GUIDANDPATH 12 <alien> ; inline : DIPROP_GUIDANDPATH ( -- alien ) 12 <alien> ; inline
: DIPROP_INSTANCENAME 13 <alien> ; inline : DIPROP_INSTANCENAME ( -- alien ) 13 <alien> ; inline
: DIPROP_PRODUCTNAME 14 <alien> ; inline : DIPROP_PRODUCTNAME ( -- alien ) 14 <alien> ; inline
: DIPROP_JOYSTICKID 15 <alien> ; inline : DIPROP_JOYSTICKID ( -- alien ) 15 <alien> ; inline
: DIPROP_GETPORTDISPLAYNAME 16 <alien> ; inline : DIPROP_GETPORTDISPLAYNAME ( -- alien ) 16 <alien> ; inline
: DIPROP_PHYSICALRANGE 18 <alien> ; inline : DIPROP_PHYSICALRANGE ( -- alien ) 18 <alien> ; inline
: DIPROP_LOGICALRANGE 19 <alien> ; inline : DIPROP_LOGICALRANGE ( -- alien ) 19 <alien> ; inline
: DIPROP_KEYNAME 20 <alien> ; inline : DIPROP_KEYNAME ( -- alien ) 20 <alien> ; inline
: DIPROP_CPOINTS 21 <alien> ; inline : DIPROP_CPOINTS ( -- alien ) 21 <alien> ; inline
: DIPROP_APPDATA 22 <alien> ; inline : DIPROP_APPDATA ( -- alien ) 22 <alien> ; inline
: DIPROP_SCANCODE 23 <alien> ; inline : DIPROP_SCANCODE ( -- alien ) 23 <alien> ; inline
: DIPROP_VIDPID 24 <alien> ; inline : DIPROP_VIDPID ( -- alien ) 24 <alien> ; inline
: DIPROP_USERNAME 25 <alien> ; inline : DIPROP_USERNAME ( -- alien ) 25 <alien> ; inline
: DIPROP_TYPENAME 26 <alien> ; inline : DIPROP_TYPENAME ( -- alien ) 26 <alien> ; inline
: GUID_XAxis GUID: {A36D02E0-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_XAxis GUID: {A36D02E0-C9F3-11CF-BFC7-444553540000}
: GUID_YAxis GUID: {A36D02E1-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_YAxis GUID: {A36D02E1-C9F3-11CF-BFC7-444553540000}
: GUID_ZAxis GUID: {A36D02E2-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_ZAxis GUID: {A36D02E2-C9F3-11CF-BFC7-444553540000}
: GUID_RxAxis GUID: {A36D02F4-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_RxAxis GUID: {A36D02F4-C9F3-11CF-BFC7-444553540000}
: GUID_RyAxis GUID: {A36D02F5-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_RyAxis GUID: {A36D02F5-C9F3-11CF-BFC7-444553540000}
: GUID_RzAxis GUID: {A36D02E3-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_RzAxis GUID: {A36D02E3-C9F3-11CF-BFC7-444553540000}
: GUID_Slider GUID: {A36D02E4-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_Slider GUID: {A36D02E4-C9F3-11CF-BFC7-444553540000}
: GUID_Button GUID: {A36D02F0-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_Button GUID: {A36D02F0-C9F3-11CF-BFC7-444553540000}
: GUID_Key GUID: {55728220-D33C-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_Key GUID: {55728220-D33C-11CF-BFC7-444553540000}
: GUID_POV GUID: {A36D02F2-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_POV GUID: {A36D02F2-C9F3-11CF-BFC7-444553540000}
: GUID_Unknown GUID: {A36D02F3-C9F3-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_Unknown GUID: {A36D02F3-C9F3-11CF-BFC7-444553540000}
: GUID_SysMouse GUID: {6F1D2B60-D5A0-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_SysMouse GUID: {6F1D2B60-D5A0-11CF-BFC7-444553540000}
: GUID_SysKeyboard GUID: {6F1D2B61-D5A0-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_SysKeyboard GUID: {6F1D2B61-D5A0-11CF-BFC7-444553540000}
: GUID_Joystick GUID: {6F1D2B70-D5A0-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_Joystick GUID: {6F1D2B70-D5A0-11CF-BFC7-444553540000}
: GUID_SysMouseEm GUID: {6F1D2B80-D5A0-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_SysMouseEm GUID: {6F1D2B80-D5A0-11CF-BFC7-444553540000}
: GUID_SysMouseEm2 GUID: {6F1D2B81-D5A0-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_SysMouseEm2 GUID: {6F1D2B81-D5A0-11CF-BFC7-444553540000}
: GUID_SysKeyboardEm GUID: {6F1D2B82-D5A0-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_SysKeyboardEm GUID: {6F1D2B82-D5A0-11CF-BFC7-444553540000}
: GUID_SysKeyboardEm2 GUID: {6F1D2B83-D5A0-11CF-BFC7-444553540000} ; inline CONSTANT: GUID_SysKeyboardEm2 GUID: {6F1D2B83-D5A0-11CF-BFC7-444553540000}

View File

@ -1,10 +1,10 @@
USING: kernel ; USING: kernel constants ;
IN: windows.errors IN: windows.errors
: ERROR_SUCCESS 0 ; inline CONSTANT: ERROR_SUCCESS 0
: ERROR_NO_MORE_FILES 18 ; inline CONSTANT: ERROR_NO_MORE_FILES 18
: ERROR_HANDLE_EOF 38 ; inline CONSTANT: ERROR_HANDLE_EOF 38
: ERROR_BROKEN_PIPE 109 ; inline CONSTANT: ERROR_BROKEN_PIPE 109
: ERROR_ENVVAR_NOT_FOUND 203 ; inline CONSTANT: ERROR_ENVVAR_NOT_FOUND 203
: ERROR_IO_INCOMPLETE 996 ; inline CONSTANT: ERROR_IO_INCOMPLETE 996
: ERROR_IO_PENDING 997 ; inline CONSTANT: ERROR_IO_PENDING 997

View File

@ -1,38 +1,38 @@
! FUNCTION: AbortDoc ! FUNCTION: AbortDoc
! Copyright (C) 2005, 2006 Doug Coleman. ! Copyright (C) 2005, 2006 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.syntax kernel windows.types alias ; USING: alien alien.syntax kernel windows.types alias constants ;
IN: windows.gdi32 IN: windows.gdi32
! Stock Logical Objects ! Stock Logical Objects
: WHITE_BRUSH 0 ; inline CONSTANT: WHITE_BRUSH 0
: LTGRAY_BRUSH 1 ; inline CONSTANT: LTGRAY_BRUSH 1
: GRAY_BRUSH 2 ; inline CONSTANT: GRAY_BRUSH 2
: DKGRAY_BRUSH 3 ; inline CONSTANT: DKGRAY_BRUSH 3
: BLACK_BRUSH 4 ; inline CONSTANT: BLACK_BRUSH 4
: NULL_BRUSH 5 ; inline CONSTANT: NULL_BRUSH 5
: HOLLOW_BRUSH NULL_BRUSH ; inline ALIAS: HOLLOW_BRUSH NULL_BRUSH
: WHITE_PEN 6 ; inline CONSTANT: WHITE_PEN 6
: BLACK_PEN 7 ; inline CONSTANT: BLACK_PEN 7
: NULL_PEN 8 ; inline CONSTANT: NULL_PEN 8
: OEM_FIXED_FONT 10 ; inline CONSTANT: OEM_FIXED_FONT 10
: ANSI_FIXED_FONT 11 ; inline CONSTANT: ANSI_FIXED_FONT 11
: ANSI_VAR_FONT 12 ; inline CONSTANT: ANSI_VAR_FONT 12
: SYSTEM_FONT 13 ; inline CONSTANT: SYSTEM_FONT 13
: DEVICE_DEFAULT_FONT 14 ; inline CONSTANT: DEVICE_DEFAULT_FONT 14
: DEFAULT_PALETTE 15 ; inline CONSTANT: DEFAULT_PALETTE 15
: SYSTEM_FIXED_FONT 16 ; inline CONSTANT: SYSTEM_FIXED_FONT 16
: DEFAULT_GUI_FONT 17 ; inline CONSTANT: DEFAULT_GUI_FONT 17
: DC_BRUSH 18 ; inline CONSTANT: DC_BRUSH 18
: DC_PEN 19 ; inline CONSTANT: DC_PEN 19
: BI_RGB 0 ; inline CONSTANT: BI_RGB 0
: BI_RLE8 1 ; inline CONSTANT: BI_RLE8 1
: BI_RLE4 2 ; inline CONSTANT: BI_RLE4 2
: BI_BITFIELDS 3 ; inline CONSTANT: BI_BITFIELDS 3
: DIB_RGB_COLORS 0 ; inline CONSTANT: DIB_RGB_COLORS 0
: DIB_PAL_COLORS 1 ; inline CONSTANT: DIB_PAL_COLORS 1
LIBRARY: gdi32 LIBRARY: gdi32

539
basis/windows/kernel32/kernel32.factor Normal file → Executable file
View File

@ -1,93 +1,93 @@
! Copyright (C) 2005, 2006 Doug Coleman. ! Copyright (C) 2005, 2006 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.syntax kernel windows.types alias ; USING: alien alien.syntax kernel windows.types alias constants ;
IN: windows.kernel32 IN: windows.kernel32
: MAX_PATH 260 ; inline CONSTANT: MAX_PATH 260
: GHND HEX: 40 ; inline CONSTANT: GHND HEX: 40
: GMEM_FIXED 0 ; inline CONSTANT: GMEM_FIXED 0
: GMEM_MOVEABLE 2 ; inline CONSTANT: GMEM_MOVEABLE 2
: GMEM_ZEROINIT HEX: 40 ; inline CONSTANT: GMEM_ZEROINIT HEX: 40
: GPTR HEX: 40 ; inline CONSTANT: GPTR HEX: 40
: GENERIC_READ HEX: 80000000 ; inline CONSTANT: GENERIC_READ HEX: 80000000
: GENERIC_WRITE HEX: 40000000 ; inline CONSTANT: GENERIC_WRITE HEX: 40000000
: GENERIC_EXECUTE HEX: 20000000 ; inline CONSTANT: GENERIC_EXECUTE HEX: 20000000
: GENERIC_ALL HEX: 10000000 ; inline CONSTANT: GENERIC_ALL HEX: 10000000
: CREATE_NEW 1 ; inline CONSTANT: CREATE_NEW 1
: CREATE_ALWAYS 2 ; inline CONSTANT: CREATE_ALWAYS 2
: OPEN_EXISTING 3 ; inline CONSTANT: OPEN_EXISTING 3
: OPEN_ALWAYS 4 ; inline CONSTANT: OPEN_ALWAYS 4
: TRUNCATE_EXISTING 5 ; inline CONSTANT: TRUNCATE_EXISTING 5
: FILE_LIST_DIRECTORY HEX: 00000001 ; inline CONSTANT: FILE_LIST_DIRECTORY HEX: 00000001
: FILE_READ_DAT HEX: 00000001 ; inline CONSTANT: FILE_READ_DAT HEX: 00000001
: FILE_ADD_FILE HEX: 00000002 ; inline CONSTANT: FILE_ADD_FILE HEX: 00000002
: FILE_WRITE_DATA HEX: 00000002 ; inline CONSTANT: FILE_WRITE_DATA HEX: 00000002
: FILE_ADD_SUBDIRECTORY HEX: 00000004 ; inline CONSTANT: FILE_ADD_SUBDIRECTORY HEX: 00000004
: FILE_APPEND_DATA HEX: 00000004 ; inline CONSTANT: FILE_APPEND_DATA HEX: 00000004
: FILE_CREATE_PIPE_INSTANCE HEX: 00000004 ; inline CONSTANT: FILE_CREATE_PIPE_INSTANCE HEX: 00000004
: FILE_READ_EA HEX: 00000008 ; inline CONSTANT: FILE_READ_EA HEX: 00000008
: FILE_READ_PROPERTIES HEX: 00000008 ; inline CONSTANT: FILE_READ_PROPERTIES HEX: 00000008
: FILE_WRITE_EA HEX: 00000010 ; inline CONSTANT: FILE_WRITE_EA HEX: 00000010
: FILE_WRITE_PROPERTIES HEX: 00000010 ; inline CONSTANT: FILE_WRITE_PROPERTIES HEX: 00000010
: FILE_EXECUTE HEX: 00000020 ; inline CONSTANT: FILE_EXECUTE HEX: 00000020
: FILE_TRAVERSE HEX: 00000020 ; inline CONSTANT: FILE_TRAVERSE HEX: 00000020
: FILE_DELETE_CHILD HEX: 00000040 ; inline CONSTANT: FILE_DELETE_CHILD HEX: 00000040
: FILE_READ_ATTRIBUTES HEX: 00000080 ; inline CONSTANT: FILE_READ_ATTRIBUTES HEX: 00000080
: FILE_WRITE_ATTRIBUTES HEX: 00000100 ; inline CONSTANT: FILE_WRITE_ATTRIBUTES HEX: 00000100
: FILE_SHARE_READ 1 ; inline CONSTANT: FILE_SHARE_READ 1
: FILE_SHARE_WRITE 2 ; inline CONSTANT: FILE_SHARE_WRITE 2
: FILE_SHARE_DELETE 4 ; inline CONSTANT: FILE_SHARE_DELETE 4
: FILE_SHARE_VALID_FLAGS 7 ; inline CONSTANT: FILE_SHARE_VALID_FLAGS 7
: FILE_FLAG_WRITE_THROUGH HEX: 80000000 ; inline CONSTANT: FILE_FLAG_WRITE_THROUGH HEX: 80000000
: FILE_FLAG_OVERLAPPED HEX: 40000000 ; inline CONSTANT: FILE_FLAG_OVERLAPPED HEX: 40000000
: FILE_FLAG_NO_BUFFERING HEX: 20000000 ; inline CONSTANT: FILE_FLAG_NO_BUFFERING HEX: 20000000
: FILE_FLAG_RANDOM_ACCESS HEX: 10000000 ; inline CONSTANT: FILE_FLAG_RANDOM_ACCESS HEX: 10000000
: FILE_FLAG_SEQUENTIAL_SCAN HEX: 08000000 ; inline CONSTANT: FILE_FLAG_SEQUENTIAL_SCAN HEX: 08000000
: FILE_FLAG_DELETE_ON_CLOSE HEX: 04000000 ; inline CONSTANT: FILE_FLAG_DELETE_ON_CLOSE HEX: 04000000
: FILE_FLAG_BACKUP_SEMANTICS HEX: 02000000 ; inline CONSTANT: FILE_FLAG_BACKUP_SEMANTICS HEX: 02000000
: FILE_FLAG_POSIX_SEMANTICS HEX: 01000000 ; inline CONSTANT: FILE_FLAG_POSIX_SEMANTICS HEX: 01000000
: FILE_FLAG_OPEN_REPARSE_POINT HEX: 00200000 ; inline CONSTANT: FILE_FLAG_OPEN_REPARSE_POINT HEX: 00200000
: FILE_FLAG_OPEN_NO_RECALL HEX: 00100000 ; inline CONSTANT: FILE_FLAG_OPEN_NO_RECALL HEX: 00100000
: FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000 ; inline CONSTANT: FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000
: FILE_ATTRIBUTE_READONLY HEX: 00000001 ; inline CONSTANT: FILE_ATTRIBUTE_READONLY HEX: 00000001
: FILE_ATTRIBUTE_HIDDEN HEX: 00000002 ; inline CONSTANT: FILE_ATTRIBUTE_HIDDEN HEX: 00000002
: FILE_ATTRIBUTE_SYSTEM HEX: 00000004 ; inline CONSTANT: FILE_ATTRIBUTE_SYSTEM HEX: 00000004
: FILE_ATTRIBUTE_DIRECTORY HEX: 00000010 ; inline CONSTANT: FILE_ATTRIBUTE_DIRECTORY HEX: 00000010
: FILE_ATTRIBUTE_ARCHIVE HEX: 00000020 ; inline CONSTANT: FILE_ATTRIBUTE_ARCHIVE HEX: 00000020
: FILE_ATTRIBUTE_DEVICE HEX: 00000040 ; inline CONSTANT: FILE_ATTRIBUTE_DEVICE HEX: 00000040
: FILE_ATTRIBUTE_NORMAL HEX: 00000080 ; inline CONSTANT: FILE_ATTRIBUTE_NORMAL HEX: 00000080
: FILE_ATTRIBUTE_TEMPORARY HEX: 00000100 ; inline CONSTANT: FILE_ATTRIBUTE_TEMPORARY HEX: 00000100
: FILE_ATTRIBUTE_SPARSE_FILE HEX: 00000200 ; inline CONSTANT: FILE_ATTRIBUTE_SPARSE_FILE HEX: 00000200
: FILE_ATTRIBUTE_REPARSE_POINT HEX: 00000400 ; inline CONSTANT: FILE_ATTRIBUTE_REPARSE_POINT HEX: 00000400
: FILE_ATTRIBUTE_COMPRESSED HEX: 00000800 ; inline CONSTANT: FILE_ATTRIBUTE_COMPRESSED HEX: 00000800
: FILE_ATTRIBUTE_OFFLINE HEX: 00001000 ; inline CONSTANT: FILE_ATTRIBUTE_OFFLINE HEX: 00001000
: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED HEX: 00002000 ; inline CONSTANT: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED HEX: 00002000
: FILE_ATTRIBUTE_ENCRYPTED HEX: 00004000 ; inline CONSTANT: FILE_ATTRIBUTE_ENCRYPTED HEX: 00004000
: FILE_NOTIFY_CHANGE_FILE HEX: 001 ; inline CONSTANT: FILE_NOTIFY_CHANGE_FILE HEX: 001
: FILE_NOTIFY_CHANGE_DIR_NAME HEX: 002 ; inline CONSTANT: FILE_NOTIFY_CHANGE_DIR_NAME HEX: 002
: FILE_NOTIFY_CHANGE_ATTRIBUTES HEX: 004 ; inline CONSTANT: FILE_NOTIFY_CHANGE_ATTRIBUTES HEX: 004
: FILE_NOTIFY_CHANGE_SIZE HEX: 008 ; inline CONSTANT: FILE_NOTIFY_CHANGE_SIZE HEX: 008
: FILE_NOTIFY_CHANGE_LAST_WRITE HEX: 010 ; inline CONSTANT: FILE_NOTIFY_CHANGE_LAST_WRITE HEX: 010
: FILE_NOTIFY_CHANGE_LAST_ACCESS HEX: 020 ; inline CONSTANT: FILE_NOTIFY_CHANGE_LAST_ACCESS HEX: 020
: FILE_NOTIFY_CHANGE_CREATION HEX: 040 ; inline CONSTANT: FILE_NOTIFY_CHANGE_CREATION HEX: 040
: FILE_NOTIFY_CHANGE_EA HEX: 080 ; inline CONSTANT: FILE_NOTIFY_CHANGE_EA HEX: 080
: FILE_NOTIFY_CHANGE_SECURITY HEX: 100 ; inline CONSTANT: FILE_NOTIFY_CHANGE_SECURITY HEX: 100
: FILE_NOTIFY_CHANGE_FILE_NAME HEX: 200 ; inline CONSTANT: FILE_NOTIFY_CHANGE_FILE_NAME HEX: 200
: FILE_NOTIFY_CHANGE_ALL HEX: 3ff ; inline CONSTANT: FILE_NOTIFY_CHANGE_ALL HEX: 3ff
: FILE_ACTION_ADDED 1 ; inline CONSTANT: FILE_ACTION_ADDED 1
: FILE_ACTION_REMOVED 2 ; inline CONSTANT: FILE_ACTION_REMOVED 2
: FILE_ACTION_MODIFIED 3 ; inline CONSTANT: FILE_ACTION_MODIFIED 3
: FILE_ACTION_RENAMED_OLD_NAME 4 ; inline CONSTANT: FILE_ACTION_RENAMED_OLD_NAME 4
: FILE_ACTION_RENAMED_NEW_NAME 5 ; inline CONSTANT: FILE_ACTION_RENAMED_NEW_NAME 5
C-STRUCT: FILE_NOTIFY_INFORMATION C-STRUCT: FILE_NOTIFY_INFORMATION
{ "DWORD" "NextEntryOffset" } { "DWORD" "NextEntryOffset" }
@ -96,107 +96,106 @@ C-STRUCT: FILE_NOTIFY_INFORMATION
{ "WCHAR[1]" "FileName" } ; { "WCHAR[1]" "FileName" } ;
TYPEDEF: FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION TYPEDEF: FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION
: STD_INPUT_HANDLE -10 ; inline CONSTANT: STD_INPUT_HANDLE -10
: STD_OUTPUT_HANDLE -11 ; inline CONSTANT: STD_OUTPUT_HANDLE -11
: STD_ERROR_HANDLE -12 ; inline CONSTANT: STD_ERROR_HANDLE -12
: INVALID_HANDLE_VALUE -1 <alien> ; inline : INVALID_HANDLE_VALUE ( -- alien ) -1 <alien> ; inline
: INVALID_FILE_SIZE HEX: FFFFFFFF ; inline CONSTANT: INVALID_FILE_SIZE HEX: FFFFFFFF
: INVALID_SET_FILE_POINTER HEX: ffffffff ; inline CONSTANT: INVALID_SET_FILE_POINTER HEX: ffffffff
: FILE_BEGIN 0 ; inline CONSTANT: FILE_BEGIN 0
: FILE_CURRENT 1 ; inline CONSTANT: FILE_CURRENT 1
: FILE_END 2 ; inline CONSTANT: FILE_END 2
: OF_READ 0 ; CONSTANT: OF_READ 0
: OF_READWRITE 2 ; CONSTANT: OF_READWRITE 2
: OF_WRITE 1 ; CONSTANT: OF_WRITE 1
: OF_SHARE_COMPAT 0 ; CONSTANT: OF_SHARE_COMPAT 0
: OF_SHARE_DENY_NONE 64 ; CONSTANT: OF_SHARE_DENY_NONE 64
: OF_SHARE_DENY_READ 48 ; CONSTANT: OF_SHARE_DENY_READ 48
: OF_SHARE_DENY_WRITE 32 ; CONSTANT: OF_SHARE_DENY_WRITE 32
: OF_SHARE_EXCLUSIVE 16 ; CONSTANT: OF_SHARE_EXCLUSIVE 16
: OF_CANCEL 2048 ; CONSTANT: OF_CANCEL 2048
: OF_CREATE 4096 ; CONSTANT: OF_CREATE 4096
: OF_DELETE 512 ; CONSTANT: OF_DELETE 512
: OF_EXIST 16384 ; CONSTANT: OF_EXIST 16384
: OF_PARSE 256 ; CONSTANT: OF_PARSE 256
: OF_PROMPT 8192 ; CONSTANT: OF_PROMPT 8192
: OF_REOPEN 32768 ; CONSTANT: OF_REOPEN 32768
: OF_VERIFY 1024 ; CONSTANT: OF_VERIFY 1024
: INFINITE HEX: FFFFFFFF ; inline CONSTANT: INFINITE HEX: FFFFFFFF
! From C:\cygwin\usr\include\w32api\winbase.h ! From C:\cygwin\usr\include\w32api\winbase.h
: FILE_TYPE_UNKNOWN 0 ; CONSTANT: FILE_TYPE_UNKNOWN 0
: FILE_TYPE_DISK 1 ; CONSTANT: FILE_TYPE_DISK 1
: FILE_TYPE_CHAR 2 ; CONSTANT: FILE_TYPE_CHAR 2
: FILE_TYPE_PIPE 3 ; CONSTANT: FILE_TYPE_PIPE 3
: FILE_TYPE_REMOTE HEX: 8000 ; CONSTANT: FILE_TYPE_REMOTE HEX: 8000
: TIME_ZONE_ID_UNKNOWN 0 ; inline CONSTANT: TIME_ZONE_ID_UNKNOWN 0
: TIME_ZONE_ID_STANDARD 1 ; inline CONSTANT: TIME_ZONE_ID_STANDARD 1
: TIME_ZONE_ID_DAYLIGHT 2 ; inline CONSTANT: TIME_ZONE_ID_DAYLIGHT 2
: TIME_ZONE_ID_INVALID HEX: FFFFFFFF ; inline CONSTANT: TIME_ZONE_ID_INVALID HEX: FFFFFFFF
CONSTANT: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10
CONSTANT: PF_SSE3_INSTRUCTIONS_AVAILABLE 13
: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 ; inline CONSTANT: MAX_COMPUTERNAME_LENGTH 15
: PF_SSE3_INSTRUCTIONS_AVAILABLE 13 ; inline CONSTANT: UNLEN 256
: MAX_COMPUTERNAME_LENGTH 15 ; inline CONSTANT: PROCESS_TERMINATE HEX: 1
: UNLEN 256 ; inline 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
: PROCESS_TERMINATE ( -- n ) HEX: 1 ; inline CONSTANT: MEM_COMMIT HEX: 1000
: PROCESS_CREATE_THREAD ( -- n ) HEX: 2 ; inline CONSTANT: MEM_RELEASE HEX: 8000
: 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 CONSTANT: PAGE_NOACCESS 1
: MEM_RELEASE ( -- n ) HEX: 8000 ; inline 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
: PAGE_NOACCESS 1 ; inline CONSTANT: SEC_BASED HEX: 00200000
: PAGE_READONLY 2 ; inline CONSTANT: SEC_NO_CHANGE HEX: 00400000
: PAGE_READWRITE 4 ; inline CONSTANT: SEC_FILE HEX: 00800000
: PAGE_WRITECOPY 8 ; inline CONSTANT: SEC_IMAGE HEX: 01000000
: PAGE_EXECUTE HEX: 10 ; inline CONSTANT: SEC_VLM HEX: 02000000
: PAGE_EXECUTE_READ HEX: 20 ; inline CONSTANT: SEC_RESERVE HEX: 04000000
: PAGE_EXECUTE_READWRITE HEX: 40 ; inline CONSTANT: SEC_COMMIT HEX: 08000000
: PAGE_EXECUTE_WRITECOPY HEX: 80 ; inline CONSTANT: SEC_NOCACHE HEX: 10000000
: PAGE_GUARD HEX: 100 ; inline ALIAS: MEM_IMAGE SEC_IMAGE
: PAGE_NOCACHE HEX: 200 ; inline
: SEC_BASED HEX: 00200000 ; inline CONSTANT: ERROR_ALREADY_EXISTS 183
: 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 CONSTANT: FILE_MAP_ALL_ACCESS HEX: f001f
CONSTANT: FILE_MAP_READ 4
CONSTANT: FILE_MAP_WRITE 2
CONSTANT: FILE_MAP_COPY 1
: FILE_MAP_ALL_ACCESS HEX: f001f ; CONSTANT: THREAD_MODE_BACKGROUND_BEGIN HEX: 10000
: FILE_MAP_READ 4 ; CONSTANT: THREAD_MODE_BACKGROUND_END HEX: 20000
: FILE_MAP_WRITE 2 ; CONSTANT: THREAD_PRIORITY_ABOVE_NORMAL 1
: FILE_MAP_COPY 1 ; CONSTANT: THREAD_PRIORITY_BELOW_NORMAL -1
CONSTANT: THREAD_PRIORITY_HIGHEST 2
: THREAD_MODE_BACKGROUND_BEGIN HEX: 10000 ; inline CONSTANT: THREAD_PRIORITY_IDLE -15
: THREAD_MODE_BACKGROUND_END HEX: 20000 ; inline CONSTANT: THREAD_PRIORITY_LOWEST -2
: THREAD_PRIORITY_ABOVE_NORMAL 1 ; inline CONSTANT: THREAD_PRIORITY_NORMAL 0
: THREAD_PRIORITY_BELOW_NORMAL -1 ; inline CONSTANT: THREAD_PRIORITY_TIME_CRITICAL 15
: 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
C-STRUCT: OVERLAPPED C-STRUCT: OVERLAPPED
{ "UINT_PTR" "internal" } { "UINT_PTR" "internal" }
@ -321,74 +320,74 @@ C-STRUCT: GUID
{ { "UCHAR" 8 } "Data4" } ; { { "UCHAR" 8 } "Data4" } ;
: SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege" ; CONSTANT: SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege"
: SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege" ; CONSTANT: SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege"
: SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege" ; CONSTANT: SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege"
: SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege" ; CONSTANT: SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege"
: SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege" ; CONSTANT: SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege"
: SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege" ; CONSTANT: SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege"
: SE_TCB_NAME "SeTcbPrivilege" ; CONSTANT: SE_TCB_NAME "SeTcbPrivilege"
: SE_SECURITY_NAME "SeSecurityPrivilege" ; CONSTANT: SE_SECURITY_NAME "SeSecurityPrivilege"
: SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege" ; CONSTANT: SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege"
: SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege" ; CONSTANT: SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege"
: SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege" ; CONSTANT: SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege"
: SE_SYSTEMTIME_NAME "SeSystemtimePrivilege" ; CONSTANT: SE_SYSTEMTIME_NAME "SeSystemtimePrivilege"
: SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege" ; CONSTANT: SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege"
: SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege" ; CONSTANT: SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege"
: SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege" ; CONSTANT: SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege"
: SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege" ; CONSTANT: SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege"
: SE_BACKUP_NAME "SeBackupPrivilege" ; CONSTANT: SE_BACKUP_NAME "SeBackupPrivilege"
: SE_RESTORE_NAME "SeRestorePrivilege" ; CONSTANT: SE_RESTORE_NAME "SeRestorePrivilege"
: SE_SHUTDOWN_NAME "SeShutdownPrivilege" ; CONSTANT: SE_SHUTDOWN_NAME "SeShutdownPrivilege"
: SE_DEBUG_NAME "SeDebugPrivilege" ; CONSTANT: SE_DEBUG_NAME "SeDebugPrivilege"
: SE_AUDIT_NAME "SeAuditPrivilege" ; CONSTANT: SE_AUDIT_NAME "SeAuditPrivilege"
: SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege" ; CONSTANT: SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege"
: SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege" ; CONSTANT: SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege"
: SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege" ; CONSTANT: SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege"
: SE_UNDOCK_NAME "SeUndockPrivilege" ; CONSTANT: SE_UNDOCK_NAME "SeUndockPrivilege"
: SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege" ; CONSTANT: SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege"
: SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege" ; CONSTANT: SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege"
: SE_IMPERSONATE_NAME "SeImpersonatePrivilege" ; CONSTANT: SE_IMPERSONATE_NAME "SeImpersonatePrivilege"
: SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege" ; CONSTANT: SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege"
: SE_GROUP_MANDATORY HEX: 00000001 ; CONSTANT: SE_GROUP_MANDATORY HEX: 00000001
: SE_GROUP_ENABLED_BY_DEFAULT HEX: 00000002 ; CONSTANT: SE_GROUP_ENABLED_BY_DEFAULT HEX: 00000002
: SE_GROUP_ENABLED HEX: 00000004 ; CONSTANT: SE_GROUP_ENABLED HEX: 00000004
: SE_GROUP_OWNER HEX: 00000008 ; CONSTANT: SE_GROUP_OWNER HEX: 00000008
: SE_GROUP_USE_FOR_DENY_ONLY HEX: 00000010 ; CONSTANT: SE_GROUP_USE_FOR_DENY_ONLY HEX: 00000010
: SE_GROUP_LOGON_ID HEX: C0000000 ; CONSTANT: SE_GROUP_LOGON_ID HEX: C0000000
: SE_GROUP_RESOURCE HEX: 20000000 ; CONSTANT: SE_GROUP_RESOURCE HEX: 20000000
: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001 ; CONSTANT: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001
: SE_PRIVILEGE_ENABLED HEX: 00000002 ; CONSTANT: SE_PRIVILEGE_ENABLED HEX: 00000002
: SE_PRIVILEGE_REMOVE HEX: 00000004 ; CONSTANT: SE_PRIVILEGE_REMOVE HEX: 00000004
: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000 ; CONSTANT: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000
: PRIVILEGE_SET_ALL_NECESSARY 1 ; CONSTANT: PRIVILEGE_SET_ALL_NECESSARY 1
: SE_OWNER_DEFAULTED HEX: 00000001 ; CONSTANT: SE_OWNER_DEFAULTED HEX: 00000001
: SE_GROUP_DEFAULTED HEX: 00000002 ; CONSTANT: SE_GROUP_DEFAULTED HEX: 00000002
: SE_DACL_PRESENT HEX: 00000004 ; CONSTANT: SE_DACL_PRESENT HEX: 00000004
: SE_DACL_DEFAULTED HEX: 00000008 ; CONSTANT: SE_DACL_DEFAULTED HEX: 00000008
: SE_SACL_PRESENT HEX: 00000010 ; CONSTANT: SE_SACL_PRESENT HEX: 00000010
: SE_SACL_DEFAULTED HEX: 00000020 ; CONSTANT: SE_SACL_DEFAULTED HEX: 00000020
: SE_DACL_AUTO_INHERIT_REQ HEX: 00000100 ; CONSTANT: SE_DACL_AUTO_INHERIT_REQ HEX: 00000100
: SE_SACL_AUTO_INHERIT_REQ HEX: 00000200 ; CONSTANT: SE_SACL_AUTO_INHERIT_REQ HEX: 00000200
: SE_DACL_AUTO_INHERITED HEX: 00000400 ; CONSTANT: SE_DACL_AUTO_INHERITED HEX: 00000400
: SE_SACL_AUTO_INHERITED HEX: 00000800 ; CONSTANT: SE_SACL_AUTO_INHERITED HEX: 00000800
: SE_DACL_PROTECTED HEX: 00001000 ; CONSTANT: SE_DACL_PROTECTED HEX: 00001000
: SE_SACL_PROTECTED HEX: 00002000 ; CONSTANT: SE_SACL_PROTECTED HEX: 00002000
: SE_SELF_RELATIVE HEX: 00008000 ; CONSTANT: SE_SELF_RELATIVE HEX: 00008000
: ANYSIZE_ARRAY 1 ; inline CONSTANT: ANYSIZE_ARRAY 1
: MAXIMUM_WAIT_OBJECTS 64 ; inline CONSTANT: MAXIMUM_WAIT_OBJECTS 64
: MAXIMUM_SUSPEND_COUNT HEX: 7f ; inline CONSTANT: MAXIMUM_SUSPEND_COUNT HEX: 7f
: WAIT_OBJECT_0 0 ; inline CONSTANT: WAIT_OBJECT_0 0
: WAIT_ABANDONED_0 128 ; inline CONSTANT: WAIT_ABANDONED_0 128
: WAIT_TIMEOUT 258 ; inline CONSTANT: WAIT_TIMEOUT 258
: WAIT_IO_COMPLETION HEX: c0 ; inline CONSTANT: WAIT_IO_COMPLETION HEX: c0
: WAIT_FAILED HEX: ffffffff ; inline CONSTANT: WAIT_FAILED HEX: ffffffff
C-STRUCT: LUID C-STRUCT: LUID
{ "DWORD" "LowPart" } { "DWORD" "LowPart" }
@ -427,7 +426,7 @@ C-STRUCT: BY_HANDLE_FILE_INFORMATION
{ "DWORD" "nFileIndexLow" } ; { "DWORD" "nFileIndexLow" } ;
TYPEDEF: BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION TYPEDEF: BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION
: OFS_MAXPATHNAME 128 ; CONSTANT: OFS_MAXPATHNAME 128
C-STRUCT: OFSTRUCT C-STRUCT: OFSTRUCT
{ "BYTE" "cBytes" } { "BYTE" "cBytes" }
@ -489,34 +488,34 @@ C-STRUCT: SECURITY_ATTRIBUTES
{ "LPVOID" "lpSecurityDescriptor" } { "LPVOID" "lpSecurityDescriptor" }
{ "BOOL" "bInheritHandle" } ; { "BOOL" "bInheritHandle" } ;
: HANDLE_FLAG_INHERIT 1 ; inline CONSTANT: HANDLE_FLAG_INHERIT 1
: HANDLE_FLAG_PROTECT_FROM_CLOSE 2 ; inline CONSTANT: HANDLE_FLAG_PROTECT_FROM_CLOSE 2
: STARTF_USESHOWWINDOW HEX: 00000001 ; inline CONSTANT: STARTF_USESHOWWINDOW HEX: 00000001
: STARTF_USESIZE HEX: 00000002 ; inline CONSTANT: STARTF_USESIZE HEX: 00000002
: STARTF_USEPOSITION HEX: 00000004 ; inline CONSTANT: STARTF_USEPOSITION HEX: 00000004
: STARTF_USECOUNTCHARS HEX: 00000008 ; inline CONSTANT: STARTF_USECOUNTCHARS HEX: 00000008
: STARTF_USEFILLATTRIBUTE HEX: 00000010 ; inline CONSTANT: STARTF_USEFILLATTRIBUTE HEX: 00000010
: STARTF_RUNFULLSCREEN HEX: 00000020 ; inline CONSTANT: STARTF_RUNFULLSCREEN HEX: 00000020
: STARTF_FORCEONFEEDBACK HEX: 00000040 ; inline CONSTANT: STARTF_FORCEONFEEDBACK HEX: 00000040
: STARTF_FORCEOFFFEEDBACK HEX: 00000080 ; inline CONSTANT: STARTF_FORCEOFFFEEDBACK HEX: 00000080
: STARTF_USESTDHANDLES HEX: 00000100 ; inline CONSTANT: STARTF_USESTDHANDLES HEX: 00000100
: STARTF_USEHOTKEY HEX: 00000200 ; inline CONSTANT: STARTF_USEHOTKEY HEX: 00000200
: PIPE_ACCESS_INBOUND 1 ; inline CONSTANT: PIPE_ACCESS_INBOUND 1
: PIPE_ACCESS_OUTBOUND 2 ; inline CONSTANT: PIPE_ACCESS_OUTBOUND 2
: PIPE_ACCESS_DUPLEX 3 ; inline CONSTANT: PIPE_ACCESS_DUPLEX 3
: PIPE_TYPE_BYTE 0 ; inline CONSTANT: PIPE_TYPE_BYTE 0
: PIPE_TYPE_MESSAGE 4 ; inline CONSTANT: PIPE_TYPE_MESSAGE 4
: PIPE_READMODE_BYTE 0 ; inline CONSTANT: PIPE_READMODE_BYTE 0
: PIPE_READMODE_MESSAGE 2 ; inline CONSTANT: PIPE_READMODE_MESSAGE 2
: PIPE_WAIT 0 ; inline CONSTANT: PIPE_WAIT 0
: PIPE_NOWAIT 1 ; inline CONSTANT: PIPE_NOWAIT 1
: PIPE_UNLIMITED_INSTANCES 255 ; inline CONSTANT: PIPE_UNLIMITED_INSTANCES 255
LIBRARY: kernel32 LIBRARY: kernel32
! FUNCTION: _hread ! FUNCTION: _hread
@ -641,29 +640,29 @@ ALIAS: CreateNamedPipe CreateNamedPipeW
! FUNCTION: CreateNlsSecurityDescriptor ! FUNCTION: CreateNlsSecurityDescriptor
FUNCTION: BOOL CreatePipe ( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ) ; FUNCTION: BOOL CreatePipe ( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ) ;
: DEBUG_PROCESS HEX: 00000001 ; CONSTANT: DEBUG_PROCESS HEX: 00000001
: DEBUG_ONLY_THIS_PROCESS HEX: 00000002 ; CONSTANT: DEBUG_ONLY_THIS_PROCESS HEX: 00000002
: CREATE_SUSPENDED HEX: 00000004 ; CONSTANT: CREATE_SUSPENDED HEX: 00000004
: DETACHED_PROCESS HEX: 00000008 ; CONSTANT: DETACHED_PROCESS HEX: 00000008
: CREATE_NEW_CONSOLE HEX: 00000010 ; CONSTANT: CREATE_NEW_CONSOLE HEX: 00000010
: NORMAL_PRIORITY_CLASS HEX: 00000020 ; CONSTANT: NORMAL_PRIORITY_CLASS HEX: 00000020
: IDLE_PRIORITY_CLASS HEX: 00000040 ; CONSTANT: IDLE_PRIORITY_CLASS HEX: 00000040
: HIGH_PRIORITY_CLASS HEX: 00000080 ; CONSTANT: HIGH_PRIORITY_CLASS HEX: 00000080
: REALTIME_PRIORITY_CLASS HEX: 00000100 ; CONSTANT: REALTIME_PRIORITY_CLASS HEX: 00000100
: CREATE_NEW_PROCESS_GROUP HEX: 00000200 ; CONSTANT: CREATE_NEW_PROCESS_GROUP HEX: 00000200
: CREATE_UNICODE_ENVIRONMENT HEX: 00000400 ; CONSTANT: CREATE_UNICODE_ENVIRONMENT HEX: 00000400
: CREATE_SEPARATE_WOW_VDM HEX: 00000800 ; CONSTANT: CREATE_SEPARATE_WOW_VDM HEX: 00000800
: CREATE_SHARED_WOW_VDM HEX: 00001000 ; CONSTANT: CREATE_SHARED_WOW_VDM HEX: 00001000
: CREATE_FORCEDOS HEX: 00002000 ; CONSTANT: CREATE_FORCEDOS HEX: 00002000
: BELOW_NORMAL_PRIORITY_CLASS HEX: 00004000 ; CONSTANT: BELOW_NORMAL_PRIORITY_CLASS HEX: 00004000
: ABOVE_NORMAL_PRIORITY_CLASS HEX: 00008000 ; CONSTANT: ABOVE_NORMAL_PRIORITY_CLASS HEX: 00008000
: CREATE_BREAKAWAY_FROM_JOB HEX: 01000000 ; CONSTANT: CREATE_BREAKAWAY_FROM_JOB HEX: 01000000
: CREATE_WITH_USERPROFILE HEX: 02000000 ; CONSTANT: CREATE_WITH_USERPROFILE HEX: 02000000
: CREATE_DEFAULT_ERROR_MODE HEX: 04000000 ; CONSTANT: CREATE_DEFAULT_ERROR_MODE HEX: 04000000
: CREATE_NO_WINDOW HEX: 08000000 ; CONSTANT: CREATE_NO_WINDOW HEX: 08000000
: PROFILE_USER HEX: 10000000 ; CONSTANT: PROFILE_USER HEX: 10000000
: PROFILE_KERNEL HEX: 20000000 ; CONSTANT: PROFILE_KERNEL HEX: 20000000
: PROFILE_SERVER HEX: 40000000 ; CONSTANT: PROFILE_SERVER HEX: 40000000
FUNCTION: BOOL CreateProcessW ( LPCTSTR lpApplicationname, FUNCTION: BOOL CreateProcessW ( LPCTSTR lpApplicationname,
LPTSTR lpCommandLine, LPTSTR lpCommandLine,

2015
basis/windows/messages/messages.factor Normal file → Executable file

File diff suppressed because it is too large Load Diff

View File

@ -3,87 +3,87 @@
USING: alien alien.c-types alien.strings alien.syntax USING: alien alien.c-types alien.strings alien.syntax
combinators io.encodings.utf16n io.files io.pathnames kernel combinators io.encodings.utf16n io.files io.pathnames kernel
windows windows.com windows.com.syntax windows.ole32 windows windows.com windows.com.syntax windows.ole32
windows.user32 ; windows.user32 constants alias ;
IN: windows.shell32 IN: windows.shell32
: CSIDL_DESKTOP HEX: 00 ; inline CONSTANT: CSIDL_DESKTOP HEX: 00
: CSIDL_INTERNET HEX: 01 ; inline CONSTANT: CSIDL_INTERNET HEX: 01
: CSIDL_PROGRAMS HEX: 02 ; inline CONSTANT: CSIDL_PROGRAMS HEX: 02
: CSIDL_CONTROLS HEX: 03 ; inline CONSTANT: CSIDL_CONTROLS HEX: 03
: CSIDL_PRINTERS HEX: 04 ; inline CONSTANT: CSIDL_PRINTERS HEX: 04
: CSIDL_PERSONAL HEX: 05 ; inline CONSTANT: CSIDL_PERSONAL HEX: 05
: CSIDL_FAVORITES HEX: 06 ; inline CONSTANT: CSIDL_FAVORITES HEX: 06
: CSIDL_STARTUP HEX: 07 ; inline CONSTANT: CSIDL_STARTUP HEX: 07
: CSIDL_RECENT HEX: 08 ; inline CONSTANT: CSIDL_RECENT HEX: 08
: CSIDL_SENDTO HEX: 09 ; inline CONSTANT: CSIDL_SENDTO HEX: 09
: CSIDL_BITBUCKET HEX: 0a ; inline CONSTANT: CSIDL_BITBUCKET HEX: 0a
: CSIDL_STARTMENU HEX: 0b ; inline CONSTANT: CSIDL_STARTMENU HEX: 0b
: CSIDL_MYDOCUMENTS HEX: 0c ; inline CONSTANT: CSIDL_MYDOCUMENTS HEX: 0c
: CSIDL_MYMUSIC HEX: 0d ; inline CONSTANT: CSIDL_MYMUSIC HEX: 0d
: CSIDL_MYVIDEO HEX: 0e ; inline CONSTANT: CSIDL_MYVIDEO HEX: 0e
: CSIDL_DESKTOPDIRECTORY HEX: 10 ; inline CONSTANT: CSIDL_DESKTOPDIRECTORY HEX: 10
: CSIDL_DRIVES HEX: 11 ; inline CONSTANT: CSIDL_DRIVES HEX: 11
: CSIDL_NETWORK HEX: 12 ; inline CONSTANT: CSIDL_NETWORK HEX: 12
: CSIDL_NETHOOD HEX: 13 ; inline CONSTANT: CSIDL_NETHOOD HEX: 13
: CSIDL_FONTS HEX: 14 ; inline CONSTANT: CSIDL_FONTS HEX: 14
: CSIDL_TEMPLATES HEX: 15 ; inline CONSTANT: CSIDL_TEMPLATES HEX: 15
: CSIDL_COMMON_STARTMENU HEX: 16 ; inline CONSTANT: CSIDL_COMMON_STARTMENU HEX: 16
: CSIDL_COMMON_PROGRAMS HEX: 17 ; inline CONSTANT: CSIDL_COMMON_PROGRAMS HEX: 17
: CSIDL_COMMON_STARTUP HEX: 18 ; inline CONSTANT: CSIDL_COMMON_STARTUP HEX: 18
: CSIDL_COMMON_DESKTOPDIRECTORY HEX: 19 ; inline CONSTANT: CSIDL_COMMON_DESKTOPDIRECTORY HEX: 19
: CSIDL_APPDATA HEX: 1a ; inline CONSTANT: CSIDL_APPDATA HEX: 1a
: CSIDL_PRINTHOOD HEX: 1b ; inline CONSTANT: CSIDL_PRINTHOOD HEX: 1b
: CSIDL_LOCAL_APPDATA HEX: 1c ; inline CONSTANT: CSIDL_LOCAL_APPDATA HEX: 1c
: CSIDL_ALTSTARTUP HEX: 1d ; inline CONSTANT: CSIDL_ALTSTARTUP HEX: 1d
: CSIDL_COMMON_ALTSTARTUP HEX: 1e ; inline CONSTANT: CSIDL_COMMON_ALTSTARTUP HEX: 1e
: CSIDL_COMMON_FAVORITES HEX: 1f ; inline CONSTANT: CSIDL_COMMON_FAVORITES HEX: 1f
: CSIDL_INTERNET_CACHE HEX: 20 ; inline CONSTANT: CSIDL_INTERNET_CACHE HEX: 20
: CSIDL_COOKIES HEX: 21 ; inline CONSTANT: CSIDL_COOKIES HEX: 21
: CSIDL_HISTORY HEX: 22 ; inline CONSTANT: CSIDL_HISTORY HEX: 22
: CSIDL_COMMON_APPDATA HEX: 23 ; inline CONSTANT: CSIDL_COMMON_APPDATA HEX: 23
: CSIDL_WINDOWS HEX: 24 ; inline CONSTANT: CSIDL_WINDOWS HEX: 24
: CSIDL_SYSTEM HEX: 25 ; inline CONSTANT: CSIDL_SYSTEM HEX: 25
: CSIDL_PROGRAM_FILES HEX: 26 ; inline CONSTANT: CSIDL_PROGRAM_FILES HEX: 26
: CSIDL_MYPICTURES HEX: 27 ; inline CONSTANT: CSIDL_MYPICTURES HEX: 27
: CSIDL_PROFILE HEX: 28 ; inline CONSTANT: CSIDL_PROFILE HEX: 28
: CSIDL_SYSTEMX86 HEX: 29 ; inline CONSTANT: CSIDL_SYSTEMX86 HEX: 29
: CSIDL_PROGRAM_FILESX86 HEX: 2a ; inline CONSTANT: CSIDL_PROGRAM_FILESX86 HEX: 2a
: CSIDL_PROGRAM_FILES_COMMON HEX: 2b ; inline CONSTANT: CSIDL_PROGRAM_FILES_COMMON HEX: 2b
: CSIDL_PROGRAM_FILES_COMMONX86 HEX: 2c ; inline CONSTANT: CSIDL_PROGRAM_FILES_COMMONX86 HEX: 2c
: CSIDL_COMMON_TEMPLATES HEX: 2d ; inline CONSTANT: CSIDL_COMMON_TEMPLATES HEX: 2d
: CSIDL_COMMON_DOCUMENTS HEX: 2e ; inline CONSTANT: CSIDL_COMMON_DOCUMENTS HEX: 2e
: CSIDL_COMMON_ADMINTOOLS HEX: 2f ; inline CONSTANT: CSIDL_COMMON_ADMINTOOLS HEX: 2f
: CSIDL_ADMINTOOLS HEX: 30 ; inline CONSTANT: CSIDL_ADMINTOOLS HEX: 30
: CSIDL_CONNECTIONS HEX: 31 ; inline CONSTANT: CSIDL_CONNECTIONS HEX: 31
: CSIDL_COMMON_MUSIC HEX: 35 ; inline CONSTANT: CSIDL_COMMON_MUSIC HEX: 35
: CSIDL_COMMON_PICTURES HEX: 36 ; inline CONSTANT: CSIDL_COMMON_PICTURES HEX: 36
: CSIDL_COMMON_VIDEO HEX: 37 ; inline CONSTANT: CSIDL_COMMON_VIDEO HEX: 37
: CSIDL_RESOURCES HEX: 38 ; inline CONSTANT: CSIDL_RESOURCES HEX: 38
: CSIDL_RESOURCES_LOCALIZED HEX: 39 ; inline CONSTANT: CSIDL_RESOURCES_LOCALIZED HEX: 39
: CSIDL_COMMON_OEM_LINKS HEX: 3a ; inline CONSTANT: CSIDL_COMMON_OEM_LINKS HEX: 3a
: CSIDL_CDBURN_AREA HEX: 3b ; inline CONSTANT: CSIDL_CDBURN_AREA HEX: 3b
: CSIDL_COMPUTERSNEARME HEX: 3d ; inline CONSTANT: CSIDL_COMPUTERSNEARME HEX: 3d
: CSIDL_PROFILES HEX: 3e ; inline CONSTANT: CSIDL_PROFILES HEX: 3e
: CSIDL_FOLDER_MASK HEX: ff ; inline CONSTANT: CSIDL_FOLDER_MASK HEX: ff
: CSIDL_FLAG_PER_USER_INIT HEX: 800 ; inline CONSTANT: CSIDL_FLAG_PER_USER_INIT HEX: 800
: CSIDL_FLAG_NO_ALIAS HEX: 1000 ; inline CONSTANT: CSIDL_FLAG_NO_ALIAS HEX: 1000
: CSIDL_FLAG_DONT_VERIFY HEX: 4000 ; inline CONSTANT: CSIDL_FLAG_DONT_VERIFY HEX: 4000
: CSIDL_FLAG_CREATE HEX: 8000 ; inline CONSTANT: CSIDL_FLAG_CREATE HEX: 8000
: CSIDL_FLAG_MASK HEX: ff00 ; inline CONSTANT: CSIDL_FLAG_MASK HEX: ff00
: ERROR_FILE_NOT_FOUND 2 ; inline CONSTANT: ERROR_FILE_NOT_FOUND 2
: SHGFP_TYPE_CURRENT 0 ; inline CONSTANT: SHGFP_TYPE_CURRENT 0
: SHGFP_TYPE_DEFAULT 1 ; inline CONSTANT: SHGFP_TYPE_DEFAULT 1
LIBRARY: shell32 LIBRARY: shell32
FUNCTION: HRESULT SHGetFolderPathW ( HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPTSTR pszPath ) ; FUNCTION: HRESULT SHGetFolderPathW ( HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPTSTR pszPath ) ;
: SHGetFolderPath SHGetFolderPathW ; inline ALIAS: SHGetFolderPath SHGetFolderPathW
FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ) ; FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ) ;
: ShellExecute ShellExecuteW ; inline ALIAS: ShellExecute ShellExecuteW
: open-in-explorer ( dir -- ) : open-in-explorer ( dir -- )
f "open" rot (normalize-path) f f SW_SHOWNORMAL ShellExecute drop ; f "open" rot (normalize-path) f f SW_SHOWNORMAL ShellExecute drop ;
@ -105,7 +105,7 @@ FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFi
: application-data ( -- str ) : application-data ( -- str )
CSIDL_APPDATA shell32-directory ; CSIDL_APPDATA shell32-directory ;
: windows ( -- str ) : windows-directory ( -- str )
CSIDL_WINDOWS shell32-directory ; CSIDL_WINDOWS shell32-directory ;
: programs ( -- str ) : programs ( -- str )
@ -123,50 +123,50 @@ FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFi
: program-files-common-x86 ( -- str ) : program-files-common-x86 ( -- str )
CSIDL_PROGRAM_FILES_COMMONX86 shell32-directory ; CSIDL_PROGRAM_FILES_COMMONX86 shell32-directory ;
: SHCONTF_FOLDERS 32 ; inline CONSTANT: SHCONTF_FOLDERS 32
: SHCONTF_NONFOLDERS 64 ; inline CONSTANT: SHCONTF_NONFOLDERS 64
: SHCONTF_INCLUDEHIDDEN 128 ; inline CONSTANT: SHCONTF_INCLUDEHIDDEN 128
: SHCONTF_INIT_ON_FIRST_NEXT 256 ; inline CONSTANT: SHCONTF_INIT_ON_FIRST_NEXT 256
: SHCONTF_NETPRINTERSRCH 512 ; inline CONSTANT: SHCONTF_NETPRINTERSRCH 512
: SHCONTF_SHAREABLE 1024 ; inline CONSTANT: SHCONTF_SHAREABLE 1024
: SHCONTF_STORAGE 2048 ; inline CONSTANT: SHCONTF_STORAGE 2048
TYPEDEF: DWORD SHCONTF TYPEDEF: DWORD SHCONTF
: SHGDN_NORMAL 0 ; inline CONSTANT: SHGDN_NORMAL 0
: SHGDN_INFOLDER 1 ; inline CONSTANT: SHGDN_INFOLDER 1
: SHGDN_FOREDITING HEX: 1000 ; inline CONSTANT: SHGDN_FOREDITING HEX: 1000
: SHGDN_INCLUDE_NONFILESYS HEX: 2000 ; inline CONSTANT: SHGDN_INCLUDE_NONFILESYS HEX: 2000
: SHGDN_FORADDRESSBAR HEX: 4000 ; inline CONSTANT: SHGDN_FORADDRESSBAR HEX: 4000
: SHGDN_FORPARSING HEX: 8000 ; inline CONSTANT: SHGDN_FORPARSING HEX: 8000
TYPEDEF: DWORD SHGDNF TYPEDEF: DWORD SHGDNF
: SFGAO_CANCOPY DROPEFFECT_COPY ; inline ALIAS: SFGAO_CANCOPY DROPEFFECT_COPY
: SFGAO_CANMOVE DROPEFFECT_MOVE ; inline ALIAS: SFGAO_CANMOVE DROPEFFECT_MOVE
: SFGAO_CANLINK DROPEFFECT_LINK ; inline ALIAS: SFGAO_CANLINK DROPEFFECT_LINK
: SFGAO_CANRENAME HEX: 00000010 ; inline CONSTANT: SFGAO_CANRENAME HEX: 00000010
: SFGAO_CANDELETE HEX: 00000020 ; inline CONSTANT: SFGAO_CANDELETE HEX: 00000020
: SFGAO_HASPROPSHEET HEX: 00000040 ; inline CONSTANT: SFGAO_HASPROPSHEET HEX: 00000040
: SFGAO_DROPTARGET HEX: 00000100 ; inline CONSTANT: SFGAO_DROPTARGET HEX: 00000100
: SFGAO_CAPABILITYMASK HEX: 00000177 ; inline CONSTANT: SFGAO_CAPABILITYMASK HEX: 00000177
: SFGAO_LINK HEX: 00010000 ; inline CONSTANT: SFGAO_LINK HEX: 00010000
: SFGAO_SHARE HEX: 00020000 ; inline CONSTANT: SFGAO_SHARE HEX: 00020000
: SFGAO_READONLY HEX: 00040000 ; inline CONSTANT: SFGAO_READONLY HEX: 00040000
: SFGAO_GHOSTED HEX: 00080000 ; inline CONSTANT: SFGAO_GHOSTED HEX: 00080000
: SFGAO_HIDDEN HEX: 00080000 ; inline CONSTANT: SFGAO_HIDDEN HEX: 00080000
: SFGAO_DISPLAYATTRMASK HEX: 000F0000 ; inline CONSTANT: SFGAO_DISPLAYATTRMASK HEX: 000F0000
: SFGAO_FILESYSANCESTOR HEX: 10000000 ; inline CONSTANT: SFGAO_FILESYSANCESTOR HEX: 10000000
: SFGAO_FOLDER HEX: 20000000 ; inline CONSTANT: SFGAO_FOLDER HEX: 20000000
: SFGAO_FILESYSTEM HEX: 40000000 ; inline CONSTANT: SFGAO_FILESYSTEM HEX: 40000000
: SFGAO_HASSUBFOLDER HEX: 80000000 ; inline CONSTANT: SFGAO_HASSUBFOLDER HEX: 80000000
: SFGAO_CONTENTSMASK HEX: 80000000 ; inline CONSTANT: SFGAO_CONTENTSMASK HEX: 80000000
: SFGAO_VALIDATE HEX: 01000000 ; inline CONSTANT: SFGAO_VALIDATE HEX: 01000000
: SFGAO_REMOVABLE HEX: 02000000 ; inline CONSTANT: SFGAO_REMOVABLE HEX: 02000000
: SFGAO_COMPRESSED HEX: 04000000 ; inline CONSTANT: SFGAO_COMPRESSED HEX: 04000000
: SFGAO_BROWSABLE HEX: 08000000 ; inline CONSTANT: SFGAO_BROWSABLE HEX: 08000000
: SFGAO_NONENUMERATED HEX: 00100000 ; inline CONSTANT: SFGAO_NONENUMERATED HEX: 00100000
: SFGAO_NEWCONTENT HEX: 00200000 ; inline CONSTANT: SFGAO_NEWCONTENT HEX: 00200000
TYPEDEF: ULONG SFGAOF TYPEDEF: ULONG SFGAOF
@ -223,5 +223,4 @@ COM-INTERFACE: IShellFolder IUnknown {000214E6-0000-0000-C000-000000000046}
FUNCTION: HRESULT SHGetDesktopFolder ( IShellFolder** ppshf ) ; FUNCTION: HRESULT SHGetDesktopFolder ( IShellFolder** ppshf ) ;
FUNCTION: UINT DragQueryFileW ( HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch ) ; FUNCTION: UINT DragQueryFileW ( HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch ) ;
: DragQueryFile DragQueryFileW ; inline ALIAS: DragQueryFile DragQueryFileW