From 8aeb463d4937b76a7c8cb36610e79759eae7494f Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Sat, 1 May 2004 02:39:33 +0000 Subject: [PATCH] Stub cmc_query_configuration() and add xcmc.h header file. --- dlls/mapi32/mapi32.spec | 2 +- dlls/mapi32/util.c | 27 ++++ include/Makefile.in | 1 + include/xcmc.h | 350 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 379 insertions(+), 1 deletion(-) create mode 100644 include/xcmc.h diff --git a/dlls/mapi32/mapi32.spec b/dlls/mapi32/mapi32.spec index 43b311ab841..8b606a623dc 100644 --- a/dlls/mapi32/mapi32.spec +++ b/dlls/mapi32/mapi32.spec @@ -171,7 +171,7 @@ 232 stub cmc_logoff 233 stub cmc_logon 234 stub cmc_look_up -235 stub cmc_query_configuration +235 stdcall cmc_query_configuration( long long ptr ptr ) 236 stub cmc_read 237 stub cmc_send 238 stub cmc_send_documents diff --git a/dlls/mapi32/util.c b/dlls/mapi32/util.c index 31539ed2902..53651b29a92 100644 --- a/dlls/mapi32/util.c +++ b/dlls/mapi32/util.c @@ -32,6 +32,7 @@ #include "wine/debug.h" #include "wine/unicode.h" #include "mapival.h" +#include "xcmc.h" WINE_DEFAULT_DEBUG_CHANNEL(mapi); @@ -539,3 +540,29 @@ HRESULT WINAPI OpenStreamOnFile(LPALLOCATEBUFFER lpAlloc, LPFREEBUFFER lpFree, NULL, lppStream); return hRet; } + + +/************************************************************************* + * cmc_query_configuration (MAPI32.235) + * + * Retrieves the configuration information for the installed CMC + * + * PARAMS + * session [I] MAPI session handle + * item [I] Enumerated variable that identifies which + * configuration information is being requested + * reference [O] Buffer where configuration information is written + * config_extensions[I/O] Path of file to create stream on + * + * RETURNS + * A CMD define + */ +CMC_return_code WINAPI cmc_query_configuration( + CMC_session_id session, + CMC_enum item, + CMC_buffer reference, + CMC_extension *config_extensions) +{ + FIXME("stub"); + return CMC_E_NOT_SUPPORTED; +} diff --git a/include/Makefile.in b/include/Makefile.in index 8d6b9452f50..2346f46a902 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -228,6 +228,7 @@ WINDOWS_INCLUDES = \ ws2tcpip.h \ wshisotp.h \ wsipx.h \ + xcmc.h \ zmouse.h \ $(IDL_INCLUDES) \ $(IDL_SRCS) \ diff --git a/include/xcmc.h b/include/xcmc.h new file mode 100644 index 00000000000..e4ff49175ea --- /dev/null +++ b/include/xcmc.h @@ -0,0 +1,350 @@ +/* + * Copyright (C) 2004 Chris Morgan + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef _XCMC_H +#define _XCMC_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef char CMC_sint8; +typedef short CMC_sint16; +typedef long int CMC_sint32; +typedef unsigned short int CMC_uint16; +typedef unsigned long int CMC_uint32; +typedef void* CMC_buffer; +typedef char* CMC_string; + +typedef CMC_uint16 CMC_boolean; +typedef CMC_sint32 CMC_enum; +typedef CMC_uint32 CMC_return_code; +typedef CMC_uint32 CMC_flags; +typedef CMC_string CMC_object_identifier; +typedef CMC_uint32 CMC_session_id; +typedef CMC_uint32 CMC_ui_id; + +#define CMC_FALSE ((CMC_boolean)0) +#define CMC_TRUE ((CMC_boolean)1) + +#define CMC_SUCCESS ((CMC_return_code) 0) + +#define CMC_E_AMBIGUOUS_RECIPIENT ((CMC_return_code) 1) +#define CMC_E_ATTACHMENT_NOT_FOUND ((CMC_return_code) 2) +#define CMC_E_ATTACHMENT_OPEN_FAILURE ((CMC_return_code) 3) +#define CMC_E_ATTACHMENT_READ_FAILURE ((CMC_return_code) 4) +#define CMC_E_ATTACHMENT_WRITE_FAILURE ((CMC_return_code) 5) +#define CMC_E_COUNTED_STRING_UNSUPPORTED ((CMC_return_code) 6) +#define CMC_E_DISK_FULL ((CMC_return_code) 7) +#define CMC_E_FAILURE ((CMC_return_code) 8) +#define CMC_E_INSUFFICIENT_MEMORY ((CMC_return_code) 9) +#define CMC_E_INVALID_CONFIGURATION ((CMC_return_code) 10) +#define CMC_E_INVALID_ENUM ((CMC_return_code) 11) +#define CMC_E_INVALID_FLAG ((CMC_return_code) 12) +#define CMC_E_INVALID_MEMORY ((CMC_return_code) 13) +#define CMC_E_INVALID_MESSAGE_PARAMETER ((CMC_return_code) 14) +#define CMC_E_INVALID_MESSAGE_REFERENCE ((CMC_return_code) 15) +#define CMC_E_INVALID_PARAMETER ((CMC_return_code) 16) +#define CMC_E_INVALID_SESSION_ID ((CMC_return_code) 17) +#define CMC_E_INVALID_UI_ID ((CMC_return_code) 18) +#define CMC_E_LOGON_FAILURE ((CMC_return_code) 19) +#define CMC_E_MESSAGE_IN_USE ((CMC_return_code) 20) +#define CMC_E_NOT_SUPPORTED ((CMC_return_code) 21) +#define CMC_E_PASSWORD_REQUIRED ((CMC_return_code) 22) +#define CMC_E_RECIPIENT_NOT_FOUND ((CMC_return_code) 23) +#define CMC_E_SERVICE_UNAVAILABLE ((CMC_return_code) 24) +#define CMC_E_TEXT_TOO_LARGE ((CMC_return_code) 25) +#define CMC_E_TOO_MANY_FILES ((CMC_return_code) 26) +#define CMC_E_TOO_MANY_RECIPIENTS ((CMC_return_code) 27) +#define CMC_E_UNABLE_TO_NOT_MARK_AS_READ ((CMC_return_code) 28) +#define CMC_E_UNRECOGNIZED_MESSAGE_TYPE ((CMC_return_code) 29) +#define CMC_E_UNSUPPORTED_ACTION ((CMC_return_code) 30) +#define CMC_E_UNSUPPORTED_CHARACTER_SET ((CMC_return_code) 31) +#define CMC_E_UNSUPPORTED_DATA_EXT ((CMC_return_code) 32) +#define CMC_E_UNSUPPORTED_FLAG ((CMC_return_code) 33) +#define CMC_E_UNSUPPORTED_FUNCTION_EXT ((CMC_return_code) 34) +#define CMC_E_UNSUPPORTED_VERSION ((CMC_return_code) 35) +#define CMC_E_USER_CANCEL ((CMC_return_code) 36) +#define CMC_E_USER_NOT_LOGGED_ON ((CMC_return_code) 37) + +#define CMC_ERROR_DISPLAYED ((CMC_return_code) 0x00008000) +#define CMC_ERROR_RSV_MASK ((CMC_return_code) 0x0000FFFF) +#define CMC_ERROR_IMPL_MASK ((CMC_return_code) 0xFFFF0000) + +typedef struct { + CMC_uint32 length; + char string[1]; +} CMC_counted_string; + +typedef CMC_counted_string CMC_message_reference; + +typedef struct { + CMC_sint8 second; + CMC_sint8 minute; + CMC_sint8 hour; + CMC_sint8 day; + CMC_sint8 month; + CMC_sint8 year; + CMC_sint8 isdst; + CMC_sint8 unused1; + CMC_sint16 tmzone; + CMC_sint16 unused2; +} CMC_time; + +#define CMC_NO_TIMEZONE ((CMC_sint16) 0x8000) + + +typedef struct { + CMC_uint32 item_code; + CMC_uint32 item_data; + CMC_buffer item_reference; + CMC_flags extension_flags; +} CMC_extension; + +#define CMC_EXT_REQUIRED ((CMC_flags) 0x00010000) +#define CMC_EXT_OUTPUT ((CMC_flags) 0x00020000) +#define CMC_EXT_LAST_ELEMENT ((CMC_flags) 0x80000000) +#define CMC_EXT_RSV_FLAG_MASK ((CMC_flags) 0xFFFF0000) +#define CMC_EXT_ITEM_FLAG_MASK ((CMC_flags) 0x0000FFFF) + + +typedef struct CMC_attachment_s { + CMC_string attach_title; + CMC_object_identifier attach_type; + CMC_string attach_filename; + CMC_flags attach_flags; + CMC_extension *attach_extensions; +} CMC_attachment; + +#define CMC_ATT_APP_OWNS_FILE ((CMC_flags) 1) +#define CMC_ATT_LAST_ELEMENT ((CMC_flags) 0x80000000) + +#define CMC_ATT_OID_BINARY "? ? ? ? ? ?" +#define CMC_ATT_OID_TEXT "? ? ? ? ? ?" + + +typedef struct { + CMC_string name; + CMC_enum name_type; + CMC_string address; + CMC_enum role; + CMC_flags recip_flags; + CMC_extension *recip_extensions; +} CMC_recipient; + +#define CMC_TYPE_UNKNOWN ((CMC_enum) 0) +#define CMC_TYPE_INDIVIDUAL ((CMC_enum) 1) +#define CMC_TYPE_GROUP ((CMC_enum) 2) + +#define CMC_ROLE_TO ((CMC_enum) 0) +#define CMC_ROLE_CC ((CMC_enum) 1) +#define CMC_ROLE_BCC ((CMC_enum) 2) +#define CMC_ROLE_ORIGINATOR ((CMC_enum) 3) +#define CMC_ROLE_AUTHORIZING_USER ((CMC_enum) 4) + +#define CMC_RECIP_IGNORE ((CMC_flags) 1) +#define CMC_RECIP_LIST_TRUNCATED ((CMC_flags) 2) +#define CMC_RECIP_LAST_ELEMENT ((CMC_flags) 0x80000000) + + +typedef struct { + CMC_message_reference *message_reference; + CMC_string message_type; + CMC_string subject; + CMC_time time_sent; + CMC_string text_note; + CMC_recipient *recipients; + CMC_attachment *attachments; + CMC_flags message_flags; + CMC_extension *message_extensions; +} CMC_message; + +#define CMC_MSG_READ ((CMC_flags) 1) +#define CMC_MSG_TEXT_NOTE_AS_FILE ((CMC_flags) 2) +#define CMC_MSG_UNSENT ((CMC_flags) 4) +#define CMC_MSG_LAST_ELEMENT ((CMC_flags) 0x80000000) + + +typedef struct { + CMC_message_reference *message_reference; + CMC_string message_type; + CMC_string subject; + CMC_time time_sent; + CMC_uint32 byte_length; + CMC_recipient *originator; + CMC_flags summary_flags; + CMC_extension *message_summary_extensions; +} CMC_message_summary; + +#define CMC_SUM_READ ((CMC_flags) 1) +#define CMC_SUM_UNSENT ((CMC_flags) 2) +#define CMC_SUM_LAST_ELEMENT ((CMC_flags) 0x80000000) + +#define CMC_ERROR_UI_ALLOWED ((CMC_flags) 0x01000000) +#define CMC_LOGON_UI_ALLOWED ((CMC_flags) 0x02000000) +#define CMC_COUNTED_STRING_TYPE ((CMC_flags) 0x04000000) + +CMC_return_code WINAPI cmc_send( + CMC_session_id session, + CMC_message *message, + CMC_flags send_flags, + CMC_ui_id ui_id, + CMC_extension *send_extensions +); + +#define CMC_SEND_UI_REQUESTED ((CMC_flags) 1) + + +CMC_return_code WINAPI cmc_send_documents( + CMC_string recipient_addresses, + CMC_string subject, + CMC_string text_note, + CMC_flags send_doc_flags, + CMC_string file_paths, + CMC_string file_names, + CMC_string delimiter, + CMC_ui_id ui_id +); + +#define CMC_FIRST_ATTACH_AS_TEXT_NOTE ((CMC_flags) 2) + + +CMC_return_code WINAPI cmc_act_on( + CMC_session_id session, + CMC_message_reference *message_reference, + CMC_enum operation, + CMC_flags act_on_flags, + CMC_ui_id ui_id, + CMC_extension *act_on_extensions +); + +#define CMC_ACT_ON_EXTENDED ((CMC_enum) 0) +#define CMC_ACT_ON_DELETE ((CMC_enum) 1) + + +CMC_return_code WINAPI cmc_list( + CMC_session_id session, + CMC_string message_type, + CMC_flags list_flags, + CMC_message_reference *seed, + CMC_uint32 *count, + CMC_ui_id ui_id, + CMC_message_summary **result, + CMC_extension *list_extensions +); + +#define CMC_LIST_UNREAD_ONLY ((CMC_flags) 1) +#define CMC_LIST_MSG_REFS_ONLY ((CMC_flags) 2) +#define CMC_LIST_COUNT_ONLY ((CMC_flags) 4) + +#define CMC_LENGTH_UNKNOWN 0xFFFFFFFF + + +CMC_return_code WINAPI cmc_read( + CMC_session_id session, + CMC_message_reference *message_reference, + CMC_flags read_flags, + CMC_message **message, + CMC_ui_id ui_id, + CMC_extension *read_extensions +); + +#define CMC_DO_NOT_MARK_AS_READ ((CMC_flags) 1) +#define CMC_MSG_AND_ATT_HDRS_ONLY ((CMC_flags) 2) +#define CMC_READ_FIRST_UNREAD_MESSAGE ((CMC_flags) 4) + + +CMC_return_code WINAPI cmc_look_up( + CMC_session_id session, + CMC_recipient *recipient_in, + CMC_flags look_up_flags, + CMC_ui_id ui_id, + CMC_uint32 *count, + CMC_recipient **recipient_out, + CMC_extension *look_up_extensions +); + +#define CMC_LOOKUP_RESOLVE_PREFIX_SEARCH ((CMC_flags) 1) +#define CMC_LOOKUP_RESOLVE_IDENTITY ((CMC_flags) 2) +#define CMC_LOOKUP_RESOLVE_UI ((CMC_flags) 4) +#define CMC_LOOKUP_DETAILS_UI ((CMC_flags) 8) +#define CMC_LOOKUP_ADDRESSING_UI ((CMC_flags) 16) + + +CMC_return_code WINAPI cmc_free( CMC_buffer memory ); + +CMC_return_code WINAPI cmc_logoff( + CMC_session_id session, + CMC_ui_id ui_id, + CMC_flags logoff_flags, + CMC_extension *logoff_extensions +); + +CMC_return_code WINAPI cmc_logon( + CMC_string service, + CMC_string user, + CMC_string password, + CMC_object_identifier character_set, + CMC_ui_id ui_id, + CMC_uint16 caller_cmc_version, + CMC_flags logon_flags, + CMC_session_id *session, + CMC_extension *logon_extensions +); + +#define CMC_VERSION ((CMC_uint16) 100) + +CMC_return_code WINAPI cmc_query_configuration( + CMC_session_id session, + CMC_enum item, + CMC_buffer reference, + CMC_extension *config_extensions +); + +#define CMC_CONFIG_CHARACTER_SET ((CMC_enum) 1) +#define CMC_CONFIG_LINE_TERM ((CMC_enum) 2) +#define CMC_CONFIG_DEFAULT_SERVICE ((CMC_enum) 3) +#define CMC_CONFIG_DEFAULT_USER ((CMC_enum) 4) +#define CMC_CONFIG_REQ_PASSWORD ((CMC_enum) 5) +#define CMC_CONFIG_REQ_SERVICE ((CMC_enum) 6) +#define CMC_CONFIG_REQ_USER ((CMC_enum) 7) +#define CMC_CONFIG_UI_AVAIL ((CMC_enum) 8) +#define CMC_CONFIG_SUP_NOMKMSGREAD ((CMC_enum) 9) +#define CMC_CONFIG_SUP_COUNTED_STR ((CMC_enum) 10) +#define CMC_CONFIG_VER_IMPLEM ((CMC_enum) 11) +#define CMC_CONFIG_VER_SPEC ((CMC_enum) 12) + +#define CMC_LINE_TERM_CRLF ((CMC_enum) 0) +#define CMC_LINE_TERM_CR ((CMC_enum) 1) +#define CMC_LINE_TERM_LF ((CMC_enum) 2) + +#define CMC_REQUIRED_NO ((CMC_enum) 0) +#define CMC_REQUIRED_YES ((CMC_enum) 1) +#define CMC_REQUIRED_OPT ((CMC_enum) 2) + +#define CMC_CHAR_CP437 "1 2 840 113556 3 2 437" +#define CMC_CHAR_CP850 "1 2 840 113556 3 2 85" +#define CMC_CHAR_CP1252 "1 2 840 113556 3 2 1252" +#define CMC_CHAR_ISTRING "1 2 840 113556 3 2 0" +#define CMC_CHAR_UNICODE "1 2 840 113556 3 2 1" + +#ifdef __cplusplus +} +#endif + +#endif /* #ifndef _XCMC_H */