Module: wine Branch: master Commit: 869b10b430e6bf27e6f0fd47579be8e4825c0806 URL: http://source.winehq.org/git/wine.git/?a=commit;h=869b10b430e6bf27e6f0fd4757...
Author: Huw Davies huw@codeweavers.com Date: Tue Feb 12 13:36:16 2008 +0000
inetcomm: Implement IMimeMessage_GetTextBody.
---
dlls/inetcomm/mimeole.c | 40 ++++++++++++++++++++++++++++++++++++++-- include/mimeole.idl | 5 +++++ 2 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c index 5628728..b794f5d 100644 --- a/dlls/inetcomm/mimeole.c +++ b/dlls/inetcomm/mimeole.c @@ -2189,8 +2189,44 @@ static HRESULT WINAPI MimeMessage_GetTextBody( IStream **pStream, LPHBODY phBody) { - FIXME("(%p)->(%d, %d, %p, %p)\n", iface, dwTxtType, ietEncoding, pStream, phBody); - return E_NOTIMPL; + HRESULT hr; + HBODY hbody; + FINDBODY find_struct; + IMimeBody *mime_body; + static char text[] = "text"; + static char plain[] = "plain"; + static char html[] = "html"; + + TRACE("(%p)->(%d, %d, %p, %p)\n", iface, dwTxtType, ietEncoding, pStream, phBody); + + find_struct.pszPriType = text; + + switch(dwTxtType) + { + case TXT_PLAIN: + find_struct.pszSubType = plain; + break; + case TXT_HTML: + find_struct.pszSubType = html; + break; + default: + return MIME_E_INVALID_TEXT_TYPE; + } + + hr = IMimeMessage_FindFirst(iface, &find_struct, &hbody); + if(hr != S_OK) + { + TRACE("not found hr %08x\n", hr); + *phBody = NULL; + return hr; + } + + IMimeMessage_BindToObject(iface, hbody, &IID_IMimeBody, (void**)&mime_body); + + IMimeBody_GetData(mime_body, ietEncoding, pStream); + *phBody = hbody; + IMimeBody_Release(mime_body); + return hr; }
static HRESULT WINAPI MimeMessage_SetTextBody( diff --git a/include/mimeole.idl b/include/mimeole.idl index 171f0e9..9d4f45b 100644 --- a/include/mimeole.idl +++ b/include/mimeole.idl @@ -41,6 +41,8 @@ cpp_quote("#define MIME_E_NOT_FOUND 0x800cce05") cpp_quote("#define MIME_E_NO_DATA 0x800cce05") cpp_quote("#define MIME_E_BUFFER_TOO_SMALL 0x800cce06")
+cpp_quote("#define MIME_E_INVALID_TEXT_TYPE 0x800cce38") + cpp_quote("typedef enum tagMIMEPROPID {") cpp_quote(" PID_HDR_NEWSGROUP = 2,") cpp_quote(" PID_HDR_NEWSGROUPS = 3,") @@ -894,6 +896,9 @@ cpp_quote("#endif") WCHAR wchQuote; } WEBPAGEOPTIONS, *LPWEBPAGEOPTIONS;
+ cpp_quote("#define TXT_PLAIN 1") + cpp_quote("#define TXT_HTML 2") + HRESULT CreateWebPage( [in] IStream *pRootStm, [in] LPWEBPAGEOPTIONS pOptions,