Windows Mobile 6.5
A version of this page is also available for

This message is sent when an application passes data to another application.

WM_COPYDATA wParam = (WPARAM)(HWND) hwnd; 
    lParam = (LPARAM)(PCOPYDATASTRUCT) pcds;


Handle to the window passing the data.


Pointer to a COPYDATASTRUCT structure that contains the data to be passed.

If the receiving application processes this message, it should return TRUE; otherwise, it should return FALSE.

An application must use the SendMessage function to send this message, not the PostMessage function.

The data being passed must not contain pointers or other references to objects not accessible to the application receiving the data.

While this message is being sent, the referenced data must not be changed by another thread of the sending process.

The receiving application should consider the data read-only. The pcds parameter is valid only during the processing of the message. The receiving application should not free the memory referenced by pcds. If the receiving application must access the data after SendMessage returns, it must copy the data into a local buffer.

For Windows CE 1.0 through 2.11, pcds cannot be a global or static variable. This causes the COPYDATASTRUCT structure to be corrupt when it reaches its destination. Later versions of Windows Embedded CE do not have this restriction.

Windows Embedded CEWindows CE 1.0 and later
Windows MobileWindows Mobile Version 5.0 and later

Community Additions