"Vitaly Lipatov" <[EMAIL PROTECTED]> wrote:

> > That's a completely broken implementation, please do not extend it.
> > It should retrieve the data from the kernel32 locale database (have
> > a look at dlls/kernel/nls).
> I guess it... after I realized my hack.
> Well, will I reimplement EnumDateFormats or anyone?

That should not be too much work, actually that will simplify things
a lot. New implementation would look like the following:

BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA proc, LCID lcid, DWORD flags)
{
    char buf[256];

    switch (flags)
    {
        case DATE_SHORTDATE:
            if (GetLocaleInfoA(lcid, LOCALE_SSHORTDATE, buf, 256))
                proc(buf);
            break;

        case DATE_LONGDATE:
            if (GetLocaleInfoA(lcid, LOCALE_SLONGDATE, buf, 256))
                proc(buf);
            break;

        default:
            FIXME("Unknown date format (%ld)\n", flags);
            SetLastError(ERROR_INVALID_PARAMETER);
            return FALSE;
    }
    return TRUE;
}

Same for EnumDateFormatsW and EnumTimeFormatsA/W. If you could implement
them that would be great.

> > >   - Use DATE_SHORTDATE when dwFlags is 0
> > >   - Ignore LOCALE_USE_CP_ACP bit in dwFlags (I can't find a difference in
> > > Windows behavior with this flag)
> >
> > It would be nice to see a test case for that.
> How I can show test case to you if I compare result of my small program
> between WINE и Win2003?

Just add another small test case to dlls/kernel/tests/locale.c.

> P.S.
> Dmitry, can we talk about some details in russian (in private letter?) My
> English is very ugly and I have

Sure, mail me anytime you wish, just take into account time difference with
Irkutsk (+5).

--
Dmitry.



Reply via email to