Nikolay Sivov : mlang: Mode CodePagesToCodePage() code to IMLangFontLink2 and forward to it.
Alexandre Julliard
julliard at winehq.org
Fri Sep 28 11:39:03 CDT 2012
Module: wine
Branch: master
Commit: 810ceb86c6d40ebb8e7484cb614e7e970f424190
URL: http://source.winehq.org/git/wine.git/?a=commit;h=810ceb86c6d40ebb8e7484cb614e7e970f424190
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu Sep 27 22:48:37 2012 +0400
mlang: Mode CodePagesToCodePage() code to IMLangFontLink2 and forward to it.
---
dlls/mlang/mlang.c | 98 +++++++++++++++++++++++++---------------------------
1 files changed, 47 insertions(+), 51 deletions(-)
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c
index 3d2cde7..325828a 100644
--- a/dlls/mlang/mlang.c
+++ b/dlls/mlang/mlang.c
@@ -1920,54 +1920,13 @@ static HRESULT WINAPI fnIMLangFontLink_CodePageToCodePages(
static HRESULT WINAPI fnIMLangFontLink_CodePagesToCodePage(
IMLangFontLink* iface,
- DWORD dwCodePages,
- UINT uDefaultCodePage,
- UINT* puCodePage)
+ DWORD codepages,
+ UINT def_codepage,
+ UINT* codepage)
{
- MLang_impl *This = impl_from_IMLangFontLink( iface );
- DWORD mask = 0x00000000;
- UINT i;
- CHARSETINFO cs;
- BOOL rc;
-
- TRACE("(%p) scanning 0x%x default page %u\n",This, dwCodePages,
- uDefaultCodePage);
-
- *puCodePage = 0x00000000;
-
- rc = TranslateCharsetInfo((DWORD*)(DWORD_PTR)uDefaultCodePage, &cs,
- TCI_SRCCODEPAGE);
-
- if (rc && (dwCodePages & cs.fs.fsCsb[0]))
- {
- TRACE("Found Default Codepage\n");
- *puCodePage = uDefaultCodePage;
- return S_OK;
- }
-
-
- for (i = 0; i < 32; i++)
- {
-
- mask = 1 << i;
- if (dwCodePages & mask)
- {
- DWORD Csb[2];
- Csb[0] = mask;
- Csb[1] = 0x0;
- rc = TranslateCharsetInfo(Csb, &cs, TCI_SRCFONTSIG);
- if (!rc)
- continue;
-
- TRACE("Falling back to least significant found CodePage %u\n",
- cs.ciACP);
- *puCodePage = cs.ciACP;
- return S_OK;
- }
- }
-
- TRACE("no codepage found\n");
- return E_FAIL;
+ MLang_impl *This = impl_from_IMLangFontLink(iface);
+ return IMLangFontLink2_CodePagesToCodePage(&This->IMLangFontLink2_iface, codepages,
+ def_codepage, codepage);
}
static HRESULT WINAPI fnIMLangFontLink_GetFontCodePages(
@@ -3260,11 +3219,48 @@ static HRESULT WINAPI fnIMLangFontLink2_CodePageToCodePages(IMLangFontLink2* Thi
return E_NOTIMPL;
}
-static HRESULT WINAPI fnIMLangFontLink2_CodePagesToCodePage(IMLangFontLink2* This,
- DWORD dwCodePages, UINT uDefaultCodePage, UINT *puCodePage)
+static HRESULT WINAPI fnIMLangFontLink2_CodePagesToCodePage(IMLangFontLink2* iface,
+ DWORD codepages, UINT def_codepage, UINT *codepage)
{
- FIXME("(%p)->%i %i %p\n",This, dwCodePages, uDefaultCodePage, puCodePage);
- return E_NOTIMPL;
+ MLang_impl *This = impl_from_IMLangFontLink2(iface);
+ DWORD mask = 0;
+ CHARSETINFO cs;
+ BOOL rc;
+ UINT i;
+
+ TRACE("(%p)->(0x%x %u %p)\n", This, codepages, def_codepage, codepage);
+
+ *codepage = 0;
+
+ rc = TranslateCharsetInfo((DWORD*)(DWORD_PTR)def_codepage, &cs, TCI_SRCCODEPAGE);
+ if (rc && (codepages & cs.fs.fsCsb[0]))
+ {
+ TRACE("Found Default Codepage\n");
+ *codepage = def_codepage;
+ return S_OK;
+ }
+
+ for (i = 0; i < 32; i++)
+ {
+ mask = 1 << i;
+ if (codepages & mask)
+ {
+ DWORD Csb[2];
+ Csb[0] = mask;
+ Csb[1] = 0x0;
+ rc = TranslateCharsetInfo(Csb, &cs, TCI_SRCFONTSIG);
+ if (!rc)
+ continue;
+
+ TRACE("Falling back to least significant found CodePage %u\n",
+ cs.ciACP);
+ *codepage = cs.ciACP;
+ return S_OK;
+ }
+ }
+
+ TRACE("no codepage found\n");
+ return E_FAIL;
}
static HRESULT WINAPI fnIMLangFontLink2_GetFontCodePages(IMLangFontLink2 *iface,
More information about the wine-cvs
mailing list