DDEREAD (get data from DDE server)

Top  Previous  Next

 

DDEREAD( channel, mode, item [, variable ] )

DDEREAD

Gets data from a previously opened DDE client channel.

channel

A LONG integer constant or variable containing the client channel--the value returned by the DDECLIENT procedure.

mode

An EQUATE defining the type of data link: DDE:auto, DDE:manual, or DDE:remove (defined in EQUATES.CLW).

item

A string constant or variable containing the application-specific name of the data item to retrieve.

variable

The name of the variable to receive the retrieved data. If omitted and mode is DDE:remove, all links to the item are canceled.

The DDEREAD procedure allows a DDE client program to read data from the channel into the variable. The type of update is determined by the mode parameter. The item parameter supplies some string value to the server application that tells it what specific data item is being requested. The format and structure of the item string is dependent upon the server application.

If the mode is DDE:auto, the variable is continually updated by the server (a "hot" link). An EVENT:DDEdata is generated each time the variable is updated by the server.

If the mode is DDE:manual, the variable is updated once and no event is generated. Another DDEREAD request must be sent to the server to check for any changed value (a "cold" link).

If the mode is DDE:remove, a previous "hot" link to the variable is terminated. If the mode is DDE:remove and variable is omitted, all previous "hot" links to the item are terminated, no matter what variables were linked. This means the client must send another DDEREAD request to the server to check for any changed value.

Errors Posted:

601

Invalid DDE Channel

602

DDE Channel Not Open

605

Time Out

Events Generated:

These events are posted to the client application:

EVENT:DDEdata

A server has supplied an updated data item for a hot link.

EVENT:DDEclosed

A server has terminated the DDE link.

Example:

WinOne  WINDOW,AT(0,0,160,400)

       END

 

ExcelServer LONG(0)

DDEReadVal  REAL

 

CODE

OPEN(WinOne)

!Open as client to Excel spreadsheet

ExcelServer = DDECLIENT('Excel','MySheet.XLS')

IF NOT ExcelServer               !If the server is not running

 MESSAGE('Please start Excel')   !alert the user to start it

 CLOSE(WinOne)

 RETURN

END

 

!Request continual update from server:

DDEREAD(ExcelServer,DDE:auto,'R5C5',DDEReadVal)

ACCEPT

 CASE EVENT()

 OF EVENT:DDEdata         !As changed data comes from Excel

  PassedData(DDEReadVal)     ! call proc to process the new data

 END

END

 

See Also:

DDEQUERY

DDEWRITE

DDESERVER