mapi.h (7220B) - Raw
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 10 extern "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 typedef struct { 39 ULONG ulReserved; 40 ULONG flFlags; 41 ULONG nPosition; 42 PWSTR lpszPathName; 43 PWSTR lpszFileName; 44 PVOID lpFileType; 45 } MapiFileDescW, *lpMapiFileDescW; 46 47 #define MAPI_OLE 0x00000001 48 #define MAPI_OLE_STATIC 0x00000002 49 50 typedef struct { 51 ULONG ulReserved; 52 ULONG cbTag; 53 LPBYTE lpTag; 54 ULONG cbEncoding; 55 LPBYTE lpEncoding; 56 } MapiFileTagExt,*lpMapiFileTagExt; 57 58 typedef struct { 59 ULONG ulReserved; 60 ULONG ulRecipClass; 61 LPSTR lpszName; 62 LPSTR lpszAddress; 63 ULONG ulEIDSize; 64 LPVOID lpEntryID; 65 } MapiRecipDesc,*lpMapiRecipDesc; 66 67 typedef struct { 68 ULONG ulReserved; 69 ULONG ulRecipClass; 70 PWSTR lpszName; 71 PWSTR lpszAddress; 72 ULONG ulEIDSize; 73 PVOID lpEntryID; 74 } MapiRecipDescW, *lpMapiRecipDescW; 75 76 #ifndef MAPI_ORIG 77 #define MAPI_ORIG 0 78 #define MAPI_TO 1 79 #define MAPI_CC 2 80 #define MAPI_BCC 3 81 #endif 82 83 typedef struct { 84 ULONG ulReserved; 85 LPSTR lpszSubject; 86 LPSTR lpszNoteText; 87 LPSTR lpszMessageType; 88 LPSTR lpszDateReceived; 89 LPSTR lpszConversationID; 90 FLAGS flFlags; 91 lpMapiRecipDesc lpOriginator; 92 ULONG nRecipCount; 93 lpMapiRecipDesc lpRecips; 94 ULONG nFileCount; 95 lpMapiFileDesc lpFiles; 96 } MapiMessage,*lpMapiMessage; 97 98 typedef struct { 99 ULONG ulReserved; 100 PWSTR lpszSubject; 101 PWSTR lpszNoteText; 102 PWSTR lpszMessageType; 103 PWSTR lpszDateReceived; 104 PWSTR lpszConversationID; 105 FLAGS flFlags; 106 lpMapiRecipDescW lpOriginator; 107 ULONG nRecipCount; 108 lpMapiRecipDescW lpRecips; 109 ULONG nFileCount; 110 lpMapiFileDescW lpFiles; 111 } MapiMessageW, *lpMapiMessageW; 112 113 #define MAPI_UNREAD 0x00000001 114 #define MAPI_RECEIPT_REQUESTED 0x00000002 115 #define MAPI_SENT 0x00000004 116 117 #define MAPI_LOGON_UI 0x00000001 118 #ifndef MAPI_PASSWORD_UI 119 #define MAPI_PASSWORD_UI 0x00020000 120 #endif 121 #define MAPI_NEW_SESSION 0x00000002 122 #define MAPI_FORCE_DOWNLOAD 0x00001000 123 #define MAPI_EXTENDED 0x00000020 124 125 #ifndef MAPI_DIALOG 126 #define MAPI_DIALOG 0x00000008 127 #endif 128 129 #define MAPI_DIALOG_MODELESS (0x00000004 | MAPI_DIALOG) 130 #define MAPI_FORCE_UNICODE 0x00040000 131 132 #define MAPI_UNREAD_ONLY 0x00000020 133 #define MAPI_GUARANTEE_FIFO 0x00000100 134 #define MAPI_LONG_MSGID 0x00004000 135 136 #define MAPI_PEEK 0x00000080 137 #define MAPI_SUPPRESS_ATTACH 0x00000800 138 #define MAPI_ENVELOPE_ONLY 0x00000040 139 #define MAPI_BODY_AS_FILE 0x00000200 140 141 #define MAPI_AB_NOMODIFY 0x00000400 142 143 typedef ULONG (WINAPI MAPILOGON)(ULONG_PTR ulUIParam,LPSTR lpszProfileName,LPSTR lpszPassword,FLAGS flFlags,ULONG ulReserved,LPLHANDLE lplhSession); 144 typedef MAPILOGON *LPMAPILOGON; 145 MAPILOGON MAPILogon; 146 147 typedef ULONG (WINAPI MAPILOGOFF)(LHANDLE lhSession,ULONG_PTR ulUIParam,FLAGS flFlags,ULONG ulReserved); 148 typedef MAPILOGOFF *LPMAPILOGOFF; 149 MAPILOGOFF MAPILogoff; 150 151 typedef ULONG (WINAPI MAPISENDMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved); 152 typedef MAPISENDMAIL *LPMAPISENDMAIL; 153 MAPISENDMAIL MAPISendMail; 154 155 typedef ULONG (WINAPI MAPISENDMAILW)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessageW lpMessage,FLAGS flFlags,ULONG ulReserved); 156 typedef MAPISENDMAILW *LPMAPISENDMAILW; 157 MAPISENDMAILW MAPISendMailW; 158 159 typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved); 160 typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS; 161 MAPISENDDOCUMENTS MAPISendDocuments; 162 163 typedef ULONG (WINAPI MAPIFINDNEXT)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageType,LPSTR lpszSeedMessageID,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID); 164 typedef MAPIFINDNEXT *LPMAPIFINDNEXT; 165 MAPIFINDNEXT MAPIFindNext; 166 167 typedef ULONG (WINAPI MAPIREADMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved,lpMapiMessage *lppMessage); 168 typedef MAPIREADMAIL *LPMAPIREADMAIL; 169 MAPIREADMAIL MAPIReadMail; 170 171 typedef ULONG (WINAPI MAPISAVEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID); 172 typedef MAPISAVEMAIL *LPMAPISAVEMAIL; 173 MAPISAVEMAIL MAPISaveMail; 174 175 typedef ULONG (WINAPI MAPIDELETEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved); 176 typedef MAPIDELETEMAIL *LPMAPIDELETEMAIL; 177 MAPIDELETEMAIL MAPIDeleteMail; 178 179 typedef ULONG (EXPORT WINAPI *LPMAPIFREEBUFFER)(LPVOID pv); 180 181 ULONG WINAPI MAPIFreeBuffer(LPVOID pv); 182 183 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); 184 typedef MAPIADDRESS *LPMAPIADDRESS; 185 MAPIADDRESS MAPIAddress; 186 187 typedef ULONG (WINAPI MAPIDETAILS)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiRecipDesc lpRecip,FLAGS flFlags,ULONG ulReserved); 188 typedef MAPIDETAILS *LPMAPIDETAILS; 189 MAPIDETAILS MAPIDetails; 190 191 typedef ULONG (WINAPI MAPIRESOLVENAME)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszName,FLAGS flFlags,ULONG ulReserved,lpMapiRecipDesc *lppRecip); 192 typedef MAPIRESOLVENAME *LPMAPIRESOLVENAME; 193 MAPIRESOLVENAME MAPIResolveName; 194 195 #ifndef SUCCESS_SUCCESS 196 #define SUCCESS_SUCCESS 0 197 #endif 198 #define MAPI_USER_ABORT 1 199 #define MAPI_E_USER_ABORT MAPI_USER_ABORT 200 #define MAPI_E_FAILURE 2 201 #define MAPI_E_LOGON_FAILURE 3 202 #define MAPI_E_LOGIN_FAILURE MAPI_E_LOGON_FAILURE 203 #define MAPI_E_DISK_FULL 4 204 #define MAPI_E_INSUFFICIENT_MEMORY 5 205 #define MAPI_E_ACCESS_DENIED 6 206 #define MAPI_E_TOO_MANY_SESSIONS 8 207 #define MAPI_E_TOO_MANY_FILES 9 208 #define MAPI_E_TOO_MANY_RECIPIENTS 10 209 #define MAPI_E_ATTACHMENT_NOT_FOUND 11 210 #define MAPI_E_ATTACHMENT_OPEN_FAILURE 12 211 #define MAPI_E_ATTACHMENT_WRITE_FAILURE 13 212 #define MAPI_E_UNKNOWN_RECIPIENT 14 213 #define MAPI_E_BAD_RECIPTYPE 15 214 #define MAPI_E_NO_MESSAGES 16 215 #define MAPI_E_INVALID_MESSAGE 17 216 #define MAPI_E_TEXT_TOO_LARGE 18 217 #define MAPI_E_INVALID_SESSION 19 218 #define MAPI_E_TYPE_NOT_SUPPORTED 20 219 #define MAPI_E_AMBIGUOUS_RECIPIENT 21 220 #define MAPI_E_AMBIG_RECIP MAPI_E_AMBIGUOUS_RECIPIENT 221 #define MAPI_E_MESSAGE_IN_USE 22 222 #define MAPI_E_NETWORK_FAILURE 23 223 #define MAPI_E_INVALID_EDITFIELDS 24 224 #define MAPI_E_INVALID_RECIPS 25 225 #define MAPI_E_NOT_SUPPORTED 26 226 #define MAPI_E_UNICODE_NOT_SUPPORTED 27 227 #define MAPI_E_ATTACHMENT_TOO_LARGE 28 228 229 #ifdef MAPIX_H 230 STDMETHODIMP_(SCODE) ScMAPIXFromSMAPI(LHANDLE lhSimpleSession,ULONG ulFlags,LPCIID lpInterface,LPMAPISESSION*lppMAPISession); 231 #endif 232 233 #ifdef __cplusplus 234 } 235 #endif 236 #endif