Fixed FIXME in EnumTimeFormats32W
Added support for FONTSIGNATURE in GetLocaleInfo32A and updated GetLocaleInfo32W.
This commit is contained in:
parent
a4f829f497
commit
f7e185d2ae
|
@ -107,6 +107,6 @@ LOCVAL(LOCALE_IPOSSYMPRECEDES, "1")
|
||||||
LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
|
LOCVAL(LOCALE_IPOSSEPBYSPACE, "0")
|
||||||
LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
|
LOCVAL(LOCALE_INEGSYMPRECEDES, "1")
|
||||||
LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
|
LOCVAL(LOCALE_INEGSEPBYSPACE, "0")
|
||||||
/* LOCVAL(LOCALE_FONTSIGNATURE, "") */
|
LOCVAL(LOCALE_FONTSIGNATURE,"\xaf\x00\x00\x80\xcb\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x80")
|
||||||
LOCVAL(LOCALE_SISO639LANGNAME,"en")
|
LOCVAL(LOCALE_SISO639LANGNAME,"en")
|
||||||
LOCVAL(LOCALE_SISO3166CTRYNAME,"US")
|
LOCVAL(LOCALE_SISO3166CTRYNAME,"US")
|
||||||
|
|
|
@ -639,6 +639,10 @@ INT16 WINAPI GetLocaleInfo16(LCID lcid,LCTYPE LCType,LPSTR buf,INT16 len)
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* LANG_NEUTRAL is equal to LOCALE_SYSTEM_DEFAULT
|
* LANG_NEUTRAL is equal to LOCALE_SYSTEM_DEFAULT
|
||||||
|
*
|
||||||
|
* MS online documentation states that the string returned is NULL terminated
|
||||||
|
* except for LOCALE_FONTSIGNATURE which "will return a non-NULL
|
||||||
|
* terminated string".
|
||||||
*/
|
*/
|
||||||
INT32 WINAPI GetLocaleInfo32A(LCID lcid,LCTYPE LCType,LPSTR buf,INT32 len)
|
INT32 WINAPI GetLocaleInfo32A(LCID lcid,LCTYPE LCType,LPSTR buf,INT32 len)
|
||||||
{
|
{
|
||||||
|
@ -713,16 +717,24 @@ INT32 WINAPI GetLocaleInfo32A(LCID lcid,LCTYPE LCType,LPSTR buf,INT32 len)
|
||||||
SetLastError(ERROR_INVALID_PARAMETER);
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* if len=0 return only the length, don't touch the buffer*/
|
/* a FONTSIGNATURE is not a string, just 6 DWORDs */
|
||||||
|
if (LCType == LOCALE_FONTSIGNATURE) {
|
||||||
if (len)
|
if (len)
|
||||||
lstrcpyn32A(buf,retString,len);
|
memcpy(buf, retString, (len<=sizeof(FONTSIGNATURE))?len:sizeof(FONTSIGNATURE));
|
||||||
|
return sizeof(FONTSIGNATURE);
|
||||||
|
}
|
||||||
|
/* if len=0 return only the length, don't touch the buffer*/
|
||||||
|
if (len) lstrcpyn32A(buf,retString,len);
|
||||||
return strlen(retString)+1;
|
return strlen(retString)+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* GetLocaleInfo32W [KERNEL32.343]
|
* GetLocaleInfo32W [KERNEL32.343]
|
||||||
*
|
*
|
||||||
|
* NOTES
|
||||||
|
* MS documentation states that len "specifies the size, in bytes (ANSI version)
|
||||||
|
* or characters (Unicode version), of" wbuf. Thus the number returned is
|
||||||
|
* the same between GetLocaleInfo32W and GetLocaleInfo32A.
|
||||||
*/
|
*/
|
||||||
INT32 WINAPI GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len)
|
INT32 WINAPI GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len)
|
||||||
{ WORD wlen;
|
{ WORD wlen;
|
||||||
|
@ -734,10 +746,10 @@ INT32 WINAPI GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len)
|
||||||
}
|
}
|
||||||
|
|
||||||
abuf = (LPSTR)HeapAlloc(GetProcessHeap(),0,len);
|
abuf = (LPSTR)HeapAlloc(GetProcessHeap(),0,len);
|
||||||
wlen = 2 * GetLocaleInfo32A(lcid, LCType, abuf, len);
|
wlen = GetLocaleInfo32A(lcid, LCType, abuf, len);
|
||||||
|
|
||||||
if (wlen && len) /* if len=0 return only the length*/
|
if (wlen && len) /* if len=0 return only the length*/
|
||||||
lstrcpynAtoW(wbuf,abuf,len/2);
|
lstrcpynAtoW(wbuf,abuf,len);
|
||||||
|
|
||||||
HeapFree(GetProcessHeap(),0,abuf);
|
HeapFree(GetProcessHeap(),0,abuf);
|
||||||
return wlen;
|
return wlen;
|
||||||
|
@ -2990,7 +3002,7 @@ BOOL32 WINAPI EnumTimeFormats32A(
|
||||||
BOOL32 WINAPI EnumTimeFormats32W(
|
BOOL32 WINAPI EnumTimeFormats32W(
|
||||||
TIMEFMT_ENUMPROC32W lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags)
|
TIMEFMT_ENUMPROC32W lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags)
|
||||||
{
|
{
|
||||||
FIXME(ole, "(%p,%ld,%ld): stub", lpTimeFmtEnumProc, Locale, dwFlags);
|
FIXME(ole, "(%p,%ld,%ld): stub\n", lpTimeFmtEnumProc, Locale, dwFlags);
|
||||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue