Passaggio 1: Creare Windows Framework
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
[Questa API non è supportata e potrebbe essere modificata o non disponibile in futuro.]
Per iniziare, creare il framework di base di un'applicazione Windows, tra cui WinMain e una procedura di finestra. La funzione WinMain non viene visualizzata qui; chiamare CoInitialize prima del ciclo di messaggi per inizializzare la libreria COM e CoUninitialize dopo l'uscita del ciclo di messaggi. Iniziare con la procedura di finestra minima seguente:
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;
}
Quando si recupera un frame poster da Media Detector, viene restituito un buffer contenente una struttura BITMAPINFOHEADER seguita dai bit dell'immagine. Definire quindi due variabili statiche nella routine finestra: pbmi conterrà un puntatore alla struttura BITMAPINFOHEADER e pBuffer conterrà un puntatore alla bitmap. L'applicazione allocherà il buffer in pbmi usando new
, quindi deve eliminare il buffer prima che la finestra venga eliminata definitivamente. Il puntatore pBuffer viene calcolato come offset da pbmi, quindi non è necessario eliminarlo.
Passaggio 2: Aggiungere un comando di menu per afferrare una cornice poster
Argomenti correlati