/* virtual */ signed application::message_loop() { TRACE("win::application::message_loop"); bool done(false); MSG msg = { 0 }; while (!done && (!use_window_manager_count_ || win::window::manager::count())) { message_wait(); if (::PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { ::TranslateMessage(&msg); ::DispatchMessage (&msg); if (WM_QUIT == msg.message) { if (99 <= verbose_level_) { std::cout << support::trace::prefix() << "win::application::message_loop: " << "received WM_QUIT" << std::endl; } done = true; } if ((WM_APP == msg.message) && (WM_QUIT == msg.lParam)) { if (99 <= verbose_level_) { std::cout << support::trace::prefix() << "win::application::message_loop: " << "received WM_APP/WM_QUIT, sending WM_QUIT" << std::endl; } ::PostQuitMessage(signed(msg.wParam)); } } } return signed(msg.wParam); }
Error usi_wait_message(USIMessage *message) { return message_wait(&(message->message)); }