int _tmain(int argc, _TCHAR* argv[])
{
IGraphBuilder *pGraph = NULL;
IMediaControl *pControl = NULL;
IMediaEvent *pEvent = NULL;
// Initialize the COM library.
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
printf("ERROR - Could not initialize COM library");
return -1;
}
// Create the filter graph manager and query for interfaces.
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
if (FAILED(hr))
{
printf("ERROR - Could not create the Filter Graph Manager.");
return -1;
}
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"\\1.mp3", NULL);
//hr = pGraph->RenderFile(L"\\bell.wav", NULL);
hr = pGraph->RenderFile(L"\\a001.mid", 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
// can block indefinitely.
}
}
pControl->Release();
pEvent->Release();
pGraph->Release();
CoUninitialize();
}
The problem is:
it can play only wave file not midi or mp3 files, what's strange is that
this code can work well on pc and also DirectShow support all of these media
type,right?
some body could tell me why?
thanks
--
Alex Feinman
---
Visit http://www.opennetcf.org
"PengTao" <Pen...@discussions.microsoft.com> wrote in message
news:BA978A49-661A-4EA3...@microsoft.com...