LRESULT CALLBACK WndMainProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_GRAPHNOTIFY: HandleGraphEvent(); break; case WM_SIZE: ResizeVideoWindow(); break; case WM_WINDOWPOSCHANGED: ChangePreviewState(! (IsIconic(hwnd))); break; case WM_CLOSE: // Hide the main window while the graph is destroyed ShowWindow(ghApp, SW_HIDE); CloseInterfaces(); // Stop capturing and release interfaces break; case WM_DESTROY: PostQuitMessage(0); return 0; } // Pass this message to the video window for notification of system changes if (g_pVW) g_pVW->NotifyOwnerMessage((LONG_PTR) hwnd, message, wParam, lParam); return DefWindowProc (hwnd , message, wParam, lParam); }
HRESULT CAccessSys::SetupVideoWindow(HWND h) { HRESULT hr; // Set the video window to be a child of the main window hr = p_video_window->put_Owner((OAHWND)h); if (FAILED(hr)) return hr; hr = p_video_window->put_MessageDrain((OAHWND)h); if (FAILED(hr)) return hr; // Set video window style hr = p_video_window->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN); if (FAILED(hr)) return hr; // Use helper function to position video window in client rect // of main application window ResizeVideoWindow(h); // Make the video window visible, now that it is properly positioned hr = p_video_window->put_Visible(OATRUE); if (FAILED(hr)) return hr; return hr; }
HRESULT SetupVideoWindow(void) { HRESULT hr; // Set the video window to be a child of the main window hr = g_pVW->put_Owner((OAHWND)ghApp); if (FAILED(hr)) return hr; // Set video window style hr = g_pVW->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN); if (FAILED(hr)) return hr; // Use helper function to position video window in client rect // of main application window ResizeVideoWindow(); // Make the video window visible, now that it is properly positioned hr = g_pVW->put_Visible(OATRUE); if (FAILED(hr)) return hr; return hr; }
HRESULT CCaptureVideo::SetupVideoWindow() { HRESULT hr; hr = m_pVW->put_Owner((OAHWND)m_hWnd); if (FAILED(hr))return hr; hr = m_pVW->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN); if (FAILED(hr))return hr; ResizeVideoWindow(); hr = m_pVW->put_Visible(OATRUE); return hr; }