Module: wine Branch: master Commit: c74a53951d99472fa8a71bc670a3e75992c93064 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c74a53951d99472fa8a71bc670...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Thu Apr 28 08:15:07 2016 +0000
inetcomm: Implement IMimeBody GetProp.
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/inetcomm/mimeole.c | 17 ++++++++++++++--- dlls/inetcomm/tests/mimeole.c | 15 ++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c index 86d03cf..eb6c829 100644 --- a/dlls/inetcomm/mimeole.c +++ b/dlls/inetcomm/mimeole.c @@ -642,7 +642,13 @@ static HRESULT WINAPI MimeBody_GetProp( LPPROPVARIANT pValue) { MimeBody *This = impl_from_IMimeBody(iface); - TRACE("(%p)->(%s, 0x%x, %p)\n", This, pszName, dwFlags, pValue); + header_t *header; + HRESULT hr; + + TRACE("(%p)->(%s, 0x%x, %p)\n", This, debugstr_a(pszName), dwFlags, pValue); + + if(!pszName || !pValue) + return E_INVALIDARG;
if(!strcasecmp(pszName, "att:pri-content-type")) { @@ -652,8 +658,13 @@ static HRESULT WINAPI MimeBody_GetProp( return S_OK; }
- FIXME("stub!\n"); - return E_FAIL; + hr = find_prop(This, pszName, &header); + if(hr == S_OK) + { + PropVariantCopy(pValue, &header->value); + } + + return hr; }
static HRESULT WINAPI MimeBody_SetProp( diff --git a/dlls/inetcomm/tests/mimeole.c b/dlls/inetcomm/tests/mimeole.c index b317116..498bbb7 100644 --- a/dlls/inetcomm/tests/mimeole.c +++ b/dlls/inetcomm/tests/mimeole.c @@ -361,12 +361,21 @@ static void test_MessageSetProp(void) ok(hr == S_OK, "ret %08x\n", hr); PropVariantClear(&prop);
+ hr = IMimeBody_GetProp(body, NULL, 0, &prop); + ok(hr == E_INVALIDARG, "ret %08x\n", hr); + + hr = IMimeBody_GetProp(body, "Thread-Topic", 0, NULL); + ok(hr == E_INVALIDARG, "ret %08x\n", hr); + + hr = IMimeBody_GetProp(body, "Wine-Topic", 0, &prop); + ok(hr == MIME_E_NOT_FOUND, "ret %08x\n", hr); + hr = IMimeBody_GetProp(body, "Thread-Topic", 0, &prop); - todo_wine ok(hr == S_OK, "ret %08x\n", hr); + ok(hr == S_OK, "ret %08x\n", hr); if(hr == S_OK) { - todo_wine ok(prop.vt == VT_LPSTR, "type %d\n", prop.vt); - todo_wine ok(!strcmp(prop.u.pszVal, topic), "got %s\n", prop.u.pszVal); + ok(prop.vt == VT_LPSTR, "type %d\n", prop.vt); + ok(!strcmp(prop.u.pszVal, topic), "got %s\n", prop.u.pszVal); PropVariantClear(&prop); }