PC/3270 Response

PC/3270 receives the Start Read SF and returns an ACK message if it can start the Read SF. Otherwise a negative ACK message is returned to the client with one of the following return codes in the low-order byte of the wStatus field:
WM_DDE_ACK(wStatus, aSF)
Return Code Explanation
1 Read SF is already started.
3 No prior Set Structured Field Service Condition function was called.
6 The specified format is not valid.
9 A system error occurred.
Once the Read SF has started, the client receives DATA messages of the structured field:
WM_DDE_DATA(hData, aSF)
where:
hData
Identifies a handle to a Windows global memory object containing:
typedef struct tagMOUSE_CF_DSPTEXT
{
  unsigned char  data[(sizeof(DDEDATA)-1)];
  unsigned short uPSPos;                  /* PS Offset  - Mouse position
  unsigned short uPSRowPos;               /* ROW number - Mouse position
  unsigned short uPSColPos;               /* Col number - Mouse position
  unsigned short uPSSize;                 /* Size of Presentation Space
  unsigned short uPSRows;                 /* Row number of PS
  unsigned short uPSCols;                 /* Column number of PS
  unsigned short uButtonType;             /* Type of clicked mouse button
  unsigned short uClickType;              /* Type of clicking
  unsigned char  zClickString[1];          /* Retrieved string
} MOUSE_CF_DSPTEXT;
 
typedef union tagDDE_MOUSE_CF_DSPTEXT
{
  DDEDATA           DDEdata;
  MOUSE_CF_DSPTEXT  DDEmouse;
} DDE_MOUSE_CF_DSPTEXT, *lpDDE_MOUSE_CF_DSPTEXT;
typedef struct tagSFDATA
{
  unsigned char  data[(sizeof(DDEDATA)-1)];
  unsigned short uSFLength;                /* Length of SF data
  unsigned char  szSFData[1];               /* SF data
} SFDATA;
 
typedef union tagDDE_SFDATA
{
  DDEDATA  DDEdata;
  SFDATA   DDEsfdata;
} DDE_SFDATA, *lpDDE_SFDATA;

The DATA messages continue until a Stop Read SF message is sent to PC/3270.