winemapi: Implement MAPIResolveName.
Alexander Morozov
amorozov at etersoft.ru
Mon Jan 31 08:33:12 CST 2011
-------------- next part --------------
From bb8d2deba6b18e1eb6bf8bfc03edf1554552b6e6 Mon Sep 17 00:00:00 2001
From: Alexander Morozov <amorozov at etersoft.ru>
Date: Thu, 13 Jan 2011 16:56:24 +0300
Subject: [PATCH 1/2] winemapi: Implement MAPIResolveName.
---
dlls/winemapi/Makefile.in | 2 +-
dlls/winemapi/main.c | 28 ++++++++++++++++++++++++++--
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/dlls/winemapi/Makefile.in b/dlls/winemapi/Makefile.in
index 0c1ff6e..0c9c8a6 100644
--- a/dlls/winemapi/Makefile.in
+++ b/dlls/winemapi/Makefile.in
@@ -1,5 +1,5 @@
MODULE = winemapi.dll
-IMPORTS = shlwapi shell32
+IMPORTS = shlwapi shell32 mapi32
C_SRCS = \
main.c \
diff --git a/dlls/winemapi/main.c b/dlls/winemapi/main.c
index a954ab7..0627aa2 100644
--- a/dlls/winemapi/main.c
+++ b/dlls/winemapi/main.c
@@ -26,6 +26,7 @@
#include "objbase.h"
#include "mapidefs.h"
#include "mapi.h"
+#include "mapix.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(winemapi);
@@ -99,8 +100,31 @@ ULONG WINAPI MAPIReadMail(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_id,
ULONG WINAPI MAPIResolveName(LHANDLE session, ULONG_PTR uiparam, LPSTR name,
FLAGS flags, ULONG reserved, lpMapiRecipDesc *recip)
{
- FIXME("(stub)\n");
- return MAPI_E_NOT_SUPPORTED;
+ static const char smtp[] = "SMTP:";
+
+ SCODE scode;
+ char *p;
+
+ TRACE("(0x%08lx 0x%08lx %s 0x%08x 0x%08x %p)\n", session, uiparam,
+ debugstr_a(name), flags, reserved, recip);
+
+ if (!name || !strlen(name))
+ return MAPI_E_FAILURE;
+
+ scode = MAPIAllocateBuffer(sizeof(**recip) + sizeof(smtp) + strlen(name),
+ (LPVOID *)recip);
+ if (scode != S_OK)
+ return MAPI_E_INSUFFICIENT_MEMORY;
+
+ ZeroMemory(*recip, sizeof(**recip));
+ p = (char *)(*recip + 1);
+ strcpy(p, smtp);
+ strcpy(p + sizeof(smtp) - 1, name);
+
+ (*recip)->ulRecipClass = MAPI_TO;
+ (*recip)->lpszName = p + sizeof(smtp) - 1;
+ (*recip)->lpszAddress = p;
+ return SUCCESS_SUCCESS;
}
ULONG WINAPI MAPISaveMail(LHANDLE session, ULONG_PTR uiparam, lpMapiMessage msg,
--
1.7.3.5
More information about the wine-patches
mailing list