user: The result for dialog procedures is stored in DWLP_MSGRESULT.
So we have to access it using Get/SetWindowLong when unmapping the message results (based on a patch by Troy Rollo).
This commit is contained in:
parent
cb3f3afca4
commit
c1c5f14839
|
@ -2955,11 +2955,10 @@ void WINPROC_UnmapMsg32WTo16( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
|
||||||
*
|
*
|
||||||
* Call a window procedure, translating args from Ansi to Unicode.
|
* Call a window procedure, translating args from Ansi to Unicode.
|
||||||
*/
|
*/
|
||||||
static LRESULT WINPROC_CallProc32ATo32W( WNDPROC func, HWND hwnd,
|
static LRESULT WINPROC_CallProc32ATo32W( WNDPROC func, HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
UINT msg, WPARAM wParam,
|
LPARAM lParam, BOOL dialog )
|
||||||
LPARAM lParam )
|
|
||||||
{
|
{
|
||||||
LRESULT result;
|
LRESULT ret;
|
||||||
int unmap;
|
int unmap;
|
||||||
|
|
||||||
TRACE_(msg)("func %p (hwnd=%p,msg=%s,wp=%08x,lp=%08lx)\n",
|
TRACE_(msg)("func %p (hwnd=%p,msg=%s,wp=%08x,lp=%08lx)\n",
|
||||||
|
@ -2970,9 +2969,18 @@ static LRESULT WINPROC_CallProc32ATo32W( WNDPROC func, HWND hwnd,
|
||||||
SPY_GetMsgName(msg, hwnd), wParam, lParam );
|
SPY_GetMsgName(msg, hwnd), wParam, lParam );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
result = WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
ret = WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
||||||
if (unmap) result = WINPROC_UnmapMsg32ATo32W( hwnd, msg, wParam, lParam, result, func );
|
if (unmap)
|
||||||
return result;
|
{
|
||||||
|
if (dialog)
|
||||||
|
{
|
||||||
|
LRESULT result = GetWindowLongPtrW( hwnd, DWLP_MSGRESULT );
|
||||||
|
result = WINPROC_UnmapMsg32ATo32W( hwnd, msg, wParam, lParam, result, NULL );
|
||||||
|
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
||||||
|
}
|
||||||
|
else ret = WINPROC_UnmapMsg32ATo32W( hwnd, msg, wParam, lParam, ret, func );
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3052,27 +3060,35 @@ static BOOL WINPROC_CallProc32WTo32A_fast( WNDPROC func, HWND hwnd,
|
||||||
*
|
*
|
||||||
* Call a window procedure, translating args from Unicode to Ansi.
|
* Call a window procedure, translating args from Unicode to Ansi.
|
||||||
*/
|
*/
|
||||||
static LRESULT WINPROC_CallProc32WTo32A( WNDPROC func, HWND hwnd,
|
static LRESULT WINPROC_CallProc32WTo32A( WNDPROC func, HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
UINT msg, WPARAM wParam,
|
LPARAM lParam, BOOL dialog )
|
||||||
LPARAM lParam )
|
|
||||||
{
|
{
|
||||||
LRESULT result;
|
LRESULT ret;
|
||||||
int unmap;
|
int unmap;
|
||||||
|
|
||||||
TRACE_(msg)("func %p (hwnd=%p,msg=%s,wp=%08x,lp=%08lx)\n",
|
TRACE_(msg)("func %p (hwnd=%p,msg=%s,wp=%08x,lp=%08lx)\n",
|
||||||
func, hwnd, SPY_GetMsgName(msg, hwnd), wParam, lParam);
|
func, hwnd, SPY_GetMsgName(msg, hwnd), wParam, lParam);
|
||||||
|
|
||||||
if (WINPROC_CallProc32WTo32A_fast( func, hwnd, msg, wParam, lParam, &result ))
|
if (WINPROC_CallProc32WTo32A_fast( func, hwnd, msg, wParam, lParam, &ret ))
|
||||||
return result;
|
return ret;
|
||||||
|
|
||||||
if ((unmap = WINPROC_MapMsg32WTo32A( hwnd, msg, &wParam, &lParam )) == -1) {
|
if ((unmap = WINPROC_MapMsg32WTo32A( hwnd, msg, &wParam, &lParam )) == -1) {
|
||||||
ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n",
|
ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n",
|
||||||
SPY_GetMsgName(msg, hwnd), wParam, lParam );
|
SPY_GetMsgName(msg, hwnd), wParam, lParam );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
result = WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
ret = WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
||||||
if( unmap ) result = WINPROC_UnmapMsg32WTo32A( hwnd, msg, wParam, lParam, result );
|
if (unmap)
|
||||||
return result;
|
{
|
||||||
|
if (dialog)
|
||||||
|
{
|
||||||
|
LRESULT result = GetWindowLongPtrW( hwnd, DWLP_MSGRESULT );
|
||||||
|
result = WINPROC_UnmapMsg32WTo32A( hwnd, msg, wParam, lParam, result );
|
||||||
|
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
||||||
|
}
|
||||||
|
else ret = WINPROC_UnmapMsg32WTo32A( hwnd, msg, wParam, lParam, ret );
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3080,9 +3096,9 @@ static LRESULT WINPROC_CallProc32WTo32A( WNDPROC func, HWND hwnd,
|
||||||
* WINPROC_CallProc16To32A
|
* WINPROC_CallProc16To32A
|
||||||
*/
|
*/
|
||||||
static LRESULT WINPROC_CallProc16To32A( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
static LRESULT WINPROC_CallProc16To32A( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
||||||
WPARAM16 wParam, LPARAM lParam )
|
WPARAM16 wParam, LPARAM lParam, BOOL dialog )
|
||||||
{
|
{
|
||||||
LRESULT result;
|
LRESULT ret;
|
||||||
UINT msg32;
|
UINT msg32;
|
||||||
WPARAM wParam32;
|
WPARAM wParam32;
|
||||||
HWND hwnd32 = WIN_Handle32( hwnd );
|
HWND hwnd32 = WIN_Handle32( hwnd );
|
||||||
|
@ -3092,8 +3108,16 @@ static LRESULT WINPROC_CallProc16To32A( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
||||||
|
|
||||||
if (WINPROC_MapMsg16To32A( hwnd32, msg, wParam, &msg32, &wParam32, &lParam ) == -1)
|
if (WINPROC_MapMsg16To32A( hwnd32, msg, wParam, &msg32, &wParam32, &lParam ) == -1)
|
||||||
return 0;
|
return 0;
|
||||||
result = WINPROC_CallWndProc( func, hwnd32, msg32, wParam32, lParam );
|
ret = WINPROC_CallWndProc( func, hwnd32, msg32, wParam32, lParam );
|
||||||
return WINPROC_UnmapMsg16To32A( hwnd32, msg32, wParam32, lParam, result );
|
if (dialog)
|
||||||
|
{
|
||||||
|
LRESULT result = GetWindowLongPtrW( hwnd32, DWLP_MSGRESULT );
|
||||||
|
result = WINPROC_UnmapMsg16To32A( hwnd32, msg32, wParam32, lParam, result );
|
||||||
|
SetWindowLongPtrW( hwnd32, DWLP_MSGRESULT, result );
|
||||||
|
}
|
||||||
|
else ret = WINPROC_UnmapMsg16To32A( hwnd32, msg32, wParam32, lParam, ret );
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3101,9 +3125,9 @@ static LRESULT WINPROC_CallProc16To32A( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
||||||
* WINPROC_CallProc16To32W
|
* WINPROC_CallProc16To32W
|
||||||
*/
|
*/
|
||||||
static LRESULT WINPROC_CallProc16To32W( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
static LRESULT WINPROC_CallProc16To32W( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
||||||
WPARAM16 wParam, LPARAM lParam )
|
WPARAM16 wParam, LPARAM lParam, BOOL dialog )
|
||||||
{
|
{
|
||||||
LRESULT result;
|
LRESULT ret;
|
||||||
UINT msg32;
|
UINT msg32;
|
||||||
WPARAM wParam32;
|
WPARAM wParam32;
|
||||||
HWND hwnd32 = WIN_Handle32( hwnd );
|
HWND hwnd32 = WIN_Handle32( hwnd );
|
||||||
|
@ -3113,9 +3137,17 @@ static LRESULT WINPROC_CallProc16To32W( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
||||||
|
|
||||||
if (WINPROC_MapMsg16To32W( hwnd32, msg, wParam, &msg32, &wParam32, &lParam ) == -1)
|
if (WINPROC_MapMsg16To32W( hwnd32, msg, wParam, &msg32, &wParam32, &lParam ) == -1)
|
||||||
return 0;
|
return 0;
|
||||||
result = WINPROC_CallWndProc( func, hwnd32, msg32, wParam32, lParam );
|
|
||||||
return WINPROC_UnmapMsg16To32W( hwnd32, msg32, wParam32, lParam, result,
|
ret = WINPROC_CallWndProc( func, hwnd32, msg32, wParam32, lParam );
|
||||||
func );
|
if (dialog)
|
||||||
|
{
|
||||||
|
LRESULT result = GetWindowLongPtrW( hwnd32, DWLP_MSGRESULT );
|
||||||
|
result = WINPROC_UnmapMsg16To32W( hwnd32, msg32, wParam32, lParam, result, NULL );
|
||||||
|
SetWindowLongPtrW( hwnd32, DWLP_MSGRESULT, result );
|
||||||
|
}
|
||||||
|
else ret = WINPROC_UnmapMsg16To32W( hwnd32, msg32, wParam32, lParam, ret, func );
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3125,8 +3157,8 @@ static LRESULT WINPROC_CallProc16To32W( WNDPROC func, HWND16 hwnd, UINT16 msg,
|
||||||
LRESULT WINAPI __wine_call_wndproc( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam,
|
LRESULT WINAPI __wine_call_wndproc( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam,
|
||||||
WINDOWPROC *proc )
|
WINDOWPROC *proc )
|
||||||
{
|
{
|
||||||
if (proc->procA) return WINPROC_CallProc16To32A( proc->procA, hwnd, msg, wParam, lParam );
|
if (proc->procA) return WINPROC_CallProc16To32A( proc->procA, hwnd, msg, wParam, lParam, FALSE );
|
||||||
else return WINPROC_CallProc16To32W( proc->procW, hwnd, msg, wParam, lParam );
|
else return WINPROC_CallProc16To32W( proc->procW, hwnd, msg, wParam, lParam, FALSE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3135,9 +3167,10 @@ LRESULT WINAPI __wine_call_wndproc( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LP
|
||||||
*
|
*
|
||||||
* Call a 16-bit window procedure, translating the 32-bit args.
|
* Call a 16-bit window procedure, translating the 32-bit args.
|
||||||
*/
|
*/
|
||||||
static LRESULT WINPROC_CallProc32ATo16( WNDPROC16 func, HWND hwnd,
|
static LRESULT WINPROC_CallProc32ATo16( WNDPROC16 func, HWND hwnd, UINT msg,
|
||||||
UINT msg, WPARAM wParam, LPARAM lParam )
|
WPARAM wParam, LPARAM lParam, BOOL dialog )
|
||||||
{
|
{
|
||||||
|
LRESULT ret;
|
||||||
UINT16 msg16;
|
UINT16 msg16;
|
||||||
MSGPARAM16 mp16;
|
MSGPARAM16 mp16;
|
||||||
|
|
||||||
|
@ -3147,10 +3180,21 @@ static LRESULT WINPROC_CallProc32ATo16( WNDPROC16 func, HWND hwnd,
|
||||||
mp16.lParam = lParam;
|
mp16.lParam = lParam;
|
||||||
if (WINPROC_MapMsg32ATo16( hwnd, msg, wParam, &msg16, &mp16.wParam, &mp16.lParam ) == -1)
|
if (WINPROC_MapMsg32ATo16( hwnd, msg, wParam, &msg16, &mp16.wParam, &mp16.lParam ) == -1)
|
||||||
return 0;
|
return 0;
|
||||||
mp16.lResult = WINPROC_CallWndProc16( func, HWND_16(hwnd), msg16,
|
ret = WINPROC_CallWndProc16( func, HWND_16(hwnd), msg16, mp16.wParam, mp16.lParam );
|
||||||
mp16.wParam, mp16.lParam );
|
if (dialog)
|
||||||
WINPROC_UnmapMsg32ATo16( hwnd, msg, wParam, lParam, &mp16 );
|
{
|
||||||
return mp16.lResult;
|
mp16.lResult = GetWindowLongPtrW( hwnd, DWLP_MSGRESULT );
|
||||||
|
WINPROC_UnmapMsg32ATo16( hwnd, msg, wParam, lParam, &mp16 );
|
||||||
|
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, mp16.lResult );
|
||||||
|
ret = LOWORD(ret);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mp16.lResult = ret;
|
||||||
|
WINPROC_UnmapMsg32ATo16( hwnd, msg, wParam, lParam, &mp16 );
|
||||||
|
ret = mp16.lResult;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3159,9 +3203,10 @@ static LRESULT WINPROC_CallProc32ATo16( WNDPROC16 func, HWND hwnd,
|
||||||
*
|
*
|
||||||
* Call a 16-bit window procedure, translating the 32-bit args.
|
* Call a 16-bit window procedure, translating the 32-bit args.
|
||||||
*/
|
*/
|
||||||
static LRESULT WINPROC_CallProc32WTo16( WNDPROC16 func, HWND hwnd,
|
static LRESULT WINPROC_CallProc32WTo16( WNDPROC16 func, HWND hwnd, UINT msg,
|
||||||
UINT msg, WPARAM wParam, LPARAM lParam )
|
WPARAM wParam, LPARAM lParam, BOOL dialog )
|
||||||
{
|
{
|
||||||
|
LRESULT ret;
|
||||||
UINT16 msg16;
|
UINT16 msg16;
|
||||||
MSGPARAM16 mp16;
|
MSGPARAM16 mp16;
|
||||||
|
|
||||||
|
@ -3169,13 +3214,23 @@ static LRESULT WINPROC_CallProc32WTo16( WNDPROC16 func, HWND hwnd,
|
||||||
func, hwnd, SPY_GetMsgName(msg, hwnd), wParam, lParam);
|
func, hwnd, SPY_GetMsgName(msg, hwnd), wParam, lParam);
|
||||||
|
|
||||||
mp16.lParam = lParam;
|
mp16.lParam = lParam;
|
||||||
if (WINPROC_MapMsg32WTo16( hwnd, msg, wParam, &msg16, &mp16.wParam,
|
if (WINPROC_MapMsg32WTo16( hwnd, msg, wParam, &msg16, &mp16.wParam, &mp16.lParam ) == -1)
|
||||||
&mp16.lParam ) == -1)
|
|
||||||
return 0;
|
return 0;
|
||||||
mp16.lResult = WINPROC_CallWndProc16( func, HWND_16(hwnd), msg16,
|
ret = WINPROC_CallWndProc16( func, HWND_16(hwnd), msg16, mp16.wParam, mp16.lParam );
|
||||||
mp16.wParam, mp16.lParam );
|
if (dialog)
|
||||||
WINPROC_UnmapMsg32WTo16( hwnd, msg, wParam, lParam, &mp16 );
|
{
|
||||||
return mp16.lResult;
|
mp16.lResult = GetWindowLongPtrW( hwnd, DWLP_MSGRESULT );
|
||||||
|
WINPROC_UnmapMsg32WTo16( hwnd, msg, wParam, lParam, &mp16 );
|
||||||
|
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, mp16.lResult );
|
||||||
|
ret = LOWORD(ret);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mp16.lResult = ret;
|
||||||
|
WINPROC_UnmapMsg32WTo16( hwnd, msg, wParam, lParam, &mp16 );
|
||||||
|
ret = mp16.lResult;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3192,8 +3247,8 @@ LRESULT WINAPI CallWindowProc16( WNDPROC16 func, HWND16 hwnd, UINT16 msg,
|
||||||
if (!(proc = handle16_to_proc( func )))
|
if (!(proc = handle16_to_proc( func )))
|
||||||
return WINPROC_CallWndProc16( func, hwnd, msg, wParam, lParam );
|
return WINPROC_CallWndProc16( func, hwnd, msg, wParam, lParam );
|
||||||
|
|
||||||
if (proc->procA) return WINPROC_CallProc16To32A( proc->procA, hwnd, msg, wParam, lParam );
|
if (proc->procA) return WINPROC_CallProc16To32A( proc->procA, hwnd, msg, wParam, lParam, FALSE );
|
||||||
if (proc->procW) return WINPROC_CallProc16To32W( proc->procW, hwnd, msg, wParam, lParam );
|
if (proc->procW) return WINPROC_CallProc16To32W( proc->procW, hwnd, msg, wParam, lParam, FALSE );
|
||||||
return WINPROC_CallWndProc16( proc->proc16, hwnd, msg, wParam, lParam );
|
return WINPROC_CallWndProc16( proc->proc16, hwnd, msg, wParam, lParam );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3237,8 +3292,8 @@ LRESULT WINAPI CallWindowProcA(
|
||||||
return WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
return WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
||||||
|
|
||||||
if (proc->procA) return WINPROC_CallWndProc( proc->procA, hwnd, msg, wParam, lParam );
|
if (proc->procA) return WINPROC_CallWndProc( proc->procA, hwnd, msg, wParam, lParam );
|
||||||
if (proc->procW) return WINPROC_CallProc32ATo32W( proc->procW, hwnd, msg, wParam, lParam );
|
if (proc->procW) return WINPROC_CallProc32ATo32W( proc->procW, hwnd, msg, wParam, lParam, FALSE );
|
||||||
return WINPROC_CallProc32ATo16( proc->proc16, hwnd, msg, wParam, lParam );
|
return WINPROC_CallProc32ATo16( proc->proc16, hwnd, msg, wParam, lParam, FALSE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3258,8 +3313,8 @@ LRESULT WINAPI CallWindowProcW( WNDPROC func, HWND hwnd, UINT msg,
|
||||||
return WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
return WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
|
||||||
|
|
||||||
if (proc->procW) return WINPROC_CallWndProc( proc->procW, hwnd, msg, wParam, lParam );
|
if (proc->procW) return WINPROC_CallWndProc( proc->procW, hwnd, msg, wParam, lParam );
|
||||||
if (proc->procA) return WINPROC_CallProc32WTo32A( proc->procA, hwnd, msg, wParam, lParam );
|
if (proc->procA) return WINPROC_CallProc32WTo32A( proc->procA, hwnd, msg, wParam, lParam, FALSE );
|
||||||
return WINPROC_CallProc32WTo16( proc->proc16, hwnd, msg, wParam, lParam );
|
return WINPROC_CallProc32WTo16( proc->proc16, hwnd, msg, wParam, lParam, FALSE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3275,8 +3330,8 @@ INT_PTR WINPROC_CallDlgProc16( DLGPROC16 func, HWND16 hwnd, UINT16 msg, WPARAM16
|
||||||
if (!(proc = handle16_to_proc( (WNDPROC16)func )))
|
if (!(proc = handle16_to_proc( (WNDPROC16)func )))
|
||||||
return LOWORD( WINPROC_CallWndProc16( (WNDPROC16)func, hwnd, msg, wParam, lParam ) );
|
return LOWORD( WINPROC_CallWndProc16( (WNDPROC16)func, hwnd, msg, wParam, lParam ) );
|
||||||
|
|
||||||
if (proc->procA) return WINPROC_CallProc16To32A( proc->procA, hwnd, msg, wParam, lParam );
|
if (proc->procA) return WINPROC_CallProc16To32A( proc->procA, hwnd, msg, wParam, lParam, TRUE );
|
||||||
if (proc->procW) return WINPROC_CallProc16To32W( proc->procW, hwnd, msg, wParam, lParam );
|
if (proc->procW) return WINPROC_CallProc16To32W( proc->procW, hwnd, msg, wParam, lParam, TRUE );
|
||||||
return LOWORD( WINPROC_CallWndProc16( proc->proc16, hwnd, msg, wParam, lParam ) );
|
return LOWORD( WINPROC_CallWndProc16( proc->proc16, hwnd, msg, wParam, lParam ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3294,8 +3349,8 @@ INT_PTR WINPROC_CallDlgProcA( DLGPROC func, HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
return WINPROC_CallWndProc( (WNDPROC)func, hwnd, msg, wParam, lParam );
|
return WINPROC_CallWndProc( (WNDPROC)func, hwnd, msg, wParam, lParam );
|
||||||
|
|
||||||
if (proc->procA) return WINPROC_CallWndProc( proc->procA, hwnd, msg, wParam, lParam );
|
if (proc->procA) return WINPROC_CallWndProc( proc->procA, hwnd, msg, wParam, lParam );
|
||||||
if (proc->procW) return WINPROC_CallProc32ATo32W( proc->procW, hwnd, msg, wParam, lParam );
|
if (proc->procW) return WINPROC_CallProc32ATo32W( proc->procW, hwnd, msg, wParam, lParam, TRUE );
|
||||||
return LOWORD( WINPROC_CallProc32ATo16( proc->proc16, hwnd, msg, wParam, lParam ) );
|
return WINPROC_CallProc32ATo16( proc->proc16, hwnd, msg, wParam, lParam, TRUE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3312,6 +3367,6 @@ INT_PTR WINPROC_CallDlgProcW( DLGPROC func, HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
return WINPROC_CallWndProc( (WNDPROC)func, hwnd, msg, wParam, lParam );
|
return WINPROC_CallWndProc( (WNDPROC)func, hwnd, msg, wParam, lParam );
|
||||||
|
|
||||||
if (proc->procW) return WINPROC_CallWndProc( proc->procW, hwnd, msg, wParam, lParam );
|
if (proc->procW) return WINPROC_CallWndProc( proc->procW, hwnd, msg, wParam, lParam );
|
||||||
if (proc->procA) return WINPROC_CallProc32WTo32A( proc->procA, hwnd, msg, wParam, lParam );
|
if (proc->procA) return WINPROC_CallProc32WTo32A( proc->procA, hwnd, msg, wParam, lParam, TRUE );
|
||||||
return LOWORD( WINPROC_CallProc32WTo16( proc->proc16, hwnd, msg, wParam, lParam ));
|
return WINPROC_CallProc32WTo16( proc->proc16, hwnd, msg, wParam, lParam, TRUE );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue