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