




 
Issues an execute transaction consisting of a specified string on an automatically managed conversation.
dde-execute-string* service topic command &key errorp connect-error-p new-conversation-p => result
The function 
dde-execute-string*
 is similar to dde-execute-string, in that it issues an execute transaction consisting of the string 
command
. However, the conversation across which 
command
 is issued is managed automatically. No processing of the string is performed.
If 
server
 names a client service registered with 
define-dde-client
, the registered service name is used as the DDE service name. If 
server
 is any other symbol, the print name of the symbol is used as the DDE service name. If 
server
 is a string, that string is used as the DDE service name.
The topic argument specifies the DDE topic name to be used in the conversation. If it is a symbol, the symbol's print name is used. If it is a string, the string is used.
If necessary, the function 
dde-execute-string*
 will create a conversation for the duration of the transaction, but if a suitable conversation already exists, the transaction will be executed over that conversation. Hence, if several transactions will be made with the same 
service
 and 
topic
, placing them inside a with-dde-conversation prevents a new conversation being established for each transaction.
If 
new-conversation-p
 is set to 
t
 a new conversation is always established for the transaction. This new conversation is always automatically disconnected when the transaction is completed.
If 
connect-error-p
 is 
t
 (the default value), then LispWorks signals an error if a conversation cannot be established. If it is 
nil
, 
dde-execute-string*
 returns 
nil
 if a conversation cannot be established. This allows the caller to distinguish between the cases when the server is not running, and when the server is running but the transaction fails.
Upon success, the function returns 
t
. On failure, the behavior depends on the value of the 
errorp
 argument. If 
errorp
 is 
t
 (the default value), LispWorks signals an error. If it is 
nil
, the function returns 
nil
 to indicate failure.