1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Stewart Gordon 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_mapi.d) 9 */ 10 /// Automatically imported and edited from the druntime module 11 /// core.sys.windows.mapi for the auto-generated win32 package. 12 module win32.mapi; 13 //version (Windows): 14 @system: 15 16 import win32.windef; 17 18 // FIXME: check types and grouping of constants 19 20 enum { 21 SUCCESS_SUCCESS, 22 MAPI_USER_ABORT, 23 MAPI_E_USER_ABORT = MAPI_USER_ABORT, 24 MAPI_E_FAILURE, 25 MAPI_E_LOGIN_FAILURE, 26 MAPI_E_LOGON_FAILURE = MAPI_E_LOGIN_FAILURE, 27 MAPI_E_DISK_FULL = 4, 28 MAPI_E_INSUFFICIENT_MEMORY, 29 MAPI_E_ACCESS_DENIED, 30 MAPI_E_BLK_TOO_SMALL = MAPI_E_ACCESS_DENIED, // = 6 31 MAPI_E_TOO_MANY_SESSIONS = 8, 32 MAPI_E_TOO_MANY_FILES, 33 MAPI_E_TOO_MANY_RECIPIENTS, 34 MAPI_E_ATTACHMENT_NOT_FOUND, 35 MAPI_E_ATTACHMENT_OPEN_FAILURE, 36 MAPI_E_ATTACHMENT_WRITE_FAILURE, 37 MAPI_E_UNKNOWN_RECIPIENT, 38 MAPI_E_BAD_RECIPTYPE, 39 MAPI_E_NO_MESSAGES, 40 MAPI_E_INVALID_MESSAGE, 41 MAPI_E_TEXT_TOO_LARGE, 42 MAPI_E_INVALID_SESSION, 43 MAPI_E_TYPE_NOT_SUPPORTED, 44 MAPI_E_AMBIGUOUS_RECIPIENT, 45 MAPI_E_AMBIGUOUS_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT, 46 MAPI_E_MESSAGE_IN_USE, 47 MAPI_E_NETWORK_FAILURE, 48 MAPI_E_INVALID_EDITFIELDS, 49 MAPI_E_INVALID_RECIPS, 50 MAPI_E_NOT_SUPPORTED // = 26 51 } 52 53 enum { 54 MAPI_ORIG, 55 MAPI_TO, 56 MAPI_CC, 57 MAPI_BCC 58 } 59 60 enum MAPI_LOGON_UI = 0x0001; 61 enum MAPI_NEW_SESSION = 0x0002; 62 enum MAPI_FORCE_DOWNLOAD = 0x1000; 63 enum MAPI_LOGOFF_SHARED = 0x0001; 64 enum MAPI_LOGOFF_UI = 0x0002; 65 enum MAPI_DIALOG = 0x0008; 66 enum MAPI_UNREAD_ONLY = 0x0020; 67 enum MAPI_LONG_MSGID = 0x4000; 68 enum MAPI_GUARANTEE_FIFO = 0x0100; 69 enum MAPI_ENVELOPE_ONLY = 0x0040; 70 enum MAPI_PEEK = 0x0080; 71 enum MAPI_BODY_AS_FILE = 0x0200; 72 enum MAPI_SUPPRESS_ATTACH = 0x0800; 73 enum MAPI_AB_NOMODIFY = 0x0400; 74 enum MAPI_OLE = 0x0001; 75 enum MAPI_OLE_STATIC = 0x0002; 76 enum MAPI_UNREAD = 0x0001; 77 enum MAPI_RECEIPT_REQUESTED = 0x0002; 78 enum MAPI_SENT = 0x0004; 79 80 alias uint FLAGS; 81 alias uint* LPULONG; 82 alias ULONG_PTR LHANDLE; 83 alias ULONG_PTR* LPLHANDLE; 84 85 struct MapiRecipDesc { 86 ULONG ulReserved; 87 ULONG ulRecipClass; 88 LPSTR lpszName; 89 LPSTR lpszAddress; 90 ULONG ulEIDSize; 91 LPVOID lpEntryID; 92 } 93 alias MapiRecipDesc* lpMapiRecipDesc; 94 95 struct MapiFileDesc { 96 ULONG ulReserved; 97 ULONG flFlags; 98 ULONG nPosition; 99 LPSTR lpszPathName; 100 LPSTR lpszFileName; 101 LPVOID lpFileType; 102 } 103 alias MapiFileDesc* lpMapiFileDesc; 104 105 struct MapiFileTagExt { 106 ULONG ulReserved; 107 ULONG cbTag; 108 LPBYTE lpTag; 109 ULONG cbEncoding; 110 LPBYTE lpEncoding; 111 } 112 alias MapiFileTagExt* lpMapiFileTagExt; 113 114 struct MapiMessage { 115 ULONG ulReserved; 116 LPSTR lpszSubject; 117 LPSTR lpszNoteText; 118 LPSTR lpszMessageType; 119 LPSTR lpszDateReceived; 120 LPSTR lpszConversationID; 121 FLAGS flFlags; 122 lpMapiRecipDesc lpOriginator; 123 ULONG nRecipCount; 124 lpMapiRecipDesc lpRecips; 125 ULONG nFileCount; 126 lpMapiFileDesc lpFiles; 127 } 128 alias MapiMessage* lpMapiMessage; 129 130 extern (Windows) { 131 ULONG MAPILogon(ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE); 132 ULONG MAPISendMail(LHANDLE, ULONG_PTR, lpMapiMessage, FLAGS, ULONG); 133 ULONG MAPISendDocuments(ULONG_PTR, LPSTR, LPSTR, LPSTR, ULONG); 134 ULONG MAPIReadMail(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG, lpMapiMessage*); 135 ULONG MAPIFindNext(LHANDLE, ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPSTR); 136 ULONG MAPIResolveName(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG, 137 lpMapiRecipDesc*); 138 ULONG MAPIAddress(LHANDLE, ULONG_PTR, LPSTR, ULONG, LPSTR, ULONG, 139 lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*); 140 ULONG MAPIFreeBuffer(LPVOID); 141 ULONG MAPIDetails(LHANDLE, ULONG_PTR, lpMapiRecipDesc, FLAGS, ULONG); 142 ULONG MAPISaveMail(LHANDLE, ULONG_PTR, lpMapiMessage lpszMessage, FLAGS, 143 ULONG, LPSTR); 144 ULONG MAPIDeleteMail(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG); 145 ULONG MAPILogoff(LHANDLE, ULONG_PTR, FLAGS, ULONG); 146 // Netscape extensions 147 ULONG MAPIGetNetscapeVersion(); 148 ULONG MAPI_NSCP_SynchronizeClient(LHANDLE, ULONG); 149 150 // Handles for use with GetProcAddress 151 alias ULONG function(ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE) 152 LPMAPILOGON; 153 alias ULONG function(LHANDLE, ULONG_PTR, lpMapiMessage, FLAGS, ULONG) 154 LPMAPISENDMAIL; 155 alias ULONG function(ULONG_PTR, LPSTR, LPSTR, LPSTR, ULONG) 156 LPMAPISENDDOCUMENTS; 157 alias ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG, lpMapiMessage*) 158 LPMAPIREADMAIL; 159 alias ULONG function(LHANDLE, ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPSTR) 160 LPMAPIFINDNEXT; 161 alias ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG, 162 lpMapiRecipDesc*) LPMAPIRESOLVENAME; 163 alias ULONG function(LHANDLE, ULONG_PTR, LPSTR, ULONG, LPSTR, ULONG, 164 lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*) LPMAPIADDRESS; 165 alias ULONG function(LPVOID lpv) LPMAPIFREEBUFFER; 166 alias ULONG function(LHANDLE, ULONG_PTR, lpMapiRecipDesc, FLAGS, ULONG) 167 LPMAPIDETAILS; 168 alias ULONG function(LHANDLE, ULONG_PTR, lpMapiMessage, FLAGS, ULONG, LPSTR) 169 LPMAPISAVEMAIL; 170 alias ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG) 171 LPMAPIDELETEMAIL; 172 alias ULONG function(LHANDLE, ULONG_PTR, FLAGS, ULONG) LPMAPILOGOFF; 173 }