Microsoft DirectX 8.1 (C++)

IStreamBuilder::Backout

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