MODULE WinCmc ["MAPI32"];
(**
project = "BlackBox"
organization = "www.oberon.ch"
contributors = "Oberon microsystems"
version = "System/Rsrc/About"
copyright = "System/Rsrc/About"
license = "Docu/BB-License"
changes = ""
issues = ""
**)
CONST
NO_TIMEZONE* = MIN(SHORTINT);
EXT_REQUIRED* = {16};
EXT_OUTPUT* ={17};
EXT_LAST_ELEMENT* = {31};
EXT_RSV_FLAG_MASK* = {16..31};
EXT_ITEM_FLAG_MASK* = {0..15};
ATT_APP_OWNS_FILE* = {0};
ATT_LAST_ELEMENT* = {31};
ATT_OID_BINARY* = "? ? ? ? ? ?";
ATT_OID_TEXT* = "? ? ? ? ? ?";
TYPE_UNKNOWN* = 0;
TYPE_INDIVIDUAL* = 1;
TYPE_GROUP* = 2;
ROLE_TO* = 0;
ROLE_CC* = 1;
ROLE_BCC* = 2;
ROLE_ORIGINATOR* = 3;
ROLE_AUTHORIZING_USER* = 4;
RECIP_IGNORE* = {0};
RECIP_LIST_TRUNCATED* = {1};
RECIP_LAST_ELEMENT* = {31};
MSG_READ* = {0};
MSG_TEXT_NOTE_AS_FILE* = {1};
MSG_UNSENT* = {2};
MSG_LAST_ELEMENT* = {31};
SUM_READ* = {0};
SUM_UNSENT* = {1};
SUM_LAST_ELEMENT* = {31};
ERROR_UI_ALLOWED* = {24};
LOGON_UI_ALLOWED* = {25};
COUNTED_STRING_TYPE* = {26};
SEND_UI_REQUESTED* = {0};
FIRST_ATTACH_AS_TEXT_NOTE* = {1};
ACT_ON_EXTENDED* = 0;
ACT_ON_DELETE* = 1;
LIST_UNREAD_ONLY* = {0};
LIST_MSG_REFS_ONLY* = {1};
LIST_COUNT_ONLY* = {2};
LENGTH_UNKNOWN* = 0FFFFFFFFH;
DO_NOT_MARK_AS_READ* = {0};
MSG_AND_ATT_HDRS_ONLY* = {1};
READ_FIRST_UNREAD_MESSAGE* = {2};
LOOKUP_RESOLVE_PREFIX_SEARCH* = {0};
LOOKUP_RESOLVE_IDENTITY* = {1};
LOOKUP_RESOLVE_UI* = {2};
LOOKUP_DETAILS_UI* = {3};
LOOKUP_ADDRESSING_UI* = {4};
LOGOFF_UI_ALLOWED* = {0};
VERSION* = 100;
CONFIG_CHARACTER_SET* = 1;
CONFIG_LINE_TERM* = 2;
CONFIG_DEFAULT_SERVICE* = 3;
CONFIG_DEFAULT_USER* = 4;
CONFIG_REQ_PASSWORD* = 5;
CONFIG_REQ_SERVICE* = 6;
CONFIG_REQ_USER* = 7;
CONFIG_UI_AVAIL* = 8;
CONFIG_SUP_NOMKMSGREAD* = 9;
CONFIG_SUP_COUNTED_STR* = 10;
CONFIG_VER_IMPLEM* = 11;
CONFIG_VER_SPEC* = 12;
LINE_TERM_CRLF* = 0;
LINE_TERM_CR* = 1;
LINE_TERM_LF* = 2;
REQUIRED_NO* = 0;
REQUIRED_YES* = 1;
REQUIRED_OPT* = 2;
CHAR_CP437* = "1 2 840 113556 3 2 437";
CHAR_CP850* = "1 2 840 113556 3 2 850";
CHAR_CP1252* = "1 2 840 113556 3 2 1252";
CHAR_ISTRING* = "1 2 840 113556 3 2 0";
CHAR_UNICODE* = "1 2 840 113556 3 2 1";
ERROR_DISPLAYED* = 00008000H;
ERROR_RSV_MASK* = 0000FFFFH;
ERROR_IMPL_MASK* = 0FFFF0000H;
SUCCESS* = 0;
E_AMBIGUOUS_RECIPIENT* = 1;
E_ATTACHMENT_NOT_FOUND* = 2;
E_ATTACHMENT_OPEN_FAILURE* = 3;
E_ATTACHMENT_READ_FAILURE* = 4;
E_ATTACHMENT_WRITE_FAILURE* = 5;
E_COUNTED_STRING_UNSUPPORTED* = 6;
E_DISK_FULL* = 7;
E_FAILURE* = 8;
E_INSUFFICIENT_MEMORY* = 9;
E_INVALID_CONFIGURATION* = 10;
E_INVALID_ENUM* = 11;
E_INVALID_FLAG* = 12;
E_INVALID_MEMORY* = 13;
E_INVALID_MESSAGE_PARAMETER* = 14;
E_INVALID_MESSAGE_REFERENCE* = 15;
E_INVALID_PARAMETER* = 16;
E_INVALID_SESSION_ID* = 17;
E_INVALID_UI_ID* = 18;
E_LOGON_FAILURE* = 19;
E_MESSAGE_IN_USE* = 20;
E_NOT_SUPPORTED* = 21;
E_PASSWORD_REQUIRED* = 22;
E_RECIPIENT_NOT_FOUND* = 23;
E_SERVICE_UNAVAILABLE* = 24;
E_TEXT_TOO_LARGE* = 25;
E_TOO_MANY_FILES* = 26;
E_TOO_MANY_RECIPIENTS* = 27;
E_UNABLE_TO_NOT_MARK_AS_READ* = 28;
E_UNRECOGNIZED_MESSAGE_TYPE* = 29;
E_UNSUPPORTED_ACTION* = 30;
E_UNSUPPORTED_CHARACTER_SET* = 31;
E_UNSUPPORTED_DATA_EXT* = 32;
E_UNSUPPORTED_FLAG* = 33;
E_UNSUPPORTED_FUNCTION_EXT* = 34;
E_UNSUPPORTED_VERSION* = 35;
E_USER_CANCEL* = 36;
E_USER_NOT_LOGGED_ON* = 37;
TYPE
sint8* = BYTE;
sint16* = SHORTINT;
sint32* = INTEGER;
uint16* = SHORTINT;
uint32* = INTEGER;
buffer* = INTEGER; (* POINTER TO RECORD [untagged] END *)
string* = POINTER TO ARRAY [untagged] OF SHORTCHAR;
boolean* = uint16;
enum* = sint32;
return_code* = uint32;
flags* = SET;
object_identifier* = string;
session_id* = uint32;
ui_id* = uint32;
counted_string* = RECORD [untagged]
length*: uint32;
string*: ARRAY 32000 OF SHORTCHAR;
END;
message_reference* = counted_string;
time* = RECORD [untagged]
second*, minute*, hour*: sint8;
day*, month*, year*: sint8;
isdst*: sint8;
tmzone*: sint16
END;
extension* = RECORD [untagged]
item_code*: uint32;
item_data*: uint32;
item_reference*: buffer;
extension_flags*: flags
END;
attachment* = RECORD [untagged]
attach_title*: string;
attach_type*: object_identifier;
attach_filename*: string;
attach_flags*: flags;
attach_extensions*: POINTER TO extension
END;
recipient* = RECORD [untagged]
name*: string;
name_type*: enum;
address*: string;
role*: enum;
recip_flags*: flags;
recip_extensions*: POINTER TO extension
END;
message* = RECORD [untagged]
message_ref*: POINTER TO message_reference;
message_type*: string;
subject*: string;
time_sent*: time;
text_note*: string;
recipients*: POINTER TO recipient;
attachments*: POINTER TO attachment;
message_flags*: flags;
message_extensions*: POINTER TO extension
END;
message_summary* = RECORD [untagged]
message_ref*: POINTER TO message_reference;
message_type*: string;
subject*: string;
time_sent*: time;
byte_length*: uint32;
originator*: POINTER TO recipient;
summary_flags*: flags;
message_summary_extensions*: POINTER TO extension
END;
PROCEDURE send* ["cmc_send"] (session: session_id; VAR msg: message; flgs: flags; id: ui_id; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END send;*)
PROCEDURE send_documents* ["cmc_send_documents"] (adr, subject, note: string; flgs: flags; paths, names, delimiter: string; id: ui_id): return_code;
(*END send_documents;*)
PROCEDURE act_on* ["cmc_act_on"] (session: session_id; VAR ref: message_reference; operation: enum; flgs: flags; id: ui_id; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END act_on;*)
PROCEDURE list* ["cmc_list"] (session: session_id; type: string; flgs: flags; VAR [nil] seed: message_reference; VAR count: uint32; id: ui_id; VAR result: POINTER TO ARRAY [untagged] OF message_summary; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END list;*)
PROCEDURE read* ["cmc_read"] (session: session_id; VAR ref: message_reference; flgs: flags; VAR msg: POINTER TO message; id: ui_id; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END read;*)
PROCEDURE look_up* ["cmc_look_up"] (session: session_id; VAR rin: ARRAY [untagged] OF recipient; flgs: flags; id: ui_id; VAR count: uint32; VAR rout: POINTER TO ARRAY [untagged] OF recipient; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END look_up;*)
PROCEDURE logoff* ["cmc_logoff"] (session: session_id; id: ui_id; flgs: flags; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END logoff;*)
PROCEDURE logon* ["cmc_logon"] (service, user, password: string; chset: object_identifier; id: ui_id; version: uint16; flgs: flags; VAR session: session_id; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END logon;*)
PROCEDURE query_configuration* ["cmc_query_configuration"] (session: session_id; item: enum; ref: buffer; VAR [nil] ext: ARRAY [untagged] OF extension): return_code;
(*END query_configuration;*)
PROCEDURE free* ["cmc_free"] (mem: buffer): return_code;
(*END free;*)
END WinCmc.