Compartir a través de


Agregar receptores al escritor

Los receptores de escritor son objetos independientes del escritor y se deben agregar al escritor que se va a usar. Si está escribiendo en un archivo, simplemente puede llamar a IWMWriter::SetOutputFilename, que configurará el receptor de archivos automáticamente. De lo contrario, para agregar un receptor al escritor, llame al método IWMWriterAdvanced::AddSink . AddSink requiere un puntero a la interfaz IWMWriterSink del receptor.

Cuando haya terminado de usar un receptor, debe cerrarlo llamando al método adecuado, según el tipo de receptor y, a continuación, quítelo del escritor llamando a IWMWriterAdvanced::RemoveSink.

En el código de ejemplo siguiente se muestra cómo crear un receptor de archivos de escritor y agregarlo al escritor. Para obtener más información sobre el uso de este código, vea Usar los ejemplos de código.

HRESULT AddFileSink(IWMWriterFileSink** ppFileSink, IWMWriter* pWriter)
{
    HRESULT hr = S_OK;
    IWMWriterSink*     pSinkBase       = NULL;
    IWMWriterAdvanced* pWriterAdvanced = NULL;

    hr = CreateWriterFileSink(ppFileSink);
    GOTO_EXIT_IF_FAILED(hr);

    hr = *ppFileSink->QueryInterface(IID_IWMWriterSink, 
                                     (void**) &pSinkBase);
    GOTO_EXIT_IF_FAILED(hr);

    hr = pWriter->QueryInterface(IID_IWMWriterAdvanced,
                                 (void**) &pWriterAdvanced);
    GOTO_EXIT_IF_FAILED(hr);

    hr = pWriterAdvanced->AddSink(pSinkBase);
    GOTO_EXIT_IF_FAILED(hr);

Exit:
    SAFE_RELEASE(pSinkBase);
    SAFE_RELEASE(pWriterAdvanced);
    return hr;
}

Obtención de mensajes de error de un receptor

IWMWriterAdvanced (Interfaz)

Trabajar con receptores de escritor