#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #include namespace XCEngine::UI::Editor { namespace App { class EditorWindow; } } namespace XCEngine::UI::Editor::Host { class WindowMessageHost; struct WindowMessageDispatchContext { HWND hwnd = nullptr; WindowMessageHost& windowHost; App::EditorWindow& window; }; void RenderAndValidateWindow(const WindowMessageDispatchContext& context); bool TryDispatchWindowChromeMessage( const WindowMessageDispatchContext& context, UINT message, WPARAM wParam, LPARAM lParam, LRESULT& outResult); bool TryDispatchWindowLifecycleMessage( const WindowMessageDispatchContext& context, UINT message, WPARAM wParam, LPARAM lParam, LRESULT& outResult); bool TryDispatchWindowInputMessage( const WindowMessageDispatchContext& context, UINT message, WPARAM wParam, LPARAM lParam, LRESULT& outResult); bool TryDispatchWindowPointerMessage( const WindowMessageDispatchContext& context, UINT message, WPARAM wParam, LPARAM lParam, LRESULT& outResult); } // namespace XCEngine::UI::Editor::Host