Reactos
at master 245 lines 6.8 kB view raw
1/* 2 * Copyright (C) 2000 Francois Gouget 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19#ifndef MAPI_H 20#define MAPI_H 21 22#ifdef __cplusplus 23extern "C" { 24#endif 25 26/* Some types */ 27 28#ifndef __LHANDLE 29#define __LHANDLE 30typedef ULONG_PTR LHANDLE, *LPLHANDLE; 31#endif 32#define lhSessionNull ((LHANDLE)0) 33 34#ifndef WINE_FLAGS_DEFINED 35#define WINE_FLAGS_DEFINED 36typedef ULONG FLAGS; 37#endif 38typedef ULONG *LPULONG; 39 40typedef struct 41{ 42 ULONG ulReserved; 43 ULONG flFlags; 44 ULONG nPosition; 45 LPSTR lpszPathName; 46 LPSTR lpszFileName; 47 LPVOID lpFileType; 48} MapiFileDesc, *lpMapiFileDesc; 49 50typedef struct 51{ 52 ULONG ulReserved; 53 ULONG flFlags; 54 ULONG nPosition; 55 PWSTR lpszPathName; 56 PWSTR lpszFileName; 57 PVOID lpFileType; 58} MapiFileDescW, *lpMapiFileDescW; 59 60#ifndef MAPI_ORIG 61#define MAPI_ORIG 0 62#define MAPI_TO 1 63#define MAPI_CC 2 64#define MAPI_BCC 3 65#endif 66 67typedef struct 68{ 69 ULONG ulReserved; 70 ULONG ulRecipClass; 71 LPSTR lpszName; 72 LPSTR lpszAddress; 73 ULONG ulEIDSize; 74 LPVOID lpEntryID; 75} MapiRecipDesc, *lpMapiRecipDesc; 76 77typedef struct 78{ 79 ULONG ulReserved; 80 ULONG ulRecipClass; 81 PWSTR lpszName; 82 PWSTR lpszAddress; 83 ULONG ulEIDSize; 84 PVOID lpEntryID; 85} MapiRecipDescW, *lpMapiRecipDescW; 86 87typedef struct 88{ 89 ULONG ulReserved; 90 LPSTR lpszSubject; 91 LPSTR lpszNoteText; 92 LPSTR lpszMessageType; 93 LPSTR lpszDateReceived; 94 LPSTR lpszConversationID; 95 FLAGS flFlags; 96 lpMapiRecipDesc lpOriginator; 97 ULONG nRecipCount; 98 lpMapiRecipDesc lpRecips; 99 ULONG nFileCount; 100 lpMapiFileDesc lpFiles; 101} MapiMessage, *lpMapiMessage; 102 103typedef struct 104{ 105 ULONG ulReserved; 106 PWSTR lpszSubject; 107 PWSTR lpszNoteText; 108 PWSTR lpszMessageType; 109 PWSTR lpszDateReceived; 110 PWSTR lpszConversationID; 111 FLAGS flFlags; 112 lpMapiRecipDescW lpOriginator; 113 ULONG nRecipCount; 114 lpMapiRecipDescW lpRecips; 115 ULONG nFileCount; 116 lpMapiFileDescW lpFiles; 117} MapiMessageW, *lpMapiMessageW; 118 119/* Error codes */ 120 121#ifndef SUCCESS_SUCCESS 122#define SUCCESS_SUCCESS 0 123#endif 124 125#define MAPI_USER_ABORT 1 126#define MAPI_E_USER_ABORT MAPI_USER_ABORT 127#define MAPI_E_FAILURE 2 128#define MAPI_E_LOGON_FAILURE 3 129#define MAPI_E_LOGIN_FAILURE MAPI_E_LOGON_FAILURE 130#define MAPI_E_DISK_FULL 4 131#define MAPI_E_INSUFFICIENT_MEMORY 5 132#define MAPI_E_ACCESS_DENIED 6 133#define MAPI_E_TOO_MANY_SESSIONS 8 134#define MAPI_E_TOO_MANY_FILES 9 135#define MAPI_E_TOO_MANY_RECIPIENTS 10 136#define MAPI_E_ATTACHMENT_NOT_FOUND 11 137#define MAPI_E_ATTACHMENT_OPEN_FAILURE 12 138#define MAPI_E_ATTACHMENT_WRITE_FAILURE 13 139#define MAPI_E_UNKNOWN_RECIPIENT 14 140#define MAPI_E_BAD_RECIPTYPE 15 141#define MAPI_E_NO_MESSAGES 16 142#define MAPI_E_INVALID_MESSAGE 17 143#define MAPI_E_TEXT_TOO_LARGE 18 144#define MAPI_E_INVALID_SESSION 19 145#define MAPI_E_TYPE_NOT_SUPPORTED 20 146#define MAPI_E_AMBIGUOUS_RECIPIENT 21 147#define MAPI_E_AMBIG_RECIP MAPI_E_AMBIGUOUS_RECIPIENT 148#define MAPI_E_MESSAGE_IN_USE 22 149#define MAPI_E_NETWORK_FAILURE 23 150#define MAPI_E_INVALID_EDITFIELDS 24 151#define MAPI_E_INVALID_RECIPS 25 152#define MAPI_E_NOT_SUPPORTED 26 153#define MAPI_E_UNICODE_NOT_SUPPORTED 27 154 155 156/* MAPILogon */ 157 158#ifndef MAPI_LOGON_UI 159#define MAPI_LOGON_UI 0x00000001 160#endif 161#ifndef MAPI_NEW_SESSION 162#define MAPI_NEW_SESSION 0x00000002 163#endif 164#ifndef MAPI_EXTENDED 165#define MAPI_EXTENDED 0x00000020 166#endif 167#ifndef MAPI_FORCE_DOWNLOAD 168#define MAPI_FORCE_DOWNLOAD 0x00001000 169#endif 170#ifndef MAPI_PASSWORD_UI 171#define MAPI_PASSWORD_UI 0x00020000 172#endif 173 174 175/* MAPISendMail */ 176 177#define MAPI_DIALOG 0x00000008 178 179/* MAPISendMailW */ 180 181#define MAPI_FORCE_UNICODE 0x00040000 182 183 184/* API typedefs and prototypes */ 185 186typedef ULONG (WINAPI MAPIADDRESS)(LHANDLE,ULONG_PTR,LPSTR,ULONG,LPSTR,ULONG,lpMapiRecipDesc,FLAGS,ULONG,LPULONG,lpMapiRecipDesc*); 187typedef MAPIADDRESS *LPMAPIADDRESS; 188MAPIADDRESS MAPIAddress; 189 190typedef ULONG (WINAPI MAPIDELETEMAIL)(LHANDLE,ULONG_PTR,LPSTR,FLAGS,ULONG); 191typedef MAPIDELETEMAIL *LPMAPIDELETEMAIL; 192MAPIDELETEMAIL MAPIDeleteMail; 193 194typedef ULONG (WINAPI MAPIDETAILS)(LHANDLE,ULONG_PTR,lpMapiRecipDesc,FLAGS,ULONG); 195typedef MAPIDETAILS *LPMAPIDETAILS; 196MAPIDETAILS MAPIDetails; 197 198typedef ULONG (WINAPI MAPIFINDNEXT)(LHANDLE,ULONG_PTR,LPSTR,LPSTR,FLAGS,ULONG,LPSTR); 199typedef MAPIFINDNEXT *LPMAPIFINDNEXT; 200MAPIFINDNEXT MAPIFindNext; 201 202#ifndef MAPIFREEBUFFER_DEFINED 203#define MAPIFREEBUFFER_DEFINED 204typedef ULONG (WINAPI MAPIFREEBUFFER)(LPVOID); 205typedef MAPIFREEBUFFER *LPMAPIFREEBUFFER; 206MAPIFREEBUFFER MAPIFreeBuffer; 207#endif 208 209typedef ULONG (WINAPI MAPILOGOFF)(LHANDLE,ULONG_PTR,FLAGS,ULONG); 210typedef MAPILOGOFF *LPMAPILOGOFF; 211MAPILOGOFF MAPILogoff; 212 213typedef ULONG (WINAPI MAPILOGON)(ULONG_PTR,LPSTR,LPSTR,FLAGS,ULONG,LPLHANDLE); 214typedef MAPILOGON *LPMAPILOGON; 215MAPILOGON MAPILogon; 216 217typedef ULONG (WINAPI MAPIREADMAIL)(LHANDLE,ULONG_PTR,LPSTR,FLAGS,ULONG,lpMapiMessage); 218typedef MAPIREADMAIL *LPMAPIREADMAIL; 219MAPIREADMAIL MAPIReadMail; 220 221typedef ULONG (WINAPI MAPIRESOLVENAME)(LHANDLE,ULONG_PTR,LPSTR,FLAGS,ULONG,lpMapiRecipDesc*); 222typedef MAPIRESOLVENAME *LPMAPIRESOLVENAME; 223MAPIRESOLVENAME MAPIResolveName; 224 225typedef ULONG (WINAPI MAPISAVEMAIL)(LHANDLE,ULONG_PTR,lpMapiMessage,FLAGS,ULONG,LPSTR); 226typedef MAPISAVEMAIL *LPMAPISAVEMAIL; 227MAPISAVEMAIL MAPISaveMail; 228 229typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR,LPSTR,LPSTR,LPSTR,ULONG); 230typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS; 231MAPISENDDOCUMENTS MAPISendDocuments; 232 233typedef ULONG (WINAPI MAPISENDMAIL)(LHANDLE,ULONG_PTR,lpMapiMessage,FLAGS,ULONG); 234typedef MAPISENDMAIL *LPMAPISENDMAIL; 235MAPISENDMAIL MAPISendMail; 236 237typedef ULONG (WINAPI MAPISENDMAILW)(LHANDLE,ULONG_PTR,lpMapiMessageW,FLAGS,ULONG); 238typedef MAPISENDMAILW *LPMAPISENDMAILW; 239MAPISENDMAILW MAPISendMailW; 240 241#ifdef __cplusplus 242} 243#endif 244 245#endif /* MAPI_H */