250{
255 BOOL bResult, bReorder;
256
258
259 fuOptions |= ETO_IGNORELANGUAGE;
260
261
263 fuOptions |= ETO_RTLREADING;
264
265
266 if (fuOptions & ETO_RTLREADING)
268
269
270 if (
ScriptIsComplex(lpString, uCount, dwSICFlags) ==
S_OK && !(fuOptions & ETO_GLYPH_INDEX))
271 {
272
273
275
279
280
281 if ((
glyphs || reordered_str) && bReorder)
282 {
284 {
285 fuOptions |= ETO_GLYPH_INDEX;
287 }
288
291 }
292 else
293 {
294 WARN(
"BIDI_Reorder failed, falling back to original string.\n");
296 }
297
300
301 return bResult;
302 }
303
305}
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define HeapFree(x, y, z)
HRESULT WINAPI ScriptIsComplex(const WCHAR *chars, int len, DWORD flag)
DWORD WINAPI GetLayout(_In_ HDC hdc)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
BOOL BIDI_Reorder(HDC hDC, LPCWSTR lpString, INT uCount, DWORD dwFlags, DWORD dwWineGCP_Flags, LPWSTR lpOutString, INT uCountOut, UINT *lpOrder, WORD **lpGlyphs, INT *cGlyphs)
static UINT UINT LPWORD glyphs
#define UNREFERENCED_PARAMETER(P)
#define WINE_GCPW_FORCE_LTR
#define WINE_GCPW_FORCE_RTL
_In_ FONTOBJ _In_ ULONG _In_ ULONG cGlyphs
UINT WINAPI GetTextAlign(_In_ HDC)
BOOL WINAPI ExtTextOutW(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCWSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx)
_In_ int _Inout_ LPRECT lprc