From 0a9c2d05f4fe7513573bef97a7e324af2b3bcb79 Mon Sep 17 00:00:00 2001 From: Matthias Kupfer Date: Fri, 6 Mar 2009 22:25:34 +0000 Subject: [PATCH] - temporary fix to show current time format setting in control panel svn path=/trunk/; revision=39897 --- reactos/dll/win32/kernel32/misc/lcformat.c | 66 +++++++++++++++++++++- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/reactos/dll/win32/kernel32/misc/lcformat.c b/reactos/dll/win32/kernel32/misc/lcformat.c index 85e513d82ba..40cb270913c 100644 --- a/reactos/dll/win32/kernel32/misc/lcformat.c +++ b/reactos/dll/win32/kernel32/misc/lcformat.c @@ -1803,9 +1803,69 @@ BOOL WINAPI EnumTimeFormatsA( TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, LCID Locale, */ BOOL WINAPI EnumTimeFormatsW( TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags ) { - FIXME("(%p,%ld,%ld): stub\n", lpTimeFmtEnumProc, Locale, dwFlags); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; + LCID Loc = GetUserDefaultLCID(); + if(!lpTimeFmtEnumProc) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + if(dwFlags) + { + FIXME("Unknown time format (%ld)\n", dwFlags); + } + + switch( Loc ) + { + case 0x00000407: /* (Loc,"de_DE") */ + { + if(!(*lpTimeFmtEnumProc)(L"HH.mm")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"HH:mm:ss")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"H:mm:ss")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"H.mm")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"H.mm'Uhr'")) return TRUE; + return TRUE; + } + + case 0x0000040c: /* (Loc,"fr_FR") */ + case 0x00000c0c: /* (Loc,"fr_CA") */ + { + if(!(*lpTimeFmtEnumProc)(L"H:mm")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"HH:mm:ss")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"H:mm:ss")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"HH.mm")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"HH'h'mm")) return TRUE; + return TRUE; + } + + case 0x00000809: /* (Loc,"en_UK") */ + case 0x00000c09: /* (Loc,"en_AU") */ + case 0x00001409: /* (Loc,"en_NZ") */ + case 0x00001809: /* (Loc,"en_IE") */ + { + if(!(*lpTimeFmtEnumProc)(L"h:mm:ss tt")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"HH:mm:ss")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"H:mm:ss")) return TRUE; + return TRUE; + } + + case 0x00001c09: /* (Loc,"en_ZA") */ + case 0x00002809: /* (Loc,"en_BZ") */ + case 0x00002c09: /* (Loc,"en_TT") */ + { + if(!(*lpTimeFmtEnumProc)(L"h:mm:ss tt")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"hh:mm:ss tt")) return TRUE; + return TRUE; + } + + default: /* default to US style "en_US" */ + { + if(!(*lpTimeFmtEnumProc)(L"h:mm:ss tt")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"hh:mm:ss tt")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"H:mm:ss")) return TRUE; + if(!(*lpTimeFmtEnumProc)(L"HH:mm:ss")) return TRUE; + return TRUE; + } + } } /******************************************************************************