1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef MAPI_H 7#define MAPI_H 8 9#ifdef __cplusplus 10extern "C" { 11#endif 12 13#ifndef EXPORT 14#define EXPORT 15#endif 16 17 typedef unsigned __LONG32 *LPULONG; 18 typedef unsigned __LONG32 FLAGS; 19 20#ifndef __LHANDLE 21#define __LHANDLE 22 typedef ULONG_PTR LHANDLE,*LPLHANDLE; 23#endif 24 25 typedef unsigned char *LPBYTE; 26 27#define lhSessionNull ((LHANDLE)0) 28 29 typedef struct { 30 ULONG ulReserved; 31 ULONG flFlags; 32 ULONG nPosition; 33 LPSTR lpszPathName; 34 LPSTR lpszFileName; 35 LPVOID lpFileType; 36 } MapiFileDesc,*lpMapiFileDesc; 37 38#define MAPI_OLE 0x00000001 39#define MAPI_OLE_STATIC 0x00000002 40 41 typedef struct { 42 ULONG ulReserved; 43 ULONG cbTag; 44 LPBYTE lpTag; 45 ULONG cbEncoding; 46 LPBYTE lpEncoding; 47 } MapiFileTagExt,*lpMapiFileTagExt; 48 49 typedef struct { 50 ULONG ulReserved; 51 ULONG ulRecipClass; 52 LPSTR lpszName; 53 LPSTR lpszAddress; 54 ULONG ulEIDSize; 55 LPVOID lpEntryID; 56 } MapiRecipDesc,*lpMapiRecipDesc; 57 58#ifndef MAPI_ORIG 59#define MAPI_ORIG 0 60#define MAPI_TO 1 61#define MAPI_CC 2 62#define MAPI_BCC 3 63#endif 64 65 typedef struct { 66 ULONG ulReserved; 67 LPSTR lpszSubject; 68 LPSTR lpszNoteText; 69 LPSTR lpszMessageType; 70 LPSTR lpszDateReceived; 71 LPSTR lpszConversationID; 72 FLAGS flFlags; 73 lpMapiRecipDesc lpOriginator; 74 ULONG nRecipCount; 75 lpMapiRecipDesc lpRecips; 76 ULONG nFileCount; 77 lpMapiFileDesc lpFiles; 78 } MapiMessage,*lpMapiMessage; 79 80#define MAPI_UNREAD 0x00000001 81#define MAPI_RECEIPT_REQUESTED 0x00000002 82#define MAPI_SENT 0x00000004 83 84#define MAPI_LOGON_UI 0x00000001 85#ifndef MAPI_PASSWORD_UI 86#define MAPI_PASSWORD_UI 0x00020000 87#endif 88#define MAPI_NEW_SESSION 0x00000002 89#define MAPI_FORCE_DOWNLOAD 0x00001000 90#define MAPI_EXTENDED 0x00000020 91 92#ifndef MAPI_DIALOG 93#define MAPI_DIALOG 0x00000008 94#endif 95 96#define MAPI_UNREAD_ONLY 0x00000020 97#define MAPI_GUARANTEE_FIFO 0x00000100 98#define MAPI_LONG_MSGID 0x00004000 99 100#define MAPI_PEEK 0x00000080 101#define MAPI_SUPPRESS_ATTACH 0x00000800 102#define MAPI_ENVELOPE_ONLY 0x00000040 103#define MAPI_BODY_AS_FILE 0x00000200 104 105#define MAPI_AB_NOMODIFY 0x00000400 106 107 typedef ULONG (WINAPI MAPILOGON)(ULONG_PTR ulUIParam,LPSTR lpszProfileName,LPSTR lpszPassword,FLAGS flFlags,ULONG ulReserved,LPLHANDLE lplhSession); 108 typedef MAPILOGON *LPMAPILOGON; 109 MAPILOGON MAPILogon; 110 111 typedef ULONG (WINAPI MAPILOGOFF)(LHANDLE lhSession,ULONG_PTR ulUIParam,FLAGS flFlags,ULONG ulReserved); 112 typedef MAPILOGOFF *LPMAPILOGOFF; 113 MAPILOGOFF MAPILogoff; 114 115 typedef ULONG (WINAPI MAPISENDMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved); 116 typedef MAPISENDMAIL *LPMAPISENDMAIL; 117 MAPISENDMAIL MAPISendMail; 118 119 typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved); 120 typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS; 121 MAPISENDDOCUMENTS MAPISendDocuments; 122 123 typedef ULONG (WINAPI MAPIFINDNEXT)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageType,LPSTR lpszSeedMessageID,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID); 124 typedef MAPIFINDNEXT *LPMAPIFINDNEXT; 125 MAPIFINDNEXT MAPIFindNext; 126 127 typedef ULONG (WINAPI MAPIREADMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved,lpMapiMessage *lppMessage); 128 typedef MAPIREADMAIL *LPMAPIREADMAIL; 129 MAPIREADMAIL MAPIReadMail; 130 131 typedef ULONG (WINAPI MAPISAVEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID); 132 typedef MAPISAVEMAIL *LPMAPISAVEMAIL; 133 MAPISAVEMAIL MAPISaveMail; 134 135 typedef ULONG (WINAPI MAPIDELETEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved); 136 typedef MAPIDELETEMAIL *LPMAPIDELETEMAIL; 137 MAPIDELETEMAIL MAPIDeleteMail; 138 139 typedef ULONG (EXPORT WINAPI *LPMAPIFREEBUFFER)(LPVOID pv); 140 141 ULONG WINAPI MAPIFreeBuffer(LPVOID pv); 142 143 typedef ULONG (WINAPI MAPIADDRESS)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszCaption,ULONG nEditFields,LPSTR lpszLabels,ULONG nRecips,lpMapiRecipDesc lpRecips,FLAGS flFlags,ULONG ulReserved,LPULONG lpnNewRecips,lpMapiRecipDesc *lppNewRecips); 144 typedef MAPIADDRESS *LPMAPIADDRESS; 145 MAPIADDRESS MAPIAddress; 146 147 typedef ULONG (WINAPI MAPIDETAILS)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiRecipDesc lpRecip,FLAGS flFlags,ULONG ulReserved); 148 typedef MAPIDETAILS *LPMAPIDETAILS; 149 MAPIDETAILS MAPIDetails; 150 151 typedef ULONG (WINAPI MAPIRESOLVENAME)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszName,FLAGS flFlags,ULONG ulReserved,lpMapiRecipDesc *lppRecip); 152 typedef MAPIRESOLVENAME *LPMAPIRESOLVENAME; 153 MAPIRESOLVENAME MAPIResolveName; 154 155#ifndef SUCCESS_SUCCESS 156#define SUCCESS_SUCCESS 0 157#endif 158#define MAPI_USER_ABORT 1 159#define MAPI_E_USER_ABORT MAPI_USER_ABORT 160#define MAPI_E_FAILURE 2 161#define MAPI_E_LOGON_FAILURE 3 162#define MAPI_E_LOGIN_FAILURE MAPI_E_LOGON_FAILURE 163#define MAPI_E_DISK_FULL 4 164#define MAPI_E_INSUFFICIENT_MEMORY 5 165#define MAPI_E_ACCESS_DENIED 6 166#define MAPI_E_TOO_MANY_SESSIONS 8 167#define MAPI_E_TOO_MANY_FILES 9 168#define MAPI_E_TOO_MANY_RECIPIENTS 10 169#define MAPI_E_ATTACHMENT_NOT_FOUND 11 170#define MAPI_E_ATTACHMENT_OPEN_FAILURE 12 171#define MAPI_E_ATTACHMENT_WRITE_FAILURE 13 172#define MAPI_E_UNKNOWN_RECIPIENT 14 173#define MAPI_E_BAD_RECIPTYPE 15 174#define MAPI_E_NO_MESSAGES 16 175#define MAPI_E_INVALID_MESSAGE 17 176#define MAPI_E_TEXT_TOO_LARGE 18 177#define MAPI_E_INVALID_SESSION 19 178#define MAPI_E_TYPE_NOT_SUPPORTED 20 179#define MAPI_E_AMBIGUOUS_RECIPIENT 21 180#define MAPI_E_AMBIG_RECIP MAPI_E_AMBIGUOUS_RECIPIENT 181#define MAPI_E_MESSAGE_IN_USE 22 182#define MAPI_E_NETWORK_FAILURE 23 183#define MAPI_E_INVALID_EDITFIELDS 24 184#define MAPI_E_INVALID_RECIPS 25 185#define MAPI_E_NOT_SUPPORTED 26 186 187#ifdef MAPIX_H 188 STDMETHODIMP_(SCODE) ScMAPIXFromSMAPI(LHANDLE lhSimpleSession,ULONG ulFlags,LPCIID lpInterface,LPMAPISESSION*lppMAPISession); 189#endif 190 191#ifdef __cplusplus 192} 193#endif 194#endif 195