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
172
173
174
175
|
/*
* m a p i . h
*
* Messaging Applications Programming Interface.
*
* Copyright (c) 1992, Microsoft Corporation. All rights reserved.
*
* Purpose:
* This file defines the structures and constants used by
* that subset of the messaging applications programming
* interface which will be supported under Windows by
* Microsoft Mail for PC Networks vesion 3.0.
*/
/*
* Types.
*/
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned long ULONG;
typedef unsigned long * LPULONG;
typedef unsigned long FLAGS;
typedef unsigned long LHANDLE, *LPLHANDLE;
#define lhSessionNull ((LHANDLE)0)
#define MAPI_MESSAGEID_LENGTH 64
typedef struct {
ULONG ulReserved; // Reserved for future use (must be 0)
ULONG flFlags; // Flags
ULONG nPosition; // character in text to be replaced by attachment
LPSTR lpszPathName; // Full path name of attachment file
LPSTR lpszFileName; // Original file name (optional)
LPVOID UNALIGNED lpFileType; // Attachment file type (optional)
} MapiFileDesc;
typedef MapiFileDesc UNALIGNED *lpMapiFileDesc;
#define MAPI_OLE 0x00000001
#define MAPI_OLE_STATIC 0x00000002
typedef struct {
ULONG ulReserved; // Reserved for future use
ULONG ulRecipClass; // Recipient class
// MAPI_TO, MAPI_CC, MAPI_BCC, MAPI_ORIG
LPSTR lpszName; // Recipient name
LPSTR lpszAddress; // Recipient address (optional)
ULONG ulEIDSize; // Count in bytes of size of pEntryID
LPVOID lpEntryID; // System-specific recipient reference
} MapiRecipDesc;
typedef MapiRecipDesc UNALIGNED *lpMapiRecipDesc;
#define MAPI_ORIG 0 // Recipient is message originator
#define MAPI_TO 1 // Recipient is a primary recipient
#define MAPI_CC 2 // Recipient is a copy recipient
#define MAPI_BCC 3 // Recipient is blind copy recipient
typedef struct {
ULONG ulReserved; // Reserved for future use (M.B. 0)
LPSTR lpszSubject; // Message Subject
LPSTR lpszNoteText; // Message Text
LPSTR lpszMessageType; // Message Class
LPSTR lpszDateReceived; // in YYYY/MM/DD HH:MM format
LPSTR lpszConversationID; // conversation thread ID
FLAGS flFlags; // unread,return receipt
lpMapiRecipDesc lpOriginator; // Originator descriptor
ULONG nRecipCount; // Number of recipients
lpMapiRecipDesc lpRecips; // Recipient descriptors
ULONG nFileCount; // # of file attachments
lpMapiFileDesc lpFiles; // Attachment descriptors
} MapiMessage;
typedef MapiMessage UNALIGNED *lpMapiMessage;
#define MAPI_UNREAD 0x00000001
#define MAPI_RECEIPT_REQUESTED 0x00000002
#define MAPI_SENT 0x00000004
/*
* Entry points.
*/
#define MAPI_LOGON_UI 0x00000001 // Display logon UI
#define MAPI_NEW_SESSION 0x00000002 // Do not use default.
#define MAPI_DIALOG 0x00000008 // Display a send note UI
#define MAPI_UNREAD_ONLY 0x00000020 // Only unread messages
#define MAPI_ENVELOPE_ONLY 0x00000040 // Only header information
#define MAPI_PEEK 0x00000080 // Do not mark as read.
#define MAPI_GUARANTEE_FIFO 0x00000100 // use date order
#define MAPI_BODY_AS_FILE 0x00000200
#define MAPI_AB_NOMODIFY 0x00000400 // Don't allow mods of AB entries
#define MAPI_SUPPRESS_ATTACH 0x00000800 // header + body, no files
#define MAPI_FORCE_DOWNLOAD 0x00001000 // force download of new mail during MAPILogon
ULONG MAPILogon(ULONG ulUIParam, LPSTR lpszName, LPSTR lpszPassword,
FLAGS flFlags, ULONG ulReserved,
LPLHANDLE lplhSession);
ULONG MAPILogoff(LHANDLE lhSession, ULONG ulUIParam, FLAGS flFlags,
ULONG ulReserved);
ULONG MAPISendMail(LHANDLE lhSession, ULONG ulUIParam,
lpMapiMessage lpMessage, FLAGS flFlags,
ULONG ulReserved);
ULONG MAPISendDocuments(ULONG ulUIParam, LPSTR lpszDelimChar,
LPSTR lpszFilePaths, LPSTR lpszFileNames,
ULONG ulReserved);
ULONG MAPIFindNext(LHANDLE lhSession, ULONG ulUIParam,
LPSTR lpszMessageType, LPSTR lpszSeedMessageID,
FLAGS flFlags, ULONG ulReserved,
LPSTR lpszMessageID);
ULONG MAPIReadMail(LHANDLE lhSession, ULONG ulUIParam,
LPSTR lpszMessageID, FLAGS flFlags,
ULONG ulReserved, lpMapiMessage *lppMessageOut);
ULONG MAPISaveMail(LHANDLE lhSession, ULONG ulUIParam,
lpMapiMessage pMessage, FLAGS flFlags,
ULONG ulReserved, LPSTR lpszMessageID);
ULONG MAPIDeleteMail(LHANDLE lhSession, ULONG ulUIParam,
LPSTR lpszMessageID, FLAGS flFlags,
ULONG ulReserved);
ULONG MAPIFreeBuffer( LPVOID pv );
ULONG MAPIAddress(LHANDLE lhSession, ULONG ulUIParam,
LPSTR plszCaption, ULONG nEditFields,
LPSTR lpszLabels, ULONG nRecips,
lpMapiRecipDesc lpRecips, FLAGS flFlags, ULONG ulReserved,
LPULONG lpnNewRecips, lpMapiRecipDesc *lppNewRecips);
ULONG MAPIDetails(LHANDLE lhSession, ULONG ulUIParam,
lpMapiRecipDesc lpRecip, FLAGS flFlags, ULONG ulReserved);
ULONG MAPIResolveName(LHANDLE lhSession, ULONG ulUIParam,
LPSTR lpszName, FLAGS flFlags,
ULONG ulReserved, lpMapiRecipDesc *lppRecip);
#define SUCCESS_SUCCESS 0
#define MAPI_USER_ABORT 1
#define MAPI_E_FAILURE 2
#define MAPI_E_LOGIN_FAILURE 3
#define MAPI_E_DISK_FULL 4
#define MAPI_E_INSUFFICIENT_MEMORY 5
#define MAPI_E_ACCESS_DENIED 6
#define MAPI_E_TOO_MANY_SESSIONS 8
#define MAPI_E_TOO_MANY_FILES 9
#define MAPI_E_TOO_MANY_RECIPIENTS 10
#define MAPI_E_ATTACHMENT_NOT_FOUND 11
#define MAPI_E_ATTACHMENT_OPEN_FAILURE 12
#define MAPI_E_ATTACHMENT_WRITE_FAILURE 13
#define MAPI_E_UNKNOWN_RECIPIENT 14
#define MAPI_E_BAD_RECIPTYPE 15
#define MAPI_E_NO_MESSAGES 16
#define MAPI_E_INVALID_MESSAGE 17
#define MAPI_E_TEXT_TOO_LARGE 18
#define MAPI_E_INVALID_SESSION 19
#define MAPI_E_TYPE_NOT_SUPPORTED 20
#define MAPI_E_AMBIGUOUS_RECIPIENT 21
#define MAPI_E_MESSAGE_IN_USE 22
#define MAPI_E_NETWORK_FAILURE 23
#define MAPI_E_INVALID_EDITFIELDS 24
#define MAPI_E_INVALID_RECIPS 25
#define MAPI_E_NOT_SUPPORTED 26
#ifdef __cplusplus
}
#endif
|