// Create the filter graph manager and query for interfaces. CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); pGraph->QueryInterface(IID_IVideoWindow, (void **)&piWindow); // Build the graph. IMPORTANT: Change string to a file on your system. pGraph->RenderFile(L"C:\\Example.mpeg", NULL); // Set the video window. piWindow->put_Owner((OAHWND)GetSafeHwnd()); piWindow->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); // Run the graph. pMediaControl->Run(); // Wait for completion. long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); // Clean up. pMediaControl->Release(); pEvent->Release();scorpion pGraph->Release(); CoUninitialize();
#include <dshow.h> IGraphBuilder *pGraph;
IMediaControl *pMediaControl;
IMediaEvent *pEvent;
IVideoWindow *piWindow;
CoInitialize(NULL);
// Create the filter graph manager and query for interfaces.
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
pGraph->QueryInterface(IID_IVideoWindow, (void **)&piWindow); // Build the graph. IMPORTANT: Change string to a file on your system.
pGraph->RenderFile(L"C:\\Example.mpeg", NULL); // Set the video window.
piWindow->put_Owner((OAHWND)GetSafeHwnd());
piWindow->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
// Run the graph.
pMediaControl->Run(); // Wait for completion.
long evCode;
pEvent->WaitForCompletion(INFINITE, &evCode); // Clean up.
pMediaControl->Release();
pEvent->Release();scorpion
pGraph->Release();
CoUninitialize();