Summary of DDE Functions in a Windows 32-Bit Environment

The following table lists the DDE functions that can be used with PC/3270 or PC400. The table lists the name of the DDE function, the command the client sends to PC/3270 or PC400, the values that can be used for the variables in the client command, and the server response.

Table 1. DDE Function Summary
Function Name Client Command Server Response
Code Conversion (system)
PostMessage(hServerWnd
  WM_DDE_POKE,
  hClientWnd,
  PackDDEIParam(WM_DDE_POKE,hData,
  aCONV));
UnPackDDElParam(WM_DDE_ACK,wStatus,aCONV)
Initiate System Conversation (system)
SendMessage(-1,
  WM_DDE_INITIATE,
  hClientWnd,
  MAKELPARAM(aIBM327032,aSystem));
LOWORD/HIWORD to unpack
  WM_DDE_ACK(aIBM327032,aSystem)
Get System Configuration (system)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aSYSCON));
UnPackDDElParam(WM_DDE_DATA,hData,aSYSCON)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aSYSCON)
cfFormat = CF_TEXT
Get System Formats (system)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aFORMATS));
UnPackDDElParam(WM_DDE_DATA,hData,aFORMATS)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aFORMATS)
cfFormat = CF_TEXT
Get System Status (system)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aSTATUS));
UnPackDDElParam(WM_DDE_DATA,hData,aSTATUS)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aSTATUS)
cfFormat = CF_TEXT
Get System SysItems (system)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aSYSITEMS));
UnPackDDElParam(WM_DDE_DATA,hData,aSYSITEMS)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aSYSITEMS)
cfFormat = CF_TEXT
Get System Topics (system)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aTOPICS));
UnPackDDElParam(WM_DDE_DATA,hData,aTOPICS)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aTOPICS)
cfFormat = CF_TEXT
Terminate System Conversation (system)
SendMessage(hServerWnd,
  WM_DDE_TERMINATE,
  hClientWnd,
  0);
WM_DDE_TERMINATE
Initiate Session Conversation (session)
SendMessage(-1,
  WM_DDE_INITIATE,
  hClientWnd,
  MAKELPARAM(aIBM327032,aSessionN));
LOWORD/HIWORD to unpack
  WM_DDE_ACK(aIBM327032,aSessionN)
N = a session letter A through Z.
Find Field (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aFIELD));
UnPackDDElParam(WM_DDE_DATA,hData,aFIELD)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aFIELD)
cfFormat = CF_DSPTEXT
Get Keystrokes (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aKEYS));
UnPackDDElParam(WM_DDE_DATA,hData,aKEYS)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aKEYS)
cfFormat = CF_DSPTEXT
Get Mouse Input (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aMOUSE));
UnPackDDElParam(WM_DDE_DATA,hData,aMOUSE)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aMOUSE)
cfFormat = CF_TEXT | CF_DSPTEXT
Get Number of Close Requests (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aCLOSE));
UnPackDDElParam(WM_DDE_DATA,hData,aCLOSE)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aCLOSE)
cfFormat = CF_DSPTEXT
Get Operator Information Area (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aOIA));
UnPackDDElParam(WM_DDE_DATA,hData,aOIA)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aOIA)
cfFormat = CF_DSPTEXT
Get Partial Presentation Space (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aEPS));
UnPackDDElParam(WM_DDE_DATA,hData,aEPS)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aEPS)
cfFormat = CF_TEXT | CF_DSPTEXT
Get Presentation Space (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aPS));
UnPackDDElParam(WM_DDE_DATA,hData,aPS)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aPS)
cfFormat = CF_TEXT | CF_DSPTEXT
Get Session Status (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aSSTAT));
UnPackDDElParam(WM_DDE_DATA,hData,aSSTAT)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aSSTAT)
cfFormat = CF_TEXT
Get Trim Rectangle (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aTRIMRECT));
UnPackDDElParam(WM_DDE_DATA,hData,aTRIMRECT)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aTRIMRECT)
cfFormat = CF_TEXT
Put Data to Presentation Space (session)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aEPS));
UnPackDDElParam(WM_DDE_ACK,wStatus,aEPS)
hData = Handle to a 
     global memory object
Search for String (session)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aSTRING));
UnPackDDElParam(WM_DDE_DATA,hData,aSTRING)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aSTRING)
cfFormat = CF_DSPTEXT
Send Keystrokes (session)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aKEYS));
UnPackDDElParam(WM_DDE_ACK,wStatus,aKEYS)
hData = Handle to a 
     global memory object
Session Execute Macro (session)
PostMessage(hServerWnd,
  WM_DDE_EXECUTE,
  hClientWnd,
  (LPARAM)hCommands);
UnPackDDElParam(WM_DDE_ACK,wStatus, NULL)
hCommands = Handle to a 
        global memory object
Set Cursor Position (session)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aSETCURSOR));
UnPackDDElParam(WM_DDE_ACK,wStatus,aSETCURSOR)
hData = Handle to a 
     global memory object
Set Mouse Intercept Condition (session)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aMOUSE));
UnPackDDElParam(WM_DDE_ACK,wStatus,aMOUSE)
cfFormat = CF_TEXT | CF_DSPTEXT
hData = Handle to a 
    global memory object
Set Presentation Space Service Condition (session)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aEPSCOND));
UnPackDDElParam(WM_DDE_ACK,wStatus,aEPSCOND)
hData = Handle to a 
     global memory object
Set Session Advise Condition (session)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aPSCOND));
UnPackDDElParam(WM_DDE_ACK,wStatus,aPSCOND)
hData = Handle to a 
     global memory object
Start Close Intercept (session)
SendMessage(hServerWnd,
  WM_DDE_ADVISE,
  hClientWnd,
  PackDDElParam(WM_DDE_ADVISE,
  hOptions,aCLOSE));
UnPackDDElParam(WM_DDE_ACK,wStatus,aCLOSE)
or
UnPackDDElParam(WM_DDE_DATA,hData,aCLOSE)
hOptions = Handle to a 
       global memory object
Start Keystroke Intercept (session)
SendMessage(hServerWnd,
  WM_DDE_ADVISE,
  hClientWnd,
  PackDDElParam(WM_DDE_ADVISE,
  hOptions,aKEYS));
UnPackDDElParam(WM_DDE_ACK,wStatus,aKEYS)
or
UnPackDDElParam(WM_DDE_DATA,hData,aKEYS)
hOptions = Handle to a 
       global memory object
Start Mouse Input Intercept (session)
SendMessage(hServerWnd,
  WM_DDE_ADVISE,
  hClientWnd,
  PackDDElParam(WM_DDE_ADVISE,
  hOptions,aMOUSE));
UnPackDDElParam(WM_DDE_ACK,wStatus,aMOUSE)
or
UnPackDDElParam(WM_DDE_DATA,hData,aMOUSE)
hOptions = Handle to a 
       global memory object
Start Session Advise (session)
PostMessage(hServerWnd,
  WM_DDE_ADVISE,
  hClientWnd,
  PackDDElParam(WM_DDE_ADVISE,
  hOptions,aItem));
UnPackDDElParam(WM_DDE_ACK,wStatus,aItem)
or
UnPackDDElParam(WM_DDE_DATA,hData,aItem)
hOptions = Handle to a 
       global memory object
aItem = OIA | PS | TRIMRECT
Stop Close Intercept (session)
PostMessage(hServerWnd,
  WM_DDE_UNADVISE,
  hClientWnd,
  MAKELPARAM(NULL,aCLOSE));
UnPackDDElParam(WM_DDE_ACK,wStatus,aCLOSE)
Stop Keystroke Intercept (session)
PostMessage(hServerWnd,
  WM_DDE_UNADVISE,
  hClientWnd,
  MAKELPARAM(NULL,aKEYS));
UnPackDDElParam(WM_DDE_ACK,wStatus,aKEYS)
Stop Mouse Input Intercept (session)
PostMessage(hServerWnd,
  WM_DDE_UNADVISE,
  hClientWnd,
  MAKELPARAM(NULL,aMOUSE));
UnPackDDElParam(WM_DDE_ACK,wStatus,aMOUSE)
Stop Session Advise (session)
PostMessage(hServerWnd,
  WM_DDE_UNADVISE,
  hClientWnd,
  MAKELPARAM(NULL,aItem));
UnPackDDElParam(WM_DDE_ACK,wStatus,aItem)
aItem = SysItems | Topics | NULL
Terminate Session Conversation (session)
SendMessage(hServerWnd,
  WM_DDE_TERMINATE,
  hClientWnd,
  0);
WM_DDE_TERMINATE
Initiate Structured Field Conversation (structured field)
SendMessage(-1,
  WM_DDE_INITIATE,
  hClientWnd,
  MAKELPARAM(aIBM327032,aLUN_xxxx));
LOWORD/HIWORD to unpack
  WM_DDE_ACK(aIBM327032,aLUN_xxxx)
N = a session letter A through Z.
xxxx = a user defined string.
Terminate Structured Field Conversation (structured field)
SendMessage(hServerWnd,
  WM_DDE_TERMINATE,
  hClientWnd,
  0);
WM_DDE_TERMINATE
Set Structured Field Service Condition (structured field)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aSFCOND));
UnPackDDElParam(WM_DDE_ACK,wStatus,aSFCOND)
hData = Handle to a 
     global memory object
Start Read SF (structured field)
PostMessage(hServerWnd,
  WM_DDE_ADVISE,
  hClientWnd,
  PackDDElParam(WM_DDE_ADVISE,
  hOptions,aSF));
UnPackDDElParam(WM_DDE_ACK,wStatus,aSF)
or
UnPackDDElParam(WM_DDE_DATA,hData,aSF)
hOptions = Handle to a 
       global memory object
Stop Read SF (structured field)
PostMessage(hServerWnd,
  WM_DDE_UNADVISE,
  hClientWnd,
  MAKELPARAM(NULL,aSF));
UnPackDDElParam(WM_DDE_ACK,wStatus,aSF)
Write SF (structured field)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aSF));
UnPackDDElParam(WM_DDE_ACK,wStatus,aSF)
hData = Handle to a 
     global memory object
Initiate Menu Conversation (menu)
SendMessage(-1,
  WM_DDE_INITIATE,
  hClientWnd,
  MAKELPARAM(aIBM327032,a3270MenuSN));
LOWORD/HIWORD to unpack
  WM_DDE_ACK(aIBM327032,a3270MenuSN)
N = a session letter A through Z
Change Menu Item (menu)
PostMessage(hServerWnd,
  WM_DDE_POKE,
  hClientWnd,
  PackDDElParam(WM_DDE_POKE,
  hData,aCHANGEMENU));
UnPackDDElParam(WM_DDE_ACK,wStatus,aCHANGEMENU)
hData = Handle to a 
     global memory object
Create Menu Item (menu)
PostMessage(hServerWnd,
  WM_DDE_REQUEST,
  hClientWnd,
  MAKELPARAM(cfFormat,aCREATEMENU));
UnPackDDElParam(WM_DDE_DATA,hData,aCREATEMENU)
or
UnPackDDElParam(WM_DDE_ACK,wStatus,aCREATEMENU)
cfFormat = CF_DSPTEXT
Start Menu Advise (menu)
PostMessage(hServerWnd,
  WM_DDE_ADVISE,
  hClientWnd,
  PackDDElParam(WM_DDE_ADVISE,
  hOption,aSELECTMENU));
UnPackDDElParam(WM_DDE_ACK,wStatus,aSELECTMENU)
or
UnPackDDElParam(WM_DDE_DATA,hData,aSELECTMENU)
hData = Handle to a 
     global memory object
Stop Menu Advise (menu)
PostMessage(hServerWnd,
  WM_DDE_UNADVISE,
  hClientWnd,
  MAKELPARAM(NULL,aSELECTMENU));
UnPackDDElParam(WM_DDE_ACK,wStatus,aCLOSE)
Terminate Menu Conversation (menu)
SendMessage(hServerWnd,
  WM_DDE_TERMINATE,
  hClientWnd,
  0);
WM_DDE_TERMINATE