1 Introduction
1.1 Purpose
1.2 Overview
1.3 Terminology
1.3.1 Definitions
1.3.2 Abbreviations
1.4 References
1.4.1 Identical Recommendations – International
Standards
1.4.2 Paired Recommendations – International
Standards equivalent in technical content
1.4.3 Additional references
1.5 Levels
1.6 C naming conventions
2
CMC architecture
2.1 Functional model
2.2 Computational model
2.2.1 Interfaces
2.2.2 Session
2.2.3 Wide character support
2.2.4 Event notification
2.2.5 Extensions
2.3 Configuration model
2.3.1 CMC manager
2.3.2 Guidelines for platform bindings
2.3.3 Query for configuration information
2.4 Object model
2.4.1 Model components
3
CMC object classes
3.1 CMC API object classes
3.1.1 Address book
3.1.2 Content item
3.1.3 Distribution list
3.1.4 Message
3.1.5 Message container
3.1.6 Per Recipient Information
3.1.7 Profile Container
3.1.8 Recipient
3.1.9 Report
3.1.10 Root Container
4
Data structures
4.1 Basic data types
4.2 Array data types
4.3 Attachment
4.4 Boolean
4.5 Buffer
4.6 Callback Data Structures
4.7 Counted String
4.8 Cursor Handle
4.9 Cursor Restriction
4.10 Cursor Sort Key
4.11 Dispatch Table
4.12 Enumerated
4.13 Events
4.14 Extension
4.15 Flags
4.16 GUID
4.17 Identifier
4.18 ISO Date and Time
4.19 Message
4.20 Message Reference
4.21 Message Summary
4.22 Name
4.23 Object Handle
4.24 Object Identifier
4.25 Opaque Data
4.26 Property
4.27 Recipient
4.28 Report
4.29 Return Code
4.30 Session Id
4.31 Stream Handle
4.32 String
4.33 Time
4.34 User Interface Identifier
5
Object properties
5.1 Address book object properties
5.1.1 Child allowed
5.1.2 Comment
5.1.3 Location
5.1.4 Name
5.1.5 Object class
5.1.6 Parent
5.1.7 Server name
5.1.8 Shared
5.1.9 Type
5.2 Content item object properties
5.2.1 Character set
5.2.2
Content information
5.2.3 Content type
5.2.4 Create time
5.2.5 Encoding type
5.2.6 File directory
5.2.7 File name
5.2.8 Item
number
5.2.9 Item type
5.2.10 Last modified
5.2.11 Object class
5.2.12 Render position
5.2.13 Size
5.2.14 Title
5.3 Distribution list object properties
5.3.1 Address
5.3.2 Comment
5.3.3 Last modification time
5.3.4 Name
5.3.5 Object class
5.3.6 Parent
5.3.7 Shared
5.4 Message object properties
5.4.1 Application Id
5.4.2 Application message status
5.4.3 Auto-Action
5.4.4
Deferred delivery time
5.4.5 Id
5.4.6 In message status
5.4.7 In reply to
5.4.8 Item count
5.4.9 NRN diagnostic
5.4.10 NRN reason
5.4.11 Object class
5.4.12 Out message status
5.4.13 Priority
5.4.14 Receipt requested
5.4.15 Receipt type
5.4.16
Report requested
5.4.17 Role
5.4.18 Sensitivity
5.4.19 Size
5.4.20 Subject
5.4.21 Time received
5.4.22 Time sent
5.4.23 Type
5.5 Message container object properties
5.5.1 Child allowed
5.5.2 Comment
5.5.3 Location
5.5.4 Name
5.5.5 Object class
5.5.6 Parent
5.5.7 Server name
5.5.8 Shared
5.5.9 Type
5.6 Per recipient information object properties
5.6.1 Comment
5.6.2
Delivery time
5.6.3 Diagnostic
5.6.4 Object class
5.6.5 Reason
5.6.6 Recipient address
5.6.7 Recipient name
5.6.8 Type
5.7 Profile container object properties
5.7.1 Auto-Action
5.7.2 Character Set
5.7.3 Conformance
5.7.4 Default Service
5.7.5 Default User
5.7.6 Line Terminator
5.7.7 Object Class
5.7.8 Object Extensions Supported
5.7.9 Objects Supported
5.7.10 Properties Supported
5.7.11 Property Extensions Supported
5.7.12 Required Password
5.7.13 Required Service
5.7.14 Required User
5.7.15 Support Counted Strings
5.7.16 Support No
Mark As Read
5.7.17 User Interface Available
5.7.18 Users
5.7.19 Version of the Implementation
5.7.20 Version of the Specification
5.8 Recipient object properties
5.8.1 Address
5.8.2 Content Return Requested
5.8.3 Name
5.8.4 Object Class
5.8.5 Receipt Requested
5.8.6
Report Requested
5.8.7 Responsibility Flag
5.8.8 Role
5.8.9 Type
5.9 Report object properties
5.9.1 Application Id
5.9.2 Id
5.9.3 Item Count
5.9.4 Messaging System Id
5.9.5 Object Class
5.9.6 Read
5.9.7 Size
5.9.8 Subject
5.9.9 Subject Message Id
5.9.10 Time Received
5.9.11 Time Sent
5.9.12 Unsent
5.10 Root container object properties
5.10.1 Child Allowed
5.10.2 Comment
5.10.3 Location
5.10.4 Name
5.10.5 Object Class
5.10.6 Shared
6
Functional interface
6.1 Simple CMC functions
6.1.1 Sending messages
6.1.2 Receiving messages
6.1.3 Looking up names
6.1.4 Administration
6.2 Full CMC functions
6.2.1 Bind functions
6.2.2 Composition functions
6.2.3 Enumeration functions
6.2.4 Event notification functions
6.2.5 Messaging functions
6.2.6 Name handling functions
6.2.7 Stream functions
7
Return codes
8
Conformance
Annex A – C declaration summary
A.1 C declaration summary
Annex B – CMC vendor extensions
B.1 CMC vendor extensions
B.1.1 Function extensions
B.1.2 Data
extensions
B.2 Extension set C declaration summary
B.2.1 X.400 extension set
B.2.2 Additional extensions for simple CMC/X400
mapping
B.2.3 Other extension sets
B.2.4 Platform-specific information including
run-time bindings
B.2.5 Simple CMC usage of X.400 backbone
services
Annex C – Programming examples
C.1 Programming examples
C.1.1 Query Configuration, Logon, and Logoff
C.1.2 Send and Send Documents functions
C.1.3 List, read, and delete the first unread
message
C.1.4 Look up a specific recipient and get its
details
C.1.5 Use of extensions
C.1.6 cmc_bind_implementation
C.2 Example of cmc_bind_implementation
C.3 Composing a message
C.4 Check for new messages
C.5 Filing a message
C.6 Deleting a message
C.7 Retrieving a message