Commit 41f763ea authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

gdi32: Add an internal version of GetTextCharsetInfo() that takes a DC pointer.

parent 22202eae
...@@ -407,6 +407,40 @@ DWORD WINAPI GdiGetCodePage( HDC hdc ) ...@@ -407,6 +407,40 @@ DWORD WINAPI GdiGetCodePage( HDC hdc )
} }
/*********************************************************************** /***********************************************************************
* get_text_charset_info
*
* Internal version of GetTextCharsetInfo() that takes a DC pointer.
*/
static UINT get_text_charset_info(DC *dc, FONTSIGNATURE *fs, DWORD flags)
{
UINT ret = DEFAULT_CHARSET;
PHYSDEV dev;
dev = GET_DC_PHYSDEV( dc, pGetTextCharsetInfo );
ret = dev->funcs->pGetTextCharsetInfo( dev, fs, flags );
if (ret == DEFAULT_CHARSET && fs)
memset(fs, 0, sizeof(FONTSIGNATURE));
return ret;
}
/***********************************************************************
* GetTextCharsetInfo (GDI32.@)
*/
UINT WINAPI GetTextCharsetInfo(HDC hdc, FONTSIGNATURE *fs, DWORD flags)
{
UINT ret = DEFAULT_CHARSET;
DC *dc = get_dc_ptr(hdc);
if (dc)
{
ret = get_text_charset_info( dc, fs, flags );
release_dc_ptr( dc );
}
return ret;
}
/***********************************************************************
* FONT_mbtowc * FONT_mbtowc
* *
* Returns a Unicode translation of str using the charset of the * Returns a Unicode translation of str using the charset of the
...@@ -646,7 +680,7 @@ static DWORD get_associated_charset_info(void) ...@@ -646,7 +680,7 @@ static DWORD get_associated_charset_info(void)
static void update_font_code_page( DC *dc, HANDLE font ) static void update_font_code_page( DC *dc, HANDLE font )
{ {
CHARSETINFO csi; CHARSETINFO csi;
int charset = GetTextCharsetInfo( dc->hSelf, NULL, 0 ); int charset = get_text_charset_info( dc, NULL, 0 );
LOGFONTW lf; LOGFONTW lf;
GetObjectW( font, sizeof(lf), &lf ); GetObjectW( font, sizeof(lf), &lf );
...@@ -3689,27 +3723,6 @@ UINT WINAPI GetTextCharset(HDC hdc) ...@@ -3689,27 +3723,6 @@ UINT WINAPI GetTextCharset(HDC hdc)
} }
/*********************************************************************** /***********************************************************************
* GetTextCharsetInfo (GDI32.@)
*/
UINT WINAPI GetTextCharsetInfo(HDC hdc, LPFONTSIGNATURE fs, DWORD flags)
{
UINT ret = DEFAULT_CHARSET;
DC *dc = get_dc_ptr(hdc);
PHYSDEV dev;
if (dc)
{
dev = GET_DC_PHYSDEV( dc, pGetTextCharsetInfo );
ret = dev->funcs->pGetTextCharsetInfo( dev, fs, flags );
release_dc_ptr( dc );
}
if (ret == DEFAULT_CHARSET && fs)
memset(fs, 0, sizeof(FONTSIGNATURE));
return ret;
}
/***********************************************************************
* GdiGetCharDimensions (GDI32.@) * GdiGetCharDimensions (GDI32.@)
* *
* Gets the average width of the characters in the English alphabet. * Gets the average width of the characters in the English alphabet.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment