Gabe wondered when the WM_COPYDATA
message was introduced.
The WM_COPYDATA
message was introduced by Win32. It did not exist in 16-bit Windows.
But it was there all along.
The The WM_COPYDATA
message was carefully designed so that it worked in 16-bit Windows automatically. In other words, you retained your source code compatibility between 16-bit and 32-bit Windows without having to do a single thing. Phew, one fewer breaking change between 16-bit and 32-bit Windows.
As Neil noted, there’s nothing stopping you from sending message 0x004A
in 16-bit Windows with a window handle in the wParam
and a pointer to a COPYDATASTRUCT
in the lParam
. Since all 16-bit applications ran in the same address space, the null marshaller successfully marshals the data between the two processes.
In a sense, support for the WM_COPYDATA
message was ported downlevel even before the message existed!
0 comments