The system topic is implemented as a predefined dispatching topic called
:system
. It is automatically available to all defined DDE servers. Its class is
dde-system-topic
, which is a subclass of
dde-dispatching-topic
.
The following items are implemented by the system topic:
The constant
SZDDESYS_ITEM_TOPICS
has the value "
Topics"
. Referring to this item in the system topic calls
dde-server-topics
to obtain a list of topics implemented by the server. The server should define a method on this generic function to return a list of strings naming the topics supported by the server. If this item is not to be implemented, do not define a method on the function, or define a method that returns
:unknown
.
The constant
SZDDESYS_ITEM_SYSITEMS
has the value "
SysItems
". Referring to this item in the system topic calls
dde-topic-items
to obtain a list of items implemented by the system topic. If a server implements additional system topic items it should define a method on the generic function specialized on its server class and
dde-system-topic
returning the complete list of supported topics. The server can return
:unknown
if this item is not to be implemented.
The constant
SZDDESYS_ITEM_FORMATS
has the value "
Formats
", and returns
unicodetext
and
text
. Currently only text formats are supported.
The system topic is a single object which is used by all DDE servers running in the Lisp image. You should therefore not under normal circumstances modify it with
define-dde-server-function
by specifying a value of
:system
for the
topic
argument, as this would make the changes to the system topic visible to all users of DDE within the Lisp image.
Instead, specify
:server
my-server
:topic :system
, where
my-server
is the name of your DDE server. This makes the additional items available only on the system topic of the specified server.