Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
The following function is a helper function in an example program that is discussed in Generating a Table of Contents Automatically.
HRESULT BuildGraph(IGraphBuilder* pGraph, IDMOWrapperFilter* pWrap)
{
IBaseFilter* pTocGeneratorBase = NULL;
HRESULT hr = pWrap->QueryInterface(IID_IBaseFilter, (VOID**)&pTocGeneratorBase);
if(SUCCEEDED(hr))
{
hr = pGraph->AddFilter(pTocGeneratorBase, L"TOC Generator");
if(SUCCEEDED(hr))
{
IBaseFilter* pSourceBase = NULL;
hr = pGraph->AddSourceFilter(g_sourceFile, L"Source", &pSourceBase);
if(SUCCEEDED(hr))
{
IEnumPins* pTocGenPins = NULL;
hr = pTocGeneratorBase->EnumPins(&pTocGenPins);
if(SUCCEEDED(hr))
{
ULONG numPins = 0;
IPin* pTocGenInput = NULL; // 1st pin is input.
hr = pTocGenPins->Next(1, &pTocGenInput, &numPins);
if(SUCCEEDED(hr))
{
numPins = 0;
IPin* pTocGenOutput = NULL; // 2nd pin is output.
hr = pTocGenPins->Next(1, &pTocGenOutput, &numPins);
if(SUCCEEDED(hr))
{
IEnumPins* pSourcePins = NULL;
hr = pSourceBase->EnumPins(&pSourcePins);
if(SUCCEEDED(hr))
{
numPins = 0;
IPin* pSourceInput = NULL;
hr = pSourcePins->Next(1, &pSourceInput, &numPins);
// We don't need the first pin, so discard it.
if(NULL != pSourceInput)
{
pSourceInput->Release();
pSourceInput = NULL;
}
IPin* pSourceOutput = NULL; // 2nd pin is output.
hr = pSourcePins->Next(1, &pSourceOutput, &numPins);
if(SUCCEEDED(hr))
{
hr = pGraph->Connect(pSourceOutput, pTocGenInput);
if(SUCCEEDED(hr))
{
hr = pGraph->Render(pTocGenOutput);
}
pSourceOutput->Release();
pSourceOutput = NULL;
}
pSourcePins->Release();
pSourcePins = NULL;
}
pTocGenOutput->Release();
pTocGenOutput = NULL;
}
pTocGenInput->Release();
pTocGenInput = NULL;
}
pTocGenPins->Release();
pTocGenPins = NULL;
}
pSourceBase->Release();
pSourceBase = NULL;
}
}
pTocGeneratorBase->Release();
pTocGeneratorBase = NULL;
}
return hr;
}
See Also
Generating a Table of Contents Automatically
Send comments about this topic to Microsoft
Build date: 4/7/2010