Platform SDK: Interprocess Communications

WM_DDE_INITIATE

A DDE client application sends a WM_DDE_INITIATE message to initiate a conversation with a server application responding to the specified application and topic names. Upon receiving this message, all server applications with names that match the specified application and that support the specified topic are expected to acknowledge it. (For more information, see the WM_DDE_ACK message.)

To send this message, call the SendMessage function with the following parameters.

SendMessage( 
  (HWND) hWnd,             // handle to destination window 
  WM_DDE_INITIATE,         // message to send
  (WPARAM) wParam,         // handle to client window (HWND)
  (LPARAM) lParam          // application and topic atom
);

Parameters

wParam
Handle to the client window sending the message.
lParam
The low-order word contains an atom that identifies the application with which a conversation is requested. The application name cannot contain slashes (/) or backslashes (\). These characters are reserved for network implementations. If this parameter is NULL, a conversation with all applications is requested.

The high-order word contains an atom that identifies the topic for which a conversation is requested. If the topic is NULL, conversations for all available topics are requested.

Remarks

If the low-order word of lParam is NULL, any server application can respond. If the high-order word of lParam is NULL, any topic is valid. Upon receiving a WM_DDE_INITIATE request with the high-order word of the lParam parameter set to NULL, a server must send a WM_DDE_ACK message for each of the topics it supports.

Sending

The client broadcasts the message to all top-level windows by setting the first parameter of SendMessage to –1.

If the client application has already obtained the window handle of the desired server, it can send WM_DDE_INITIATE directly to the server window by passing the server's window handle as the first parameter of SendMessage.

The client application allocates atoms by calling the GlobalAddAtom function.

When SendMessage returns, the client application must delete the atoms.

Receiving

To complete the initiation of a conversation, the server application must respond with one or more WM_DDE_ACK messages, where each message is for a separate topic. When sending WM_DDE_ACK message, the server should create new atoms; it should not reuse the atoms sent with WM_DDE_INITIATE.

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, GlobalAddAtom, GlobalAlloc, PostMessage, SendMessage, WM_DDE_ACK