IStreamBuilder::Render method

The Render method completes rendering of the stream originating with this pin. This can involve adding filters to the filter graph and connecting them.

Syntax

HRESULT Render(
  IPin          *ppinOut,
  IGraphBuilder *pGraph
);

Parameters

ppinOut

Pointer to the IPin interface of this pin.

pGraph

Pointer to the IGraphBuilder interface of the Filter Graph Manager.

Return value

Returns an HRESULT value. A return code of S_OK indicates that the stream was successfully rendered.

Remarks

The following code illustrates how to implement this method on an output pin. This example assumes that the filter requires a custom renderer downstream from it.

C++
STDMETHODIMP CMyOutputPin::Render(IPin *pPin, IGraphBuilder *pGraph)
{
    CheckPointer(pPin, E_POINTER);
    CheckPointer(pGraph, E_POINTER);
// This filter needs a special renderer connected to it.
IBaseFilter *pMyRenderer = NULL;

// Create the renderer.
HRESULT hr = CoCreateInstance(CLSID_MyRenderer, NULL, CLSCTX_INPROC,
    IID_IBaseFilter, (void **)&pMyRenderer);
if (FAILED(hr))
{
    return hr;
}

// Add my renderer to the filter graph.
hr = pGraph->AddFilter(pMyRenderer, L"My Renderer");
if (FAILED(hr))
{
    pMyRenderer->Release();
    return hr;
}

IEnumPins *pEnumPins;
IPin *pMyRendererInputPin = NULL;
hr = pMyRenderer->EnumPins(&pEnumPins);
if (SUCCEEDED(hr)) 
{
    if (S_OK != pEnumPins->Next(1, &pMyRendererInputPin, 0))
    {
        hr = E_UNEXPECTED;
     }
}
if (SUCCEEDED(hr)) 
{
    // Connect my renderer to my output pin.
    hr = pGraph->ConnectDirect(pPin, pMyRendererInputPin);
    pMyRendererInputPin->Release();
}
if (FAILED(hr)) 
{
    // Could not connect to my renderer. Remove it from the graph.
    pGraph->RemoveFilter(pMyRenderer);
}
pMyRenderer->Release();
return hr;

}

Requirements

   
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header strmif.h (include Dshow.h)
Library Strmiids.lib

See also

Error and Success Codes

IStreamBuilder Interface