Index: controls/appswitch.c =================================================================== --- controls/appswitch.c (révision 64131) +++ controls/appswitch.c (copie de travail) @@ -557,7 +557,8 @@ NtUserSetWindowFNID(hWnd, FNID_DESTROY); return 0; } - return DefWindowProcW(hWnd, uMsg, wParam, lParam); + return unicode ? DefWindowProcW(hWnd, uMsg, wParam, lParam) : + DefWindowProcA(hWnd, uMsg, wParam, lParam); } LRESULT WINAPI SwitchWndProcA(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) Index: windows/defwnd.c =================================================================== --- windows/defwnd.c (révision 64131) +++ windows/defwnd.c (copie de travail) @@ -353,7 +353,7 @@ SetForegroundWindow(hwnd); if (pWnd->style & WS_MINIMIZE) { - PostMessage(hwnd, WM_SYSCOMMAND, SC_RESTORE, 0); + PostMessageW(hwnd, WM_SYSCOMMAND, SC_RESTORE, 0); } } } @@ -1461,7 +1461,7 @@ /* FIXME: this is not 100% correct */ if(gpsi->dwSRVIFlags & SRVINFO_APIHOOK) { - SendMessage(hWnd, WM_NCUAHDRAWCAPTION,0,0); + SendMessageA(hWnd, WM_NCUAHDRAWCAPTION,0,0); } else { @@ -1472,6 +1472,14 @@ break; } + case WM_IME_CHAR: + { + if (HIBYTE(wParam)) + PostMessageA(hWnd, WM_CHAR, HIBYTE(wParam), lParam); + PostMessageA(hWnd, WM_CHAR, LOBYTE(wParam), lParam); + break; + } + case WM_IME_KEYDOWN: { Result = PostMessageA(hWnd, WM_KEYDOWN, wParam, lParam); @@ -1484,14 +1492,6 @@ break; } - case WM_IME_CHAR: - { - if (HIBYTE(wParam)) - PostMessageA(hWnd, WM_CHAR, HIBYTE(wParam), lParam); - PostMessageA(hWnd, WM_CHAR, LOBYTE(wParam), lParam); - break; - } - case WM_IME_STARTCOMPOSITION: case WM_IME_COMPOSITION: case WM_IME_ENDCOMPOSITION: @@ -1633,7 +1633,7 @@ /* FIXME: this is not 100% correct */ if(gpsi->dwSRVIFlags & SRVINFO_APIHOOK) { - SendMessage(hWnd, WM_NCUAHDRAWCAPTION,0,0); + SendMessageW(hWnd, WM_NCUAHDRAWCAPTION,0,0); } else {