inetcomm: Support LPSTR to LPWSTR conversion in GetProp.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
bf02672359
commit
16231678ca
|
@ -1,6 +1,6 @@
|
|||
MODULE = inetcomm.dll
|
||||
IMPORTLIB = inetcomm
|
||||
IMPORTS = uuid oleaut32 ole32 ws2_32 user32 advapi32
|
||||
IMPORTS = uuid propsys oleaut32 ole32 ws2_32 user32 advapi32
|
||||
|
||||
C_SRCS = \
|
||||
imaptransport.c \
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "objbase.h"
|
||||
#include "ole2.h"
|
||||
#include "mimeole.h"
|
||||
#include "propvarutil.h"
|
||||
|
||||
#include "wine/list.h"
|
||||
#include "wine/debug.h"
|
||||
|
@ -785,7 +786,11 @@ static HRESULT WINAPI MimeBody_GetProp(
|
|||
hr = find_prop(This, pszName, &header);
|
||||
if(hr == S_OK)
|
||||
{
|
||||
PropVariantCopy(pValue, &header->value);
|
||||
TRACE("type %d->%d\n", header->value.vt, pValue->vt);
|
||||
|
||||
hr = PropVariantChangeType(pValue, &header->value, 0, pValue->vt);
|
||||
if(FAILED(hr))
|
||||
FIXME("Conversion not currently supported (%d->%d)\n", header->value.vt, pValue->vt);
|
||||
}
|
||||
|
||||
return hr;
|
||||
|
|
|
@ -335,6 +335,7 @@ static void test_CreateMessage(void)
|
|||
static void test_MessageSetProp(void)
|
||||
{
|
||||
static const char topic[] = "wine topic";
|
||||
static const WCHAR topicW[] = {'w','i','n','e',' ','t','o','p','i','c',0};
|
||||
HRESULT hr;
|
||||
IMimeMessage *msg;
|
||||
IMimeBody *body;
|
||||
|
@ -370,6 +371,7 @@ static void test_MessageSetProp(void)
|
|||
hr = IMimeBody_GetProp(body, "Wine-Topic", 0, &prop);
|
||||
ok(hr == MIME_E_NOT_FOUND, "ret %08x\n", hr);
|
||||
|
||||
prop.vt = VT_LPSTR;
|
||||
hr = IMimeBody_GetProp(body, "Thread-Topic", 0, &prop);
|
||||
ok(hr == S_OK, "ret %08x\n", hr);
|
||||
if(hr == S_OK)
|
||||
|
@ -386,6 +388,7 @@ static void test_MessageSetProp(void)
|
|||
ok(hr == S_OK, "ret %08x\n", hr);
|
||||
PropVariantClear(&prop);
|
||||
|
||||
prop.vt = VT_LPSTR;
|
||||
hr = IMimeBody_GetProp(body, PIDTOSTR(PID_HDR_SUBJECT), 0, &prop);
|
||||
ok(hr == S_OK, "ret %08x\n", hr);
|
||||
if(hr == S_OK)
|
||||
|
@ -396,6 +399,7 @@ static void test_MessageSetProp(void)
|
|||
}
|
||||
|
||||
/* Using the name or PID returns the same result. */
|
||||
prop.vt = VT_LPSTR;
|
||||
hr = IMimeBody_GetProp(body, "Subject", 0, &prop);
|
||||
ok(hr == S_OK, "ret %08x\n", hr);
|
||||
if(hr == S_OK)
|
||||
|
@ -405,6 +409,16 @@ static void test_MessageSetProp(void)
|
|||
PropVariantClear(&prop);
|
||||
}
|
||||
|
||||
prop.vt = VT_LPWSTR;
|
||||
hr = IMimeBody_GetProp(body, "Subject", 0, &prop);
|
||||
ok(hr == S_OK, "ret %08x\n", hr);
|
||||
if(hr == S_OK)
|
||||
{
|
||||
ok(prop.vt == VT_LPWSTR, "type %d\n", prop.vt);
|
||||
ok(!lstrcmpW(prop.u.pwszVal, topicW), "got %s\n", wine_dbgstr_w(prop.u.pwszVal));
|
||||
PropVariantClear(&prop);
|
||||
}
|
||||
|
||||
prop.vt = VT_LPSTR;
|
||||
prop.u.pszVal = CoTaskMemAlloc(strlen(topic)+1);
|
||||
strcpy(prop.u.pszVal, topic);
|
||||
|
|
Loading…
Reference in New Issue