The code below is from Microsoft MSDN example for DirectShow:
IGraphBuilder *pGraph = NULL;
IMediaControl *pControl = NULL;
IMediaEvent *pEvent = NULL;
// Initialize the COM library.
HRESULT hr = CoInitialize(NULL);
printf("ERROR - Could not initialize COM library");
// Create the filter graph manager and query for interfaces.
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
printf("ERROR - Could not create the Filter Graph Manager.");
hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
// Build the graph. IMPORTANT: Change this string to a file on your system.
hr = pGraph->RenderFile(L"C:\\Example.avi", NULL);
// Run the graph.
hr = pControl->Run();
// Wait for completion.
// Note: Do not use INFINITE in a real application, because it
// can block indefinitely.
I have install Directx 9.0 SDK, Platform SDK and include the library needed into project setting (Strmiids.lib and Quartz.lib) Link and Directory (Microsoft DirectX 9.0 SDK (December 2004)\Include).
This code is run perfectly when playing video file.
BUT, when i try to add the ICaptureGraphBuilder2 interface to receives the pointer to capture Video:
ICaptureGraphBuilder2 **ppBuild // Receives the pointer
It generate errors about some headers file.
Any1 can help me?
Is there any header file needed, or i do something wrong with the setting?