| **Navigation:**  [[introduction.htm|Language Reference]] > App A - DDE, OLE, and OCX > DDE Procedures >====== DDEPOKE (send unsolicited data to DDE server) ====== | [[ddeitem return server item .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[ddequery return registered dde servers .htm|{{btn_next_n.gif|Next page}}]] | | || **DDEPOKE(** //channel, item, value// **)** {{blk2blue.jpg|blk2blue.jpg}} | **DDEPOKE** | Sends unsolicited data through an open DDE client channel to a DDE server. | | //channel// | A LONG integer constant or variable containing the client channel--the value returned by the DDECLIENT procedure. | | //item// | A string constant or variable containing the application-specific item to receive the unsolicited data. | | //value// | A string constant or variable containing the data to place in the //item.// | The **DDEPOKE** procedure allows a DDE client program to communicate unsolicited data to the server. The //item //and //value //parameters must be in a format the server application can recognize and act on. The server does not need to be a Clarion program. A Clarion DDE server can use the DDEITEM() and DDEVALUE() procedures to determine what the client has sent. The CYCLE statement after an EVENT:DDEpoke signals positive acknowledgement to the client that sent the unsolicited data. DDEACKNOWLEDGE can send either positive or negative acknowledgement. **Errors Posted:** | 601 | Invalid DDE Channel | | 602 | DDE Channel Not Open | | 604 | DDEPOKE Failed | | 605 | Time Out | **Events Generated:** EVENT:DDEpoke     A client has sent unsolicited data **Example:** **WinOne  WINDOW,AT(0,0,160,400)** **        END** **DDEChannel  LONG** ** CODE** ** OPEN(WinOne)** ** DDEChannel = DDECLIENT('Excel','System')             !Open channel to Excel** ** DDEEXECUTE(DDEChannel,'[NEW(1)]')                    !Create a new spreadsheet** ** DDEEXECUTE(DDEChannel,'[Save.As("DDE_CHART.XLS")]')  !Save it as DDE_CHART.XLS** ** DDECLOSE(DDEChannel)                                 !Close conversation** ** DDEChannel = DDECLIENT('Excel','DDE_CHART.XLS')      !Open channel to new chart** ** ****DDEPOKE****(DDEChannel,'R1C2','Widgets')                 !Send it data** ** ****DDEPOKE****(DDEChannel,'R1C3','Gadgets')** ** ****DDEPOKE****(DDEChannel,'R2C1','East')** ** ****DDEPOKE****(DDEChannel,'R3C1','West')** ** ****DDEPOKE****(DDEChannel,'R2C2','450')** ** ****DDEPOKE****(DDEChannel,'R3C2','275')** ** ****DDEPOKE****(DDEChannel,'R2C3','340')** ** ****DDEPOKE****(DDEChannel,'R3C3','390')** ** DDEEXECUTE(DDEChannel,'[SELECT("R1C1:R3C2")]')       !Highlight the data ** ** DDEEXECUTE(DDEChannel,'[NEW(2,2)]')                  !and create a new chart** **    !Send some more commands here to format the chart and work with it** ** DDECLOSE(DDEChannel)                                 !Close channel when done** **See Also:** [[ddeacknowledge send acknowledgement from dde server .htm|DDEACKNOWLEDGE]] [[ddeitem return server item .htm|DDEITEM]] [[ddevalue return data value sent to server .htm|DDEVALUE]]