! Copyright (C) 2009 Doug Coleman.
-! See http:
-USING: alien.syntax ;
+! See https://factorcode.org/license.txt for BSD license.
+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,
SCRIPT_STATE* psState,
SCRIPT_ITEM* pItems,
int* pcItems
-) ;
+)
FUNCTION: HRESULT ScriptLayout (
int cRuns,
BYTE* pbLevel,
int* piVisualToLogical,
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,
WORD* pwLogClust,
SCRIPT_VISATTR* psva,
int* pcGlyphs
-) ;
+)
-C-STRUCT: GOFFSET
- { "LONG" "du" }
- { "LONG" "dv" } ;
+STRUCT: GOFFSET
+ { du LONG }
+ { dv LONG } ;
FUNCTION: HRESULT ScriptPlace (
HDC hdc,
int* piAdvance,
GOFFSET* pGoffset,
ABC* pABC
-) ;
+)
FUNCTION: HRESULT ScriptTextOut (
HDC hdc,
int* piAdvance,
int* piJustify,
GOFFSET* pGoffset
-) ;
+)
FUNCTION: HRESULT ScriptJustify (
SCRIPT_VISATTR* psva,
int iDx,
int iMinKashida,
int* piJustify
-) ;
+)
-C-STRUCT: SCRIPT_LOGATTR
- { "BYTE" "flags" } ;
+STRUCT: SCRIPT_LOGATTR
+ { flags BYTE } ;
FUNCTION: HRESULT ScriptBreak (
WCHAR* pwcChars,
int cChars,
SCRIPT_ANALYSIS* psa,
SCRIPT_LOGATTR* psla
-) ;
+)
FUNCTION: HRESULT ScriptCPtoX (
int iCP,
int* piAdvance,
SCRIPT_ANALYSIS* psa,
int* piX
-) ;
+)
FUNCTION: HRESULT ScriptXtoCP (
int iCP,
SCRIPT_ANALYSIS* psa,
int* piCP,
int* piTrailing
-) ;
+)
FUNCTION: HRESULT ScriptGetLogicalWidths (
SCRIPT_ANALYSIS* psa,
WORD* pwLogClust,
SCRIPT_VISATTR* psva,
int* piDx
-) ;
+)
FUNCTION: HRESULT ScriptApplyLogicalWidth (
int* piDx,
SCRIPT_ANALYSIS* psa,
ABC* pABC,
int* piJustify
-) ;
+)
FUNCTION: HRESULT ScriptGetCMap (
HDC hdc,
int cChars,
DWORD dwFlags,
WORD* pwOutGlyphs
-) ;
+)
FUNCTION: HRESULT ScriptGetGlyphABCWidth (
HDC hdc,
SCRIPT_CACHE* psc,
WORD wGlyph,
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,
SCRIPT_CACHE* psc,
SCRIPT_FONTPROPERTIES* sfp
-) ;
+)
FUNCTION: HRESULT ScriptCacheGetHeight (
HDC hdc,
SCRIPT_CACHE* psc,
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
SCRIPT_TABDEF* pTabDef,
BYTE* pbInClass,
SCRIPT_STRING_ANALYSIS* pssa
-) ;
+)
FUNCTION: HRESULT ScriptStringFree (
SCRIPT_STRING_ANALYSIS* pssa
-) ;
+)
-FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa ) ;
+DESTRUCTOR: ScriptStringFree
-FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa ) ;
+FUNCTION: SIZE* ScriptString_pSize ( SCRIPT_STRING_ANALYSIS ssa )
-FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( SCRIPT_STRING_ANALYSIS ssa ) ;
+FUNCTION: int* ScriptString_pcOutChars ( SCRIPT_STRING_ANALYSIS ssa )
+
+FUNCTION: SCRIPT_LOGATTR* ScriptString_pLogAttr ( SCRIPT_STRING_ANALYSIS ssa )
FUNCTION: HRESULT ScriptStringGetOrder (
SCRIPT_STRING_ANALYSIS ssa,
UINT* puOrder
-) ;
+)
FUNCTION: HRESULT ScriptStringCPtoX (
SCRIPT_STRING_ANALYSIS ssa,
int icp,
BOOL fTrailing,
int* pX
-) ;
+)
FUNCTION: HRESULT ScriptStringXtoCP (
SCRIPT_STRING_ANALYSIS ssa,
int iX,
int* piCh,
int* piTrailing
-) ;
+)
FUNCTION: HRESULT ScriptStringGetLogicalWidths (
SCRIPT_STRING_ANALYSIS ssa,
int* piDx
-) ;
+)
FUNCTION: HRESULT ScriptStringValidate (
SCRIPT_STRING_ANALYSIS ssa
-) ;
+)
FUNCTION: HRESULT ScriptStringOut (
SCRIPT_STRING_ANALYSIS ssa,
int iMinSel,
int iMaxSel,
BOOL fDisabled
-) ;
+)
CONSTANT: SIC_COMPLEX 1
CONSTANT: SIC_ASCIIDIGIT 2
WCHAR* pwcInChars,
int cInChars,
DWORD dwFlags
-) ;
+)
-C-STRUCT: SCRIPT_DIGITSUBSTITUTE
- { "DWORD" "flags" } ;
+STRUCT: SCRIPT_DIGITSUBSTITUTE
+ { flags DWORD } ;
FUNCTION: HRESULT ScriptRecordDigitSubstitution (
LCID Locale,
SCRIPT_DIGITSUBSTITUTE* psds
-) ;
+)
CONSTANT: SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
CONSTANT: SCRIPT_DIGITSUBSTITUTE_NONE 1
SCRIPT_DIGITSUBSTITUTE* psds,
SCRIPT_CONTROL* psc,
SCRIPT_STATE* pss
-) ;
\ No newline at end of file
+)