2 * Copyright (C) 2004 Chris Morgan
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26 typedef char CMC_sint8
;
27 typedef short CMC_sint16
;
28 typedef long int CMC_sint32
;
29 typedef unsigned short int CMC_uint16
;
30 typedef unsigned long int CMC_uint32
;
31 typedef void* CMC_buffer
;
32 typedef char* CMC_string
;
34 typedef CMC_uint16 CMC_boolean
;
35 typedef CMC_sint32 CMC_enum
;
36 typedef CMC_uint32 CMC_return_code
;
37 typedef CMC_uint32 CMC_flags
;
38 typedef CMC_string CMC_object_identifier
;
39 typedef CMC_uint32 CMC_session_id
;
40 typedef CMC_uint32 CMC_ui_id
;
42 #define CMC_FALSE ((CMC_boolean)0)
43 #define CMC_TRUE ((CMC_boolean)1)
45 #define CMC_SUCCESS ((CMC_return_code) 0)
47 #define CMC_E_AMBIGUOUS_RECIPIENT ((CMC_return_code) 1)
48 #define CMC_E_ATTACHMENT_NOT_FOUND ((CMC_return_code) 2)
49 #define CMC_E_ATTACHMENT_OPEN_FAILURE ((CMC_return_code) 3)
50 #define CMC_E_ATTACHMENT_READ_FAILURE ((CMC_return_code) 4)
51 #define CMC_E_ATTACHMENT_WRITE_FAILURE ((CMC_return_code) 5)
52 #define CMC_E_COUNTED_STRING_UNSUPPORTED ((CMC_return_code) 6)
53 #define CMC_E_DISK_FULL ((CMC_return_code) 7)
54 #define CMC_E_FAILURE ((CMC_return_code) 8)
55 #define CMC_E_INSUFFICIENT_MEMORY ((CMC_return_code) 9)
56 #define CMC_E_INVALID_CONFIGURATION ((CMC_return_code) 10)
57 #define CMC_E_INVALID_ENUM ((CMC_return_code) 11)
58 #define CMC_E_INVALID_FLAG ((CMC_return_code) 12)
59 #define CMC_E_INVALID_MEMORY ((CMC_return_code) 13)
60 #define CMC_E_INVALID_MESSAGE_PARAMETER ((CMC_return_code) 14)
61 #define CMC_E_INVALID_MESSAGE_REFERENCE ((CMC_return_code) 15)
62 #define CMC_E_INVALID_PARAMETER ((CMC_return_code) 16)
63 #define CMC_E_INVALID_SESSION_ID ((CMC_return_code) 17)
64 #define CMC_E_INVALID_UI_ID ((CMC_return_code) 18)
65 #define CMC_E_LOGON_FAILURE ((CMC_return_code) 19)
66 #define CMC_E_MESSAGE_IN_USE ((CMC_return_code) 20)
67 #define CMC_E_NOT_SUPPORTED ((CMC_return_code) 21)
68 #define CMC_E_PASSWORD_REQUIRED ((CMC_return_code) 22)
69 #define CMC_E_RECIPIENT_NOT_FOUND ((CMC_return_code) 23)
70 #define CMC_E_SERVICE_UNAVAILABLE ((CMC_return_code) 24)
71 #define CMC_E_TEXT_TOO_LARGE ((CMC_return_code) 25)
72 #define CMC_E_TOO_MANY_FILES ((CMC_return_code) 26)
73 #define CMC_E_TOO_MANY_RECIPIENTS ((CMC_return_code) 27)
74 #define CMC_E_UNABLE_TO_NOT_MARK_AS_READ ((CMC_return_code) 28)
75 #define CMC_E_UNRECOGNIZED_MESSAGE_TYPE ((CMC_return_code) 29)
76 #define CMC_E_UNSUPPORTED_ACTION ((CMC_return_code) 30)
77 #define CMC_E_UNSUPPORTED_CHARACTER_SET ((CMC_return_code) 31)
78 #define CMC_E_UNSUPPORTED_DATA_EXT ((CMC_return_code) 32)
79 #define CMC_E_UNSUPPORTED_FLAG ((CMC_return_code) 33)
80 #define CMC_E_UNSUPPORTED_FUNCTION_EXT ((CMC_return_code) 34)
81 #define CMC_E_UNSUPPORTED_VERSION ((CMC_return_code) 35)
82 #define CMC_E_USER_CANCEL ((CMC_return_code) 36)
83 #define CMC_E_USER_NOT_LOGGED_ON ((CMC_return_code) 37)
85 #define CMC_ERROR_DISPLAYED ((CMC_return_code) 0x00008000)
86 #define CMC_ERROR_RSV_MASK ((CMC_return_code) 0x0000FFFF)
87 #define CMC_ERROR_IMPL_MASK ((CMC_return_code) 0xFFFF0000)
94 typedef CMC_counted_string CMC_message_reference
;
109 #define CMC_NO_TIMEZONE ((CMC_sint16) 0x8000)
113 CMC_uint32 item_code
;
114 CMC_uint32 item_data
;
115 CMC_buffer item_reference
;
116 CMC_flags extension_flags
;
119 #define CMC_EXT_REQUIRED ((CMC_flags) 0x00010000)
120 #define CMC_EXT_OUTPUT ((CMC_flags) 0x00020000)
121 #define CMC_EXT_LAST_ELEMENT ((CMC_flags) 0x80000000)
122 #define CMC_EXT_RSV_FLAG_MASK ((CMC_flags) 0xFFFF0000)
123 #define CMC_EXT_ITEM_FLAG_MASK ((CMC_flags) 0x0000FFFF)
126 typedef struct CMC_attachment_s
{
127 CMC_string attach_title
;
128 CMC_object_identifier attach_type
;
129 CMC_string attach_filename
;
130 CMC_flags attach_flags
;
131 CMC_extension
*attach_extensions
;
134 #define CMC_ATT_APP_OWNS_FILE ((CMC_flags) 1)
135 #define CMC_ATT_LAST_ELEMENT ((CMC_flags) 0x80000000)
137 #define CMC_ATT_OID_BINARY "? ? ? ? ? ?"
138 #define CMC_ATT_OID_TEXT "? ? ? ? ? ?"
146 CMC_flags recip_flags
;
147 CMC_extension
*recip_extensions
;
150 #define CMC_TYPE_UNKNOWN ((CMC_enum) 0)
151 #define CMC_TYPE_INDIVIDUAL ((CMC_enum) 1)
152 #define CMC_TYPE_GROUP ((CMC_enum) 2)
154 #define CMC_ROLE_TO ((CMC_enum) 0)
155 #define CMC_ROLE_CC ((CMC_enum) 1)
156 #define CMC_ROLE_BCC ((CMC_enum) 2)
157 #define CMC_ROLE_ORIGINATOR ((CMC_enum) 3)
158 #define CMC_ROLE_AUTHORIZING_USER ((CMC_enum) 4)
160 #define CMC_RECIP_IGNORE ((CMC_flags) 1)
161 #define CMC_RECIP_LIST_TRUNCATED ((CMC_flags) 2)
162 #define CMC_RECIP_LAST_ELEMENT ((CMC_flags) 0x80000000)
166 CMC_message_reference
*message_reference
;
167 CMC_string message_type
;
170 CMC_string text_note
;
171 CMC_recipient
*recipients
;
172 CMC_attachment
*attachments
;
173 CMC_flags message_flags
;
174 CMC_extension
*message_extensions
;
177 #define CMC_MSG_READ ((CMC_flags) 1)
178 #define CMC_MSG_TEXT_NOTE_AS_FILE ((CMC_flags) 2)
179 #define CMC_MSG_UNSENT ((CMC_flags) 4)
180 #define CMC_MSG_LAST_ELEMENT ((CMC_flags) 0x80000000)
184 CMC_message_reference
*message_reference
;
185 CMC_string message_type
;
188 CMC_uint32 byte_length
;
189 CMC_recipient
*originator
;
190 CMC_flags summary_flags
;
191 CMC_extension
*message_summary_extensions
;
192 } CMC_message_summary
;
194 #define CMC_SUM_READ ((CMC_flags) 1)
195 #define CMC_SUM_UNSENT ((CMC_flags) 2)
196 #define CMC_SUM_LAST_ELEMENT ((CMC_flags) 0x80000000)
198 #define CMC_ERROR_UI_ALLOWED ((CMC_flags) 0x01000000)
199 #define CMC_LOGON_UI_ALLOWED ((CMC_flags) 0x02000000)
200 #define CMC_COUNTED_STRING_TYPE ((CMC_flags) 0x04000000)
202 CMC_return_code WINAPI
cmc_send(
203 CMC_session_id session
,
204 CMC_message
*message
,
205 CMC_flags send_flags
,
207 CMC_extension
*send_extensions
210 #define CMC_SEND_UI_REQUESTED ((CMC_flags) 1)
213 CMC_return_code WINAPI
cmc_send_documents(
214 CMC_string recipient_addresses
,
216 CMC_string text_note
,
217 CMC_flags send_doc_flags
,
218 CMC_string file_paths
,
219 CMC_string file_names
,
220 CMC_string delimiter
,
224 #define CMC_FIRST_ATTACH_AS_TEXT_NOTE ((CMC_flags) 2)
227 CMC_return_code WINAPI
cmc_act_on(
228 CMC_session_id session
,
229 CMC_message_reference
*message_reference
,
231 CMC_flags act_on_flags
,
233 CMC_extension
*act_on_extensions
236 #define CMC_ACT_ON_EXTENDED ((CMC_enum) 0)
237 #define CMC_ACT_ON_DELETE ((CMC_enum) 1)
240 CMC_return_code WINAPI
cmc_list(
241 CMC_session_id session
,
242 CMC_string message_type
,
243 CMC_flags list_flags
,
244 CMC_message_reference
*seed
,
247 CMC_message_summary
**result
,
248 CMC_extension
*list_extensions
251 #define CMC_LIST_UNREAD_ONLY ((CMC_flags) 1)
252 #define CMC_LIST_MSG_REFS_ONLY ((CMC_flags) 2)
253 #define CMC_LIST_COUNT_ONLY ((CMC_flags) 4)
255 #define CMC_LENGTH_UNKNOWN 0xFFFFFFFF
258 CMC_return_code WINAPI
cmc_read(
259 CMC_session_id session
,
260 CMC_message_reference
*message_reference
,
261 CMC_flags read_flags
,
262 CMC_message
**message
,
264 CMC_extension
*read_extensions
267 #define CMC_DO_NOT_MARK_AS_READ ((CMC_flags) 1)
268 #define CMC_MSG_AND_ATT_HDRS_ONLY ((CMC_flags) 2)
269 #define CMC_READ_FIRST_UNREAD_MESSAGE ((CMC_flags) 4)
272 CMC_return_code WINAPI
cmc_look_up(
273 CMC_session_id session
,
274 CMC_recipient
*recipient_in
,
275 CMC_flags look_up_flags
,
278 CMC_recipient
**recipient_out
,
279 CMC_extension
*look_up_extensions
282 #define CMC_LOOKUP_RESOLVE_PREFIX_SEARCH ((CMC_flags) 1)
283 #define CMC_LOOKUP_RESOLVE_IDENTITY ((CMC_flags) 2)
284 #define CMC_LOOKUP_RESOLVE_UI ((CMC_flags) 4)
285 #define CMC_LOOKUP_DETAILS_UI ((CMC_flags) 8)
286 #define CMC_LOOKUP_ADDRESSING_UI ((CMC_flags) 16)
289 CMC_return_code WINAPI
cmc_free( CMC_buffer memory
);
291 CMC_return_code WINAPI
cmc_logoff(
292 CMC_session_id session
,
294 CMC_flags logoff_flags
,
295 CMC_extension
*logoff_extensions
298 CMC_return_code WINAPI
cmc_logon(
302 CMC_object_identifier character_set
,
304 CMC_uint16 caller_cmc_version
,
305 CMC_flags logon_flags
,
306 CMC_session_id
*session
,
307 CMC_extension
*logon_extensions
310 #define CMC_VERSION ((CMC_uint16) 100)
312 CMC_return_code WINAPI
cmc_query_configuration(
313 CMC_session_id session
,
315 CMC_buffer reference
,
316 CMC_extension
*config_extensions
319 #define CMC_CONFIG_CHARACTER_SET ((CMC_enum) 1)
320 #define CMC_CONFIG_LINE_TERM ((CMC_enum) 2)
321 #define CMC_CONFIG_DEFAULT_SERVICE ((CMC_enum) 3)
322 #define CMC_CONFIG_DEFAULT_USER ((CMC_enum) 4)
323 #define CMC_CONFIG_REQ_PASSWORD ((CMC_enum) 5)
324 #define CMC_CONFIG_REQ_SERVICE ((CMC_enum) 6)
325 #define CMC_CONFIG_REQ_USER ((CMC_enum) 7)
326 #define CMC_CONFIG_UI_AVAIL ((CMC_enum) 8)
327 #define CMC_CONFIG_SUP_NOMKMSGREAD ((CMC_enum) 9)
328 #define CMC_CONFIG_SUP_COUNTED_STR ((CMC_enum) 10)
329 #define CMC_CONFIG_VER_IMPLEM ((CMC_enum) 11)
330 #define CMC_CONFIG_VER_SPEC ((CMC_enum) 12)
332 #define CMC_LINE_TERM_CRLF ((CMC_enum) 0)
333 #define CMC_LINE_TERM_CR ((CMC_enum) 1)
334 #define CMC_LINE_TERM_LF ((CMC_enum) 2)
336 #define CMC_REQUIRED_NO ((CMC_enum) 0)
337 #define CMC_REQUIRED_YES ((CMC_enum) 1)
338 #define CMC_REQUIRED_OPT ((CMC_enum) 2)
340 #define CMC_CHAR_CP437 "1 2 840 113556 3 2 437"
341 #define CMC_CHAR_CP850 "1 2 840 113556 3 2 85"
342 #define CMC_CHAR_CP1252 "1 2 840 113556 3 2 1252"
343 #define CMC_CHAR_ISTRING "1 2 840 113556 3 2 0"
344 #define CMC_CHAR_UNICODE "1 2 840 113556 3 2 1"
350 #endif /* #ifndef _XCMC_H */