Module: wine Branch: master Commit: 0d7d5ebf3b0a8c41fa4c37ebf4e3ec84ad9c9b1d URL: http://source.winehq.org/git/wine.git/?a=commit;h=0d7d5ebf3b0a8c41fa4c37ebf4...
Author: Aric Stewart aric@codeweavers.com Date: Wed Jul 16 14:01:08 2008 +0900
mlang: Stub implementation of IMLangFontLink2.
---
dlls/mlang/mlang.c | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++ include/mlang.idl | 48 +++++++++++++++++++ 2 files changed, 178 insertions(+), 0 deletions(-)
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c index 8bc11b5..0920178 100644 --- a/dlls/mlang/mlang.c +++ b/dlls/mlang/mlang.c @@ -961,6 +961,7 @@ typedef struct tagMLang_impl const IMLangFontLinkVtbl *vtbl_IMLangFontLink; const IMultiLanguageVtbl *vtbl_IMultiLanguage; const IMultiLanguage3Vtbl *vtbl_IMultiLanguage3; + const IMLangFontLink2Vtbl *vtbl_IMLangFontLink2; LONG ref; DWORD total_cp, total_scripts; } MLang_impl; @@ -1002,6 +1003,14 @@ static HRESULT WINAPI MLang_QueryInterface( return S_OK; }
+ if (IsEqualGUID(riid, &IID_IMLangFontLink2)) + { + MLang_AddRef(This); + TRACE("Returning IID_IMLangFontLink2 %p ref = %d\n", This, This->ref); + *ppvObject = &(This->vtbl_IMLangFontLink2); + return S_OK; + } + if (IsEqualGUID(riid, &IID_IMultiLanguage) ) { MLang_AddRef(This); @@ -2568,6 +2577,126 @@ static const IMultiLanguage3Vtbl IMultiLanguage3_vtbl = fnIMultiLanguage3_DetectOutboundCodePageInIStream };
+/******************************************************************************/ +static HRESULT WINAPI fnIMLangFontLink2_QueryInterface( + IMLangFontLink2 * iface, + REFIID riid, + void** ppvObject) +{ + ICOM_THIS_MULTI(MLang_impl, vtbl_IMLangFontLink2, iface); + return MLang_QueryInterface( This, riid, ppvObject ); +} + +static ULONG WINAPI fnIMLangFontLink2_AddRef( IMLangFontLink2* iface ) +{ + ICOM_THIS_MULTI(MLang_impl, vtbl_IMLangFontLink2, iface); + return MLang_AddRef( This ); +} + +static ULONG WINAPI fnIMLangFontLink2_Release( IMLangFontLink2* iface ) +{ + ICOM_THIS_MULTI(MLang_impl, vtbl_IMLangFontLink2, iface); + return MLang_Release( This ); +} + +static HRESULT WINAPI fnIMLangFontLink2_GetCharCodePages( IMLangFontLink2* This, + WCHAR chSrc, DWORD *pdwCodePages) +{ + FIXME("(%p)->%s %p\n",This, debugstr_wn(&chSrc,1),pdwCodePages); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_GetStrCodePages( IMLangFontLink2* This, + const WCHAR *pszSrc, long cchSrc, DWORD dwPriorityCodePages, + DWORD *pdwCodePages, long *pcchCodePages) +{ + FIXME("(%p)->%s %li %x %p %p\n",This, debugstr_wn(pszSrc,cchSrc),cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_CodePageToCodePages(IMLangFontLink2* This, + UINT uCodePage, + DWORD *pdwCodePages) +{ + FIXME("(%p)->%i %p\n",This, uCodePage, pdwCodePages); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_CodePagesToCodePage(IMLangFontLink2* This, + DWORD dwCodePages, UINT uDefaultCodePage, UINT *puCodePage) +{ + FIXME("(%p)->%i %i %p\n",This, dwCodePages, uDefaultCodePage, puCodePage); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_GetFontCodePages(IMLangFontLink2* This, + HDC hDC, HFONT hFont, DWORD *pdwCodePages) +{ + FIXME("(%p)->%p %p %p\n",This, hDC, hFont, pdwCodePages); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_ReleaseFont(IMLangFontLink2* This, + HFONT hFont) +{ + FIXME("(%p)->%p\n",This, hFont); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_ResetFontMapping(IMLangFontLink2* This) +{ + FIXME("(%p)->\n",This); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_MapFont(IMLangFontLink2* This, + HDC hDC, DWORD dwCodePages, WCHAR chSrc, HFONT *pFont) +{ + FIXME("(%p)->%p %i %s %p\n",This, hDC, dwCodePages, debugstr_wn(&chSrc,1), pFont); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_GetFontUnicodeRanges(IMLangFontLink2* This, + HDC hDC, UINT *puiRanges, UNICODERANGE *pUranges) +{ + FIXME("(%p)->%p %p %p\n",This, hDC, puiRanges, pUranges); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_GetScriptFontInfo(IMLangFontLink2* This, + SCRIPT_ID sid, DWORD dwFlags, UINT *puiFonts, + SCRIPTFONTINFO *pScriptFont) +{ + FIXME("(%p)->%i %i %p %p\n",This, sid, dwFlags, puiFonts, pScriptFont); + return E_NOTIMPL; +} + +static HRESULT WINAPI fnIMLangFontLink2_CodePageToScriptID(IMLangFontLink2* This, + UINT uiCodePage, SCRIPT_ID *pSid) +{ + FIXME("(%p)->%i %p\n",This, uiCodePage, pSid); + return E_NOTIMPL; +} + +static const IMLangFontLink2Vtbl IMLangFontLink2_vtbl = +{ + fnIMLangFontLink2_QueryInterface, + fnIMLangFontLink2_AddRef, + fnIMLangFontLink2_Release, + fnIMLangFontLink2_GetCharCodePages, + fnIMLangFontLink2_GetStrCodePages, + fnIMLangFontLink2_CodePageToCodePages, + fnIMLangFontLink2_CodePagesToCodePage, + fnIMLangFontLink2_GetFontCodePages, + fnIMLangFontLink2_ReleaseFont, + fnIMLangFontLink2_ResetFontMapping, + fnIMLangFontLink2_MapFont, + fnIMLangFontLink2_GetFontUnicodeRanges, + fnIMLangFontLink2_GetScriptFontInfo, + fnIMLangFontLink2_CodePageToScriptID +}; + + static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj) { MLang_impl *mlang; @@ -2582,6 +2711,7 @@ static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj) mlang->vtbl_IMLangFontLink = &IMLangFontLink_vtbl; mlang->vtbl_IMultiLanguage = &IMultiLanguage_vtbl; mlang->vtbl_IMultiLanguage3 = &IMultiLanguage3_vtbl; + mlang->vtbl_IMLangFontLink2 = &IMLangFontLink2_vtbl;
mlang->total_cp = 0; for (i = 0; i < sizeof(mlang_data)/sizeof(mlang_data[0]); i++) diff --git a/include/mlang.idl b/include/mlang.idl index c76826a..fabcc59 100644 --- a/include/mlang.idl +++ b/include/mlang.idl @@ -176,6 +176,53 @@ interface IEnumScript : IUnknown
[ object, + uuid(dccfc162-2b38-11d2-b7ec-00c04f8f5d9a), + pointer_default(unique) +] +interface IMLangFontLink2 : IMLangCodePages +{ + typedef struct tagUNICODERANGE + { + WCHAR wcFrom; + WCHAR wcTo; + } UNICODERANGE; + + typedef [unique] IMLangFontLink2 *PMLANGFONTLINK2; + + HRESULT GetFontCodePages( + [in] HDC hDC, + [in] HFONT hFont, + [out] DWORD *pdwCodePages ); + + HRESULT ReleaseFont( + [in] HFONT hFont); + + HRESULT ResetFontMapping(); + + HRESULT MapFont( + [in] HDC hDC, + [in] DWORD dwCodePages, + [in] WCHAR chSrc, + [out] HFONT *pFont); + + HRESULT GetFontUnicodeRanges( + [in] HDC hDC, + [in,out] UINT *puiRanges, + [out] UNICODERANGE* pUranges); + + HRESULT GetScriptFontInfo( + [in] SCRIPT_ID sid, + [in] DWORD dwFlags, + [in,out] UINT *puiFonts, + [out] SCRIPTFONTINFO* pScriptFont); + + HRESULT CodePageToScriptID( + [in] UINT uiCodePage, + [out] SCRIPT_ID *pSid); +} + +[ + object, uuid(275c23e3-3747-11d0-9fea-00aa003f8646), pointer_default(unique) ] @@ -595,6 +642,7 @@ coclass CMultiLanguage interface IMLangCodePages; interface IMLangFontLink; /* interface IMLangLineBreakConsole; */ + interface IMLangFontLink2; }
cpp_quote("STDAPI LcidToRfc1766A(LCID, LPSTR, INT);")