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
|
MODULE = inetcomm.dll
|
||||||
IMPORTLIB = inetcomm
|
IMPORTLIB = inetcomm
|
||||||
IMPORTS = uuid oleaut32 ole32 ws2_32 user32 advapi32
|
IMPORTS = uuid propsys oleaut32 ole32 ws2_32 user32 advapi32
|
||||||
|
|
||||||
C_SRCS = \
|
C_SRCS = \
|
||||||
imaptransport.c \
|
imaptransport.c \
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "objbase.h"
|
#include "objbase.h"
|
||||||
#include "ole2.h"
|
#include "ole2.h"
|
||||||
#include "mimeole.h"
|
#include "mimeole.h"
|
||||||
|
#include "propvarutil.h"
|
||||||
|
|
||||||
#include "wine/list.h"
|
#include "wine/list.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
@ -785,7 +786,11 @@ static HRESULT WINAPI MimeBody_GetProp(
|
||||||
hr = find_prop(This, pszName, &header);
|
hr = find_prop(This, pszName, &header);
|
||||||
if(hr == S_OK)
|
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;
|
return hr;
|
||||||
|
|
|
@ -335,6 +335,7 @@ static void test_CreateMessage(void)
|
||||||
static void test_MessageSetProp(void)
|
static void test_MessageSetProp(void)
|
||||||
{
|
{
|
||||||
static const char topic[] = "wine topic";
|
static const char topic[] = "wine topic";
|
||||||
|
static const WCHAR topicW[] = {'w','i','n','e',' ','t','o','p','i','c',0};
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
IMimeMessage *msg;
|
IMimeMessage *msg;
|
||||||
IMimeBody *body;
|
IMimeBody *body;
|
||||||
|
@ -370,6 +371,7 @@ static void test_MessageSetProp(void)
|
||||||
hr = IMimeBody_GetProp(body, "Wine-Topic", 0, &prop);
|
hr = IMimeBody_GetProp(body, "Wine-Topic", 0, &prop);
|
||||||
ok(hr == MIME_E_NOT_FOUND, "ret %08x\n", hr);
|
ok(hr == MIME_E_NOT_FOUND, "ret %08x\n", hr);
|
||||||
|
|
||||||
|
prop.vt = VT_LPSTR;
|
||||||
hr = IMimeBody_GetProp(body, "Thread-Topic", 0, &prop);
|
hr = IMimeBody_GetProp(body, "Thread-Topic", 0, &prop);
|
||||||
ok(hr == S_OK, "ret %08x\n", hr);
|
ok(hr == S_OK, "ret %08x\n", hr);
|
||||||
if(hr == S_OK)
|
if(hr == S_OK)
|
||||||
|
@ -386,6 +388,7 @@ static void test_MessageSetProp(void)
|
||||||
ok(hr == S_OK, "ret %08x\n", hr);
|
ok(hr == S_OK, "ret %08x\n", hr);
|
||||||
PropVariantClear(&prop);
|
PropVariantClear(&prop);
|
||||||
|
|
||||||
|
prop.vt = VT_LPSTR;
|
||||||
hr = IMimeBody_GetProp(body, PIDTOSTR(PID_HDR_SUBJECT), 0, &prop);
|
hr = IMimeBody_GetProp(body, PIDTOSTR(PID_HDR_SUBJECT), 0, &prop);
|
||||||
ok(hr == S_OK, "ret %08x\n", hr);
|
ok(hr == S_OK, "ret %08x\n", hr);
|
||||||
if(hr == S_OK)
|
if(hr == S_OK)
|
||||||
|
@ -396,6 +399,7 @@ static void test_MessageSetProp(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Using the name or PID returns the same result. */
|
/* Using the name or PID returns the same result. */
|
||||||
|
prop.vt = VT_LPSTR;
|
||||||
hr = IMimeBody_GetProp(body, "Subject", 0, &prop);
|
hr = IMimeBody_GetProp(body, "Subject", 0, &prop);
|
||||||
ok(hr == S_OK, "ret %08x\n", hr);
|
ok(hr == S_OK, "ret %08x\n", hr);
|
||||||
if(hr == S_OK)
|
if(hr == S_OK)
|
||||||
|
@ -405,6 +409,16 @@ static void test_MessageSetProp(void)
|
||||||
PropVariantClear(&prop);
|
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.vt = VT_LPSTR;
|
||||||
prop.u.pszVal = CoTaskMemAlloc(strlen(topic)+1);
|
prop.u.pszVal = CoTaskMemAlloc(strlen(topic)+1);
|
||||||
strcpy(prop.u.pszVal, topic);
|
strcpy(prop.u.pszVal, topic);
|
||||||
|
|
Loading…
Reference in New Issue