4 #pragma GCC system_header
14 #define SCRIPT_UNDEFINED 0
15 #define USP_E_SCRIPT_NOT_IN_FONT MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,0x200)
16 #define SGCM_RTL 0x00000001
17 #define SSA_PASSWORD 0x00000001
18 #define SSA_TAB 0x00000002
19 #define SSA_CLIP 0x00000004
20 #define SSA_FIT 0x00000008
21 #define SSA_DZWG 0x00000010
22 #define SSA_FALLBACK 0x00000020
23 #define SSA_BREAK 0x00000040
24 #define SSA_GLYPHS 0x00000080
25 #define SSA_RTL 0x00000100
26 #define SSA_GCP 0x00000200
27 #define SSA_HOTKEY 0x00000400
28 #define SSA_METAFILE 0x00000800
29 #define SSA_LINK 0x00001000
30 #define SSA_HIDEHOTKEY 0x00002000
31 #define SSA_HOTKEYONLY 0x00002400
32 #define SSA_FULLMEASURE 0x04000000
33 #define SSA_LPKANSIFALLBACK 0x08000000
34 #define SSA_PIDX 0x10000000
35 #define SSA_LAYOUTRTL 0x20000000
36 #define SSA_DONTGLYPH 0x40000000
37 #define SSA_NOKASHIDA 0x80000000
39 #define SIC_ASCIIDIGIT 2
41 #define SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
42 #define SCRIPT_DIGITSUBSTITUTE_NONE 1
43 #define SCRIPT_DIGITSUBSTITUTE_NATIONAL 2
44 #define SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3
46 typedef enum tag_SCRIPT_JUSTIFY
{
47 SCRIPT_JUSTIFY_NONE
= 0,
48 SCRIPT_JUSTIFY_ARABIC_BLANK
= 1,
49 SCRIPT_JUSTIFY_CHARACTER
= 2,
50 SCRIPT_JUSTIFY_RESERVED1
= 3,
51 SCRIPT_JUSTIFY_BLANK
= 4,
52 SCRIPT_JUSTIFY_RESERVED2
= 5,
53 SCRIPT_JUSTIFY_RESERVED3
= 6,
54 SCRIPT_JUSTIFY_ARABIC_NORMAL
= 7,
55 SCRIPT_JUSTIFY_ARABIC_KASHIDA
= 8,
56 SCRIPT_JUSTIFY_ARABIC_ALEF
= 9,
57 SCRIPT_JUSTIFY_ARABIC_HA
= 10,
58 SCRIPT_JUSTIFY_ARABIC_RA
= 11,
59 SCRIPT_JUSTIFY_ARABIC_BA
= 12,
60 SCRIPT_JUSTIFY_ARABIC_BARA
= 13,
61 SCRIPT_JUSTIFY_ARABIC_SEEN
= 14,
62 SCRIPT_JUSTIFY_ARABIC_SEEN_M
= 15
65 typedef struct tagGOFFSET
{
69 typedef ULONG OPENTYPE_TAG
;
70 typedef struct opentype_feature_record
{
71 OPENTYPE_TAG tagFeature
;
73 } OPENTYPE_FEATURE_RECORD
;
74 typedef struct tag_SCRIPT_STATE
{
76 WORD fOverrideDirection
:1;
77 WORD fInhibitSymSwap
:1;
79 WORD fDigitSubstitute
:1;
80 WORD fInhibitLigate
:1;
82 WORD fArabicNumContext
:1;
85 WORD fEngineReserved
:2;
87 typedef struct tag_SCRIPT_ANALYSIS
{
93 WORD fLogicalOrder
:1;
94 WORD fNoGlyphIndex
:1;
97 typedef void *SCRIPT_CACHE
;
98 typedef struct script_charprop
{
99 WORD fCanGlyphAlone
: 1;
102 typedef struct tag_SCRIPT_CONTROL
{
103 DWORD uDefaultLanguage
:16;
104 DWORD fContextDigits
:1;
105 DWORD fInvertPreBoundDir
:1;
106 DWORD fInvertPostBoundDir
:1;
107 DWORD fLinkStringBefore
:1;
108 DWORD fLinkStringAfter
:1;
109 DWORD fNeutralOverride
:1;
110 DWORD fNumericOverride
:1;
111 DWORD fLegacyBidiClass
:1;
114 typedef struct tag_SCRIPT_DIGITSUBSTITUTE
{
115 DWORD NationalDigitLanguage
: 16;
116 DWORD TraditionalDigitLanguage
: 16;
117 DWORD DigitSubstitute
:8;
119 } SCRIPT_DIGITSUBSTITUTE
;
127 } SCRIPT_FONTPROPERTIES
;
128 typedef struct tag_SCRIPT_VISATTR
{
129 WORD uJustification
:4;
130 WORD fClusterStart
:1;
134 WORD fShapeReserved
:8;
136 typedef struct script_glyphprop
{
140 typedef struct tag_SCRIPT_ITEM
{
144 typedef struct tag_SCRIPT_LOGATTR
{
156 DWORD fNeedsWordBreaking
:1;
157 DWORD fNeedsCaretInfo
:1;
160 DWORD fPrivateUseArea
:1;
161 DWORD fNeedsCharacterJustify
:1;
162 DWORD fInvalidGlyph
:1;
163 DWORD fInvalidLogAttr
:1;
165 DWORD fAmbiguousCharSet
:1;
166 DWORD fClusterSizeVaries
:1;
167 DWORD fRejectInvalid
:1;
169 typedef void *SCRIPT_STRING_ANALYSIS
;
170 typedef struct tag_SCRIPT_TABDEF
{
176 typedef struct textrange_properties
{
177 OPENTYPE_FEATURE_RECORD
* potfRecords
;
179 } TEXTRANGE_PROPERTIES
;
182 HRESULT WINAPI
ScriptApplyDigitSubstitution(const SCRIPT_DIGITSUBSTITUTE
*,SCRIPT_CONTROL
*,SCRIPT_STATE
*);
183 HRESULT WINAPI
ScriptApplyLogicalWidth(const int *,int,int,const WORD
*,const SCRIPT_VISATTR
*,const int *,const SCRIPT_ANALYSIS
*,ABC
*,int *);
184 HRESULT WINAPI
ScriptBreak(const WCHAR
*,int,const SCRIPT_ANALYSIS
*,SCRIPT_LOGATTR
*);
185 HRESULT WINAPI
ScriptCacheGetHeight(HDC
,SCRIPT_CACHE
*,long *);
186 HRESULT WINAPI
ScriptCPtoX(int,BOOL
,int,int,const WORD
*,const SCRIPT_VISATTR
*,const int *,const SCRIPT_ANALYSIS
*,int *);
187 HRESULT WINAPI
ScriptFreeCache(SCRIPT_CACHE
*);
188 HRESULT WINAPI
ScriptGetCMap(HDC
,SCRIPT_CACHE
*,const WCHAR
*,int,DWORD
,WORD
*);
189 HRESULT WINAPI
ScriptGetFontAlternateGlyphs(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,OPENTYPE_TAG
,OPENTYPE_TAG
,OPENTYPE_TAG
,WORD
,int,WORD
*,int*);
190 HRESULT WINAPI
ScriptGetFontFeatureTags(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,OPENTYPE_TAG
,OPENTYPE_TAG
,int,OPENTYPE_TAG
*,int*);
191 HRESULT WINAPI
ScriptGetFontLanguageTags(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,OPENTYPE_TAG
,int,OPENTYPE_TAG
*,int*);
192 HRESULT WINAPI
ScriptGetFontProperties(HDC
,SCRIPT_CACHE
*,SCRIPT_FONTPROPERTIES
*);
193 HRESULT WINAPI
ScriptGetFontScriptTags(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,int,OPENTYPE_TAG
*,int*);
194 HRESULT WINAPI
ScriptGetGlyphABCWidth(HDC
,SCRIPT_CACHE
*,WORD
,ABC
*);
195 HRESULT WINAPI
ScriptGetLogicalWidths(const SCRIPT_ANALYSIS
*,int,int,const int *,const WORD
*,const SCRIPT_VISATTR
*,int *);
196 HRESULT WINAPI
ScriptGetProperties(const SCRIPT_PROPERTIES
***,int *);
197 HRESULT WINAPI
ScriptIsComplex(const WCHAR
*,int,DWORD
);
198 HRESULT WINAPI
ScriptItemize(const WCHAR
*,int,int,const SCRIPT_CONTROL
*,const SCRIPT_STATE
*,SCRIPT_ITEM
*,int *);
199 HRESULT WINAPI
ScriptItemizeOpenType(const WCHAR
*,int,int,const SCRIPT_CONTROL
*,const SCRIPT_STATE
*,SCRIPT_ITEM
*,OPENTYPE_TAG
*,int*);
200 HRESULT WINAPI
ScriptJustify(const SCRIPT_VISATTR
*,const int *,int,int,int,int *);
201 HRESULT WINAPI
ScriptLayout(int,const BYTE
*,int *,int *);
202 HRESULT WINAPI
ScriptPlace(HDC
,SCRIPT_CACHE
*,const WORD
*,int,const SCRIPT_VISATTR
*,SCRIPT_ANALYSIS
*,int *,GOFFSET
*,ABC
*);
203 HRESULT WINAPI
ScriptPlaceOpenType(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,OPENTYPE_TAG
,OPENTYPE_TAG
,int*,TEXTRANGE_PROPERTIES
**,int,const WCHAR
*,const WORD
*,const SCRIPT_CHARPROP
*,int,const WORD
*,const SCRIPT_GLYPHPROP
*,int,int*,GOFFSET
*,ABC
*);
204 HRESULT WINAPI
ScriptPositionSingleGlyph(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,OPENTYPE_TAG
,OPENTYPE_TAG
,OPENTYPE_TAG
,LONG
,WORD
,int,GOFFSET
,int*,GOFFSET
*);
205 HRESULT WINAPI
ScriptRecordDigitSubstitution(LCID
,SCRIPT_DIGITSUBSTITUTE
*);
206 HRESULT WINAPI
ScriptShape(HDC
,SCRIPT_CACHE
*,const WCHAR
*,int,int,SCRIPT_ANALYSIS
*,WORD
*,WORD
*,SCRIPT_VISATTR
*,int *);
207 HRESULT WINAPI
ScriptShapeOpenType(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,OPENTYPE_TAG
,OPENTYPE_TAG
,int*,TEXTRANGE_PROPERTIES
**,int,const WCHAR
*,int,int,WORD
*,SCRIPT_CHARPROP
*,WORD
*,SCRIPT_GLYPHPROP
*,int*);
208 HRESULT WINAPI
ScriptStringAnalyse(HDC
,const void *,int,int,int,DWORD
,int,SCRIPT_CONTROL
*,SCRIPT_STATE
*,const int *,SCRIPT_TABDEF
*,const BYTE
*,SCRIPT_STRING_ANALYSIS
*);
209 HRESULT WINAPI
ScriptStringCPtoX(SCRIPT_STRING_ANALYSIS
,int,BOOL
,int *);
210 HRESULT WINAPI
ScriptStringFree(SCRIPT_STRING_ANALYSIS
*);
211 HRESULT WINAPI
ScriptStringGetLogicalWidths(SCRIPT_STRING_ANALYSIS
,int *);
212 HRESULT WINAPI
ScriptStringGetOrder(SCRIPT_STRING_ANALYSIS
,UINT
*);
213 HRESULT WINAPI
ScriptStringOut(SCRIPT_STRING_ANALYSIS
,int,int,UINT
,const RECT
*,int,int,BOOL
);
214 const int*WINAPI
ScriptString_pcOutChars(SCRIPT_STRING_ANALYSIS
);
215 const SCRIPT_LOGATTR
* WINAPI
ScriptString_pLogAttr(SCRIPT_STRING_ANALYSIS
);
216 const SIZE
* WINAPI
ScriptString_pSize(SCRIPT_STRING_ANALYSIS
);
217 HRESULT WINAPI
ScriptStringValidate(SCRIPT_STRING_ANALYSIS
);
218 HRESULT WINAPI
ScriptStringXtoCP(SCRIPT_STRING_ANALYSIS
,int,int *,int *);
219 HRESULT WINAPI
ScriptSubstituteSingleGlyph(HDC
,SCRIPT_CACHE
*,SCRIPT_ANALYSIS
*,OPENTYPE_TAG
,OPENTYPE_TAG
,OPENTYPE_TAG
,LONG
,WORD
,WORD
*);
220 HRESULT WINAPI
ScriptTextOut(const HDC
,SCRIPT_CACHE
*,int,int,UINT
,const RECT
*,const SCRIPT_ANALYSIS
*,const WCHAR
*,int,const WORD
*,int,const int *,const int *,const GOFFSET
*);
221 HRESULT WINAPI
ScriptXtoCP(int,int,int,const WORD
*,const SCRIPT_VISATTR
*,const int *,const SCRIPT_ANALYSIS
*,int *,int *);
229 #endif /* ndef _USP10_H_ */