Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
[Funktionen som är associerad med den här sidan, DirectShow, är en äldre funktion. Det har ersatts av MediaPlayer, IMFMediaEngineoch Audio / Video Capture i Media Foundation. Dessa funktioner har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder MediaPlayer, IMFMediaEngine och Audio/Video Capture i Media Foundation i stället för DirectShow, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]
[Det här API:et stöds inte och kan ändras eller vara otillgängligt i framtiden.]
Börja med att skapa det grundläggande ramverket för ett Windows-program, inklusive WinMain och en fönsterprocedur. Funktionen WinMain visas inte här. anropa CoInitialize innan meddelandeloopen för att initiera COM-biblioteket och CoUninitialize när meddelandeloopen har avslutats. Börja med följande minimala fönsterprocedur:
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;
}
När du hämtar en stillbild från mediedetektorn returneras en buffert som innehåller en BITMAPINFOHEADER-struktur följt av bilddata. Definiera därför två statiska variabler i fönsterproceduren: pbmi håller en pekare mot BITMAPINFOHEADER struktur, och pBuffer kommer att hålla en pekare till bitmappen. Programmet allokerar bufferten i pbmi- med hjälp av new, så den måste ta bort bufferten innan fönstret förstörs. Pekaren pBuffer beräknas som en förskjutning från pbmi-, så du behöver inte ta bort den.
Nästa: steg 2: Lägg till ett menykommando för att hämta en affischram
Relaterade ämnen