Paso 1: Crear Windows Framework
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
[Esta API no se admite y puede modificarse o no estar disponible en el futuro].
Empiece por crear el marco básico de una aplicación de Windows, incluido WinMain y un procedimiento de ventana. La función WinMain no se muestra aquí; llame a CoInitialize antes del bucle de mensajes para inicializar la biblioteca COM y CoUninitialize después de que se cierre el bucle de mensajes. Comience con el siguiente procedimiento de ventana mínima:
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;
}
Al recuperar un marco de póster de Media Detector, devuelve un búfer que contiene una estructura BITMAPINFOHEADER seguida de los bits de imagen. Por lo tanto, defina dos variables estáticas en el procedimiento de ventana: pbmi contendrá un puntero a la estructura BITMAPINFOHEADER y pBuffer contendrá un puntero al mapa de bits. La aplicación asignará el búfer en pbmi mediante new
, por lo que debe eliminar el búfer antes de que se destruya la ventana. El puntero pBuffer se calcula como un desplazamiento de pbmi, por lo que no es necesario eliminarlo.
Siguiente: Paso 2: Agregar un comando de menú para agarrar un marco de póster
Temas relacionados