Ilya Shpigor wrote:
> +static INT
> +DATETIME_GetText (DATETIME_INFO *infoPtr, INT count, LPWSTR dst)
> +{
> + WCHAR buf[80];
> + int i;
> +
> + if(!count) 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);
> +}
>
I don't think it's a right way. You probably should use window text
instead updating it on every change,
see how GetWindowText is implemented.
> @@ -674,6 +675,10 @@ static void test_wm_set_get_text(void)
> ret = SendMessage(hWnd, WM_GETTEXT, sizeof(buff), (LPARAM)buff);
> ok(strcmp(buff, a_str) != 0, "Expected text not to change, got %s\n", buff);
>
> + GetSystemTime(&stime);
> + sprintf(time, "%d.%d.%d", stime.wDay, stime.wMonth, stime.wYear);
> + ok(!strcmp(buff, time), "Expected %s, got %s\n", time, buff);
> +
> DestroyWindow(hWnd);
> }
>
Test is definitely wrong. You can't expect DD.MMMM.YYYY pattern here,
it's locale dependent.