LOCAL cDDEServerName cDDEServerName = "MyDDeServer" *** Set up the server *** =DDESetOption('SAFETY', .F.) =DDESetService(cDDEServerName, 'DEFINE') =DDESetService(cDDEServerName, 'EXECUTE', .T.) =DDESetTopic(cDDEServerName, 'DO', 'DDE_Execute') PROCEDURE DDE_Execute LPARAMETERS tnChannel, tcAction, tcItem, tcData, tcFormat, tnAdvise LOCAL lResult DO CASE CASE tcAction = 'INITIATE' lResult = .T. CASE tcAction = 'EXECUTE' .AND. tcData = 'MYCOMMAND' *** This is the code the client invokes *** =MESSAGEBOX('Hello, world') lResult = .T. CASE tcAction = 'TERMINATE' lResult = .T. ENDCASE RETURN lResult ENDPROC *** Set up the client *** LOCAL cDDEServerName, nDDEChannel cDDEServerName = "MyDDeServer" nDDEChannel = DDEInitiate(cDDEServerName, 'DO') IF nDDEChannel > 0 *** Send your message here *** =DDEExecute(nDDEChannel, 'MYCOMMAND') =DDETerminate(nDDEChannel) ENDIF