From 44784356cc63630abbc063b48127ba1b99a87c1d Mon Sep 17 00:00:00 2001 From: Owen Rudge Date: Wed, 16 Dec 2009 11:22:34 -0600 Subject: [PATCH] winemapi: Add Simple MAPI functions. --- dlls/winemapi/Makefile.in | 3 +- dlls/winemapi/main.c | 72 +++++++++++++++++++++++++++++++++++++ dlls/winemapi/sendmail.c | 71 ++++++++++++++++++++++++++++++++++++ dlls/winemapi/winemapi.spec | 22 ++++++------ 4 files changed, 156 insertions(+), 12 deletions(-) create mode 100644 dlls/winemapi/sendmail.c diff --git a/dlls/winemapi/Makefile.in b/dlls/winemapi/Makefile.in index 6a4ec212c62..7cde1ff8dbb 100644 --- a/dlls/winemapi/Makefile.in +++ b/dlls/winemapi/Makefile.in @@ -6,7 +6,8 @@ MODULE = winemapi.dll IMPORTS = shlwapi shell32 kernel32 C_SRCS = \ - main.c + main.c \ + sendmail.c @MAKE_DLL_RULES@ diff --git a/dlls/winemapi/main.c b/dlls/winemapi/main.c index e4d4e551d57..5b6faef2ec9 100644 --- a/dlls/winemapi/main.c +++ b/dlls/winemapi/main.c @@ -24,6 +24,7 @@ #include "winbase.h" #include "winerror.h" #include "objbase.h" +#include "mapidefs.h" #include "mapi.h" #include "wine/debug.h" @@ -37,3 +38,74 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) TRACE("(%p,%d,%p)\n", hinstDLL, fdwReason, fImpLoad); return TRUE; } + +ULONG WINAPI MAPIAddress(LHANDLE session, ULONG_PTR uiparam, LPSTR caption, + ULONG editfields, LPSTR labels, ULONG nRecips, lpMapiRecipDesc lpRecips, + FLAGS flags, ULONG reserved, LPULONG newRecips, lpMapiRecipDesc * lppNewRecips) +{ + FIXME("(stub)"); + return MAPI_E_NOT_SUPPORTED; +} + +ULONG WINAPI MAPIDeleteMail(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_id, + FLAGS flags, ULONG reserved) +{ + FIXME("(stub)"); + return MAPI_E_NOT_SUPPORTED; +} + +ULONG WINAPI MAPIDetails(LHANDLE session, ULONG_PTR uiparam, lpMapiRecipDesc recip, + FLAGS flags, ULONG reserved) +{ + FIXME("(stub)"); + return MAPI_E_NOT_SUPPORTED; +} + +ULONG WINAPI MAPIFindNext(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_type, + LPSTR seed_msg_id, FLAGS flags, ULONG reserved, LPSTR msg_id) +{ + FIXME("(stub)"); + return MAPI_E_NOT_SUPPORTED; +} + +ULONG WINAPI MAPILogon(ULONG_PTR uiparam, LPSTR profile, LPSTR password, + FLAGS flags, ULONG reserved, LPLHANDLE session) +{ + TRACE("(0x%08lx %s %p 0x%08x 0x%08x %p)\n", uiparam, + debugstr_a(profile), password, flags, reserved, session); + + if (session) + *session = 1; + + return SUCCESS_SUCCESS; +} + +ULONG WINAPI MAPILogoff(LHANDLE session, ULONG_PTR uiparam, FLAGS flags, + ULONG reserved) +{ + TRACE("(0x%08lx 0x%08lx 0x%08x 0x%08x)\n", session, + uiparam, flags, reserved); + + return SUCCESS_SUCCESS; +} + +ULONG WINAPI MAPIReadMail(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_id, + FLAGS flags, ULONG reserved, lpMapiMessage msg) +{ + FIXME("(stub)"); + return MAPI_E_NOT_SUPPORTED; +} + +ULONG WINAPI MAPIResolveName(LHANDLE session, ULONG_PTR uiparam, LPSTR name, + FLAGS flags, ULONG reserved, lpMapiRecipDesc *recip) +{ + FIXME("(stub)"); + return MAPI_E_NOT_SUPPORTED; +} + +ULONG WINAPI MAPISaveMail(LHANDLE session, ULONG_PTR uiparam, lpMapiMessage msg, + FLAGS flags, ULONG reserved, LPSTR msg_id) +{ + FIXME("(stub)"); + return MAPI_E_NOT_SUPPORTED; +} diff --git a/dlls/winemapi/sendmail.c b/dlls/winemapi/sendmail.c new file mode 100644 index 00000000000..3acc2fc281c --- /dev/null +++ b/dlls/winemapi/sendmail.c @@ -0,0 +1,71 @@ +/* + * MAPISendMail implementation + * + * Copyright 2005 Hans Leidekker + * Copyright 2009 Owen Rudge for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" +#include "wine/port.h" + +#include +#include + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "mapi.h" +#include "winreg.h" +#include "shellapi.h" +#include "shlwapi.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(winemapi); + +/************************************************************************** + * MAPISendMail + * + * Send a mail. + * + * PARAMS + * session [I] Handle to a MAPI session. + * uiparam [I] Parent window handle. + * message [I] Pointer to a MAPIMessage structure. + * flags [I] Flags. + * reserved [I] Reserved, pass 0. + * + * RETURNS + * Success: SUCCESS_SUCCESS + * Failure: MAPI_E_FAILURE + * + */ +ULONG WINAPI MAPISendMail(LHANDLE session, ULONG_PTR uiparam, + lpMapiMessage message, FLAGS flags, ULONG reserved) +{ + FIXME("(0x%08x 0x%08lx %p 0x%08x 0x%08x): stub\n", session, uiparam, + message, flags, reserved); + + return MAPI_E_NOT_SUPPORTED; +} + +ULONG WINAPI MAPISendDocuments(ULONG_PTR uiparam, LPSTR delim, LPSTR paths, + LPSTR filenames, ULONG reserved) +{ + return MAPI_E_NOT_SUPPORTED; +} diff --git a/dlls/winemapi/winemapi.spec b/dlls/winemapi/winemapi.spec index 7091f72c060..83de280e994 100644 --- a/dlls/winemapi/winemapi.spec +++ b/dlls/winemapi/winemapi.spec @@ -1,11 +1,11 @@ -@ stub MAPIAddress -@ stub MAPIDeleteMail -@ stub MAPIDetails -@ stub MAPIFindNext -@ stub MAPILogon -@ stub MAPILogoff -@ stub MAPIReadMail -@ stub MAPIResolveName -@ stub MAPISaveMail -@ stub MAPISendDocuments -@ stub MAPISendMail +@ stdcall MAPIAddress(ptr ptr str long str long ptr long long ptr ptr) +@ stdcall MAPIDeleteMail(ptr ptr str long long) +@ stdcall MAPIDetails(ptr ptr ptr long long) +@ stdcall MAPIFindNext(ptr ptr str str long long ptr) +@ stdcall MAPILogon(ptr str str long long ptr) +@ stdcall MAPILogoff(ptr ptr long long) +@ stdcall MAPIReadMail(ptr ptr str long long ptr) +@ stdcall MAPIResolveName(ptr ptr str long long ptr) +@ stdcall MAPISaveMail(ptr ptr ptr long long str) +@ stdcall MAPISendDocuments(ptr str str str long) +@ stdcall MAPISendMail(ptr ptr ptr long long)