/** * 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): 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 FLAGS = uint;alias LPULONG = uint*;alias LHANDLE = ULONG_PTR;alias LPLHANDLE = ULONG_PTR*; struct MapiRecipDesc { ULONG ulReserved; ULONG ulRecipClass; LPSTR lpszName; LPSTR lpszAddress; ULONG ulEIDSize; LPVOID lpEntryID;}alias lpMapiRecipDesc = MapiRecipDesc*; struct MapiFileDesc { ULONG ulReserved; ULONG flFlags; ULONG nPosition; LPSTR lpszPathName; LPSTR lpszFileName; LPVOID lpFileType;}alias lpMapiFileDesc = MapiFileDesc*; struct MapiFileTagExt { ULONG ulReserved; ULONG cbTag; LPBYTE lpTag; ULONG cbEncoding; LPBYTE lpEncoding;}alias lpMapiFileTagExt = MapiFileTagExt*; 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 lpMapiMessage = MapiMessage*; 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 LPMAPILOGON = ULONG function(ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE); alias LPMAPISENDMAIL = ULONG function(LHANDLE, ULONG_PTR, lpMapiMessage, FLAGS, ULONG); alias LPMAPISENDDOCUMENTS = ULONG function(ULONG_PTR, LPSTR, LPSTR, LPSTR, ULONG); alias LPMAPIREADMAIL = ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG, lpMapiMessage*); alias LPMAPIFINDNEXT = ULONG function(LHANDLE, ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPSTR); alias LPMAPIRESOLVENAME = ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG, lpMapiRecipDesc*); alias LPMAPIADDRESS = ULONG function(LHANDLE, ULONG_PTR, LPSTR, ULONG, LPSTR, ULONG, lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*); alias LPMAPIFREEBUFFER = ULONG function(LPVOID lpv); alias LPMAPIDETAILS = ULONG function(LHANDLE, ULONG_PTR, lpMapiRecipDesc, FLAGS, ULONG); alias LPMAPISAVEMAIL = ULONG function(LHANDLE, ULONG_PTR, lpMapiMessage, FLAGS, ULONG, LPSTR); alias LPMAPIDELETEMAIL = ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG); alias LPMAPILOGOFF = ULONG function(LHANDLE, ULONG_PTR, FLAGS, ULONG);}
/**
* 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):
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 FLAGS = uint;
alias LPULONG = uint*;
alias LHANDLE = ULONG_PTR;
alias LPLHANDLE = ULONG_PTR*;
struct MapiRecipDesc {
ULONG ulReserved;
ULONG ulRecipClass;
LPSTR lpszName;
LPSTR lpszAddress;
ULONG ulEIDSize;
LPVOID lpEntryID;
}
alias lpMapiRecipDesc = MapiRecipDesc*;
struct MapiFileDesc {
ULONG ulReserved;
ULONG flFlags;
ULONG nPosition;
LPSTR lpszPathName;
LPSTR lpszFileName;
LPVOID lpFileType;
}
alias lpMapiFileDesc = MapiFileDesc*;
struct MapiFileTagExt {
ULONG ulReserved;
ULONG cbTag;
LPBYTE lpTag;
ULONG cbEncoding;
LPBYTE lpEncoding;
}
alias lpMapiFileTagExt = MapiFileTagExt*;
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 lpMapiMessage = MapiMessage*;
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 LPMAPILOGON = ULONG function(ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPLHANDLE);
alias LPMAPISENDMAIL = ULONG function(LHANDLE, ULONG_PTR, lpMapiMessage, FLAGS, ULONG);
alias LPMAPISENDDOCUMENTS = ULONG function(ULONG_PTR, LPSTR, LPSTR, LPSTR, ULONG);
alias LPMAPIREADMAIL = ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG, lpMapiMessage*);
alias LPMAPIFINDNEXT = ULONG function(LHANDLE, ULONG_PTR, LPSTR, LPSTR, FLAGS, ULONG, LPSTR);
alias LPMAPIRESOLVENAME = ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG,
lpMapiRecipDesc*);
alias LPMAPIADDRESS = ULONG function(LHANDLE, ULONG_PTR, LPSTR, ULONG, LPSTR, ULONG,
lpMapiRecipDesc, FLAGS, ULONG, LPULONG, lpMapiRecipDesc*);
alias LPMAPIFREEBUFFER = ULONG function(LPVOID lpv);
alias LPMAPIDETAILS = ULONG function(LHANDLE, ULONG_PTR, lpMapiRecipDesc, FLAGS, ULONG);
alias LPMAPISAVEMAIL = ULONG function(LHANDLE, ULONG_PTR, lpMapiMessage, FLAGS, ULONG, LPSTR);
alias LPMAPIDELETEMAIL = ULONG function(LHANDLE, ULONG_PTR, LPSTR, FLAGS, ULONG);
alias LPMAPILOGOFF = ULONG function(LHANDLE, ULONG_PTR, FLAGS, ULONG);
}