static LRESULT WINAPI MessageRouter(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if (message == WM_CREATE) { SetWindowLong(hWnd, 0, (LONG)lParam); } else { Impl* pThis = (Impl*)GetWindowLong(hWnd, 0); if (pThis != nullptr) { return pThis->WndProc(hWnd,message,wParam,lParam); } } return DefWindowProc(hWnd, message, wParam, lParam); }