如何将布尔值作为WinDef.LRESULT返回?

时间:2018-05-18 11:00:29

标签: java winapi jna windows-restart-manager

我正在尝试在我的Java程序上实现Windows Restart Manager,我到了接收来自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);
}

根据Restart Manager guidelines for Applications

  

重新启动管理器通过发送将lParam参数设置为ENDSESSION_CLOSEAPP(0x1)的WM_QUERYENDSESSION通知来查询GUI应用程序以进行关闭。 [...] GUI应用程序应侦听WM_QUERYENDSESSION消息,如果应用程序准备关闭并重新启动,则返回值TRUE。 [...]

当返回值为true时,如何实际返回WinDef.LRESULT?我认为它是一个指针,不知怎的,我需要构造一个Win32布尔值并返回一个指向它的指针?

0 个答案:

没有答案