Nikolay Sivov : mlang: Move GetStrCodePages() to IMLangFontLink2 and forward to it.
Alexandre Julliard
julliard at winehq.org
Mon Oct 1 13:35:01 CDT 2012
Module: wine
Branch: master
Commit: ea2b24d861bdc8bdafcf97e7c093a54ff96d4962
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ea2b24d861bdc8bdafcf97e7c093a54ff96d4962
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Sun Sep 30 09:44:05 2012 +0400
mlang: Move GetStrCodePages() to IMLangFontLink2 and forward to it.
---
dlls/mlang/mlang.c | 81 +++++++++++++++++++++++++++-------------------------
1 files changed, 42 insertions(+), 39 deletions(-)
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c
index 1450e72..b6bf3ee 100644
--- a/dlls/mlang/mlang.c
+++ b/dlls/mlang/mlang.c
@@ -1837,41 +1837,15 @@ static HRESULT WINAPI fnIMLangFontLink_GetCharCodePages(
static HRESULT WINAPI fnIMLangFontLink_GetStrCodePages(
IMLangFontLink* iface,
- const WCHAR* pszSrc,
- LONG cchSrc,
- DWORD dwPriorityCodePages,
- DWORD* pdwCodePages,
- LONG* pcchCodePages)
+ const WCHAR* src,
+ LONG src_len,
+ DWORD priority_cp,
+ DWORD* codepages,
+ LONG* ret_len)
{
- LONG i;
- DWORD cps = 0;
-
- TRACE("(%p)->%s %d %x %p %p\n", iface, debugstr_wn(pszSrc, cchSrc), cchSrc, dwPriorityCodePages, pdwCodePages, pcchCodePages);
-
- if (pdwCodePages) *pdwCodePages = 0;
- if (pcchCodePages) *pcchCodePages = 0;
-
- if (!pszSrc || !cchSrc || cchSrc < 0)
- return E_INVALIDARG;
-
- for (i = 0; i < cchSrc; i++)
- {
- DWORD cp;
- HRESULT ret;
-
- ret = IMLangFontLink_GetCharCodePages(iface, pszSrc[i], &cp);
- if (ret != S_OK) return E_FAIL;
-
- if (!cps) cps = cp;
- else cps &= cp;
-
- /* FIXME: not tested */
- if (dwPriorityCodePages & cps) break;
- }
-
- if (pdwCodePages) *pdwCodePages = cps;
- if (pcchCodePages) *pcchCodePages = min( i + 1, cchSrc );
- return S_OK;
+ MLang_impl *This = impl_from_IMLangFontLink( iface );
+ return IMLangFontLink2_GetStrCodePages(&This->IMLangFontLink2_iface, src, src_len, priority_cp,
+ codepages, ret_len);
}
static HRESULT WINAPI fnIMLangFontLink_CodePageToCodePages(
@@ -3192,12 +3166,41 @@ static HRESULT WINAPI fnIMLangFontLink2_GetCharCodePages( IMLangFontLink2* iface
return S_OK;
}
-static HRESULT WINAPI fnIMLangFontLink2_GetStrCodePages( IMLangFontLink2* This,
- const WCHAR *pszSrc, LONG cchSrc, DWORD dwPriorityCodePages,
- DWORD *pdwCodePages, LONG *pcchCodePages)
+static HRESULT WINAPI fnIMLangFontLink2_GetStrCodePages( IMLangFontLink2* iface,
+ const WCHAR *src, LONG src_len, DWORD priority_cp,
+ DWORD *codepages, LONG *ret_len)
{
- return fnIMLangFontLink_GetStrCodePages((IMLangFontLink *)This,
- pszSrc, cchSrc, dwPriorityCodePages, pdwCodePages, pcchCodePages);
+ MLang_impl *This = impl_from_IMLangFontLink2(iface);
+ LONG i;
+ DWORD cps = 0;
+
+ TRACE("(%p)->(%s:%d %x %p %p)\n", This, debugstr_wn(src, src_len), src_len, priority_cp,
+ codepages, ret_len);
+
+ if (codepages) *codepages = 0;
+ if (ret_len) *ret_len = 0;
+
+ if (!src || !src_len || src_len < 0)
+ return E_INVALIDARG;
+
+ for (i = 0; i < src_len; i++)
+ {
+ DWORD cp;
+ HRESULT ret;
+
+ ret = IMLangFontLink2_GetCharCodePages(iface, src[i], &cp);
+ if (ret != S_OK) return E_FAIL;
+
+ if (!cps) cps = cp;
+ else cps &= cp;
+
+ /* FIXME: not tested */
+ if (priority_cp & cps) break;
+ }
+
+ if (codepages) *codepages = cps;
+ if (ret_len) *ret_len = min( i + 1, src_len );
+ return S_OK;
}
static HRESULT WINAPI fnIMLangFontLink2_CodePageToCodePages(IMLangFontLink2* iface,
More information about the wine-cvs
mailing list