DirectShow DirectShow 튜토리얼 포스터 프레임의 포착 순서 1: Windows 프레임워크(framework)를 생성 한다   [목차열람] [주소복사] [슬롯비우기]
순서 1: Windows 프레임워크(framework)를 생성 한다
 
Microsoft DirectX 9.0

순서 1: Windows 프레임워크(framework)를 생성 한다

최초로, WinMain 및 윈도우 프로시저를 포함한, Windows 애플리케이션의 기본적인 프레임워크(framework)를 생성 한다. WinMain 함수는 여기에서는 설명하지 않는다. 메시지 루프의 전에 CoInitialize 를 호출해 COM 라이브러리를 초기화해, 메시지 루프의 종료후에 CoUninitialize 를 호출한다. 이하의 최소한의 윈도우 프로시저로부터 시작 한다.

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;
}

미디어 detector로부터 포스터 프레임을 얻어온다와BITMAPINFOHEADER 구조체와 그 후에 계속되는 이미지 비트를 포함한 버퍼가 반환된다. 따라서, 윈도우 프로시저에서는 다음의 2 개의 정적 변수를 정의한다. pbmiBITMAPINFOHEADER 구조체의 포인터를 보관 유지해,pBuffer 는 비트 맵의 포인터를 보관 유지한다. 애플리케이션은 new 를 사용해 pbmi 로 버퍼를 할당하므로, 윈도우를 파기하기 전에 버퍼를 삭제할 필요가 있다. pBuffer 포인터는 pbmi 로부터의 오프셋(offset)로서 계산되므로, 삭제할 필요는 없다.

↑TOP