Registering Customized Messaging Forms

4/8/2010

Customized messaging forms and transports require three registry value sets:

  1. The first value set registers the form as a message class. This gives the Messaging application the information it needs to locate the plug-in DLL, and to extract the read and compose forms for displaying and creating messages.
  2. The second value set specifies a messaging transport.
  3. The third value set is for a subkey of the key used for the second, and specifies the message classes supported by the transport.

When the message classes are input forms that appear on the New submenu of the Text Message account, it is possible to specify the order in which the forms are listed in this submenu. This is done with the value named MsgClassMenuOrder under the same key used for specifying the messaging transport (item 2 above).

To register a form as a message class

  • Create a registry key with the following structure. In the key, replace <MessageClass> with the form's fully-qualified message class name.

    [HKEY_CURRENT_USER\Software\Microsoft\Inbox\MsgTypes\<MessageClass>]
        "Name"      = REG_SZ: "My Messaging Service"   // A user-friendly name for the form.
        "GlyphInfo" = REG_BINARY: 20 00 00 00 64...    // Glyph data for the List View icon.
        "DLL"       = REG_SZ: "MyMS.dll"               // The name of the DLL containing
                                                       // the form factory, and the read and
                                                       // compose form methods.
    

To register a messaging transport

  • Create a new registry key with the following structure. In the key, replace <TransportType> with the name of the transport type. Examples are SMS, IMAP4, POP3, or a customized transport type.

    [HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Svc\<TransportType>]
        "MessageType" = REG_DWORD: 1                   // An integer specifying the preferred
                                                       // order to process the message types.
        "DefMsgClass" = REG_SZ: "IPM.ABC"              // The default message class.
        "DLL"         = REG_SZ: "MyTransp.dll"         // The name of the DLL that implements
                                                       // the transport.
        "Name"        = REG_SZ: "MyService"            // The name of the transport.
        "Port"        = REG_DWORD: 0x000000            // The communication port number.
    

To register the list message classes supported by a transport

  • Create a new registry subkey MsgClasses beneath the <TransportType> key, where <TransportType> is the name of the transport type. For each message class supported by the transport create a value whose name is the fully-qualified name of the message class.

    [HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Svc\<TransportType>\MsgClasses]
        "<MessageClass>" = REG_DWORD: 1                // The "1" signifies that the message
                                                       // class is enabled.
    

To specify the order of forms listed in the New submenu of the Text Message Account

  • Within the HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Svc\SMS key (created during the procedure to register a messaging transport, above) create a value named MsgClassMenuOrder to hold a list of message classes for the input forms, separated by colons. This value specifies the order of entries on the 'New' menu sub item. If this value does not exist, the forms are ordered alphabetically according to the message class names of the forms.

    [HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Svc\SMS]
        "MsgClassMenuOrder" = REG_SZ: "<msgclass1>:…:<msgclassn>" // A list.of message classes
                                                                  // separated by colons.
                                                                  // Duplicates will be eliminated.
                                                                  // Entries longer than 64
                                                                  // characters will be ignored.
                                                                  // The total string size must be
                                                                  // at most 1024 characters.
    

Example

The following code example demonstrates how to register a Tic-Tac-Toe game as a message class. The fully qualified message-class name includes the subfolder names. In this example, TicTacToe lives beneath the IPM (interpersonal messages) tree.

[HKEY_CURRENT_USER\Software\Microsoft\Inbox\MsgTypes\IPM\SMSText\TicTacToe]
    "GlyphInfo" = 20,00,00,00,64,00,00,00,64,00,00,00,00,00,00,00,01,00, 00,00,03,00,00,00,02,00,00,00,00,00,00,00
    "DLL"       = "TicTacToe.dll"
    "Name"      = "TicTacToe"

The following code example demonstrates how to register the TicTacToe game to use the Short Message Service (SMS) transport.

[HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Svc\IPM\SMSText\TicTacToe]
    "DefMsgClass" = REG_SZ: "IPM.SMSText.TicTacToe"
    "DLL"         = REG_SZ: "tpcutil.dll"
    "Name"        = REG_SZ: "Tic-Tac-Toe"

The following code example demonstrates how to register the Message Class to use for the TicTacToe game.

[HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Svc\MsgClasses]
    "IPM.SMSText.TicTacToe" = 0x000001

The following code example demonstrates how to specify the order of forms listed on the New menu of the Text Message account.

[HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Svc\SMS]
    "MsgClassMenuOrder" = "IPM.SMSText:IPM.MMS:IPM.Voicemail"

See Also

Tasks

Registering Customized Messaging Transports
Registering Customized Messaging Rules Clients

Concepts

Messaging Samples
Messaging Forms

Other Resources

Messaging Common Tasks
Messaging Application Development
Messaging