Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenusp10.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2005 Steven Edwards 00003 * Copyright (C) 2005 Vijay Kiran Kamuju 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Lesser General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2.1 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00018 */ 00019 00020 #ifndef __USP10_H 00021 #define __USP10_H 00022 00023 #ifndef __WINESRC__ 00024 # include <windows.h> 00025 #endif 00026 /* FIXME: #include <specstrings.h> */ 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00033 #define SSA_PASSWORD 0x00000001 00034 #define SSA_TAB 0x00000002 00035 #define SSA_CLIP 0x00000004 00036 #define SSA_FIT 0x00000008 00037 #define SSA_DZWG 0x00000010 00038 #define SSA_FALLBACK 0x00000020 00039 #define SSA_BREAK 0x00000040 00040 #define SSA_GLYPHS 0x00000080 00041 #define SSA_RTL 0x00000100 00042 #define SSA_GCP 0x00000200 00043 #define SSA_HOTKEY 0x00000400 00044 #define SSA_METAFILE 0x00000800 00045 #define SSA_LINK 0x00001000 00046 #define SSA_HIDEHOTKEY 0x00002000 00047 #define SSA_HOTKEYONLY 0x00002400 00048 #define SSA_FULLMEASURE 0x04000000 00049 #define SSA_LPKANSIFALLBACK 0x08000000 00050 #define SSA_PIDX 0x10000000 00051 #define SSA_LAYOUTRTL 0x20000000 00052 #define SSA_DONTGLYPH 0x40000000 00053 #define SSA_NOKASHIDA 0x80000000 00054 00056 #define SIC_COMPLEX 1 00057 #define SIC_ASCIIDIGIT 2 00058 #define SIC_NEUTRAL 4 00059 00061 #define SGCM_RTL 0x00000001 00062 00064 #define SCRIPT_DIGITSUBSTITUTE_CONTEXT 0 00065 #define SCRIPT_DIGITSUBSTITUTE_NONE 1 00066 #define SCRIPT_DIGITSUBSTITUTE_NATIONAL 2 00067 #define SCRIPT_DIGITSUBSTITUTE_TRADITIONAL 3 00068 00069 #define SCRIPT_UNDEFINED 0 00070 00071 #define USP_E_SCRIPT_NOT_IN_FONT MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,0x200) 00072 00073 typedef enum tag_SCRIPT_JUSTIFY { 00074 SCRIPT_JUSTIFY_NONE = 0, 00075 SCRIPT_JUSTIFY_ARABIC_BLANK = 1, 00076 SCRIPT_JUSTIFY_CHARACTER = 2, 00077 SCRIPT_JUSTIFY_RESERVED1 = 3, 00078 SCRIPT_JUSTIFY_BLANK = 4, 00079 SCRIPT_JUSTIFY_RESERVED2 = 5, 00080 SCRIPT_JUSTIFY_RESERVED3 = 6, 00081 SCRIPT_JUSTIFY_ARABIC_NORMAL = 7, 00082 SCRIPT_JUSTIFY_ARABIC_KASHIDA = 8, 00083 SCRIPT_JUSTIFY_ARABIC_ALEF = 9, 00084 SCRIPT_JUSTIFY_ARABIC_HA = 10, 00085 SCRIPT_JUSTIFY_ARABIC_RA = 11, 00086 SCRIPT_JUSTIFY_ARABIC_BA = 12, 00087 SCRIPT_JUSTIFY_ARABIC_BARA = 13, 00088 SCRIPT_JUSTIFY_ARABIC_SEEN = 14, 00089 SCRIPT_JUSTIFY_ARABIC_SEEN_M = 15, 00090 } SCRIPT_JUSTIFY; 00091 00092 typedef struct tag_SCRIPT_CONTROL { 00093 DWORD uDefaultLanguage :16; 00094 DWORD fContextDigits :1; 00095 DWORD fInvertPreBoundDir :1; 00096 DWORD fInvertPostBoundDir :1; 00097 DWORD fLinkStringBefore :1; 00098 DWORD fLinkStringAfter :1; 00099 DWORD fNeutralOverride :1; 00100 DWORD fNumericOverride :1; 00101 DWORD fLegacyBidiClass :1; 00102 DWORD fMergeNeutralItems :1; 00103 DWORD fReserved :7; 00104 } SCRIPT_CONTROL; 00105 00106 typedef struct { 00107 DWORD langid :16; 00108 DWORD fNumeric :1; 00109 DWORD fComplex :1; 00110 DWORD fNeedsWordBreaking :1; 00111 DWORD fNeedsCaretInfo :1; 00112 DWORD bCharSet :8; 00113 DWORD fControl :1; 00114 DWORD fPrivateUseArea :1; 00115 DWORD fNeedsCharacterJustify :1; 00116 DWORD fInvalidGlyph :1; 00117 DWORD fInvalidLogAttr :1; 00118 DWORD fCDM :1; 00119 DWORD fAmbiguousCharSet :1; 00120 DWORD fClusterSizeVaries :1; 00121 DWORD fRejectInvalid :1; 00122 } SCRIPT_PROPERTIES; 00123 00124 typedef struct tag_SCRIPT_STATE { 00125 WORD uBidiLevel :5; 00126 WORD fOverrideDirection :1; 00127 WORD fInhibitSymSwap :1; 00128 WORD fCharShape :1; 00129 WORD fDigitSubstitute :1; 00130 WORD fInhibitLigate :1; 00131 WORD fDisplayZWG :1; 00132 WORD fArabicNumContext :1; 00133 WORD fGcpClusters :1; 00134 WORD fReserved :1; 00135 WORD fEngineReserved :2; 00136 } SCRIPT_STATE; 00137 00138 typedef struct tag_SCRIPT_ANALYSIS { 00139 WORD eScript :10; 00140 WORD fRTL :1; 00141 WORD fLayoutRTL :1; 00142 WORD fLinkBefore :1; 00143 WORD fLinkAfter :1; 00144 WORD fLogicalOrder :1; 00145 WORD fNoGlyphIndex :1; 00146 SCRIPT_STATE s; 00147 } SCRIPT_ANALYSIS; 00148 00149 typedef struct tag_SCRIPT_ITEM { 00150 int iCharPos; 00151 SCRIPT_ANALYSIS a; 00152 } SCRIPT_ITEM; 00153 00154 typedef struct tag_SCRIPT_DIGITSUBSTITUTE { 00155 DWORD NationalDigitLanguage :16; 00156 DWORD TraditionalDigitLanguage :16; 00157 DWORD DigitSubstitute :8; 00158 DWORD dwReserved; 00159 } SCRIPT_DIGITSUBSTITUTE; 00160 00161 typedef struct tag_SCRIPT_FONTPROPERTIES { 00162 int cBytes; 00163 WORD wgBlank; 00164 WORD wgDefault; 00165 WORD wgInvalid; 00166 WORD wgKashida; 00167 int iKashidaWidth; 00168 } SCRIPT_FONTPROPERTIES; 00169 00170 typedef struct tag_SCRIPT_TABDEF { 00171 int cTabStops; 00172 int iScale; 00173 int *pTabStops; 00174 int iTabOrigin; 00175 } SCRIPT_TABDEF; 00176 00177 typedef struct tag_SCRIPT_VISATTR { 00178 WORD uJustification :4; 00179 WORD fClusterStart :1; 00180 WORD fDiacritic :1; 00181 WORD fZeroWidth :1; 00182 WORD fReserved :1; 00183 WORD fShapeReserved :8; 00184 } SCRIPT_VISATTR; 00185 00186 typedef struct tag_SCRIPT_LOGATTR { 00187 BYTE fSoftBreak :1; 00188 BYTE fWhiteSpace :1; 00189 BYTE fCharStop :1; 00190 BYTE fWordStop :1; 00191 BYTE fInvalid :1; 00192 BYTE fReserved :3; 00193 } SCRIPT_LOGATTR; 00194 00195 typedef void *SCRIPT_CACHE; 00196 typedef void *SCRIPT_STRING_ANALYSIS; 00197 00198 #ifndef LSDEFS_DEFINED 00199 typedef struct tagGOFFSET { 00200 LONG du; 00201 LONG dv; 00202 } GOFFSET; 00203 #endif 00204 00205 typedef ULONG OPENTYPE_TAG; 00206 00207 typedef struct tagOPENTYPE_FEATURE_RECORD 00208 { 00209 OPENTYPE_TAG tagFeature; 00210 LONG lParameter; 00211 } OPENTYPE_FEATURE_RECORD; 00212 00213 typedef struct tagSCRIPT_GLYPHPROP 00214 { 00215 SCRIPT_VISATTR sva; 00216 WORD reserved; 00217 } SCRIPT_GLYPHPROP; 00218 00219 typedef struct tagSCRIPT_CHARPROP 00220 { 00221 WORD fCanGlyphAlone :1; 00222 WORD reserved :15; 00223 } SCRIPT_CHARPROP; 00224 00225 typedef struct tagTEXTRANGE_PROPERTIES 00226 { 00227 OPENTYPE_FEATURE_RECORD *potfRecords; 00228 INT cotfRecords; 00229 } TEXTRANGE_PROPERTIES; 00230 00231 /* Function Declarations */ 00232 00233 HRESULT WINAPI ScriptApplyDigitSubstitution(const SCRIPT_DIGITSUBSTITUTE* psds, 00234 SCRIPT_CONTROL* psc, SCRIPT_STATE* pss); 00235 HRESULT WINAPI ScriptApplyLogicalWidth(const int *piDx, int cChars, int cGlyphs, const WORD *pwLogClust, 00236 const SCRIPT_VISATTR *psva, const int *piAdvance, 00237 const SCRIPT_ANALYSIS *psa, ABC *pABC, int *piJustify); 00238 HRESULT WINAPI ScriptRecordDigitSubstitution(LCID Locale, SCRIPT_DIGITSUBSTITUTE *psds); 00239 HRESULT WINAPI ScriptItemize(const WCHAR *pwcInChars, int cInChars, int cMaxItems, 00240 const SCRIPT_CONTROL *psControl, const SCRIPT_STATE *psState, 00241 SCRIPT_ITEM *pItems, int *pcItems); 00242 HRESULT WINAPI ScriptGetCMap(HDC hdc, SCRIPT_CACHE *psc, const WCHAR *pwcInChars, int cChars, 00243 DWORD dwFlags, WORD *pwOutGlyphs); 00244 HRESULT WINAPI ScriptGetFontProperties(HDC hdc, SCRIPT_CACHE *psc, SCRIPT_FONTPROPERTIES *sfp); 00245 HRESULT WINAPI ScriptGetGlyphABCWidth(HDC hdc, SCRIPT_CACHE *psc, WORD wGlyph, ABC *pABC); 00246 HRESULT WINAPI ScriptGetLogicalWidths(const SCRIPT_ANALYSIS *psa, int cChars, int cGlyphs, 00247 const int *piGlyphWidth, const WORD *pwLogClust, 00248 const SCRIPT_VISATTR *psva, int *piDx); 00249 HRESULT WINAPI ScriptGetProperties(const SCRIPT_PROPERTIES ***ppSp, int *piNumScripts); 00250 HRESULT WINAPI ScriptStringAnalyse(HDC hdc, 00251 const void *pString, 00252 int cString, 00253 int cGlyphs, 00254 int iCharset, 00255 DWORD dwFlags, 00256 int iReqWidth, 00257 SCRIPT_CONTROL *psControl, 00258 SCRIPT_STATE *psState, 00259 const int *piDx, 00260 SCRIPT_TABDEF *pTabdef, 00261 const BYTE *pbInClass, 00262 SCRIPT_STRING_ANALYSIS *pssa); 00263 HRESULT WINAPI ScriptStringValidate(SCRIPT_STRING_ANALYSIS ssa); 00264 HRESULT WINAPI ScriptStringFree(SCRIPT_STRING_ANALYSIS *pssa); 00265 HRESULT WINAPI ScriptFreeCache(SCRIPT_CACHE *psc); 00266 HRESULT WINAPI ScriptIsComplex(const WCHAR* pwcInChars, int cInChars, DWORD dwFlags); 00267 HRESULT WINAPI ScriptJustify(const SCRIPT_VISATTR *psva, const int *piAdvance, int cGlyphs, 00268 int iDx, int iMinKashida, int *piJustify); 00269 HRESULT WINAPI ScriptLayout(int cRuns, const BYTE *pbLevel, int *piVisualToLogical, int *piLogicalToVisual); 00270 HRESULT WINAPI ScriptShape(HDC hdc, SCRIPT_CACHE *psc, const WCHAR *pwcChars, int cChars, int cMaxGlyphs, 00271 SCRIPT_ANALYSIS *psa, WORD *pwOutGlyphs, WORD *pwLogClust, SCRIPT_VISATTR *psva, int *pcGlyphs); 00272 HRESULT WINAPI ScriptPlace(HDC hdc, SCRIPT_CACHE *psc, const WORD *pwGlyphs, int cGlyphs, const SCRIPT_VISATTR *psva, 00273 SCRIPT_ANALYSIS *psa, int *piAdvance, GOFFSET *pGoffset, ABC *pABC ); 00274 HRESULT WINAPI ScriptBreak(const WCHAR *pwcChars, int cChars, const SCRIPT_ANALYSIS *psa, SCRIPT_LOGATTR *psla); 00275 HRESULT WINAPI ScriptCacheGetHeight(HDC hdc, SCRIPT_CACHE *psc, LONG *tmHeight); 00276 HRESULT WINAPI ScriptCPtoX(int iCP, BOOL fTrailing, int cChars, int cGlyphs, const WORD *pwLogClust, const SCRIPT_VISATTR *psva, 00277 const int *piAdvance, const SCRIPT_ANALYSIS *psa, int *piX); 00278 HRESULT WINAPI ScriptXtoCP(int iX, int cChars, int cGlyphs, const WORD *pwLogClust, const SCRIPT_VISATTR *psva, 00279 const int *piAdvance, const SCRIPT_ANALYSIS *psa, int *piCP, int *piTrailing); 00280 HRESULT WINAPI ScriptStringCPtoX(SCRIPT_STRING_ANALYSIS ssa, int icp, BOOL fTrailing, int *pX); 00281 HRESULT WINAPI ScriptStringXtoCP(SCRIPT_STRING_ANALYSIS ssa, int iX, int *piCh , int *piTrailing); 00282 HRESULT WINAPI ScriptStringGetLogicalWidths(SCRIPT_STRING_ANALYSIS ssa, int *piDx); 00283 HRESULT WINAPI ScriptStringGetOrder(SCRIPT_STRING_ANALYSIS ssa, UINT *puOrder); 00284 HRESULT WINAPI ScriptStringOut(SCRIPT_STRING_ANALYSIS ssa, int iX, int iY, UINT uOptions, const RECT *prc, 00285 int iMinSel, int iMaxSel, BOOL fDisabled); 00286 HRESULT WINAPI ScriptTextOut(const HDC hdc, SCRIPT_CACHE *psc, int x, int y, UINT fuOptions, const RECT *lprc, 00287 const SCRIPT_ANALYSIS *psa, const WCHAR *pwcReserved, int iReserved, const WORD *pwGlyphs, 00288 int cGlyphs, const int *piAdvance, const int *piJustify, const GOFFSET *pGoffset); 00289 const int* WINAPI ScriptString_pcOutChars(SCRIPT_STRING_ANALYSIS ssa); 00290 const SCRIPT_LOGATTR* WINAPI ScriptString_pLogAttr(SCRIPT_STRING_ANALYSIS ssa); 00291 const SIZE* WINAPI ScriptString_pSize(SCRIPT_STRING_ANALYSIS ssa); 00292 00293 #ifdef __cplusplus 00294 } /* extern "C" */ 00295 #endif 00296 00297 #endif /* __USP10_H */ Generated on Sat May 19 2012 04:30:33 for ReactOS by
1.7.6.1
|