{
MSG msg;
- while (!IsWindowVisible(m_hwnd))
+ while (!IsWindowVisible(m_hwnd) && IsWindow(m_hwnd))
{
while (::PeekMessage(&msg, m_hwnd, 0, 0, PM_REMOVE))
{
pWindow->WaitForInit();
+ if (!IsWindow(pWindow->Wnd()))
+ {
+ refcount = pWindow->AddRef();
+ while (refcount)
+ refcount = pWindow->Release();
+
+ return E_FAIL;
+ }
+
_SEH2_TRY
{
hr = pWindow->QueryInterface(IID_IUnknown, pUnknown);