Zhiyi Zhang : comctl32/edit: Implement EM_GETIMESTATUS.

Alexandre Julliard julliard at winehq.org
Tue Aug 16 16:02:12 CDT 2022


Module: wine
Branch: master
Commit: 3b97566f0bd833bf12f8fadd2dc9123e59506005
URL:    https://gitlab.winehq.org/wine/wine/-/commit/3b97566f0bd833bf12f8fadd2dc9123e59506005

Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date:   Fri Aug 12 11:32:54 2022 +0800

comctl32/edit: Implement EM_GETIMESTATUS.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>

---

 dlls/comctl32/edit.c       | 5 ++++-
 dlls/comctl32/tests/edit.c | 8 --------
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/dlls/comctl32/edit.c b/dlls/comctl32/edit.c
index 01212df3525..fbec6972fee 100644
--- a/dlls/comctl32/edit.c
+++ b/dlls/comctl32/edit.c
@@ -25,7 +25,6 @@
  *   - EDITBALLOONTIP structure
  *   - EM_HIDEBALLOONTIP/Edit_HideBalloonTip
  *   - EM_SHOWBALLOONTIP/Edit_ShowBalloonTip
- *   - EM_GETIMESTATUS
  *   - EN_ALIGN_LTR_EC
  *   - EN_ALIGN_RTL_EC
  *   - ES_OEMCONVERT
@@ -4818,6 +4817,10 @@ static LRESULT CALLBACK EDIT_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPAR
         result = 1;
         break;
 
+    case EM_GETIMESTATUS:
+        result = wParam == EMSIS_COMPOSITIONSTRING ? es->ime_status : 1;
+        break;
+
     /* End of the EM_ messages which were in numerical order; what order
      * are these in?  vaguely alphabetical?
      */
diff --git a/dlls/comctl32/tests/edit.c b/dlls/comctl32/tests/edit.c
index de17fb26f93..94d17ba8730 100644
--- a/dlls/comctl32/tests/edit.c
+++ b/dlls/comctl32/tests/edit.c
@@ -3536,26 +3536,22 @@ static void test_ime(void)
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE);
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
-    todo_wine
     ok(lr == EIMES_GETCOMPSTRATONCE, "Got unexpected lr %#Ix.\n", lr);
 
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_CANCELCOMPSTRINFOCUS);
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
-    todo_wine
     ok(lr == EIMES_CANCELCOMPSTRINFOCUS, "Got unexpected lr %#Ix.\n", lr);
 
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_COMPLETECOMPSTRKILLFOCUS);
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
-    todo_wine
     ok(lr == EIMES_COMPLETECOMPSTRKILLFOCUS, "Got unexpected lr %#Ix.\n", lr);
 
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE
                       | EIMES_CANCELCOMPSTRINFOCUS | EIMES_COMPLETECOMPSTRKILLFOCUS);
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
-    todo_wine
     ok(lr == (EIMES_GETCOMPSTRATONCE | EIMES_CANCELCOMPSTRINFOCUS | EIMES_COMPLETECOMPSTRKILLFOCUS),
        "Got unexpected lr %#Ix.\n", lr);
 
@@ -3566,11 +3562,9 @@ static void test_ime(void)
 
     /* Invalid EM_{GET|SET}IMESTATUS status types and flags */
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, 0, 0);
-    todo_wine
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
 
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING + 1, 0);
-    todo_wine
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
 
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, 0, EIMES_GETCOMPSTRATONCE);
@@ -3586,7 +3580,6 @@ static void test_ime(void)
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0xFFFFFFFF);
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
-    todo_wine
     ok(lr == 0xFFFF, "Got unexpected lr %#Ix.\n", lr);
 
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
@@ -3619,7 +3612,6 @@ static void test_ime(void)
     lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE);
     ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
     lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
-    todo_wine
     ok(lr == EIMES_GETCOMPSTRATONCE, "Got unexpected lr %#Ix.\n", lr);
 
     ret = ImmSetCompositionStringA(himc, SCS_SETSTR, "Wine", 4, NULL, 0);




More information about the wine-cvs mailing list