Hinzufügen von Senken zum Writer
Writer-Senken sind separate Objekte vom Writer und müssen dem Writer hinzugefügt werden, um verwendet zu werden. Wenn Sie in eine Datei schreiben, können Sie einfach IWMWriter::SetOutputFilename aufrufen, wodurch die Dateisenke automatisch eingerichtet wird. Rufen Sie andernfalls die IWMWriterAdvanced::AddSink-Methode auf, um dem Writer eine Senke hinzuzufügen. AddSink erfordert einen Zeiger auf die IWMWriterSink-Schnittstelle der Senke.
Wenn Sie mit der Verwendung einer Senke fertig sind, sollten Sie sie schließen, indem Sie je nach Senketyp die entsprechende Methode aufrufen und sie dann aus dem Writer entfernen, indem Sie IWMWriterAdvanced::RemoveSink aufrufen.
Der folgende Beispielcode zeigt, wie Sie eine Writer-Dateisenke erstellen und sie dem Writer hinzufügen. Weitere Informationen zur Verwendung dieses Codes finden Sie unter Verwenden der Codebeispiele.
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;
}
Zugehörige Themen