user32: Don't convert message arguments when calling dialog procedure.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ca9f7cc5eb
commit
9640990e43
|
@ -1277,12 +1277,10 @@ static INT_PTR CALLBACK test_aw_conversion_dlgprocA(HWND hdlg, UINT msg, WPARAM
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case DLGPROCTEXT_DLGPROCA:
|
case DLGPROCTEXT_DLGPROCA:
|
||||||
todo_wine_if(!IsWindowUnicode(hdlg))
|
|
||||||
ok(textA == testtext, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A",
|
ok(textA == testtext, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A",
|
||||||
testmodes[mode], textA);
|
testmodes[mode], textA);
|
||||||
break;
|
break;
|
||||||
case DLGPROCTEXT_DLGPROCW:
|
case DLGPROCTEXT_DLGPROCW:
|
||||||
todo_wine_if(IsWindowUnicode(hdlg))
|
|
||||||
ok(text == testtextW, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A", testmodes[mode],
|
ok(text == testtextW, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A", testmodes[mode],
|
||||||
wine_dbgstr_w(text));
|
wine_dbgstr_w(text));
|
||||||
break;
|
break;
|
||||||
|
@ -1290,27 +1288,19 @@ static INT_PTR CALLBACK test_aw_conversion_dlgprocA(HWND hdlg, UINT msg, WPARAM
|
||||||
case DLGPROCTEXT_SETTEXTA:
|
case DLGPROCTEXT_SETTEXTA:
|
||||||
if (IsWindowUnicode(hdlg))
|
if (IsWindowUnicode(hdlg))
|
||||||
{
|
{
|
||||||
todo_wine
|
|
||||||
ok(text != testtextW && !lstrcmpW(text, testtextW),
|
ok(text != testtextW && !lstrcmpW(text, testtextW),
|
||||||
"U: %s, unexpected text %s.\n", testmodes[mode], wine_dbgstr_w(text));
|
"U: %s, unexpected text %s.\n", testmodes[mode], wine_dbgstr_w(text));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
todo_wine
|
|
||||||
ok(textA == testtext, "A: %s, unexpected text %s.\n", testmodes[mode], textA);
|
ok(textA == testtext, "A: %s, unexpected text %s.\n", testmodes[mode], textA);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case DLGPROCTEXT_SNDMSGW:
|
case DLGPROCTEXT_SNDMSGW:
|
||||||
case DLGPROCTEXT_SETTEXTW:
|
case DLGPROCTEXT_SETTEXTW:
|
||||||
if (IsWindowUnicode(hdlg))
|
if (IsWindowUnicode(hdlg))
|
||||||
todo_wine
|
|
||||||
ok(text == testtextW, "U: %s, unexpected text %s.\n", testmodes[mode], wine_dbgstr_w(text));
|
ok(text == testtextW, "U: %s, unexpected text %s.\n", testmodes[mode], wine_dbgstr_w(text));
|
||||||
else
|
else
|
||||||
{
|
|
||||||
todo_wine
|
|
||||||
ok(textA != testtext && !strcmp(textA, testtext), "A: %s, unexpected text %s.\n",
|
ok(textA != testtext && !strcmp(textA, testtext), "A: %s, unexpected text %s.\n",
|
||||||
testmodes[mode], textA);
|
testmodes[mode], textA);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1337,12 +1327,10 @@ static INT_PTR CALLBACK test_aw_conversion_dlgprocW(HWND hdlg, UINT msg, WPARAM
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case DLGPROCTEXT_DLGPROCA:
|
case DLGPROCTEXT_DLGPROCA:
|
||||||
todo_wine_if(IsWindowUnicode(hdlg))
|
|
||||||
ok(textA == testtext, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A",
|
ok(textA == testtext, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A",
|
||||||
testmodes[mode], textA);
|
testmodes[mode], textA);
|
||||||
break;
|
break;
|
||||||
case DLGPROCTEXT_DLGPROCW:
|
case DLGPROCTEXT_DLGPROCW:
|
||||||
todo_wine_if(!IsWindowUnicode(hdlg))
|
|
||||||
ok(text == testtextW, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A", testmodes[mode],
|
ok(text == testtextW, "%s: %s, unexpected text %s.\n", IsWindowUnicode(hdlg) ? "U" : "A", testmodes[mode],
|
||||||
wine_dbgstr_w(text));
|
wine_dbgstr_w(text));
|
||||||
break;
|
break;
|
||||||
|
@ -1433,13 +1421,11 @@ static INT_PTR CALLBACK test_aw_conversion_dlgproc(HWND hdlg, UINT msg, WPARAM w
|
||||||
|
|
||||||
memset(buff, 'A', sizeof(buff));
|
memset(buff, 'A', sizeof(buff));
|
||||||
len = GetWindowTextA(hdlg, buff, sizeof(buff));
|
len = GetWindowTextA(hdlg, buff, sizeof(buff));
|
||||||
todo_wine
|
|
||||||
ok(buff[0] == 0 && buff[1] == 'A' && len == 0, "Unexpected window text %#x, %#x, len %d\n",
|
ok(buff[0] == 0 && buff[1] == 'A' && len == 0, "Unexpected window text %#x, %#x, len %d\n",
|
||||||
(BYTE)buff[0], (BYTE)buff[1], len);
|
(BYTE)buff[0], (BYTE)buff[1], len);
|
||||||
|
|
||||||
memset(buffW, 0xff, sizeof(buffW));
|
memset(buffW, 0xff, sizeof(buffW));
|
||||||
len = GetWindowTextW(hdlg, buffW, 64);
|
len = GetWindowTextW(hdlg, buffW, 64);
|
||||||
todo_wine
|
|
||||||
ok(!lstrcmpW(buffW, testtextW) && len == 0, "Unexpected window text %s, len %d\n", wine_dbgstr_w(buffW), len);
|
ok(!lstrcmpW(buffW, testtextW) && len == 0, "Unexpected window text %s, len %d\n", wine_dbgstr_w(buffW), len);
|
||||||
|
|
||||||
dlg_test_aw_message(hdlg, WM_WININICHANGE);
|
dlg_test_aw_message(hdlg, WM_WININICHANGE);
|
||||||
|
@ -1542,7 +1528,7 @@ static INT_PTR CALLBACK test_aw_conversion_dlgproc2(HWND hdlg, UINT msg, WPARAM
|
||||||
|
|
||||||
memset(buff, 'A', sizeof(buff));
|
memset(buff, 'A', sizeof(buff));
|
||||||
len = GetWindowTextA(hdlg, buff, sizeof(buff));
|
len = GetWindowTextA(hdlg, buff, sizeof(buff));
|
||||||
ok(!strcmp(buff, "WndText") && len == 0, "Unexpected window text %s, len %d\n", buff, len);
|
ok(!strcmp(buff, testtext) && len == 0, "Unexpected window text %s, len %d\n", buff, len);
|
||||||
|
|
||||||
memset(buffW, 0xff, sizeof(buffW));
|
memset(buffW, 0xff, sizeof(buffW));
|
||||||
len = GetWindowTextW(hdlg, buffW, 64);
|
len = GetWindowTextW(hdlg, buffW, 64);
|
||||||
|
@ -1578,12 +1564,10 @@ static INT_PTR CALLBACK test_aw_conversion_dlgproc2(HWND hdlg, UINT msg, WPARAM
|
||||||
|
|
||||||
memset(buff, 'A', sizeof(buff));
|
memset(buff, 'A', sizeof(buff));
|
||||||
len = GetWindowTextA(hdlg, buff, sizeof(buff));
|
len = GetWindowTextA(hdlg, buff, sizeof(buff));
|
||||||
todo_wine
|
ok(!strcmp(buff, testtext) && len == 0, "Unexpected window text %s, len %d\n", buff, len);
|
||||||
ok(!strcmp(buff, "WndText") && len == 0, "Unexpected window text %s, len %d\n", buff, len);
|
|
||||||
|
|
||||||
memset(buffW, 0xff, sizeof(buffW));
|
memset(buffW, 0xff, sizeof(buffW));
|
||||||
len = GetWindowTextW(hdlg, buffW, sizeof(buffW)/sizeof(buffW[0]));
|
len = GetWindowTextW(hdlg, buffW, sizeof(buffW)/sizeof(buffW[0]));
|
||||||
todo_wine
|
|
||||||
ok(buffW[0] == 0 && buffW[1] == 0xffff && len == 0, "Unexpected window text %#x, %#x, len %d\n",
|
ok(buffW[0] == 0 && buffW[1] == 0xffff && len == 0, "Unexpected window text %#x, %#x, len %d\n",
|
||||||
buffW[0], buffW[1], len);
|
buffW[0], buffW[1], len);
|
||||||
|
|
||||||
|
@ -1602,6 +1586,88 @@ static INT_PTR CALLBACK test_aw_conversion_dlgproc2(HWND hdlg, UINT msg, WPARAM
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static LRESULT CALLBACK test_aw_conversion_wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
||||||
|
{
|
||||||
|
WNDPROC oldproc = (WNDPROC)GetWindowLongPtrA(hwnd, GWLP_USERDATA);
|
||||||
|
int mode = HandleToULong(GetPropA(hwnd, "test_mode"));
|
||||||
|
WCHAR *text = (WCHAR *)lparam;
|
||||||
|
char *textA = (char *)lparam;
|
||||||
|
|
||||||
|
switch (msg)
|
||||||
|
{
|
||||||
|
case WM_SETTEXT:
|
||||||
|
case WM_WININICHANGE:
|
||||||
|
case WM_DEVMODECHANGE:
|
||||||
|
case CB_DIR:
|
||||||
|
case LB_DIR:
|
||||||
|
case LB_ADDFILE:
|
||||||
|
case EM_REPLACESEL:
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case DLGPROCTEXT_SNDMSGA:
|
||||||
|
if (IsWindowUnicode(hwnd))
|
||||||
|
ok(text != testtextW && !lstrcmpW(text, testtextW),
|
||||||
|
"U: %s, unexpected text %s.\n", testmodes[mode], wine_dbgstr_w(text));
|
||||||
|
else
|
||||||
|
ok(textA == testtext, "A: %s, unexpected text %s.\n", testmodes[mode], textA);
|
||||||
|
break;
|
||||||
|
case DLGPROCTEXT_SNDMSGW:
|
||||||
|
if (IsWindowUnicode(hwnd))
|
||||||
|
ok(text == testtextW, "U: %s, unexpected text %s.\n", testmodes[mode], wine_dbgstr_w(text));
|
||||||
|
else
|
||||||
|
ok(textA != testtext && !strcmp(textA, testtext), "A: %s, unexpected text %s.\n",
|
||||||
|
testmodes[mode], textA);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ok(0, "Unexpected test mode %d.\n", mode);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return IsWindowUnicode(hwnd) ? CallWindowProcW(oldproc, hwnd, msg, wparam, lparam) :
|
||||||
|
CallWindowProcA(oldproc, hwnd, msg, wparam, lparam);
|
||||||
|
}
|
||||||
|
|
||||||
|
static INT_PTR CALLBACK test_aw_conversion_dlgproc3(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
|
||||||
|
{
|
||||||
|
BOOL is_unicode = !!lparam;
|
||||||
|
LONG_PTR oldproc;
|
||||||
|
|
||||||
|
switch (msg)
|
||||||
|
{
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
ok(is_unicode == IsWindowUnicode(hdlg), "Unexpected unicode window property.\n");
|
||||||
|
|
||||||
|
oldproc = SetWindowLongPtrA(hdlg, GWLP_WNDPROC, (LONG_PTR)test_aw_conversion_wndproc);
|
||||||
|
SetWindowLongPtrA(hdlg, GWLP_USERDATA, oldproc);
|
||||||
|
ok(!IsWindowUnicode(hdlg), "Unexpected unicode window.\n");
|
||||||
|
|
||||||
|
dlg_test_aw_message(hdlg, WM_WININICHANGE);
|
||||||
|
dlg_test_aw_message(hdlg, WM_DEVMODECHANGE);
|
||||||
|
dlg_test_aw_message(hdlg, CB_DIR);
|
||||||
|
dlg_test_aw_message(hdlg, LB_DIR);
|
||||||
|
dlg_test_aw_message(hdlg, LB_ADDFILE);
|
||||||
|
dlg_test_aw_message(hdlg, EM_REPLACESEL);
|
||||||
|
dlg_test_aw_message(hdlg, WM_SETTEXT);
|
||||||
|
|
||||||
|
SetWindowLongPtrW(hdlg, GWLP_WNDPROC, (LONG_PTR)test_aw_conversion_wndproc);
|
||||||
|
ok(IsWindowUnicode(hdlg), "Expected unicode window.\n");
|
||||||
|
|
||||||
|
dlg_test_aw_message(hdlg, WM_WININICHANGE);
|
||||||
|
dlg_test_aw_message(hdlg, WM_DEVMODECHANGE);
|
||||||
|
dlg_test_aw_message(hdlg, CB_DIR);
|
||||||
|
dlg_test_aw_message(hdlg, LB_DIR);
|
||||||
|
dlg_test_aw_message(hdlg, LB_ADDFILE);
|
||||||
|
dlg_test_aw_message(hdlg, EM_REPLACESEL);
|
||||||
|
dlg_test_aw_message(hdlg, WM_SETTEXT);
|
||||||
|
|
||||||
|
SetWindowLongPtrA(hdlg, GWLP_WNDPROC, oldproc);
|
||||||
|
EndDialog(hdlg, -123);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static void test_DialogBoxParam(void)
|
static void test_DialogBoxParam(void)
|
||||||
{
|
{
|
||||||
static const WCHAR nameW[] = {'T','E','S','T','_','E','M','P','T','Y','_','D','I','A','L','O','G',0};
|
static const WCHAR nameW[] = {'T','E','S','T','_','E','M','P','T','Y','_','D','I','A','L','O','G',0};
|
||||||
|
@ -1665,6 +1731,12 @@ static void test_DialogBoxParam(void)
|
||||||
|
|
||||||
ret = DialogBoxParamA(GetModuleHandleA(NULL), "TEST_EMPTY_DIALOG", 0, test_aw_conversion_dlgproc2, 0);
|
ret = DialogBoxParamA(GetModuleHandleA(NULL), "TEST_EMPTY_DIALOG", 0, test_aw_conversion_dlgproc2, 0);
|
||||||
ok(ret == -123, "Unexpected ret value %ld.\n", ret);
|
ok(ret == -123, "Unexpected ret value %ld.\n", ret);
|
||||||
|
|
||||||
|
ret = DialogBoxParamW(GetModuleHandleA(NULL), nameW, 0, test_aw_conversion_dlgproc3, 1);
|
||||||
|
ok(ret == -123, "Unexpected ret value %ld.\n", ret);
|
||||||
|
|
||||||
|
ret = DialogBoxParamA(GetModuleHandleA(NULL), "TEST_EMPTY_DIALOG", 0, test_aw_conversion_dlgproc3, 0);
|
||||||
|
ok(ret == -123, "Unexpected ret value %ld.\n", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_DisabledDialogTest(void)
|
static void test_DisabledDialogTest(void)
|
||||||
|
|
|
@ -869,10 +869,10 @@ BOOL WINPROC_call_window( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
|
||||||
LRESULT *result, BOOL unicode, enum wm_char_mapping mapping )
|
LRESULT *result, BOOL unicode, enum wm_char_mapping mapping )
|
||||||
{
|
{
|
||||||
struct user_thread_info *thread_info = get_user_thread_info();
|
struct user_thread_info *thread_info = get_user_thread_info();
|
||||||
|
BOOL unicode_win, is_dialog;
|
||||||
WND *wndPtr;
|
WND *wndPtr;
|
||||||
WNDPROC func;
|
WNDPROC func;
|
||||||
WINDOWPROC *proc;
|
WINDOWPROC *proc;
|
||||||
BOOL unicode_win;
|
|
||||||
|
|
||||||
if (!(wndPtr = WIN_GetPtr( hwnd ))) return FALSE;
|
if (!(wndPtr = WIN_GetPtr( hwnd ))) return FALSE;
|
||||||
if (wndPtr == WND_OTHER_PROCESS || wndPtr == WND_DESKTOP) return FALSE;
|
if (wndPtr == WND_OTHER_PROCESS || wndPtr == WND_DESKTOP) return FALSE;
|
||||||
|
@ -884,6 +884,7 @@ BOOL WINPROC_call_window( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
|
||||||
func = wndPtr->winproc;
|
func = wndPtr->winproc;
|
||||||
proc = handle_to_proc( wndPtr->winproc );
|
proc = handle_to_proc( wndPtr->winproc );
|
||||||
unicode_win = wndPtr->flags & WIN_ISUNICODE;
|
unicode_win = wndPtr->flags & WIN_ISUNICODE;
|
||||||
|
is_dialog = wndPtr->dlgInfo != NULL;
|
||||||
WIN_ReleasePtr( wndPtr );
|
WIN_ReleasePtr( wndPtr );
|
||||||
|
|
||||||
if (thread_info->recursion_count > MAX_WINPROC_RECURSION) return FALSE;
|
if (thread_info->recursion_count > MAX_WINPROC_RECURSION) return FALSE;
|
||||||
|
@ -893,6 +894,23 @@ BOOL WINPROC_call_window( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
|
||||||
{
|
{
|
||||||
if (proc == WINPROC_PROC16)
|
if (proc == WINPROC_PROC16)
|
||||||
WINPROC_CallProcWtoA( wow_handlers.call_window_proc, hwnd, msg, wParam, lParam, result, func );
|
WINPROC_CallProcWtoA( wow_handlers.call_window_proc, hwnd, msg, wParam, lParam, result, func );
|
||||||
|
else if (is_dialog)
|
||||||
|
{
|
||||||
|
if (unicode_win)
|
||||||
|
{
|
||||||
|
if (proc && proc->procW)
|
||||||
|
call_window_proc( hwnd, msg, wParam, lParam, result, proc->procW );
|
||||||
|
else
|
||||||
|
call_window_proc( hwnd, msg, wParam, lParam, result, func );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (proc && proc->procA)
|
||||||
|
WINPROC_CallProcWtoA( call_window_proc, hwnd, msg, wParam, lParam, result, proc->procA );
|
||||||
|
else
|
||||||
|
WINPROC_CallProcWtoA( call_window_proc, hwnd, msg, wParam, lParam, result, func );
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (proc && proc->procW)
|
else if (proc && proc->procW)
|
||||||
call_window_proc( hwnd, msg, wParam, lParam, result, proc->procW );
|
call_window_proc( hwnd, msg, wParam, lParam, result, proc->procW );
|
||||||
else if (proc)
|
else if (proc)
|
||||||
|
@ -906,6 +924,23 @@ BOOL WINPROC_call_window( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
|
||||||
{
|
{
|
||||||
if (proc == WINPROC_PROC16)
|
if (proc == WINPROC_PROC16)
|
||||||
wow_handlers.call_window_proc( hwnd, msg, wParam, lParam, result, func );
|
wow_handlers.call_window_proc( hwnd, msg, wParam, lParam, result, func );
|
||||||
|
else if (is_dialog)
|
||||||
|
{
|
||||||
|
if (unicode_win)
|
||||||
|
{
|
||||||
|
if (proc && proc->procW)
|
||||||
|
WINPROC_CallProcAtoW( call_window_proc, hwnd, msg, wParam, lParam, result, proc->procW, mapping );
|
||||||
|
else
|
||||||
|
WINPROC_CallProcAtoW( call_window_proc, hwnd, msg, wParam, lParam, result, func, mapping );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (proc && proc->procA)
|
||||||
|
call_window_proc( hwnd, msg, wParam, lParam, result, proc->procA );
|
||||||
|
else
|
||||||
|
call_window_proc( hwnd, msg, wParam, lParam, result, func );
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (proc && proc->procA)
|
else if (proc && proc->procA)
|
||||||
call_window_proc( hwnd, msg, wParam, lParam, result, proc->procA );
|
call_window_proc( hwnd, msg, wParam, lParam, result, proc->procA );
|
||||||
else if (proc)
|
else if (proc)
|
||||||
|
@ -1012,14 +1047,9 @@ INT_PTR WINPROC_CallDlgProcA( DLGPROC func, HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
ret = wow_handlers.call_dialog_proc( hwnd, msg, wParam, lParam, &result, func );
|
ret = wow_handlers.call_dialog_proc( hwnd, msg, wParam, lParam, &result, func );
|
||||||
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
||||||
}
|
}
|
||||||
else if (proc->procW)
|
|
||||||
{
|
|
||||||
ret = WINPROC_CallProcAtoW( call_dialog_proc, hwnd, msg, wParam, lParam, &result,
|
|
||||||
proc->procW, WMCHAR_MAP_CALLWINDOWPROC );
|
|
||||||
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
ret = call_dialog_proc( hwnd, msg, wParam, lParam, &result, proc->procA );
|
ret = call_dialog_proc( hwnd, msg, wParam, lParam, &result, proc->procW ? proc->procW : proc->procA );
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1042,13 +1072,9 @@ INT_PTR WINPROC_CallDlgProcW( DLGPROC func, HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
ret = WINPROC_CallProcWtoA( wow_handlers.call_dialog_proc, hwnd, msg, wParam, lParam, &result, func );
|
ret = WINPROC_CallProcWtoA( wow_handlers.call_dialog_proc, hwnd, msg, wParam, lParam, &result, func );
|
||||||
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
||||||
}
|
}
|
||||||
else if (proc->procA)
|
|
||||||
{
|
|
||||||
ret = WINPROC_CallProcWtoA( call_dialog_proc, hwnd, msg, wParam, lParam, &result, proc->procA );
|
|
||||||
SetWindowLongPtrW( hwnd, DWLP_MSGRESULT, result );
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
ret = call_dialog_proc( hwnd, msg, wParam, lParam, &result, proc->procW );
|
ret = call_dialog_proc( hwnd, msg, wParam, lParam, &result, proc->procW ? proc->procW : proc->procA );
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue