1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/*
* Wine MAPI provider
*
* 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 <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "objbase.h"
#include "mapidefs.h"
#include "mapi.h"
#include "mapix.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(winemapi);
/***********************************************************************
* DllMain (MAPI32.init)
*/
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)\n");
return MAPI_E_NOT_SUPPORTED;
}
ULONG WINAPI MAPIDeleteMail(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_id,
FLAGS flags, ULONG reserved)
{
FIXME("(stub)\n");
return MAPI_E_NOT_SUPPORTED;
}
ULONG WINAPI MAPIDetails(LHANDLE session, ULONG_PTR uiparam, lpMapiRecipDesc recip,
FLAGS flags, ULONG reserved)
{
FIXME("(stub)\n");
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)\n");
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)\n");
return MAPI_E_NOT_SUPPORTED;
}
ULONG WINAPI MAPIResolveName(LHANDLE session, ULONG_PTR uiparam, LPSTR name,
FLAGS flags, ULONG reserved, lpMapiRecipDesc *recip)
{
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,
FLAGS flags, ULONG reserved, LPSTR msg_id)
{
FIXME("(stub)\n");
return MAPI_E_NOT_SUPPORTED;
}
|