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;
}
Temas relacionados