From 8b68a6296c56b8df5bad7a3736f268c8920ddb6d Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Wed, 10 Sep 2008 14:38:11 +0100 Subject: [PATCH] inetcomm: Implement IMimeInternational_GetDefaultCharset. --- dlls/inetcomm/mimeintl.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/dlls/inetcomm/mimeintl.c b/dlls/inetcomm/mimeintl.c index 5258e5010a4..f314740d5c5 100644 --- a/dlls/inetcomm/mimeintl.c +++ b/dlls/inetcomm/mimeintl.c @@ -54,6 +54,7 @@ typedef struct struct list charsets; LONG next_charset_handle; + HCHARSET default_charset; } internat; static inline internat *impl_from_IMimeInternational( IMimeInternational *iface ) @@ -116,8 +117,21 @@ static HRESULT WINAPI MimeInternat_SetDefaultCharset(IMimeInternational *iface, static HRESULT WINAPI MimeInternat_GetDefaultCharset(IMimeInternational *iface, LPHCHARSET phCharset) { - FIXME("stub\n"); - return E_NOTIMPL; + internat *This = impl_from_IMimeInternational( iface ); + HRESULT hr = S_OK; + + TRACE("(%p)->(%p)\n", iface, phCharset); + + if(This->default_charset == NULL) + { + HCHARSET hcs; + hr = IMimeInternational_GetCodePageCharset(iface, GetACP(), CHARSET_BODY, &hcs); + if(SUCCEEDED(hr)) + InterlockedCompareExchangePointer(&This->default_charset, hcs, NULL); + } + *phCharset = This->default_charset; + + return hr; } static HRESULT mlang_getcodepageinfo(UINT cp, MIMECPINFO *mlang_cp_info) @@ -389,6 +403,7 @@ HRESULT MimeInternational_Construct(IMimeInternational **internat) list_init(&global_internat->charsets); global_internat->next_charset_handle = 0; + global_internat->default_charset = NULL; *internat = (IMimeInternational*)&global_internat->lpVtbl;