WM_DDE_POKE  1JXD2SK 

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_ACK9K0..A message indicating whether it accepted the data item.

WM_DDE_POKE

wParam = (WPARAM) hwnd;        // handle of posting application

lParam = (LPARAM) lPackedVal;  // packed DDEPOKE and item atom

 

Parameters

hwnd

Value of wParam. Identifies the client window posting the message.

lPackedVal

Value of lParam. The component parameters that are packed into lPackedVal are extracted by calling the UnpackDDElParam51WGIV function. The low-order word is hData. The high-order word is aItem.

Parameter

Description

hData

Identifies a global memory object containing a DDEPOKEKE_NJ2 structure with the data and additional information.

 

aItem

Contains a global atom that identifies the data item for which the data or notification is being sent.

 

Remarks

Posting

The client application posts the WM_DDE_POKE message by using the PostMessageFIXDT_ function.

The client application must allocate memory for the hData object by using the GlobalAllocF12W9. function with the GMEM_DDESHARE option. The client application must delete the hData object if either of the following conditions is true:

    The server application responds with a negative WM_DDE_ACK9K0..A message.

    The fRelease member is FALSE, but the server application responds with either a positive or negative WM_DDE_ACK.

 

The client application must create the aItem atom by using the GlobalAddAtom1QH2CM4 function.

The client application must create or reuse the WM_DDE_POKE lPackedVal parameter by calling the PackDDElParam1_GBV6Y function or the ReuseDDElParam14DC0A function with hData supplied as the low-order word and aItem supplied as the high-order word.

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 aItem atom, or it can delete it and create a new one.

The server must create or reuse the WM_DDE_ACK lPackedVal parameter by calling the PackDDElParam1_GBV6Y function or the ReuseDDElParam14DC0A function with wStatus supplied as the low-order word and aItem supplied as the high-order word.

To free the hData object, the server should call the GlobalFreeDVJHB. 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 hData 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 lPackedVal object, the server should call the FreeDDElParam function.

See Also

DDEPOKE, DeleteMetaFile, FreeDDElParam, GlobalAddAtom, GlobalAlloc, GlobalFree, METAFILEPICT, PackDDElParam, PostMessage, ReuseDDElParam, SendMessage, UnpackDDElParam, WM_DDE_ACK