1

我正在尝试在我的 Java 程序上实现 Windows重新启动管理器,然后我收到了来自 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);
}

根据应用程序的重新启动管理器指南

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

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

4

0 回答 0