203{
208 BOOL bResult, bReorder;
209
211
212 fuOptions |= ETO_IGNORELANGUAGE;
213
214
216 fuOptions |= ETO_RTLREADING;
217
218
219 if (fuOptions & ETO_RTLREADING)
221
222
223 if (
ScriptIsComplex(lpString, uCount, dwSICFlags) ==
S_OK && !(fuOptions & ETO_GLYPH_INDEX))
224 {
225
226
228
232
233
234 if ((
glyphs || reordered_str) && bReorder)
235 {
237 {
238 fuOptions |= ETO_GLYPH_INDEX;
240 }
241
244 }
245 else
246 {
247 WARN(
"BIDI_Reorder failed, falling back to original string.\n");
249 }
250
253
254 return bResult;
255 }
256
258}
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