Documentation for TranslateCharsetInfo.
diff --git a/include/wingdi.h b/include/wingdi.h
index 68216c09b..a9d5be7 100644
--- a/include/wingdi.h
+++ b/include/wingdi.h
@@ -394,6 +394,18 @@
DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
+/*
+ * The FONTSIGNATURE tells which Unicode ranges and which code pages
+ * have glyphs in a font.
+ *
+ * fsUsb 128-bit bitmap. The most significant bits are 10 (magic number).
+ * The remaining 126 bits map the Unicode ISO 10646 subranges
+ * for which the font provides glyphs.
+ *
+ * fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
+ * which the font provides glyphs. The high 32 bits are for
+ * non Windows codepages.
+ */
typedef struct
{
DWORD fsUsb[4];
@@ -402,11 +414,17 @@
typedef struct
{
- UINT32 ciCharset;
- UINT32 ciACP;
+ UINT32 ciCharset; /* character set */
+ UINT32 ciACP; /* ANSI code page */
FONTSIGNATURE fs;
} CHARSETINFO,*LPCHARSETINFO;
+/* Flags for TranslateCharsetInfo */
+/* FIXME */
+#define TCI_SRCCHARSET
+#define TCI_SRCCODEPAGE
+#define TCI_SRCFONTSIG
+
/* Flags for ModifyWorldTransform */
#define MWT_IDENTITY 1
#define MWT_LEFTMULTIPLY 2
diff --git a/objects/font.c b/objects/font.c
index b4e61aa..2795375 100644
--- a/objects/font.c
+++ b/objects/font.c
@@ -1339,10 +1339,32 @@
}
/*************************************************************************
- * TranslateCharSetInfo [GDI32.382]
+ * TranslateCharsetInfo [GDI32.382]
+ *
+ * Fills a CHARSETINFO structure for a character set, code page, or
+ * font. This allows making the correspondance between different labelings
+ * (character set, Windows, ANSI, and OEM codepages, and Unicode ranges)
+ * of the same encoding.
+ *
+ * Only one codepage will be set in lpCs->fs. If TCI_SRCFONTSIG is used,
+ * only one codepage should be set in *lpSrc.
+ *
+ * RETURNS
+ * TRUE on success, FALSE on failure.
+ *
+ * BUGS
+ * Not implemented.
*/
-BOOL32 WINAPI TranslateCharSetInfo(LPDWORD lpSrc,LPCHARSETINFO lpCs,DWORD dwFlags) {
- FIXME(font,"(%p,%p,0x%08lx), stub.\n",lpSrc,lpCs,dwFlags);
+BOOL32 WINAPI TranslateCharsetInfo(
+ LPDWORD lpSrc, /*
+ if flags == TCI_SRCFONTSIG: pointer to fsCsb of a FONTSIGNATURE
+ if flags == TCI_SRCCHARSET: a character set value
+ if flags == TCI_SRCCODEPAGE: a code page value
+ */
+ LPCHARSETINFO lpCs, /* structure to receive charset information */
+ DWORD flags /* determines interpretation of lpSrc */
+) {
+ FIXME(font,"(%p,%p,0x%08lx), stub.\n",lpSrc,lpCs, flags);
return TRUE;
}
diff --git a/relay32/gdi32.spec b/relay32/gdi32.spec
index 59e66c6..b58f73e 100644
--- a/relay32/gdi32.spec
+++ b/relay32/gdi32.spec
@@ -385,7 +385,7 @@
379 stub GdiWinWatchOpen
380 stub GetGlyphOutlineWow
381 stdcall GetTextCharsetInfo(long ptr long) GetTextCharsetInfo
-382 stdcall TranslateCharsetInfo(ptr ptr long) TranslateCharSetInfo
+382 stdcall TranslateCharsetInfo(ptr ptr long) TranslateCharsetInfo
383 stub UpdateICMRegKeyA
384 stub UpdateICMRegKeyW
385 stub gdiPlaySpoolStream