LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { if (ImGui_ImplDX10_WndProcHandler(hWnd, msg, wParam, lParam)) return true; switch (msg) { case WM_SIZE: if (g_pd3dDevice != NULL && wParam != SIZE_MINIMIZED) { ImGui_ImplDX10_InvalidateDeviceObjects(); CleanupRenderTarget(); g_pSwapChain->ResizeBuffers(0, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam), DXGI_FORMAT_UNKNOWN, 0); CreateRenderTarget(); ImGui_ImplDX10_CreateDeviceObjects(); } return 0; case WM_SYSCOMMAND: if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu return 0; break; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wParam, lParam); }
LRESULT WINAPI DetourDefWindowProc( _In_ HWND hWnd, _In_ UINT Msg, _In_ WPARAM wParam, _In_ LPARAM lParam ) { static boost::once_flag flag = BOOST_ONCE_INIT; boost::call_once(flag, boost::bind(&logOnce, "++ USER32!DefWindowProc called")); if (!g_hWnd) { g_hWnd = hWnd; } ImGui_ImplDX9_WndProcHandler(hWnd, Msg, wParam, lParam); ImGui_ImplDX10_WndProcHandler(hWnd, Msg, wParam, lParam); ImGui_ImplDX11_WndProcHandler(hWnd, Msg, wParam, lParam); return OriginalDefWindowProc(hWnd, Msg, wParam, lParam); }