Microsoft DirectX 8.1 (C++) |
The Backout method undoes steps taken in Render. This includes disconnecting and removing any filters that were added inside Render.
Syntax
HRESULT Backout(
IPin *ppinOut,
IGraphBuilder *pGraph
)
Parameters
ppinOut
[in] Pointer to this pin's IPin interface.
pGraph
[in] Pointer to the filter graph manager's IGraphBuilder interface.
Return Value
Returns an HRESULT value. A return code of S_OK indicates to the graph builder that the disconnect was successful.
Remarks
The following code illustrates how to implement this method on an output pin:
STDMETHODIMP CMyOutputPin::BackOut(IPin *pOutputPin, IGraphBuilder *pBuilder)
{
HRESULT hr = S_OK;
if (m_Connected != NULL) {
FILTER_INFO fi;
// Find the filter pointer for the pin connected to my pin.
hr = m_Connected->QueryFilterInfo(&fi);
if (SUCCEEDED(hr)) {
if (fi.pFilter != NULL) {
// Disconnect.
pBuilder->Disconnect(m_Connected);
pBuilder->Disconnect(pOutputPin);
// Remove the filter we added from the graph.
pBuilder->RemoveFilter(fi.pFilter);
fi.pFilter->Release();
} else {
hr = E_UNEXPECTED;
}
}
}
return hr;
}
See Also