Hi, Dmitry Timoshkov! The patch brakes rotation for modes with positive axis. Try apply this patch to the test application attached to the bug #22996.
diff -Naur ./test_emf_textout.orig/test_emf_textout/test.c ./test_emf_textout/test_emf_textout/test.c --- ./test_emf_textout.orig/test_emf_textout/test.c 2011-02-23 02:26:03.000000000 +0300 +++ ./test_emf_textout/test_emf_textout/test.c 2011-02-24 14:21:34.940461236 +0300 @@ -118,8 +118,8 @@ SetGraphicsMode(hdc, GM_COMPATIBLE); SetMapMode(hdc, MM_ANISOTROPIC); SetWindowExtEx(hdc, 1, 1, NULL); - SetViewportExtEx(hdc, 1, -1, NULL); - Rectangle(hdc, 0, 0, 400, -300); + SetViewportExtEx(hdc, 1, 1, NULL); + Rectangle(hdc, 0, 0, 400, 300); for (i = 0; i < sizeof(records) / sizeof(records[0]); i++) { @@ -129,16 +129,16 @@ hfont = create_font(hdc, 12, test->escapement); hfontold = SelectObject(hdc, hfont); - ExtTextOutW(hdc, 200 + dx, -150 - dy, 0, 0, test->msg, test->len, 0); + ExtTextOutW(hdc, 200 + dx, 150 - dy, 0, 0, test->msg, test->len, 0); SelectObject(hdc, hfontold); DeleteObject(hfont); } /*SetMapMode(hdc, MM_TEXT);*/ if (g_test_mode == TEST_MODE_GDI) - ExtTextOutW(hdc, 10, -10, 0, 0, L"TEST_MODE_GDI", 13, 0); + ExtTextOutW(hdc, 10, 10, 0, 0, L"TEST_MODE_GDI", 13, 0); if (g_test_mode == TEST_MODE_METAFILE) - ExtTextOutW(hdc, 10, -10, 0, 0, L"TEST_MODE_METAFILE", 18, 0); + ExtTextOutW(hdc, 10, 10, 0, 0, L"TEST_MODE_METAFILE", 18, 0); }