[WINLOGON] DefaultWlxWindowProc(WLX_WM_SAS): return an adequate WLX_DLG_* value (#8130)

For more details, see:
https://learn.microsoft.com/en-us/windows/win32/api/winwlx/nc-winwlx-pwlx_dialog_box_indirect_param#return-value
This commit is contained in:
Hermès Bélusca-Maïto 2025-06-12 22:38:14 +02:00
parent 24b2c4be8c
commit 14894f2e27
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -104,7 +104,7 @@ CloseAllDialogWindows(VOID)
DIALOG_LIST_ENTRY,
Entry);
PostMessage(Current->hWnd, WLX_WM_SAS, 0, 0);
PostMessage(Current->hWnd, WLX_WM_SAS, WLX_SAS_TYPE_TIMEOUT, 0);
ListEntry = ListEntry->Flink;
}
@ -141,8 +141,25 @@ DefaultWlxWindowProc(
if (uMsg == WLX_WM_SAS)
{
EndDialog(hwndDlg, WLX_DLG_SAS);
return 0;
/* Determine which result to return */
switch (wParam)
{
case WLX_SAS_TYPE_CTRL_ALT_DEL:
default:
ret = WLX_DLG_SAS;
break;
case WLX_SAS_TYPE_TIMEOUT:
ret = WLX_DLG_INPUT_TIMEOUT;
break;
case WLX_SAS_TYPE_SCRNSVR_TIMEOUT:
ret = WLX_DLG_SCREEN_SAVER_TIMEOUT;
break;
case WLX_SAS_TYPE_USER_LOGOFF:
ret = WLX_DLG_USER_LOGOFF;
break;
}
EndDialog(hwndDlg, ret);
return TRUE;
}
ret = ListEntry->DlgProc(hwndDlg, uMsg, wParam, lParam);