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