Commit aecbcac8 authored by Rein Klazes's avatar Rein Klazes Committed by Alexandre Julliard

Add 16<->32 bit message mappings for WM_COPYDATA messages.

parent 1e43a907
......@@ -1298,6 +1298,16 @@ INT WINPROC_MapMsg16To32A( HWND hwnd, UINT16 msg16, WPARAM16 wParam16, UINT *pms
*plparam = (LPARAM)cis;
}
return 1;
case WM_COPYDATA:
{
PCOPYDATASTRUCT16 pcds16 = MapSL(*plparam);
PCOPYDATASTRUCT pcds = HeapAlloc ( GetProcessHeap(), 0, sizeof(*pcds));
pcds->dwData = pcds16->dwData;
pcds->cbData = pcds16->cbData;
pcds->lpData = MapSL( pcds16->lpData);
*plparam = (LPARAM)pcds;
}
return 1;
case WM_DELETEITEM:
{
DELETEITEMSTRUCT16* dis16 = MapSL(*plparam);
......@@ -1608,6 +1618,7 @@ LRESULT WINPROC_UnmapMsg16To32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
case WM_COMPAREITEM:
case WM_DELETEITEM:
case WM_DRAWITEM:
case WM_COPYDATA:
HeapFree( GetProcessHeap(), 0, (LPVOID)lParam );
break;
case WM_MEASUREITEM:
......@@ -2124,6 +2135,16 @@ INT WINPROC_MapMsg32ATo16( HWND hwnd, UINT msg32, WPARAM wParam32,
case WM_VSCROLL:
*plparam = MAKELPARAM( HIWORD(wParam32), (HWND16)*plparam );
return 0;
case WM_COPYDATA:
{
PCOPYDATASTRUCT pcds32 = (PCOPYDATASTRUCT) *plparam;
PCOPYDATASTRUCT16 pcds = HeapAlloc( GetProcessHeap(), 0, sizeof( *pcds));
pcds->dwData = pcds32->dwData;
pcds->cbData = pcds32->cbData;
pcds->lpData = MapLS( pcds32->lpData);
*plparam = MapLS( pcds );
}
return 1;
case WM_CTLCOLORMSGBOX:
case WM_CTLCOLOREDIT:
case WM_CTLCOLORLISTBOX:
......@@ -2510,6 +2531,14 @@ void WINPROC_UnmapMsg32ATo16( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
HeapFree( GetProcessHeap(), 0, ptr );
}
break;
case WM_COPYDATA:
{
PCOPYDATASTRUCT16 pcds = MapSL( p16->lParam );
UnMapLS( p16->lParam );
UnMapLS( pcds->lpData );
HeapFree( GetProcessHeap(), 0, pcds );
}
break;
case CB_GETDROPPEDCONTROLRECT:
case LB_GETITEMRECT:
{
......
......@@ -555,6 +555,13 @@ typedef struct
LONG l;
} DRAGINFO16, *LPDRAGINFO16;
/* undocumented */
typedef struct tagCOPYDATASTRUCT16 {
DWORD dwData;
DWORD cbData;
SEGPTR lpData;
} COPYDATASTRUCT16, *PCOPYDATASTRUCT16;
#define DRAGOBJ_PROGRAM 0x0001
#define DRAGOBJ_DATA 0x0002
#define DRAGOBJ_DIRECTORY 0x0004
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment