.. highlightlang:: us .. index:: DdeCallback_Poke .. _ddecallback_poke: DdeCallback_Poke ================ .. us.tag DdeCallback_Poke ENGLISH :ref:`DdeCallback_Poke` is called by the client to send data to UniPlot. .. function:: bool = DdeCallback_Poke(hConv, ssItem, ssTopic, ssData) .. us.return **Return Value** *bool* is TRUE (1) if the function call was successful, otherwise FALSE (0). .. us.params **Parameters** .. uparam:: hConv *hConv* is the channel number. .. uparam:: ssItem *ssItem* is the item name. .. uparam:: ssTopic *ssTopic* is the topic name. .. uparam:: ssData *ssData* is the data send to UniPlot. .. us.example **Example** The following Word-Basic program sends data to UniScript using the function :ref:`DdeCallback_Poke`: :: Sub Main chan = DDEInitiate("UniPlotSL", "xydata") DDEPoke(chan, "xydata", "1,5,3,4,8,12") DDETerminate(chan) End Sub The Word-Basic command ``DDEPoke(chan, "xydata", "1,5,3,4,8,12")``, should create a diagram with a x/y dataset in UniPlot. To do so, we have to make the following changes to the :ref:`DdeCallback_Poke` function in the :file:`UniPlot/script/obj_dde.ic` file: :: def DdeCallback_Poke(hConv, ssItem, ssTopic, ssData) { printf("---Poke---\n"; printf("Conversation-No.: %x, Item: %s, Topic: %s, Data: %s\n\n", .. hConv, ssItem, ssTopic, ssData); ss = strtok(ssData, ",") rvData = strtod(ss) plot(1:len(rvData), rvData); return TRUE; } .. seealso:: :ref:`overview-dde`, :ref:`DdeCallback_Connect`, :ref:`DdeCallback_ConnectConfirm`, :ref:`DdeCallback_Disconnect`, :ref:`DdeCallback_Request`, :ref:`DdeCallback_Execute` :sub:`id-105871`