UI MTM libraries can be quite large, and often there are functions that Messaging applications need to access often and rapidly. To improve memory efficiency, these functions are split off into another DLL, called the UI Data MTM that can be easily kept in memory without the extra overhead of the UI MTM.
The base class for a UI Data MTM is CBaseMtmUiData. The implementation of UI Data MTMs is relatively simple, as they contain little more than functions to return the required icons and extra menu items.
UI Data MTMs offer the following capabilities:
Provide MTM-specific icons for Message Server entries
Provide bitmap icons for messages, folders, and services for display in the various folder views. For each icon, an array of bitmaps should be available, giving the icon in a number of sizes.
Provide user interface text
Provide command captions for MTM-specific functions that the Messaging client application can dynamically add to menus and dialog controls. A function ID is associated with each caption to identify the MTM-specific function that should be invoked when the command is chosen. This data is encapsulated in a resource of the MTUD_FUNCTION type.
Verification of MTM functions
Validate the specified functions that are available on a particular entry, so that a Messaging client application can process.
It is intended that client applications use the OperationSupportedL() function to dynamically set the user interface features that are available depending on the entry currently selected within the application. For example, menu items that do not apply to particular entries could be greyed out.
The CBaseMtmUiData class provides the virtual functions for overriding in derived classes.