4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * mapi.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * by Stewart Gordon * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.mapi; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import win32.windef; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // FIXME: check types and grouping of constants 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: SUCCESS_SUCCESS, 4e2933c620 2015-04-21 kinaba: MAPI_USER_ABORT, 4e2933c620 2015-04-21 kinaba: MAPI_E_USER_ABORT = MAPI_USER_ABORT, 4e2933c620 2015-04-21 kinaba: MAPI_E_FAILURE, 4e2933c620 2015-04-21 kinaba: MAPI_E_LOGIN_FAILURE, 4e2933c620 2015-04-21 kinaba: MAPI_E_LOGON_FAILURE = MAPI_E_LOGIN_FAILURE, 4e2933c620 2015-04-21 kinaba: MAPI_E_DISK_FULL = 4, 4e2933c620 2015-04-21 kinaba: MAPI_E_INSUFFICIENT_MEMORY, 4e2933c620 2015-04-21 kinaba: MAPI_E_ACCESS_DENIED, 4e2933c620 2015-04-21 kinaba: MAPI_E_BLK_TOO_SMALL = MAPI_E_ACCESS_DENIED, // = 6 4e2933c620 2015-04-21 kinaba: MAPI_E_TOO_MANY_SESSIONS = 8, 4e2933c620 2015-04-21 kinaba: MAPI_E_TOO_MANY_FILES, 4e2933c620 2015-04-21 kinaba: MAPI_E_TOO_MANY_RECIPIENTS, 4e2933c620 2015-04-21 kinaba: MAPI_E_ATTACHMENT_NOT_FOUND, 4e2933c620 2015-04-21 kinaba: MAPI_E_ATTACHMENT_OPEN_FAILURE, 4e2933c620 2015-04-21 kinaba: MAPI_E_ATTACHMENT_WRITE_FAILURE, 4e2933c620 2015-04-21 kinaba: MAPI_E_UNKNOWN_RECIPIENT, 4e2933c620 2015-04-21 kinaba: MAPI_E_BAD_RECIPTYPE, 4e2933c620 2015-04-21 kinaba: MAPI_E_NO_MESSAGES, 4e2933c620 2015-04-21 kinaba: MAPI_E_INVALID_MESSAGE, 4e2933c620 2015-04-21 kinaba: MAPI_E_TEXT_TOO_LARGE, 4e2933c620 2015-04-21 kinaba: MAPI_E_INVALID_SESSION, 4e2933c620 2015-04-21 kinaba: MAPI_E_TYPE_NOT_SUPPORTED, 4e2933c620 2015-04-21 kinaba: MAPI_E_AMBIGUOUS_RECIPIENT, 4e2933c620 2015-04-21 kinaba: MAPI_E_AMBIGUOUS_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT, 4e2933c620 2015-04-21 kinaba: MAPI_E_MESSAGE_IN_USE, 4e2933c620 2015-04-21 kinaba: MAPI_E_NETWORK_FAILURE, 4e2933c620 2015-04-21 kinaba: MAPI_E_INVALID_EDITFIELDS, 4e2933c620 2015-04-21 kinaba: MAPI_E_INVALID_RECIPS, 4e2933c620 2015-04-21 kinaba: MAPI_E_NOT_SUPPORTED // = 26 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MAPI_ORIG, 4e2933c620 2015-04-21 kinaba: MAPI_TO, 4e2933c620 2015-04-21 kinaba: MAPI_CC, 4e2933c620 2015-04-21 kinaba: MAPI_BCC 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const MAPI_LOGON_UI = 0x0001; 4e2933c620 2015-04-21 kinaba: const MAPI_NEW_SESSION = 0x0002; 4e2933c620 2015-04-21 kinaba: const MAPI_FORCE_DOWNLOAD = 0x1000; 4e2933c620 2015-04-21 kinaba: const MAPI_LOGOFF_SHARED = 0x0001; 4e2933c620 2015-04-21 kinaba: const MAPI_LOGOFF_UI = 0x0002; 4e2933c620 2015-04-21 kinaba: const MAPI_DIALOG = 0x0008; 4e2933c620 2015-04-21 kinaba: const MAPI_UNREAD_ONLY = 0x0020; 4e2933c620 2015-04-21 kinaba: const MAPI_LONG_MSGID = 0x4000; 4e2933c620 2015-04-21 kinaba: const MAPI_GUARANTEE_FIFO = 0x0100; 4e2933c620 2015-04-21 kinaba: const MAPI_ENVELOPE_ONLY = 0x0040; 4e2933c620 2015-04-21 kinaba: const MAPI_PEEK = 0x0080; 4e2933c620 2015-04-21 kinaba: const MAPI_BODY_AS_FILE = 0x0200; 4e2933c620 2015-04-21 kinaba: const MAPI_SUPPRESS_ATTACH = 0x0800; 4e2933c620 2015-04-21 kinaba: const MAPI_AB_NOMODIFY = 0x0400; 4e2933c620 2015-04-21 kinaba: const MAPI_OLE = 0x0001; 4e2933c620 2015-04-21 kinaba: const MAPI_OLE_STATIC = 0x0002; 4e2933c620 2015-04-21 kinaba: const MAPI_UNREAD = 0x0001; 4e2933c620 2015-04-21 kinaba: const MAPI_RECEIPT_REQUESTED = 0x0002; 4e2933c620 2015-04-21 kinaba: const MAPI_SENT = 0x0004; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias uint FLAGS, LHANDLE; 4e2933c620 2015-04-21 kinaba: alias uint* LPLHANDLE, LPULONG; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct MapiRecipDesc { 4e2933c620 2015-04-21 kinaba: ULONG ulReserved; 4e2933c620 2015-04-21 kinaba: ULONG ulRecipClass; 4e2933c620 2015-04-21 kinaba: LPSTR lpszName; 4e2933c620 2015-04-21 kinaba: LPSTR lpszAddress; 4e2933c620 2015-04-21 kinaba: ULONG ulEIDSize; 4e2933c620 2015-04-21 kinaba: LPVOID lpEntryID; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias MapiRecipDesc* lpMapiRecipDesc; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct MapiFileDesc { 4e2933c620 2015-04-21 kinaba: ULONG ulReserved; 4e2933c620 2015-04-21 kinaba: ULONG flFlags; 4e2933c620 2015-04-21 kinaba: ULONG nPosition; 4e2933c620 2015-04-21 kinaba: LPSTR lpszPathName; 4e2933c620 2015-04-21 kinaba: LPSTR lpszFileName; 4e2933c620 2015-04-21 kinaba: LPVOID lpFileType; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias MapiFileDesc* lpMapiFileDesc; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct MapiFileTagExt { 4e2933c620 2015-04-21 kinaba: ULONG ulReserved; 4e2933c620 2015-04-21 kinaba: ULONG cbTag; 4e2933c620 2015-04-21 kinaba: LPBYTE lpTag; 4e2933c620 2015-04-21 kinaba: ULONG cbEncoding; 4e2933c620 2015-04-21 kinaba: LPBYTE lpEncoding; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias MapiFileTagExt* lpMapiFileTagExt; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct MapiMessage { 4e2933c620 2015-04-21 kinaba: ULONG ulReserved; 4e2933c620 2015-04-21 kinaba: LPSTR lpszSubject; 4e2933c620 2015-04-21 kinaba: LPSTR lpszNoteText; 4e2933c620 2015-04-21 kinaba: LPSTR lpszMessageType; 4e2933c620 2015-04-21 kinaba: LPSTR lpszDateReceived; 4e2933c620 2015-04-21 kinaba: LPSTR lpszConversationID; 4e2933c620 2015-04-21 kinaba: FLAGS flFlags; 4e2933c620 2015-04-21 kinaba: lpMapiRecipDesc lpOriginator; 4e2933c620 2015-04-21 kinaba: ULONG nRecipCount; 4e2933c620 2015-04-21 kinaba: lpMapiRecipDesc lpRecips; 4e2933c620 2015-04-21 kinaba: ULONG nFileCount; 4e2933c620 2015-04-21 kinaba: lpMapiFileDesc lpFiles; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias MapiMessage* lpMapiMessage; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Pascal) { 4e2933c620 2015-04-21 kinaba: ULONG MAPILogon(ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE); 4e2933c620 2015-04-21 kinaba: ULONG MAPISendMail(LHANDLE, ULONG, lpMapiMessage, FLAGS, ULONG); 4e2933c620 2015-04-21 kinaba: ULONG MAPISendDocuments(ULONG, LPSTR, LPSTR, LPSTR, ULONG); 4e2933c620 2015-04-21 kinaba: ULONG MAPIReadMail(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, lpMapiMessage*); 4e2933c620 2015-04-21 kinaba: ULONG MAPIFindNext(LHANDLE, ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPSTR); 4e2933c620 2015-04-21 kinaba: ULONG MAPIResolveName(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, 4e2933c620 2015-04-21 kinaba: lpMapiRecipDesc*); 4e2933c620 2015-04-21 kinaba: ULONG MAPIAddress(LHANDLE, ULONG, LPSTR, ULONG, LPSTR, ULONG, 4e2933c620 2015-04-21 kinaba: lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*); 4e2933c620 2015-04-21 kinaba: ULONG MAPIFreeBuffer(LPVOID); 4e2933c620 2015-04-21 kinaba: ULONG MAPIDetails(LHANDLE, ULONG, lpMapiRecipDesc, FLAGS, ULONG); 4e2933c620 2015-04-21 kinaba: ULONG MAPISaveMail(LHANDLE, ULONG, lpMapiMessage lpszMessage, FLAGS, 4e2933c620 2015-04-21 kinaba: ULONG, LPSTR); 4e2933c620 2015-04-21 kinaba: ULONG MAPIDeleteMail(LHANDLE lpSession, ULONG, LPSTR, FLAGS, ULONG); 4e2933c620 2015-04-21 kinaba: ULONG MAPILogoff(LHANDLE, ULONG, FLAGS, ULONG); 4e2933c620 2015-04-21 kinaba: // Netscape extensions 4e2933c620 2015-04-21 kinaba: ULONG MAPIGetNetscapeVersion(); 4e2933c620 2015-04-21 kinaba: ULONG MAPI_NSCP_SynchronizeClient(LHANDLE, ULONG); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // Handles for use with GetProcAddress 4e2933c620 2015-04-21 kinaba: alias ULONG function(ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE) 4e2933c620 2015-04-21 kinaba: LPMAPILOGON; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, lpMapiMessage, FLAGS, ULONG) 4e2933c620 2015-04-21 kinaba: LPMAPISENDMAIL; 4e2933c620 2015-04-21 kinaba: alias ULONG function(ULONG, LPSTR, LPSTR, LPSTR, ULONG) 4e2933c620 2015-04-21 kinaba: LPMAPISENDDOCUMENTS; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, lpMapiMessage*) 4e2933c620 2015-04-21 kinaba: LPMAPIREADMAIL; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, LPSTR, LPSTR, FLAGS, ULONG, LPSTR) 4e2933c620 2015-04-21 kinaba: LPMAPIFINDNEXT; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, LPSTR, FLAGS, ULONG, 4e2933c620 2015-04-21 kinaba: lpMapiRecipDesc*) LPMAPIRESOLVENAME; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, LPSTR, ULONG, LPSTR, ULONG, 4e2933c620 2015-04-21 kinaba: lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*) LPMAPIADDRESS; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LPVOID lpv) LPMAPIFREEBUFFER; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, lpMapiRecipDesc, FLAGS, ULONG) 4e2933c620 2015-04-21 kinaba: LPMAPIDETAILS; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, lpMapiMessage, FLAGS, ULONG, LPSTR) 4e2933c620 2015-04-21 kinaba: LPMAPISAVEMAIL; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE lpSession, ULONG, LPSTR, FLAGS, ULONG) 4e2933c620 2015-04-21 kinaba: LPMAPIDELETEMAIL; 4e2933c620 2015-04-21 kinaba: alias ULONG function(LHANDLE, ULONG, FLAGS, ULONG) LPMAPILOGOFF; 4e2933c620 2015-04-21 kinaba: }