Adicionando coletores ao gravador
Coletores de gravador são objetos separados do gravador e devem ser adicionados ao gravador a ser usado. Se você estiver gravando em um arquivo, basta chamar IWMWriter::SetOutputFilename, que configurará o coletor de arquivos automaticamente. Caso contrário, para adicionar um coletor ao gravador, chame o método IWMWriterAdvanced::AddSink . AddSink requer um ponteiro para a interface IWMWriterSink do coletor.
Quando terminar de usar um coletor, feche-o chamando o método apropriado, dependendo do tipo de coletor e, em seguida, remova-o do gravador chamando IWMWriterAdvanced::RemoveSink.
O código de exemplo a seguir mostra como criar um coletor de arquivos de gravador e adicioná-lo ao gravador. Para obter mais informações sobre como usar esse código, consulte Usando os exemplos 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;
}
Tópicos relacionados