Huw Davies : inetcomm: Implement IMimeMessage_GetTextBody.
Alexandre Julliard
julliard at winehq.org
Wed Feb 13 10:40:07 CST 2008
Module: wine
Branch: master
Commit: 869b10b430e6bf27e6f0fd47579be8e4825c0806
URL: http://source.winehq.org/git/wine.git/?a=commit;h=869b10b430e6bf27e6f0fd47579be8e4825c0806
Author: Huw Davies <huw at 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,
More information about the wine-cvs
mailing list