| Allegro CL version 6.1 Unrevised | |||||||
DDE stands for Dynamic Data Exchange. Quoting from the Windows API Bible (a standard reference for programming with Windows): "Dynamic Data Exchange is a message protocol that allows Windows applications to exchange data."
Here we briefly describe the functionality available in Lisp for DDE. Note that we do not describe DDE in much detail. We assume you are familiar with using DDE between Windows applications. If you are not, please refer to standard Windows programming manuals. Here are some principles of using DDE in Lisp:
There is a simple example illustrating the DDE functionality in examples\cg\dde\examples.cl. Also in that directory is ddedoc.txt which contains most of the information in this entry.
Create a client-port instance by calling make-instance on the client-port class. Available initargs are:
These attributes can be changed after the instance is created using setf and the accessors port-name, port-application, and port-topic (all are setf'able). The new values will be used if the port is closed and re-opened.
;; Create a port with the program manager acting as the DDE
;; server
(setq port1 (make-instance 'client-port
:application :progman
:topic :progman))
Any single DDE port (either a client or server port) will work only within a single thread during the time that it is open, and so all of the application code that uses a particular DDE port should run only in one thread. (A port could be opened and closed in one thread and then later opened and closed in another, but it would likely be tricky to ensure that the threads do not have the port open at the same time.)
The various DDE-related global variables are now bound per-thread, so an application that sets the value of any of these variables should do so in any thread that uses DDE.
In earlier releases, the DDE facility would have worked only in the first thread that attempted to use it, but now separate DDE ports work in separate threads. Allegro CL will continue to automatically initialize DDE as needed whenever a first port is opened, though now this is handled separately in each thread that begins to use DDE.
*active-client-ports*
*active-server-ports*
answer-request
*case-sensitive-dde*
close-port
close-server
convert-returned-dde-buffer
convert-returned-dde-string
execute-command
list-to-tabbed-string
open-port
open-server
port-open-p
post-advice
receive-advice
receive-value
send-command
send-request
send-value
*server-active-p*
*service-name*
*service-topics*
*sysitems*
tabbed-string-to-list
Copyright (c) 1998-2001, Franz Inc. Berkeley, CA., USA. All rights reserved.
Documentation for Allegro CL version 6.1 update # 1. This page was not revised.
Created 2001.12.15.
| Allegro CL version 6.1 Unrevised | |||||||