Platform SDK: Interprocess Communications

WM_DDE_POKE

A DDE client application posts a WM_DDE_POKE message to a DDE server application. A client uses this message to request the server to accept an unsolicited data item. The server is expected to reply with a WM_DDE_ACK message indicating whether it accepted the data item.

To post this message, call the PostMessage function with the following parameters.

PostMessage( 
  (HWND) hWnd,             // handle to destination window 
  WM_DDE_POKE,             // message to send
  (WPARAM) wParam,         // handle to client window (HWND)
  (LPARAM) lParam          // data and item atom
);

Parameters

wParam
Handle to the client window posting the message.
lParam
The low-order word is a handle to a global memory object containing a DDEPOKE structure with the data and additional information.

The high-order word contains a global atom that identifies the data item for which the data or notification is being sent.

Remarks

Posting

The client application must allocate memory for the global memory object using the GlobalAlloc function. The client application must delete the object if either of the following conditions is true:

The client application must create the atom using the GlobalAddAtom function.

The client application must create or reuse the WM_DDE_POKE lParam parameter by calling the PackDDElParam function or the ReuseDDElParam function.

Receiving

The server application should post the WM_DDE_ACK message to respond positively or negatively. When posting WM_DDE_ACK, the server can either reuse the atom, or it can delete it and create a new one.

The server must create or reuse the WM_DDE_ACK lParam parameter by calling the PackDDElParam function or the ReuseDDElParam function.

To free the global memory object, the server should call the GlobalFree function. Also, if the data format is either CF_DSPMETAFILEPICT or CF_METAFILEPICT, the server must also call DeleteMetaFile with the embedded metafile handle. These two formats have an extra level of indirection; that is, an application must lock the object to get a pointer to a handle, then lock that handle to get a pointer to a METAFILEPICT structure, and finally call DeleteMetaFile with the handle from the hMF member of the METAFILEPICT structure.

To free the object, the server should call the FreeDDElParam function.

Requirements

  Windows NT/2000: Requires Windows NT 3.1 or later.
  Windows 95/98: Requires Windows 95 or later.
  Header: Declared in Dde.h; include Windows.h.

See Also

Dynamic Data Exchange Overview, Dynamic Data Exchange Messages, DDEPOKE, DeleteMetaFile, FreeDDElParam, GlobalAddAtom, GlobalAlloc, GlobalFree, METAFILEPICT, PackDDElParam, PostMessage, ReuseDDElParam, SendMessage, UnpackDDElParam, WM_DDE_ACK