- Implement support for TCI_SRCLOCALE.

svn path=/trunk/; revision=56829
This commit is contained in:
James Tabor 2012-07-04 22:44:52 +00:00
parent e985ec1cd4
commit 839071aee8
2 changed files with 15 additions and 0 deletions

View file

@ -952,6 +952,7 @@ extern "C" {
#define TCI_SRCCHARSET 1
#define TCI_SRCCODEPAGE 2
#define TCI_SRCFONTSIG 3
#define TCI_SRCLOCALE 4096
#if (_WIN32_WINNT >= 0x0500)
#define SHADEBLENDCAPS 120
#define COLORMGMTCAPS 121

View file

@ -1785,10 +1785,24 @@ TranslateCharsetInfo(
case TCI_SRCCHARSET:
while (index < MAXTCIINDEX && PtrToUlong(lpSrc) != FONT_tci[index].ciCharset) index++;
break;
case TCI_SRCLOCALE:
{
LCID lCid = (LCID)PtrToUlong(lpSrc);
LOCALESIGNATURE LocSig;
INT Ret = GetLocaleInfoW(lCid, LOCALE_FONTSIGNATURE, (LPWSTR)&LocSig, 0);
if ( GetLocaleInfoW(lCid, LOCALE_FONTSIGNATURE, (LPWSTR)&LocSig, Ret))
{
while (index < MAXTCIINDEX && !(LocSig.lsCsbDefault[0]>>index & 0x0001)) index++;
break;
}
}
default:
GdiSetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
if (index >= MAXTCIINDEX || FONT_tci[index].ciCharset == DEFAULT_CHARSET) return FALSE;
DPRINT("Index %d Charset %d CodePage %d FontSig %d\n",
index,FONT_tci[index].ciCharset,FONT_tci[index].ciACP,FONT_tci[index].fs.fsCsb[0]);
memcpy(lpCs, &FONT_tci[index], sizeof(CHARSETINFO));
return TRUE;
}