The System Topic

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.


[Back: Applications, Topics, and Items]
[Next: DDE Initiation]