! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax alien.destructors ;
+USING: alien.c-types alien.syntax alien.destructors classes.struct
+windows.types ;
IN: windows.usp10
LIBRARY: usp10
-C-STRUCT: SCRIPT_CONTROL
- { "DWORD" "flags" } ;
+STRUCT: SCRIPT_CONTROL
+ { flags DWORD } ;
-C-STRUCT: SCRIPT_STATE
- { "WORD" "flags" } ;
+STRUCT: SCRIPT_STATE
+ { flags WORD } ;
-C-STRUCT: SCRIPT_ANALYSIS
- { "WORD" "flags" }
- { "SCRIPT_STATE" "s" } ;
+STRUCT: SCRIPT_ANALYSIS
+ { flags WORD }
+ { s SCRIPT_STATE } ;
-C-STRUCT: SCRIPT_ITEM
- { "int" "iCharPos" }
- { "SCRIPT_ANALYSIS" "a" } ;
+STRUCT: SCRIPT_ITEM
+ { iCharPos int }
+ { a SCRIPT_ANALYSIS } ;
FUNCTION: HRESULT ScriptItemize (
WCHAR* pwcInChars,
int* piLogicalToVisual
) ;
-C-ENUM: SCRIPT_JUSTIFY_NONE
-SCRIPT_JUSTIFY_ARABIC_BLANK
-SCRIPT_JUSTIFY_CHARACTER
-SCRIPT_JUSTIFY_RESERVED1
-SCRIPT_JUSTIFY_BLANK
-SCRIPT_JUSTIFY_RESERVED2
-SCRIPT_JUSTIFY_RESERVED3
-SCRIPT_JUSTIFY_ARABIC_NORMAL
-SCRIPT_JUSTIFY_ARABIC_KASHIDA
-SCRIPT_JUSTIFY_ALEF
-SCRIPT_JUSTIFY_HA
-SCRIPT_JUSTIFY_RA
-SCRIPT_JUSTIFY_BA
-SCRIPT_JUSTIFY_BARA
-SCRIPT_JUSTIFY_SEEN
-SCRIPT_JUSTIFFY_RESERVED4 ;
-
-C-STRUCT: SCRIPT_VISATTR
- { "WORD" "flags" } ;
+CONSTANT: SCRIPT_JUSTIFY_NONE 0
+CONSTANT: SCRIPT_JUSTIFY_ARABIC_BLANK 1
+CONSTANT: SCRIPT_JUSTIFY_CHARACTER 2
+CONSTANT: SCRIPT_JUSTIFY_RESERVED1 3
+CONSTANT: SCRIPT_JUSTIFY_BLANK 4
+CONSTANT: SCRIPT_JUSTIFY_RESERVED2 5
+CONSTANT: SCRIPT_JUSTIFY_RESERVED3 6
+CONSTANT: SCRIPT_JUSTIFY_ARABIC_NORMAL 7
+CONSTANT: SCRIPT_JUSTIFY_ARABIC_KASHIDA 8
+CONSTANT: SCRIPT_JUSTIFY_ALEF 9
+CONSTANT: SCRIPT_JUSTIFY_HA 10
+CONSTANT: SCRIPT_JUSTIFY_RA 11
+CONSTANT: SCRIPT_JUSTIFY_BA 12
+CONSTANT: SCRIPT_JUSTIFY_BARA 13
+CONSTANT: SCRIPT_JUSTIFY_SEEN 14
+CONSTANT: SCRIPT_JUSTIFFY_RESERVED4 15
+
+STRUCT: SCRIPT_VISATTR
+ { flags WORD } ;
+
+C-TYPE: SCRIPT_CACHE
+C-TYPE: ABC
FUNCTION: HRESULT ScriptShape (
HDC hdc,
int* pcGlyphs
) ;
-C-STRUCT: GOFFSET
- { "LONG" "du" }
- { "LONG" "dv" } ;
+STRUCT: GOFFSET
+ { du LONG }
+ { dv LONG } ;
FUNCTION: HRESULT ScriptPlace (
HDC hdc,
int* piJustify
) ;
-C-STRUCT: SCRIPT_LOGATTR
- { "BYTE" "flags" } ;
+STRUCT: SCRIPT_LOGATTR
+ { flags BYTE } ;
FUNCTION: HRESULT ScriptBreak (
WCHAR* pwcChars,
ABC* pABC
) ;
-C-STRUCT: SCRIPT_PROPERTIES
- { "DWORD" "flags" } ;
+STRUCT: SCRIPT_PROPERTIES
+ { flags DWORD } ;
FUNCTION: HRESULT ScriptGetProperties (
SCRIPT_PROPERTIES*** ppSp,
int* piNumScripts
) ;
-C-STRUCT: SCRIPT_FONTPROPERTIES
- { "int" "cBytes" }
- { "WORD" "wgBlank" }
- { "WORD" "wgDefault" }
- { "WORD" "wgInvalid" }
- { "WORD" "wgKashida" }
- { "int" "iKashidaWidth" } ;
+STRUCT: SCRIPT_FONTPROPERTIES
+ { cBytes int }
+ { wgBlank WORD }
+ { wgDefault WORD }
+ { wgInvalid WORD }
+ { wgKashida WORD }
+ { iKashidaWidth int } ;
FUNCTION: HRESULT ScriptGetFontProperties (
HDC hdc,
long* tmHeight
) ;
-CONSTANT: SSA_PASSWORD HEX: 00000001
-CONSTANT: SSA_TAB HEX: 00000002
-CONSTANT: SSA_CLIP HEX: 00000004
-CONSTANT: SSA_FIT HEX: 00000008
-CONSTANT: SSA_DZWG HEX: 00000010
-CONSTANT: SSA_FALLBACK HEX: 00000020
-CONSTANT: SSA_BREAK HEX: 00000040
-CONSTANT: SSA_GLYPHS HEX: 00000080
-CONSTANT: SSA_RTL HEX: 00000100
-CONSTANT: SSA_GCP HEX: 00000200
-CONSTANT: SSA_HOTKEY HEX: 00000400
-CONSTANT: SSA_METAFILE HEX: 00000800
-CONSTANT: SSA_LINK HEX: 00001000
-CONSTANT: SSA_HIDEHOTKEY HEX: 00002000
-CONSTANT: SSA_HOTKEYONLY HEX: 00002400
-CONSTANT: SSA_FULLMEASURE HEX: 04000000
-CONSTANT: SSA_LPKANSIFALLBACK HEX: 08000000
-CONSTANT: SSA_PIDX HEX: 10000000
-CONSTANT: SSA_LAYOUTRTL HEX: 20000000
-CONSTANT: SSA_DONTGLYPH HEX: 40000000
-CONSTANT: SSA_NOKASHIDA HEX: 80000000
-
-C-STRUCT: SCRIPT_TABDEF
- { "int" "cTabStops" }
- { "int" "iScale" }
- { "int*" "pTabStops" }
- { "int" "iTabOrigin" } ;
+CONSTANT: SSA_PASSWORD 0x00000001
+CONSTANT: SSA_TAB 0x00000002
+CONSTANT: SSA_CLIP 0x00000004
+CONSTANT: SSA_FIT 0x00000008
+CONSTANT: SSA_DZWG 0x00000010
+CONSTANT: SSA_FALLBACK 0x00000020
+CONSTANT: SSA_BREAK 0x00000040
+CONSTANT: SSA_GLYPHS 0x00000080
+CONSTANT: SSA_RTL 0x00000100
+CONSTANT: SSA_GCP 0x00000200
+CONSTANT: SSA_HOTKEY 0x00000400
+CONSTANT: SSA_METAFILE 0x00000800
+CONSTANT: SSA_LINK 0x00001000
+CONSTANT: SSA_HIDEHOTKEY 0x00002000
+CONSTANT: SSA_HOTKEYONLY 0x00002400
+CONSTANT: SSA_FULLMEASURE 0x04000000
+CONSTANT: SSA_LPKANSIFALLBACK 0x08000000
+CONSTANT: SSA_PIDX 0x10000000
+CONSTANT: SSA_LAYOUTRTL 0x20000000
+CONSTANT: SSA_DONTGLYPH 0x40000000
+CONSTANT: SSA_NOKASHIDA 0x80000000
+
+STRUCT: SCRIPT_TABDEF
+ { cTabStops int }
+ { iScale int }
+ { pTabStops int* }
+ { iTabOrigin int } ;
TYPEDEF: void* SCRIPT_STRING_ANALYSIS
DWORD dwFlags
) ;
-C-STRUCT: SCRIPT_DIGITSUBSTITUTE
- { "DWORD" "flags" } ;
+STRUCT: SCRIPT_DIGITSUBSTITUTE
+ { flags DWORD } ;
FUNCTION: HRESULT ScriptRecordDigitSubstitution (
LCID Locale,
SCRIPT_DIGITSUBSTITUTE* psds,
SCRIPT_CONTROL* psc,
SCRIPT_STATE* pss
-) ;
\ No newline at end of file
+) ;