The DDE client interface allows Prolog to talk to DDE server 
programs. We will demonstrate the use of the DDE interface using the 
Windows PROGMAN (Program Manager) application:
1 ?- open_dde_conversation(progman, progman, C).
C = 0
2 ?- dde_request(0, groups, X)
--> Unifies X with description of groups
3 ?- dde_execute(0, '[CreateGroup("DDE Demo")]').
true.
4 ?- close_dde_conversation(0).
true.
For details on interacting with progman, use the SDK online 
manual section on the Shell DDE interface. See also the Prolog
library(progman), which may be used to write simple Windows 
setup scripts in Prolog.
- open_dde_conversation(+Service, 
+Topic, -Handle)
- Open a conversation with a server supporting the given service name and 
topic (atoms). If successful, Handle may be used to send 
transactions to the server. If no willing server is found this predicate 
fails silently.
- close_dde_conversation(+Handle)
- Close the conversation associated with Handle. All opened 
conversations should be closed when they're no longer needed, although 
the system will close any that remain open on process termination.
- dde_request(+Handle, 
+Item, -Value)
- Request a value from the server. Item is an atom that 
identifies the requested data, and Value will be a string (CF_TEXTdata in DDE parlance) representing that data, if the request is 
successful.
- dde_execute(+Handle, 
+Command)
- Request the DDE server to execute the given command string. Succeeds if 
the command could be executed and fails with an error message otherwise.
- dde_poke(+Handle, 
+Item, +Command)
- Issue a POKEcommand to the server on the specified Item.
command is passed as data of typeCF_TEXT.