2 * Implementation of Uniscribe Script Processor (usp10.dll)
4 * Copyright 2005 Steven Edwards for CodeWeavers
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 * Uniscribe allows for processing of complex scripts such as joining
22 * and filtering characters and bi-directional text with custom line breaks.
33 #include "wine/debug.h"
36 * some documentation here:
37 * http://www.microsoft.com/typography/developers/uniscribe/uniscribe.htm
40 WINE_DEFAULT_DEBUG_CHANNEL(uniscribe
);
42 BOOL WINAPI
DllMain(HINSTANCE hInstDLL
, DWORD fdwReason
, LPVOID lpv
)
45 case DLL_PROCESS_ATTACH
:
46 DisableThreadLibraryCalls(hInstDLL
);
48 case DLL_PROCESS_DETACH
:
54 /***********************************************************************
55 * ScriptGetProperties (USP10.@)
58 HRESULT WINAPI
ScriptGetProperties(const SCRIPT_PROPERTIES
***ppSp
, int *piNumScripts
)
60 FIXME("%p,%p\n",ppSp
,piNumScripts
);
64 /***********************************************************************
65 * ScriptGetFontProperties (USP10.@)
68 HRESULT WINAPI
ScriptGetFontProperties(HDC hdc
, SCRIPT_CACHE
*psc
, SCRIPT_FONTPROPERTIES
*sfp
)
70 FIXME("%p,%p,%p\n", hdc
, psc
, sfp
);
71 /* return something sensible? */
73 sfp
->cBytes
= sizeof(SCRIPT_FONTPROPERTIES
);
78 sfp
->iKashidaWidth
= 0;
83 /***********************************************************************
84 * ScriptRecordDigitSubstitution (USP10.@)
87 HRESULT WINAPI
ScriptRecordDigitSubstitution(LCID Locale
,SCRIPT_DIGITSUBSTITUTE
*psds
)
89 FIXME("%ld,%p\n",Locale
,psds
);
93 /***********************************************************************
94 * ScriptApplyDigitSubstitution (USP10.@)
97 HRESULT WINAPI
ScriptApplyDigitSubstitution(const SCRIPT_DIGITSUBSTITUTE
* psds
,
98 SCRIPT_CONTROL
* psc
, SCRIPT_STATE
* pss
)
100 FIXME("%p,%p,%p\n",psds
,psc
,pss
);
104 /***********************************************************************
105 * ScriptItemize (USP10.@)
108 HRESULT WINAPI
ScriptItemize(const WCHAR
*pwcInChars
, int cInChars
, int cMaxItems
,
109 const SCRIPT_CONTROL
*psControl
, const SCRIPT_STATE
*psState
,
110 SCRIPT_ITEM
*pItems
, int *pcItems
)
112 FIXME("%s,%d,%d,%p,%p,%p,%p\n", debugstr_w(pwcInChars
), cInChars
, cMaxItems
,
113 psControl
, psState
, pItems
, pcItems
);
117 /***********************************************************************
118 * ScriptStringAnalyse (USP10.@)
121 HRESULT WINAPI
ScriptStringAnalyse(HDC hdc
,
128 SCRIPT_CONTROL
*psControl
,
129 SCRIPT_STATE
*psState
,
131 SCRIPT_TABDEF
*pTabdef
,
132 const BYTE
*pbInClass
,
133 SCRIPT_STRING_ANALYSIS
*pssa
)
135 FIXME("(%p,%p,%d,%d,%d,0x%lx,%d,%p,%p,%p,%p,%p,%p): stub\n",
136 hdc
, pString
, cString
, cGlyphs
, iCharset
, dwFlags
,
137 iReqWidth
, psControl
, psState
, piDx
, pTabdef
, pbInClass
, pssa
);
138 if (1 > cString
|| NULL
== pString
) {
141 if ((dwFlags
& SSA_GLYPHS
) && NULL
== hdc
) {
148 /***********************************************************************
149 * ScriptStringFree (USP10.@)
152 HRESULT WINAPI
ScriptStringFree(SCRIPT_STRING_ANALYSIS
*pssa
) {
153 FIXME("(%p): stub\n",pssa
);
157 /***********************************************************************
158 * ScriptIsComplex (USP10.@)
161 HRESULT WINAPI
ScriptIsComplex(const WCHAR
* pwcInChars
, int cInChars
, DWORD dwFlags
) {
162 FIXME("(%s,%d,0x%lx): stub\n", debugstr_w(pwcInChars
), cInChars
, dwFlags
);