ReactOS Fundraising Campaign 2012
 
€ 3,873 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

usp10.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.