5.1.4 System Topic

The System topic provides a context for information that may be of general interest to any DDE client. Server applications are encouraged to support the System topic at all times. (The System topic is defined in the DDEML header file as SZDDESYS_TOPIC.)

To find out which servers are present and the kinds of information they can provide, a client can request a conversation on the System topic with the service name set to NULL when the client application starts. Such wildcard conversations should be kept to a minimum, because they are costly in terms of system performance.

For more information about initiating DDE conversations, see Section 5.6, “Conversation Management.”

A server should support the following item names within the System topic and any other item names that may be useful to a client:

Item Description

SZDDE_ITEM_ITEMLIST A list of the items that are supported under a non-System topic. (This list may vary from moment to moment and from topic to topic.)
SZDDESYS_ITEM_FORMATS A list of clipboard format numbers that the server can render. This list should be ordered with the most descriptive formats first. A server may not be able to render all items in all formats within this list. At a minimum, a server should support the CF_TEXT clipboard format for item names associated with the System topic.
  For more information about clipboard formats and rendering data, see the Microsoft Windows Guide to Programming.
SZDDESYS_ITEM_HELP General help information.
SZDDESYS_ITEM_RTNMSG Supporting detail for the most recently used WM_DDE_ACK message. This is useful when more than 8 bits of application-specific return data are required.
SZDDESYS_ITEM_STATUS An indication of the current status of the server. Typically, this item supports only the CF_TEXT format and contains the Ready or Busy string.
SZDDESYS_ITEM_SYSITEMS A list of the items supported under the System topic by this server.
SZDDESYS_ITEM_TOPICS A list of the topics supported by the server at the current time. (This list may vary from moment to moment.)

These item names are string constants defined in the DDEML header files. To obtain string handles for these strings, an application must use the DDEML string-management functions, just as it would for any other string in a DDEML application. For more information about managing strings, see Section 5.4, “String Management.”