Step 1: Create the Windows Framework
Microsoft DirectShow 9.0 |
Step 1: Create the Windows Framework
Start by creating the basic framework of a Windows application, including WinMain and a window procedure. The WinMain function is not shown here; call CoInitialize before the message loop to initialize the COM library, and CoUninitialize after the message loop exits. Start with the following minimal window procedure:
LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { static BITMAPINFOHEADER *pbmi = NULL; static BYTE *pBuffer = NULL; switch (msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: if (pbmi) delete [] pbmi; PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wparam, lparam); } return 0; }
When you retrieve a poster frame from the Media Detector, it returns a buffer that contains a BITMAPINFOHEADER structure followed by the image bits. Therefore, define two static variables in the window procedure: pbmi will hold a pointer to the BITMAPINFOHEADER structure, and pBuffer will hold a pointer to the bitmap. The application will allocate the buffer in pbmi using new
, so it must delete the buffer before the window is destroyed. The pBuffer pointer is calculated as an offset from pbmi, so there is no need to delete it.