diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c index e27c5c643fd..f0e186ca1f1 100644 --- a/dlls/inetcomm/mimeole.c +++ b/dlls/inetcomm/mimeole.c @@ -971,10 +971,15 @@ static HRESULT WINAPI MimeBody_GetClassID( CLSID* pClassID) { MimeBody *This = impl_from_IMimeBody(iface); - FIXME("(%p)->(%p) stub\n", This, pClassID); - return E_NOTIMPL; -} + TRACE("(%p)->(%p)\n", This, pClassID); + + if(!pClassID) + return E_INVALIDARG; + + *pClassID = IID_IMimeBody; + return S_OK; +} static HRESULT WINAPI MimeBody_IsDirty( IMimeBody* iface) diff --git a/dlls/inetcomm/tests/mimeole.c b/dlls/inetcomm/tests/mimeole.c index 13b7aba63b7..4915f99012d 100644 --- a/dlls/inetcomm/tests/mimeole.c +++ b/dlls/inetcomm/tests/mimeole.c @@ -197,10 +197,18 @@ static void test_CreateBody(void) MIMEPARAMINFO *param_info; IMimeAllocator *alloc; BODYOFFSETS offsets; + CLSID clsid; hr = CoCreateInstance(&CLSID_IMimeBody, NULL, CLSCTX_INPROC_SERVER, &IID_IMimeBody, (void**)&body); ok(hr == S_OK, "ret %08x\n", hr); + hr = IMimeBody_GetClassID(body, NULL); + ok(hr == E_INVALIDARG, "ret %08x\n", hr); + + hr = IMimeBody_GetClassID(body, &clsid); + ok(hr == S_OK, "ret %08x\n", hr); + ok(IsEqualGUID(&clsid, &IID_IMimeBody), "got %s\n", wine_dbgstr_guid(&clsid)); + hr = IMimeBody_GetHandle(body, &handle); ok(hr == MIME_E_NO_DATA, "ret %08x\n", hr); ok(handle == NULL, "handle %p\n", handle);