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
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
: editpadlite-path ( -- path )

View File

@ -1,6 +1,6 @@
USING: definitions kernel parser words sequences math.parser
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
: editpadpro-path ( -- path )

View File

@ -1,5 +1,6 @@
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
: editplus-path ( -- path )

View File

@ -1,5 +1,6 @@
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
: emeditor-path ( -- path )

View File

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

View File

@ -1,5 +1,6 @@
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
M: windows gvim-path

View File

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

View File

@ -1,5 +1,5 @@
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
: notepadpp-path ( -- path )

View File

@ -1,7 +1,7 @@
! Copyright (C) 2007 Clemens F. Hofreither.
! See http://factorcode.org/license.txt for BSD license.
! 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 ;
IN: editors.scite

View File

@ -1,5 +1,5 @@
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
: 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
namespaces sequences io.paths.windows make ;
namespaces sequences io.directories.search.windows make ;
IN: editors.ultraedit
: 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 ;
IN: editors.wordpad

View File

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

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

View File

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

View File

@ -1,38 +1,38 @@
! FUNCTION: AbortDoc
! 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 alias constants ;
IN: windows.gdi32
! Stock Logical Objects
: WHITE_BRUSH 0 ; inline
: LTGRAY_BRUSH 1 ; inline
: GRAY_BRUSH 2 ; inline
: DKGRAY_BRUSH 3 ; inline
: BLACK_BRUSH 4 ; inline
: NULL_BRUSH 5 ; inline
: HOLLOW_BRUSH NULL_BRUSH ; inline
: WHITE_PEN 6 ; inline
: BLACK_PEN 7 ; inline
: NULL_PEN 8 ; inline
: OEM_FIXED_FONT 10 ; inline
: ANSI_FIXED_FONT 11 ; inline
: ANSI_VAR_FONT 12 ; inline
: SYSTEM_FONT 13 ; inline
: DEVICE_DEFAULT_FONT 14 ; inline
: DEFAULT_PALETTE 15 ; inline
: SYSTEM_FIXED_FONT 16 ; inline
: DEFAULT_GUI_FONT 17 ; inline
: DC_BRUSH 18 ; inline
: DC_PEN 19 ; inline
CONSTANT: WHITE_BRUSH 0
CONSTANT: LTGRAY_BRUSH 1
CONSTANT: GRAY_BRUSH 2
CONSTANT: DKGRAY_BRUSH 3
CONSTANT: BLACK_BRUSH 4
CONSTANT: NULL_BRUSH 5
ALIAS: HOLLOW_BRUSH NULL_BRUSH
CONSTANT: WHITE_PEN 6
CONSTANT: BLACK_PEN 7
CONSTANT: NULL_PEN 8
CONSTANT: OEM_FIXED_FONT 10
CONSTANT: ANSI_FIXED_FONT 11
CONSTANT: ANSI_VAR_FONT 12
CONSTANT: SYSTEM_FONT 13
CONSTANT: DEVICE_DEFAULT_FONT 14
CONSTANT: DEFAULT_PALETTE 15
CONSTANT: SYSTEM_FIXED_FONT 16
CONSTANT: DEFAULT_GUI_FONT 17
CONSTANT: DC_BRUSH 18
CONSTANT: DC_PEN 19
CONSTANT: BI_RGB 0
CONSTANT: BI_RLE8 1
CONSTANT: BI_RLE4 2
CONSTANT: BI_BITFIELDS 3
: BI_RGB 0 ; inline
: BI_RLE8 1 ; inline
: BI_RLE4 2 ; inline
: BI_BITFIELDS 3 ; inline
: DIB_RGB_COLORS 0 ; inline
: DIB_PAL_COLORS 1 ; inline
CONSTANT: DIB_RGB_COLORS 0
CONSTANT: DIB_PAL_COLORS 1
LIBRARY: gdi32

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

@ -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 alias constants ;
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
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
: FILE_SHARE_READ 1 ; inline
: FILE_SHARE_WRITE 2 ; inline
: FILE_SHARE_DELETE 4 ; inline
: FILE_SHARE_VALID_FLAGS 7 ; inline
CONSTANT: FILE_SHARE_READ 1
CONSTANT: FILE_SHARE_WRITE 2
CONSTANT: FILE_SHARE_DELETE 4
CONSTANT: FILE_SHARE_VALID_FLAGS 7
: 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
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
: 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
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
: 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
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
: 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_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,106 @@ 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
CONSTANT: STD_INPUT_HANDLE -10
CONSTANT: STD_OUTPUT_HANDLE -11
CONSTANT: STD_ERROR_HANDLE -12
: INVALID_HANDLE_VALUE -1 <alien> ; inline
: INVALID_FILE_SIZE HEX: FFFFFFFF ; inline
: INVALID_SET_FILE_POINTER HEX: ffffffff ; inline
: INVALID_HANDLE_VALUE ( -- alien ) -1 <alien> ; inline
CONSTANT: INVALID_FILE_SIZE HEX: FFFFFFFF
CONSTANT: INVALID_SET_FILE_POINTER HEX: ffffffff
: FILE_BEGIN 0 ; inline
: FILE_CURRENT 1 ; inline
: FILE_END 2 ; inline
CONSTANT: FILE_BEGIN 0
CONSTANT: FILE_CURRENT 1
CONSTANT: FILE_END 2
: 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 ;
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
: INFINITE HEX: FFFFFFFF ; inline
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 ;
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
: 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
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
: PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 ; inline
: PF_SSE3_INSTRUCTIONS_AVAILABLE 13 ; inline
CONSTANT: MAX_COMPUTERNAME_LENGTH 15
CONSTANT: UNLEN 256
: MAX_COMPUTERNAME_LENGTH 15 ; inline
: UNLEN 256 ; inline
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
: 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
CONSTANT: MEM_COMMIT HEX: 1000
CONSTANT: MEM_RELEASE HEX: 8000
: MEM_COMMIT ( -- n ) HEX: 1000 ; inline
: MEM_RELEASE ( -- n ) HEX: 8000 ; inline
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
: 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
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
: 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
CONSTANT: ERROR_ALREADY_EXISTS 183
: 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 ;
: 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: 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-STRUCT: OVERLAPPED
{ "UINT_PTR" "internal" }
@ -321,74 +320,74 @@ C-STRUCT: GUID
{ { "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" ;
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"
: 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 ;
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
: SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001 ;
: SE_PRIVILEGE_ENABLED HEX: 00000002 ;
: SE_PRIVILEGE_REMOVE HEX: 00000004 ;
: SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000 ;
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
: PRIVILEGE_SET_ALL_NECESSARY 1 ;
CONSTANT: 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 ;
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
: ANYSIZE_ARRAY 1 ; inline
CONSTANT: ANYSIZE_ARRAY 1
: 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
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 +426,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 +488,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
@ -641,29 +640,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,

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