DirectShow – NULL Rendering Example

DirectShow를 이용하여 간단히 컨텐츠를 재생하는 프로그램 소스다.

이것만 이해하면 DirectShow의 절반은 이해 한 셈이다.

#include <dshow.h>

#pragma comment(lib, "strmiids.lib")
// #pragma comment(lib, "quartz.lib")  // usually not required if not using AMGetErrorText function

void main(void)
// Initialize the COM Library
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
   AfxMessageBox( "ERROR - Could not initialize COM library");

// Create the filter graph manager and query for interfaces.
IGraphBuilder *pGraph = NULL;
hr = CoCreateInstance( CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph);

if (FAILED(hr))
   AfxMessageBox( "ERROR - Could not create the Filter Graph Manager.");

IMediaControl *pControl = NULL;
IMediaEvent *pEvent = NULL;
hr = pGraph->QueryInterface( IID_IMediaControl, (void **)&pControl);
hr = pGraph->QueryInterface( IID_IMediaEvent, (void **)&pEvent);

// Build the graph.
hr = pGraph->RenderFile( L"D:RESMP3POPPet Shop BoysPet Shop Boys - I wouldn't normally do this kind of thing.mp3", NULL);
if (SUCCEEDED(hr))
   // Run the graph.
   hr = pControl->Run();
   if (SUCCEEDED(hr))
     // Wait for completion.
     long evCode;
     pEvent->WaitForCompletion( INFINITE, &evCode);

     // Note: Do not use INFINITE in a real application, because it an block indefinitely.



facebook posting twit

  • Toolbar에서 Icon 없애기
  • 웹브라우져가 떠서 웹페이지 보이게 하는 소스
  • ActiveX에 다이얼로그 붙이기
  • 드라이브 문자 알아내는 소스
  • 모달리스 다이얼로그의 종료 버튼을 클릭했을 때 종료가 안될때…
  • Broadcast를 이용한 Application 종료
  • IE Control을 사용하여 만든 어플리케이션에서 javascript로 어플리케이션에 정의된 함수 호출하는 방법
  • 윈도우 옮기는 API – SetWindowPos
  • CFileDialog – File Open Example
  • 투명 윈도우 만들기
  • Leave a Reply