Ilya Shpigor : comctl32: Implementation the WM_GETTEXT processing of datetime control.

Alexandre Julliard julliard at winehq.org
Wed Dec 2 10:22:14 CST 2009


Module: wine
Branch: master
Commit: fa92edfa48a0307fbed7a49a03dc55bfd360d31a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fa92edfa48a0307fbed7a49a03dc55bfd360d31a

Author: Ilya Shpigor <shpigor at etersoft.ru>
Date:   Wed Dec  2 11:20:05 2009 +0300

comctl32: Implementation the WM_GETTEXT processing of datetime control.

---

 dlls/comctl32/datetime.c       |   23 +++++++++++++++++++++++
 dlls/comctl32/tests/datetime.c |    5 ++---
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c
index 724cba7..a7b433d 100644
--- a/dlls/comctl32/datetime.c
+++ b/dlls/comctl32/datetime.c
@@ -1365,6 +1365,26 @@ DATETIME_Destroy (DATETIME_INFO *infoPtr)
 }
 
 
+static INT
+DATETIME_GetText (DATETIME_INFO *infoPtr, INT count, LPWSTR dst)
+{
+    WCHAR buf[80];
+    int i;
+
+    if (!dst || (count <= 0)) return 0;
+
+    dst[0] = 0;
+    for (i = 0; i < infoPtr->nrFields; i++)
+    {
+        DATETIME_ReturnTxt(infoPtr, i, buf, sizeof(buf)/sizeof(buf[0]));
+        if ((strlenW(dst) + strlenW(buf)) < count)
+            strcatW(dst, buf);
+        else break;
+    }
+    return strlenW(dst);
+}
+
+
 static LRESULT WINAPI
 DATETIME_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
@@ -1476,6 +1496,9 @@ DATETIME_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
     case WM_GETFONT:
         return (LRESULT) infoPtr->hFont;
 
+    case WM_GETTEXT:
+        return (LRESULT) DATETIME_GetText(infoPtr, wParam, (LPWSTR)lParam);
+
     case WM_SETTEXT:
         return CB_ERR;
 
diff --git a/dlls/comctl32/tests/datetime.c b/dlls/comctl32/tests/datetime.c
index 9218e07..a871930 100644
--- a/dlls/comctl32/tests/datetime.c
+++ b/dlls/comctl32/tests/datetime.c
@@ -197,7 +197,7 @@ static void test_dtm_set_format(void)
     r = SendMessage(hWnd, DTM_SETSYSTEMTIME, 0, (LPARAM)&systime);
     expect(1, r);
     GetWindowText(hWnd, txt, 256);
-    todo_wine ok(strcmp(txt, "hh 12") == 0, "String mismatch (\"%s\" vs \"hh 12\")\n", txt);
+    ok(strcmp(txt, "hh 12") == 0, "String mismatch (\"%s\" vs \"hh 12\")\n", txt);
 
     DestroyWindow(hWnd);
 }
@@ -675,8 +675,7 @@ static void test_wm_set_get_text(void)
     ok(strcmp(buff, a_str) != 0, "Expected text not to change, got %s\n", buff);
 
     GetDateFormat(LOCALE_USER_DEFAULT, 0, NULL, NULL, time, sizeof(time));
-    todo_wine
-        ok(!strcmp(buff, time), "Expected %s, got %s\n", time, buff);
+    ok(!strcmp(buff, time), "Expected %s, got %s\n", time, buff);
 
     DestroyWindow(hWnd);
 }




More information about the wine-cvs mailing list