The system topic provides a context for information that might be of general interest to any partners in a DDE transaction. Server applications are encouraged to support the system topic at all times. The string used for the system topic is defined in the PM header files as SZDDESYS_TOPIC.
DDE applications should request an exchange on the system topic with a zero-length application name when they start up, to find out what kinds of information other DDE-capable programs can provide.
The system topic must support the items in the following table as well as any other items the application uses:
┌─────────────────────────┬───────────────────────────────────┐ │Item │Description │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_FORMATS │A list of strings equivalent to │ │ │CF_CONSTANTS with the CF_ prefix │ │ │removed. For example, CF_TEXT = │ │ │TEXT. │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_HELP │A text description of the server's │ │ │DDE services. │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_PROTOCOLS │A list of protocol names the server│ │ │supports. A protocol is a set of │ │ │DDE execute commands, each having a│ │ │standard meaning. │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_RESTART │A string that a client can pass to │ │ │DosExecPgm to invoke a server that │ │ │is not running. │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_RTNMSG │Supporting detail for the most │ │ │recently issued WM_DDE_ACK message.│ │ │This is useful when more than 8 │ │ │bits of application-specific return│ │ │code are required. │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_SECURITY │A security-sensitive server │ │ │application. Any client can │ │ │initiate a conversation with a │ │ │security-sensitive server, but the │ │ │server responds only to the │ │ │Security topic. Typically, the │ │ │server requires a password from the│ │ │client before any further data │ │ │exchange can take place. │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_STATUS │An indication of the current status│ │ │of the server: "Ready" or "Busy". │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_SYSITEMS │A list of the items supported under│ │ │the system topic by this server. │ ├─────────────────────────┼───────────────────────────────────┤ │SZDDESYS_ITEM_TOPICS │A list of the topics currently │ │ │supported by the application. This │ │ │can vary from moment to moment. │ └─────────────────────────┴───────────────────────────────────┘
Individual elements of lists should be delimited by tabs, as in the DDEFMT_TEXT format.