Добавление приемников в модуль записи
Приемники модуля записи являются отдельными объектами модуля записи и должны быть добавлены в модуль записи для использования. При записи в файл можно просто вызвать IWMWriter::SetOutputFilename, который автоматически настроит приемник файла. В противном случае, чтобы добавить приемник в модуль записи, вызовите метод IWMWriterAdvanced::AddSink . Для AddSink требуется указатель на интерфейс IWMWriterSink приемника.
Завершив использование приемника, необходимо закрыть его, вызвав соответствующий метод в зависимости от типа приемника, а затем удалить его из модуля записи, вызвав IWMWriterAdvanced::RemoveSink.
В следующем примере кода показано, как создать приемник файла записи и добавить его в модуль записи. Дополнительные сведения об использовании этого кода см. в разделе Использование примеров кода.
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;
}
Связанные темы