Как мне вернуть логическое значение как WinDef.LRESULT? - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь реализовать Windows Restart Manager в моей Java-программе, и я дошел до того, что получаю сообщения из Windows и выполняю обратный вызов, который выглядит следующим образом:

WindowProc proc = (hwnd, msg, wp, lp) -> {
    if (msg == WM_QUERYENDSESSION && lp.intValue() == ENDSESSION_CLOSEAPP) {
        // Here I need to return true to signify that the application is ready to quit.
     }
     // Pass the message to the default window procedure
     return user32.DefWindowProc(hwnd, msg, wp, lp);
};

где WindowProc выглядит следующим образом:

private interface WindowProc extends StdCallLibrary.StdCallCallback {
    WinDef.LRESULT callback(WinDef.HWND hwnd, int msg, WinDef.WPARAM wp, WinDef.LPARAM lp);
}

В соответствии с Руководствами по перезапуску диспетчера для приложений :

Диспетчер перезапусказапрашивает приложения с графическим интерфейсом на отключение путем отправки уведомления WM_QUERYENDSESSION, в котором для параметра lParam установлено значение ENDSESSION_CLOSEAPP (0x1).[...] Приложения с графическим интерфейсом должны прослушивать сообщение WM_QUERYENDSESSION и возвращать значение TRUE, если приложение готово к закрытию и перезапуску.[...]

Как мне на самом деле вернуть true, если возвращаемое значение равно WinDef.LRESULT?Я так понимаю, это указатель и как-то мне нужно создать логическое значение Win32 и вернуть указатель на него?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...