Added some missing definitions in usp10.h.
diff --git a/include/usp10.h b/include/usp10.h
index e38b894..dfddc82 100644
--- a/include/usp10.h
+++ b/include/usp10.h
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2005 Steven Edwards
+ * Copyright (C) 2005 Vijay Kiran Kamuju
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -51,6 +52,38 @@
#define SIC_ASCIIDIGIT 2
#define SIC_NEUTRAL 4
+/** ScriptGetCMap */
+#define SGCM_RTL 0x00000001
+
+/** ScriptApplyDigitSubstitution */
+#define SCRIPT_DIGITSUBSTITUTE_CONTEXT 0
+#define SCRIPT_DIGITSUBSTITUTE_NONE 1
+#define SCRIPT_DIGITSUBSTITUTE_NATIONAL 2
+#define SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3
+
+#define SCRIPT_UNDEFINED 0
+
+#define USP_E_SCRIPT_NOT_IN_FONT MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,0x200)
+
+typedef enum tag_SCRIPT_JUSTIFY {
+ SCRIPT_JUSTIFY_NONE = 0,
+ SCRIPT_JUSTIFY_ARABIC_BLANK = 1,
+ SCRIPT_JUSTIFY_CHARACTER = 2,
+ SCRIPT_JUSTIFY_RESERVED1 = 3,
+ SCRIPT_JUSTIFY_BLANK = 4,
+ SCRIPT_JUSTIFY_RESERVED2 = 5,
+ SCRIPT_JUSTIFY_RESERVED3 = 6,
+ SCRIPT_JUSTIFY_ARABIC_NORMAL = 7,
+ SCRIPT_JUSTIFY_ARABIC_KASHIDA = 8,
+ SCRIPT_JUSTIFY_ARABIC_ALEF = 9,
+ SCRIPT_JUSTIFY_ARABIC_HA = 10,
+ SCRIPT_JUSTIFY_ARABIC_RA = 11,
+ SCRIPT_JUSTIFY_ARABIC_BA = 12,
+ SCRIPT_JUSTIFY_ARABIC_BARA = 13,
+ SCRIPT_JUSTIFY_ARABIC_SEEN = 14,
+ SCRIPT_JUSTIFY_RESERVED4 = 15,
+} SCRIPT_JUSTIFY;
+
typedef struct tag_SCRIPT_CONTROL {
DWORD uDefaultLanguage :16;
DWORD fContextDigits :1;
@@ -135,19 +168,53 @@
int iTabOrigin;
} SCRIPT_TABDEF;
+typedef struct tag_SCRIPT_VISATTR {
+ WORD uJustification :4;
+ WORD fClusterStart :1;
+ WORD fDiacritic :1;
+ WORD fZeroWidth :1;
+ WORD fReserved :1;
+ WORD fShapeReserved :8;
+} SCRIPT_VISATTR;
+
+typedef struct tag_SCRIPT_LOGATTR {
+ BYTE fSoftBreak :1;
+ BYTE fWhiteSpace :1;
+ BYTE fCharStop :1;
+ BYTE fWordStop :1;
+ BYTE fInvalid :1;
+ BYTE fReserved :3;
+} SCRIPT_LOGATTR;
+
typedef void *SCRIPT_CACHE;
typedef void *SCRIPT_STRING_ANALYSIS;
-/* Function Declairations */
+#ifndef LSDEFS_DEFINED
+typedef struct tagGOFFSET {
+ LONG du;
+ LONG dv;
+} GOFFSET;
+#endif
-HRESULT WINAPI ScriptGetProperties(const SCRIPT_PROPERTIES ***ppSp, int *piNumScripts);
-HRESULT WINAPI ScriptRecordDigitSubstitution(LCID Locale, SCRIPT_DIGITSUBSTITUTE *psds);
+/* Function Declarations */
+
HRESULT WINAPI ScriptApplyDigitSubstitution(const SCRIPT_DIGITSUBSTITUTE* psds,
SCRIPT_CONTROL* psc, SCRIPT_STATE* pss);
+HRESULT WINAPI ScriptApplyLogicalWidth(const int *piDx, int cChars, int cGlyphs, const WORD *pwLogClust,
+ const SCRIPT_VISATTR *psva, const int *piAdvance,
+ const SCRIPT_ANALYSIS *psa, ABC *pABC, int *piJustify);
+HRESULT WINAPI ScriptRecordDigitSubstitution(LCID Locale, SCRIPT_DIGITSUBSTITUTE *psds);
HRESULT WINAPI ScriptItemize(const WCHAR *pwcInChars, int cInChars, int cMaxItems,
const SCRIPT_CONTROL *psControl, const SCRIPT_STATE *psState,
SCRIPT_ITEM *pItems, int *pcItems);
+HRESULT WINAPI ScriptGetCMap(HDC hdc, SCRIPT_CACHE *psc, const WCHAR *pwcInChars, int cChars,
+ DWORD dwFlags, WORD *pwOutGlyphs);
HRESULT WINAPI ScriptGetFontProperties(HDC hdc, SCRIPT_CACHE *psc, SCRIPT_FONTPROPERTIES *sfp);
+HRESULT WINAPI ScriptGetGlyphABCWidth(HDC hdc, SCRIPT_CACHE *psc, WORD wGlyph, ABC *pABC);
+HRESULT WINAPI ScriptGetLogicalWidths(const SCRIPT_ANALYSIS *psa, int cChars, int cGlyphs,
+ const int *piGlyphWidth, const WORD *pwLogClust,
+ const SCRIPT_VISATTR *psva, int *piDx);
+HRESULT WINAPI ScriptGetProperties(const SCRIPT_PROPERTIES ***ppSp, int *piNumScripts);
HRESULT WINAPI ScriptStringAnalyse(HDC hdc,
const void *pString,
int cString,
@@ -161,8 +228,35 @@
SCRIPT_TABDEF *pTabdef,
const BYTE *pbInClass,
SCRIPT_STRING_ANALYSIS *pssa);
+HRESULT WINAPI ScriptStringValidate(SCRIPT_STRING_ANALYSIS ssa);
HRESULT WINAPI ScriptStringFree(SCRIPT_STRING_ANALYSIS *pssa);
+HRESULT WINAPI ScriptFreeCache(SCRIPT_CACHE *psc);
HRESULT WINAPI ScriptIsComplex(const WCHAR* pwcInChars, int cInChars, DWORD dwFlags);
+HRESULT WINAPI ScriptJustify(const SCRIPT_VISATTR *psva, const int *piAdvance, int cGlyphs,
+ int iDx, int iMinKashida, int *piJustify);
+HRESULT WINAPI ScriptLayout(int cRuns, const BYTE *pbLevel, int *piVisualToLogical, int *piLogicalToVisual);
+HRESULT WINAPI ScriptShape(HDC hdc, SCRIPT_CACHE *psc, const WCHAR *pwcChars, int cChars, int cMaxGlyphs,
+ SCRIPT_ANALYSIS *psa, WORD *pwOutGlyphs, WORD *pwLogClust, SCRIPT_VISATTR *psva, int *pcGlyphs);
+HRESULT WINAPI ScriptPlace(HDC hdc, SCRIPT_CACHE *psc, const WORD *pwGlyphs, int cGlyphs, const SCRIPT_VISATTR *psva,
+ SCRIPT_ANALYSIS *psa, int *piAdvance, GOFFSET *pGoffset, ABC *pABC );
+HRESULT WINAPI ScriptBreak(const WCHAR *pwcChars, int cChars, const SCRIPT_ANALYSIS *psa, SCRIPT_LOGATTR *psla);
+HRESULT WINAPI ScriptCacheGetHeight(HDC hdc, SCRIPT_CACHE *psc, long *tmHeight);
+HRESULT WINAPI ScriptCPtoX(int iCP, BOOL fTrailing, int cChars, int cGlyphs, const WORD *pwLogClust, const SCRIPT_VISATTR *psva,
+ const int *piAdvance, const SCRIPT_ANALYSIS *psa, int *piX);
+HRESULT WINAPI ScriptXtoCP(int iX, int cChars, int cGlyphs, const WORD *pwLogClust, const SCRIPT_VISATTR *psva,
+ const int *piAdvance, const SCRIPT_ANALYSIS *psa, int *piCP, int *piTrailing);
+HRESULT WINAPI ScriptStringCPtoX(SCRIPT_STRING_ANALYSIS ssa, int icp, BOOL fTrailing, int *pX);
+HRESULT WINAPI ScriptStringXtoCP(SCRIPT_STRING_ANALYSIS ssa, int iX, int *piCh , int *piTrailing);
+HRESULT WINAPI ScriptStringGetLogicalWidths(SCRIPT_STRING_ANALYSIS ssa, int *piDx);
+HRESULT WINAPI ScriptStringGetOrder(SCRIPT_STRING_ANALYSIS ssa, UINT *puOrder);
+HRESULT WINAPI ScriptStringOut(SCRIPT_STRING_ANALYSIS ssa, int iX, int iY, UINT uOptions, const RECT *prc,
+ int iMinSel, int iMaxSel, BOOL fDisabled);
+HRESULT WINAPI ScriptTextOut(const HDC hdc, SCRIPT_CACHE *psc, int x, int y, UINT fuOptions, const RECT *lprc,
+ const SCRIPT_ANALYSIS *psa, const WCHAR *pwcReserved, int iReserved, const WORD *pwGlyphs,
+ int cGlyphs, const int *piAdvance, const int *piJustify, const GOFFSET *pGoffset);
+const int* WINAPI ScriptString_pcOutChars(SCRIPT_STRING_ANALYSIS ssa);
+const SCRIPT_LOGATTR* WINAPI ScriptString_pLogAttr(SCRIPT_STRING_ANALYSIS ssa);
+const SIZE* WINAPI ScriptString_pSize(SCRIPT_STRING_ANALYSIS ssa);
#ifdef __cplusplus
} /* extern "C" */