forked from Mirrors/wine-wine
mlang: Added IMLangConvertCharset stub.
parent
62569cc4ba
commit
f5edf34c6c
|
@ -47,6 +47,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mlang);
|
||||||
#define CP_UNICODE 1200
|
#define CP_UNICODE 1200
|
||||||
|
|
||||||
static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj);
|
static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj);
|
||||||
|
static HRESULT MLangConvertCharset_create(IUnknown *outer, void **obj);
|
||||||
static HRESULT EnumRfc1766_create(LANGID LangId, IEnumRfc1766 **ppEnum);
|
static HRESULT EnumRfc1766_create(LANGID LangId, IEnumRfc1766 **ppEnum);
|
||||||
|
|
||||||
static HINSTANCE instance;
|
static HINSTANCE instance;
|
||||||
|
@ -1297,6 +1298,7 @@ struct object_creation_info
|
||||||
static const struct object_creation_info object_creation[] =
|
static const struct object_creation_info object_creation[] =
|
||||||
{
|
{
|
||||||
{ &CLSID_CMultiLanguage, "CLSID_CMultiLanguage", MultiLanguage_create },
|
{ &CLSID_CMultiLanguage, "CLSID_CMultiLanguage", MultiLanguage_create },
|
||||||
|
{ &CLSID_CMLangConvertCharset, "CLSID_CMLangConvertCharset", MLangConvertCharset_create }
|
||||||
};
|
};
|
||||||
|
|
||||||
static HRESULT WINAPI MLANGCF_QueryInterface(IClassFactory *iface, REFIID riid, void **ppobj)
|
static HRESULT WINAPI MLANGCF_QueryInterface(IClassFactory *iface, REFIID riid, void **ppobj)
|
||||||
|
@ -2583,13 +2585,13 @@ static HRESULT WINAPI fnIMultiLanguage_GetRfc1766Info(
|
||||||
|
|
||||||
static HRESULT WINAPI fnIMultiLanguage_CreateConvertCharset(
|
static HRESULT WINAPI fnIMultiLanguage_CreateConvertCharset(
|
||||||
IMultiLanguage* iface,
|
IMultiLanguage* iface,
|
||||||
UINT uiSrcCodePage,
|
UINT src_cp,
|
||||||
UINT uiDstCodePage,
|
UINT dst_cp,
|
||||||
DWORD dwProperty,
|
DWORD prop,
|
||||||
IMLangConvertCharset** ppMLangConvertCharset)
|
IMLangConvertCharset** convert_charset)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
MLang_impl *This = impl_from_IMultiLanguage(iface);
|
||||||
return E_NOTIMPL;
|
return IMultiLanguage3_CreateConvertCharset(&This->IMultiLanguage3_iface, src_cp, dst_cp, prop, convert_charset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const IMultiLanguageVtbl IMultiLanguage_vtbl =
|
static const IMultiLanguageVtbl IMultiLanguage_vtbl =
|
||||||
|
@ -2955,13 +2957,19 @@ static HRESULT WINAPI fnIMultiLanguage2_GetRfc1766Info(
|
||||||
|
|
||||||
static HRESULT WINAPI fnIMultiLanguage2_CreateConvertCharset(
|
static HRESULT WINAPI fnIMultiLanguage2_CreateConvertCharset(
|
||||||
IMultiLanguage3* iface,
|
IMultiLanguage3* iface,
|
||||||
UINT uiSrcCodePage,
|
UINT src_cp,
|
||||||
UINT uiDstCodePage,
|
UINT dst_cp,
|
||||||
DWORD dwProperty,
|
DWORD prop,
|
||||||
IMLangConvertCharset** ppMLangConvertCharset)
|
IMLangConvertCharset** convert_charset)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
HRESULT hr;
|
||||||
return E_NOTIMPL;
|
|
||||||
|
TRACE("(%u %u 0x%08x %p)\n", src_cp, dst_cp, prop, convert_charset);
|
||||||
|
|
||||||
|
hr = MLangConvertCharset_create(NULL, (void**)convert_charset);
|
||||||
|
if (FAILED(hr)) return hr;
|
||||||
|
|
||||||
|
return IMLangConvertCharset_Initialize(*convert_charset, src_cp, dst_cp, prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI fnIMultiLanguage2_ConvertStringInIStream(
|
static HRESULT WINAPI fnIMultiLanguage2_ConvertStringInIStream(
|
||||||
|
@ -3552,6 +3560,123 @@ static const IMLangLineBreakConsoleVtbl IMLangLineBreakConsole_vtbl =
|
||||||
fnIMLangLineBreakConsole_BreakLineA
|
fnIMLangLineBreakConsole_BreakLineA
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct convert_charset {
|
||||||
|
IMLangConvertCharset IMLangConvertCharset_iface;
|
||||||
|
LONG ref;
|
||||||
|
};
|
||||||
|
|
||||||
|
static inline struct convert_charset *impl_from_IMLangConvertCharset(IMLangConvertCharset *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, struct convert_charset, IMLangConvertCharset_iface);
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_QueryInterface(IMLangConvertCharset *iface, REFIID riid, void **obj)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
|
||||||
|
TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), obj);
|
||||||
|
|
||||||
|
if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IMLangConvertCharset))
|
||||||
|
{
|
||||||
|
*obj = &This->IMLangConvertCharset_iface;
|
||||||
|
IMLangConvertCharset_AddRef(iface);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
*obj = NULL;
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI MLangConvertCharset_AddRef(IMLangConvertCharset *iface)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
ULONG ref = InterlockedIncrement(&This->ref);
|
||||||
|
TRACE("(%p)->(%u)\n", This, ref);
|
||||||
|
return ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI MLangConvertCharset_Release(IMLangConvertCharset *iface)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
ULONG ref = InterlockedDecrement(&This->ref);
|
||||||
|
|
||||||
|
TRACE("(%p)->(%u)\n", This, ref);
|
||||||
|
if (!ref)
|
||||||
|
{
|
||||||
|
HeapFree(GetProcessHeap(), 0, This);
|
||||||
|
UnlockModule();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_Initialize(IMLangConvertCharset *iface,
|
||||||
|
UINT src_cp, UINT dst_cp, DWORD prop)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
FIXME("(%p)->(%u %u 0x%08x): stub\n", This, src_cp, dst_cp, prop);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_GetSourceCodePage(IMLangConvertCharset *iface, UINT *src_cp)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
FIXME("(%p)->(%p): stub\n", This, src_cp);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_GetDestinationCodePage(IMLangConvertCharset *iface, UINT *dst_cp)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
FIXME("(%p)->(%p): stub\n", This, dst_cp);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_GetProperty(IMLangConvertCharset *iface, DWORD *prop)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
FIXME("(%p)->(%p): stub\n", This, prop);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_DoConversion(IMLangConvertCharset *iface, BYTE *src,
|
||||||
|
UINT *src_size, BYTE *dest, UINT *dest_size)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
FIXME("(%p)->(%p %p %p %p): stub\n", This, src, src_size, dest, dest_size);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_DoConversionToUnicode(IMLangConvertCharset *iface, CHAR *src,
|
||||||
|
UINT *src_size, WCHAR *dest, UINT *dest_size)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
FIXME("(%p)->(%p %p %p %p): stub\n", This, src, src_size, dest, dest_size);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI MLangConvertCharset_DoConversionFromUnicode(IMLangConvertCharset *iface,
|
||||||
|
WCHAR *src, UINT *src_size, CHAR *dest, UINT *dest_size)
|
||||||
|
{
|
||||||
|
struct convert_charset *This = impl_from_IMLangConvertCharset(iface);
|
||||||
|
FIXME("(%p)->(%p %p %p %p): stub\n", This, src, src_size, dest, dest_size);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const IMLangConvertCharsetVtbl MLangConvertCharsetVtbl =
|
||||||
|
{
|
||||||
|
MLangConvertCharset_QueryInterface,
|
||||||
|
MLangConvertCharset_AddRef,
|
||||||
|
MLangConvertCharset_Release,
|
||||||
|
MLangConvertCharset_Initialize,
|
||||||
|
MLangConvertCharset_GetSourceCodePage,
|
||||||
|
MLangConvertCharset_GetDestinationCodePage,
|
||||||
|
MLangConvertCharset_GetProperty,
|
||||||
|
MLangConvertCharset_DoConversion,
|
||||||
|
MLangConvertCharset_DoConversionToUnicode,
|
||||||
|
MLangConvertCharset_DoConversionFromUnicode
|
||||||
|
};
|
||||||
|
|
||||||
static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj)
|
static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj)
|
||||||
{
|
{
|
||||||
MLang_impl *mlang;
|
MLang_impl *mlang;
|
||||||
|
@ -3585,6 +3710,28 @@ static HRESULT MultiLanguage_create(IUnknown *pUnkOuter, LPVOID *ppObj)
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static HRESULT MLangConvertCharset_create(IUnknown *outer, void **obj)
|
||||||
|
{
|
||||||
|
struct convert_charset *convert;
|
||||||
|
|
||||||
|
if (outer)
|
||||||
|
return CLASS_E_NOAGGREGATION;
|
||||||
|
|
||||||
|
*obj = NULL;
|
||||||
|
|
||||||
|
convert = HeapAlloc(GetProcessHeap(), 0, sizeof(struct convert_charset));
|
||||||
|
if (!convert) return E_OUTOFMEMORY;
|
||||||
|
|
||||||
|
convert->IMLangConvertCharset_iface.lpVtbl = &MLangConvertCharsetVtbl;
|
||||||
|
convert->ref = 1;
|
||||||
|
|
||||||
|
*obj = &convert->IMLangConvertCharset_iface;
|
||||||
|
|
||||||
|
LockModule();
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
HRESULT WINAPI DllCanUnloadNow(void)
|
HRESULT WINAPI DllCanUnloadNow(void)
|
||||||
|
|
Loading…
Reference in New Issue