1*c2c66affSColin Finck /* 2*c2c66affSColin Finck * Copyright (C) 2004 Chris Morgan 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or 5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public 6*c2c66affSColin Finck * License as published by the Free Software Foundation; either 7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version. 8*c2c66affSColin Finck * 9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful, 10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12*c2c66affSColin Finck * Lesser General Public License for more details. 13*c2c66affSColin Finck * 14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public 15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software 16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17*c2c66affSColin Finck */ 18*c2c66affSColin Finck 19*c2c66affSColin Finck #ifndef _XCMC_H 20*c2c66affSColin Finck #define _XCMC_H 21*c2c66affSColin Finck 22*c2c66affSColin Finck #ifdef __cplusplus 23*c2c66affSColin Finck extern "C" { 24*c2c66affSColin Finck #endif 25*c2c66affSColin Finck 26*c2c66affSColin Finck typedef char CMC_sint8; 27*c2c66affSColin Finck typedef short CMC_sint16; 28*c2c66affSColin Finck typedef long int CMC_sint32; 29*c2c66affSColin Finck typedef unsigned short int CMC_uint16; 30*c2c66affSColin Finck typedef unsigned long int CMC_uint32; 31*c2c66affSColin Finck typedef void* CMC_buffer; 32*c2c66affSColin Finck typedef char* CMC_string; 33*c2c66affSColin Finck 34*c2c66affSColin Finck typedef CMC_uint16 CMC_boolean; 35*c2c66affSColin Finck typedef CMC_sint32 CMC_enum; 36*c2c66affSColin Finck typedef CMC_uint32 CMC_return_code; 37*c2c66affSColin Finck typedef CMC_uint32 CMC_flags; 38*c2c66affSColin Finck typedef CMC_string CMC_object_identifier; 39*c2c66affSColin Finck typedef CMC_uint32 CMC_session_id; 40*c2c66affSColin Finck typedef CMC_uint32 CMC_ui_id; 41*c2c66affSColin Finck 42*c2c66affSColin Finck #define CMC_FALSE ((CMC_boolean)0) 43*c2c66affSColin Finck #define CMC_TRUE ((CMC_boolean)1) 44*c2c66affSColin Finck 45*c2c66affSColin Finck #define CMC_SUCCESS ((CMC_return_code) 0) 46*c2c66affSColin Finck 47*c2c66affSColin Finck #define CMC_E_AMBIGUOUS_RECIPIENT ((CMC_return_code) 1) 48*c2c66affSColin Finck #define CMC_E_ATTACHMENT_NOT_FOUND ((CMC_return_code) 2) 49*c2c66affSColin Finck #define CMC_E_ATTACHMENT_OPEN_FAILURE ((CMC_return_code) 3) 50*c2c66affSColin Finck #define CMC_E_ATTACHMENT_READ_FAILURE ((CMC_return_code) 4) 51*c2c66affSColin Finck #define CMC_E_ATTACHMENT_WRITE_FAILURE ((CMC_return_code) 5) 52*c2c66affSColin Finck #define CMC_E_COUNTED_STRING_UNSUPPORTED ((CMC_return_code) 6) 53*c2c66affSColin Finck #define CMC_E_DISK_FULL ((CMC_return_code) 7) 54*c2c66affSColin Finck #define CMC_E_FAILURE ((CMC_return_code) 8) 55*c2c66affSColin Finck #define CMC_E_INSUFFICIENT_MEMORY ((CMC_return_code) 9) 56*c2c66affSColin Finck #define CMC_E_INVALID_CONFIGURATION ((CMC_return_code) 10) 57*c2c66affSColin Finck #define CMC_E_INVALID_ENUM ((CMC_return_code) 11) 58*c2c66affSColin Finck #define CMC_E_INVALID_FLAG ((CMC_return_code) 12) 59*c2c66affSColin Finck #define CMC_E_INVALID_MEMORY ((CMC_return_code) 13) 60*c2c66affSColin Finck #define CMC_E_INVALID_MESSAGE_PARAMETER ((CMC_return_code) 14) 61*c2c66affSColin Finck #define CMC_E_INVALID_MESSAGE_REFERENCE ((CMC_return_code) 15) 62*c2c66affSColin Finck #define CMC_E_INVALID_PARAMETER ((CMC_return_code) 16) 63*c2c66affSColin Finck #define CMC_E_INVALID_SESSION_ID ((CMC_return_code) 17) 64*c2c66affSColin Finck #define CMC_E_INVALID_UI_ID ((CMC_return_code) 18) 65*c2c66affSColin Finck #define CMC_E_LOGON_FAILURE ((CMC_return_code) 19) 66*c2c66affSColin Finck #define CMC_E_MESSAGE_IN_USE ((CMC_return_code) 20) 67*c2c66affSColin Finck #define CMC_E_NOT_SUPPORTED ((CMC_return_code) 21) 68*c2c66affSColin Finck #define CMC_E_PASSWORD_REQUIRED ((CMC_return_code) 22) 69*c2c66affSColin Finck #define CMC_E_RECIPIENT_NOT_FOUND ((CMC_return_code) 23) 70*c2c66affSColin Finck #define CMC_E_SERVICE_UNAVAILABLE ((CMC_return_code) 24) 71*c2c66affSColin Finck #define CMC_E_TEXT_TOO_LARGE ((CMC_return_code) 25) 72*c2c66affSColin Finck #define CMC_E_TOO_MANY_FILES ((CMC_return_code) 26) 73*c2c66affSColin Finck #define CMC_E_TOO_MANY_RECIPIENTS ((CMC_return_code) 27) 74*c2c66affSColin Finck #define CMC_E_UNABLE_TO_NOT_MARK_AS_READ ((CMC_return_code) 28) 75*c2c66affSColin Finck #define CMC_E_UNRECOGNIZED_MESSAGE_TYPE ((CMC_return_code) 29) 76*c2c66affSColin Finck #define CMC_E_UNSUPPORTED_ACTION ((CMC_return_code) 30) 77*c2c66affSColin Finck #define CMC_E_UNSUPPORTED_CHARACTER_SET ((CMC_return_code) 31) 78*c2c66affSColin Finck #define CMC_E_UNSUPPORTED_DATA_EXT ((CMC_return_code) 32) 79*c2c66affSColin Finck #define CMC_E_UNSUPPORTED_FLAG ((CMC_return_code) 33) 80*c2c66affSColin Finck #define CMC_E_UNSUPPORTED_FUNCTION_EXT ((CMC_return_code) 34) 81*c2c66affSColin Finck #define CMC_E_UNSUPPORTED_VERSION ((CMC_return_code) 35) 82*c2c66affSColin Finck #define CMC_E_USER_CANCEL ((CMC_return_code) 36) 83*c2c66affSColin Finck #define CMC_E_USER_NOT_LOGGED_ON ((CMC_return_code) 37) 84*c2c66affSColin Finck 85*c2c66affSColin Finck #define CMC_ERROR_DISPLAYED ((CMC_return_code) 0x00008000) 86*c2c66affSColin Finck #define CMC_ERROR_RSV_MASK ((CMC_return_code) 0x0000FFFF) 87*c2c66affSColin Finck #define CMC_ERROR_IMPL_MASK ((CMC_return_code) 0xFFFF0000) 88*c2c66affSColin Finck 89*c2c66affSColin Finck typedef struct { 90*c2c66affSColin Finck CMC_uint32 length; 91*c2c66affSColin Finck char string[1]; 92*c2c66affSColin Finck } CMC_counted_string; 93*c2c66affSColin Finck 94*c2c66affSColin Finck typedef CMC_counted_string CMC_message_reference; 95*c2c66affSColin Finck 96*c2c66affSColin Finck typedef struct { 97*c2c66affSColin Finck CMC_sint8 second; 98*c2c66affSColin Finck CMC_sint8 minute; 99*c2c66affSColin Finck CMC_sint8 hour; 100*c2c66affSColin Finck CMC_sint8 day; 101*c2c66affSColin Finck CMC_sint8 month; 102*c2c66affSColin Finck CMC_sint8 year; 103*c2c66affSColin Finck CMC_sint8 isdst; 104*c2c66affSColin Finck CMC_sint8 unused1; 105*c2c66affSColin Finck CMC_sint16 tmzone; 106*c2c66affSColin Finck CMC_sint16 unused2; 107*c2c66affSColin Finck } CMC_time; 108*c2c66affSColin Finck 109*c2c66affSColin Finck #define CMC_NO_TIMEZONE ((CMC_sint16) 0x8000) 110*c2c66affSColin Finck 111*c2c66affSColin Finck 112*c2c66affSColin Finck typedef struct { 113*c2c66affSColin Finck CMC_uint32 item_code; 114*c2c66affSColin Finck CMC_uint32 item_data; 115*c2c66affSColin Finck CMC_buffer item_reference; 116*c2c66affSColin Finck CMC_flags extension_flags; 117*c2c66affSColin Finck } CMC_extension; 118*c2c66affSColin Finck 119*c2c66affSColin Finck #define CMC_EXT_REQUIRED ((CMC_flags) 0x00010000) 120*c2c66affSColin Finck #define CMC_EXT_OUTPUT ((CMC_flags) 0x00020000) 121*c2c66affSColin Finck #define CMC_EXT_LAST_ELEMENT ((CMC_flags) 0x80000000) 122*c2c66affSColin Finck #define CMC_EXT_RSV_FLAG_MASK ((CMC_flags) 0xFFFF0000) 123*c2c66affSColin Finck #define CMC_EXT_ITEM_FLAG_MASK ((CMC_flags) 0x0000FFFF) 124*c2c66affSColin Finck 125*c2c66affSColin Finck 126*c2c66affSColin Finck typedef struct CMC_attachment_s { 127*c2c66affSColin Finck CMC_string attach_title; 128*c2c66affSColin Finck CMC_object_identifier attach_type; 129*c2c66affSColin Finck CMC_string attach_filename; 130*c2c66affSColin Finck CMC_flags attach_flags; 131*c2c66affSColin Finck CMC_extension *attach_extensions; 132*c2c66affSColin Finck } CMC_attachment; 133*c2c66affSColin Finck 134*c2c66affSColin Finck #define CMC_ATT_APP_OWNS_FILE ((CMC_flags) 1) 135*c2c66affSColin Finck #define CMC_ATT_LAST_ELEMENT ((CMC_flags) 0x80000000) 136*c2c66affSColin Finck 137*c2c66affSColin Finck #define CMC_ATT_OID_BINARY "? ? ? ? ? ?" 138*c2c66affSColin Finck #define CMC_ATT_OID_TEXT "? ? ? ? ? ?" 139*c2c66affSColin Finck 140*c2c66affSColin Finck 141*c2c66affSColin Finck typedef struct { 142*c2c66affSColin Finck CMC_string name; 143*c2c66affSColin Finck CMC_enum name_type; 144*c2c66affSColin Finck CMC_string address; 145*c2c66affSColin Finck CMC_enum role; 146*c2c66affSColin Finck CMC_flags recip_flags; 147*c2c66affSColin Finck CMC_extension *recip_extensions; 148*c2c66affSColin Finck } CMC_recipient; 149*c2c66affSColin Finck 150*c2c66affSColin Finck #define CMC_TYPE_UNKNOWN ((CMC_enum) 0) 151*c2c66affSColin Finck #define CMC_TYPE_INDIVIDUAL ((CMC_enum) 1) 152*c2c66affSColin Finck #define CMC_TYPE_GROUP ((CMC_enum) 2) 153*c2c66affSColin Finck 154*c2c66affSColin Finck #define CMC_ROLE_TO ((CMC_enum) 0) 155*c2c66affSColin Finck #define CMC_ROLE_CC ((CMC_enum) 1) 156*c2c66affSColin Finck #define CMC_ROLE_BCC ((CMC_enum) 2) 157*c2c66affSColin Finck #define CMC_ROLE_ORIGINATOR ((CMC_enum) 3) 158*c2c66affSColin Finck #define CMC_ROLE_AUTHORIZING_USER ((CMC_enum) 4) 159*c2c66affSColin Finck 160*c2c66affSColin Finck #define CMC_RECIP_IGNORE ((CMC_flags) 1) 161*c2c66affSColin Finck #define CMC_RECIP_LIST_TRUNCATED ((CMC_flags) 2) 162*c2c66affSColin Finck #define CMC_RECIP_LAST_ELEMENT ((CMC_flags) 0x80000000) 163*c2c66affSColin Finck 164*c2c66affSColin Finck 165*c2c66affSColin Finck typedef struct { 166*c2c66affSColin Finck CMC_message_reference *message_reference; 167*c2c66affSColin Finck CMC_string message_type; 168*c2c66affSColin Finck CMC_string subject; 169*c2c66affSColin Finck CMC_time time_sent; 170*c2c66affSColin Finck CMC_string text_note; 171*c2c66affSColin Finck CMC_recipient *recipients; 172*c2c66affSColin Finck CMC_attachment *attachments; 173*c2c66affSColin Finck CMC_flags message_flags; 174*c2c66affSColin Finck CMC_extension *message_extensions; 175*c2c66affSColin Finck } CMC_message; 176*c2c66affSColin Finck 177*c2c66affSColin Finck #define CMC_MSG_READ ((CMC_flags) 1) 178*c2c66affSColin Finck #define CMC_MSG_TEXT_NOTE_AS_FILE ((CMC_flags) 2) 179*c2c66affSColin Finck #define CMC_MSG_UNSENT ((CMC_flags) 4) 180*c2c66affSColin Finck #define CMC_MSG_LAST_ELEMENT ((CMC_flags) 0x80000000) 181*c2c66affSColin Finck 182*c2c66affSColin Finck 183*c2c66affSColin Finck typedef struct { 184*c2c66affSColin Finck CMC_message_reference *message_reference; 185*c2c66affSColin Finck CMC_string message_type; 186*c2c66affSColin Finck CMC_string subject; 187*c2c66affSColin Finck CMC_time time_sent; 188*c2c66affSColin Finck CMC_uint32 byte_length; 189*c2c66affSColin Finck CMC_recipient *originator; 190*c2c66affSColin Finck CMC_flags summary_flags; 191*c2c66affSColin Finck CMC_extension *message_summary_extensions; 192*c2c66affSColin Finck } CMC_message_summary; 193*c2c66affSColin Finck 194*c2c66affSColin Finck #define CMC_SUM_READ ((CMC_flags) 1) 195*c2c66affSColin Finck #define CMC_SUM_UNSENT ((CMC_flags) 2) 196*c2c66affSColin Finck #define CMC_SUM_LAST_ELEMENT ((CMC_flags) 0x80000000) 197*c2c66affSColin Finck 198*c2c66affSColin Finck #define CMC_ERROR_UI_ALLOWED ((CMC_flags) 0x01000000) 199*c2c66affSColin Finck #define CMC_LOGON_UI_ALLOWED ((CMC_flags) 0x02000000) 200*c2c66affSColin Finck #define CMC_COUNTED_STRING_TYPE ((CMC_flags) 0x04000000) 201*c2c66affSColin Finck 202*c2c66affSColin Finck CMC_return_code WINAPI cmc_send( 203*c2c66affSColin Finck CMC_session_id session, 204*c2c66affSColin Finck CMC_message *message, 205*c2c66affSColin Finck CMC_flags send_flags, 206*c2c66affSColin Finck CMC_ui_id ui_id, 207*c2c66affSColin Finck CMC_extension *send_extensions 208*c2c66affSColin Finck ); 209*c2c66affSColin Finck 210*c2c66affSColin Finck #define CMC_SEND_UI_REQUESTED ((CMC_flags) 1) 211*c2c66affSColin Finck 212*c2c66affSColin Finck 213*c2c66affSColin Finck CMC_return_code WINAPI cmc_send_documents( 214*c2c66affSColin Finck CMC_string recipient_addresses, 215*c2c66affSColin Finck CMC_string subject, 216*c2c66affSColin Finck CMC_string text_note, 217*c2c66affSColin Finck CMC_flags send_doc_flags, 218*c2c66affSColin Finck CMC_string file_paths, 219*c2c66affSColin Finck CMC_string file_names, 220*c2c66affSColin Finck CMC_string delimiter, 221*c2c66affSColin Finck CMC_ui_id ui_id 222*c2c66affSColin Finck ); 223*c2c66affSColin Finck 224*c2c66affSColin Finck #define CMC_FIRST_ATTACH_AS_TEXT_NOTE ((CMC_flags) 2) 225*c2c66affSColin Finck 226*c2c66affSColin Finck 227*c2c66affSColin Finck CMC_return_code WINAPI cmc_act_on( 228*c2c66affSColin Finck CMC_session_id session, 229*c2c66affSColin Finck CMC_message_reference *message_reference, 230*c2c66affSColin Finck CMC_enum operation, 231*c2c66affSColin Finck CMC_flags act_on_flags, 232*c2c66affSColin Finck CMC_ui_id ui_id, 233*c2c66affSColin Finck CMC_extension *act_on_extensions 234*c2c66affSColin Finck ); 235*c2c66affSColin Finck 236*c2c66affSColin Finck #define CMC_ACT_ON_EXTENDED ((CMC_enum) 0) 237*c2c66affSColin Finck #define CMC_ACT_ON_DELETE ((CMC_enum) 1) 238*c2c66affSColin Finck 239*c2c66affSColin Finck 240*c2c66affSColin Finck CMC_return_code WINAPI cmc_list( 241*c2c66affSColin Finck CMC_session_id session, 242*c2c66affSColin Finck CMC_string message_type, 243*c2c66affSColin Finck CMC_flags list_flags, 244*c2c66affSColin Finck CMC_message_reference *seed, 245*c2c66affSColin Finck CMC_uint32 *count, 246*c2c66affSColin Finck CMC_ui_id ui_id, 247*c2c66affSColin Finck CMC_message_summary **result, 248*c2c66affSColin Finck CMC_extension *list_extensions 249*c2c66affSColin Finck ); 250*c2c66affSColin Finck 251*c2c66affSColin Finck #define CMC_LIST_UNREAD_ONLY ((CMC_flags) 1) 252*c2c66affSColin Finck #define CMC_LIST_MSG_REFS_ONLY ((CMC_flags) 2) 253*c2c66affSColin Finck #define CMC_LIST_COUNT_ONLY ((CMC_flags) 4) 254*c2c66affSColin Finck 255*c2c66affSColin Finck #define CMC_LENGTH_UNKNOWN 0xFFFFFFFF 256*c2c66affSColin Finck 257*c2c66affSColin Finck 258*c2c66affSColin Finck CMC_return_code WINAPI cmc_read( 259*c2c66affSColin Finck CMC_session_id session, 260*c2c66affSColin Finck CMC_message_reference *message_reference, 261*c2c66affSColin Finck CMC_flags read_flags, 262*c2c66affSColin Finck CMC_message **message, 263*c2c66affSColin Finck CMC_ui_id ui_id, 264*c2c66affSColin Finck CMC_extension *read_extensions 265*c2c66affSColin Finck ); 266*c2c66affSColin Finck 267*c2c66affSColin Finck #define CMC_DO_NOT_MARK_AS_READ ((CMC_flags) 1) 268*c2c66affSColin Finck #define CMC_MSG_AND_ATT_HDRS_ONLY ((CMC_flags) 2) 269*c2c66affSColin Finck #define CMC_READ_FIRST_UNREAD_MESSAGE ((CMC_flags) 4) 270*c2c66affSColin Finck 271*c2c66affSColin Finck 272*c2c66affSColin Finck CMC_return_code WINAPI cmc_look_up( 273*c2c66affSColin Finck CMC_session_id session, 274*c2c66affSColin Finck CMC_recipient *recipient_in, 275*c2c66affSColin Finck CMC_flags look_up_flags, 276*c2c66affSColin Finck CMC_ui_id ui_id, 277*c2c66affSColin Finck CMC_uint32 *count, 278*c2c66affSColin Finck CMC_recipient **recipient_out, 279*c2c66affSColin Finck CMC_extension *look_up_extensions 280*c2c66affSColin Finck ); 281*c2c66affSColin Finck 282*c2c66affSColin Finck #define CMC_LOOKUP_RESOLVE_PREFIX_SEARCH ((CMC_flags) 1) 283*c2c66affSColin Finck #define CMC_LOOKUP_RESOLVE_IDENTITY ((CMC_flags) 2) 284*c2c66affSColin Finck #define CMC_LOOKUP_RESOLVE_UI ((CMC_flags) 4) 285*c2c66affSColin Finck #define CMC_LOOKUP_DETAILS_UI ((CMC_flags) 8) 286*c2c66affSColin Finck #define CMC_LOOKUP_ADDRESSING_UI ((CMC_flags) 16) 287*c2c66affSColin Finck 288*c2c66affSColin Finck 289*c2c66affSColin Finck CMC_return_code WINAPI cmc_free( CMC_buffer memory ); 290*c2c66affSColin Finck 291*c2c66affSColin Finck CMC_return_code WINAPI cmc_logoff( 292*c2c66affSColin Finck CMC_session_id session, 293*c2c66affSColin Finck CMC_ui_id ui_id, 294*c2c66affSColin Finck CMC_flags logoff_flags, 295*c2c66affSColin Finck CMC_extension *logoff_extensions 296*c2c66affSColin Finck ); 297*c2c66affSColin Finck 298*c2c66affSColin Finck CMC_return_code WINAPI cmc_logon( 299*c2c66affSColin Finck CMC_string service, 300*c2c66affSColin Finck CMC_string user, 301*c2c66affSColin Finck CMC_string password, 302*c2c66affSColin Finck CMC_object_identifier character_set, 303*c2c66affSColin Finck CMC_ui_id ui_id, 304*c2c66affSColin Finck CMC_uint16 caller_cmc_version, 305*c2c66affSColin Finck CMC_flags logon_flags, 306*c2c66affSColin Finck CMC_session_id *session, 307*c2c66affSColin Finck CMC_extension *logon_extensions 308*c2c66affSColin Finck ); 309*c2c66affSColin Finck 310*c2c66affSColin Finck #define CMC_VERSION ((CMC_uint16) 100) 311*c2c66affSColin Finck 312*c2c66affSColin Finck CMC_return_code WINAPI cmc_query_configuration( 313*c2c66affSColin Finck CMC_session_id session, 314*c2c66affSColin Finck CMC_enum item, 315*c2c66affSColin Finck CMC_buffer reference, 316*c2c66affSColin Finck CMC_extension *config_extensions 317*c2c66affSColin Finck ); 318*c2c66affSColin Finck 319*c2c66affSColin Finck #define CMC_CONFIG_CHARACTER_SET ((CMC_enum) 1) 320*c2c66affSColin Finck #define CMC_CONFIG_LINE_TERM ((CMC_enum) 2) 321*c2c66affSColin Finck #define CMC_CONFIG_DEFAULT_SERVICE ((CMC_enum) 3) 322*c2c66affSColin Finck #define CMC_CONFIG_DEFAULT_USER ((CMC_enum) 4) 323*c2c66affSColin Finck #define CMC_CONFIG_REQ_PASSWORD ((CMC_enum) 5) 324*c2c66affSColin Finck #define CMC_CONFIG_REQ_SERVICE ((CMC_enum) 6) 325*c2c66affSColin Finck #define CMC_CONFIG_REQ_USER ((CMC_enum) 7) 326*c2c66affSColin Finck #define CMC_CONFIG_UI_AVAIL ((CMC_enum) 8) 327*c2c66affSColin Finck #define CMC_CONFIG_SUP_NOMKMSGREAD ((CMC_enum) 9) 328*c2c66affSColin Finck #define CMC_CONFIG_SUP_COUNTED_STR ((CMC_enum) 10) 329*c2c66affSColin Finck #define CMC_CONFIG_VER_IMPLEM ((CMC_enum) 11) 330*c2c66affSColin Finck #define CMC_CONFIG_VER_SPEC ((CMC_enum) 12) 331*c2c66affSColin Finck 332*c2c66affSColin Finck #define CMC_LINE_TERM_CRLF ((CMC_enum) 0) 333*c2c66affSColin Finck #define CMC_LINE_TERM_CR ((CMC_enum) 1) 334*c2c66affSColin Finck #define CMC_LINE_TERM_LF ((CMC_enum) 2) 335*c2c66affSColin Finck 336*c2c66affSColin Finck #define CMC_REQUIRED_NO ((CMC_enum) 0) 337*c2c66affSColin Finck #define CMC_REQUIRED_YES ((CMC_enum) 1) 338*c2c66affSColin Finck #define CMC_REQUIRED_OPT ((CMC_enum) 2) 339*c2c66affSColin Finck 340*c2c66affSColin Finck #define CMC_CHAR_CP437 "1 2 840 113556 3 2 437" 341*c2c66affSColin Finck #define CMC_CHAR_CP850 "1 2 840 113556 3 2 85" 342*c2c66affSColin Finck #define CMC_CHAR_CP1252 "1 2 840 113556 3 2 1252" 343*c2c66affSColin Finck #define CMC_CHAR_ISTRING "1 2 840 113556 3 2 0" 344*c2c66affSColin Finck #define CMC_CHAR_UNICODE "1 2 840 113556 3 2 1" 345*c2c66affSColin Finck 346*c2c66affSColin Finck #ifdef __cplusplus 347*c2c66affSColin Finck } 348*c2c66affSColin Finck #endif 349*c2c66affSColin Finck 350*c2c66affSColin Finck #endif /* #ifndef _XCMC_H */ 351