Here's a method for calling OI as a DDE server. In this example, I'm using Lotus Notes as the client. This code will initiate a conversation with OI, start an OI window, pass data into an OI control, then execute an event to lose focus on a control and then click a button.
NOTE: The slash character (\) you see lets Notes know that the following quote should be interepreted as a literal.
CONV_ID := @DDEInitiate("PS"; "PS");
@DDEExecute(CONV_ID; "RUN START_WINDOW \'NOTESACCESS\',\'\'");
@DDETerminate(CONV_ID);
CONV1 := @DDEInitiate("OINSIGHT"; "NOTESACCESS.COMPANYNAME");
@DDEPoke(CONV1; "TEXT"; CompanyName);
@DDETerminate(CONV1);
CONV2 := @DDEInitiate("PS"; "PS");
@DDEExecute(CONV2; "RUN SEND_EVENT \'NOTESACCESS.COMPANYNAME\',\'LOSTFOCUS\'");
@DDEExecute(CONV2; "RUN SEND_EVENT \'NOTESACCESS.BUTTON_1\',\'CLICK\'");
@DDETerminate(CONV2)
Contributed by John Van Buren/Revelation