Aric Stewart : mlang: Stub implementation of IMLangFontLink2.

Alexandre Julliard julliard at winehq.org
Thu Jul 17 06:38:20 CDT 2008


Module: wine
Branch: master
Commit: 0d7d5ebf3b0a8c41fa4c37ebf4e3ec84ad9c9b1d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0d7d5ebf3b0a8c41fa4c37ebf4e3ec84ad9c9b1d

Author: Aric Stewart <aric at 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);")




More information about the wine-cvs mailing list