xform can be NULL when setting the identity.
[wine/gsoc_dplay.git] / include / usp10.h
blob5d2676e53a4214901c5fa56004662464cec4af49
1 /*
2 * Copyright (C) 2005 Steven Edwards
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef __USP10_H
20 #define __USP10_H
22 typedef struct tag_SCRIPT_CONTROL {
23 DWORD uDefaultLanguage :16;
24 DWORD fContextDigits :1;
25 DWORD fInvertPreBoundDir :1;
26 DWORD fInvertPostBoundDir :1;
27 DWORD fLinkStringBefore :1;
28 DWORD fLinkStringAfter :1;
29 DWORD fNeutralOverride :1;
30 DWORD fNumericOverride :1;
31 DWORD fLegacyBidiClass :1;
32 DWORD fReserved :8;
33 } SCRIPT_CONTROL;
35 typedef struct {
36 DWORD langid :16;
37 DWORD fNumeric :1;
38 DWORD fComplex :1;
39 DWORD fNeedsWordBreaking :1;
40 DWORD fNeedsCaretInfo :1;
41 DWORD bCharSet :8;
42 DWORD fControl :1;
43 DWORD fPrivateUseArea :1;
44 DWORD fNeedsCharacterJustify :1;
45 DWORD fInvalidGlyph :1;
46 DWORD fInvalidLogAttr :1;
47 DWORD fCDM :1;
48 DWORD fAmbiguousCharSet :1;
49 DWORD fClusterSizeVaries :1;
50 DWORD fRejectInvalid :1;
51 } SCRIPT_PROPERTIES;
53 typedef struct tag_SCRIPT_STATE {
54 WORD uBidiLevel :5;
55 WORD fOverrideDirection :1;
56 WORD fInhibitSymSwap :1;
57 WORD fCharShape :1;
58 WORD fDigitSubstitute :1;
59 WORD fInhibitLigate :1;
60 WORD fDisplayZWG :1;
61 WORD fArabicNumContext :1;
62 WORD fGcpClusters :1;
63 WORD fReserved :1;
64 WORD fEngineReserved :2;
65 } SCRIPT_STATE;
67 typedef struct tag_SCRIPT_ANALYSIS {
68 WORD eScript :10;
69 WORD fRTL :1;
70 WORD fLayoutRTL :1;
71 WORD fLinkBefore :1;
72 WORD fLinkAfter :1;
73 WORD fLogicalOrder :1;
74 WORD fNoGlyphIndex :1;
75 SCRIPT_STATE s;
76 } SCRIPT_ANALYSIS;
78 typedef struct tag_SCRIPT_ITEM {
79 int iCharPos;
80 SCRIPT_ANALYSIS a;
81 } SCRIPT_ITEM;
83 typedef struct tag_SCRIPT_DIGITSUBSTITUTE {
84 DWORD NationalDigitLanguage :16;
85 DWORD TraditionalDigitLanguage :16;
86 DWORD DigitSubstitute :8;
87 DWORD dwReserved;
88 } SCRIPT_DIGITSUBSTITUTE;
90 typedef struct tag_SCRIPT_FONTPROPERTIES {
91 int cBytes;
92 WORD wgBlank;
93 WORD wgDefault;
94 WORD wgInvalid;
95 WORD wgKashida;
96 int iKashidaWidth;
97 } SCRIPT_FONTPROPERTIES;
99 typedef void *SCRIPT_CACHE;
101 /* Function Declairations */
103 HRESULT WINAPI ScriptGetProperties(const SCRIPT_PROPERTIES ***ppSp, int *piNumScripts);
104 HRESULT WINAPI ScriptRecordDigitSubstitution(LCID Locale, SCRIPT_DIGITSUBSTITUTE *psds);
105 HRESULT WINAPI ScriptApplyDigitSubstitution(const SCRIPT_DIGITSUBSTITUTE* psds,
106 SCRIPT_CONTROL* psc, SCRIPT_STATE* pss);
107 HRESULT WINAPI ScriptItemize(const WCHAR *pwcInChars, int cInChars, int cMaxItems,
108 const SCRIPT_CONTROL *psControl, const SCRIPT_STATE *psState,
109 SCRIPT_ITEM *pItems, int *pcItems);
110 HRESULT WINAPI ScriptGetFontProperties(HDC hdc, SCRIPT_CACHE *psc, SCRIPT_FONTPROPERTIES *sfp);
112 #endif /* __USP10_H */