Sinks toevoegen aan de schrijver
[De functie die is gekoppeld aan deze pagina, Windows Media Format 11 SDK, is een verouderde functie. Het is vervangen door Source Reader en Sink Writer. Bronlezer en Sink Writer zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken bronlezer en Sink Writer- in plaats van Windows Media Format 11 SDK, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]
Schrijfsinks zijn aparte objecten van de schrijver en moeten aan de schrijver worden toegevoegd om gebruikt te kunnen worden. Als u naar een bestand schrijft, kunt u gewoon IWMWriter::SetOutputFilenameaanroepen, waardoor de bestandssink automatisch wordt ingesteld. Overigens, om een sink toe te voegen aan de schrijver, roept u de methode IWMWriterAdvanced::AddSink aan. AddSink- vereist een aanwijzer naar de IWMWriterSink interface van de sink.
Wanneer u klaar bent met het gebruik van een sink, moet u deze sluiten door de juiste methode aan te roepen, afhankelijk van het type sink, en deze vervolgens uit de schrijver te verwijderen door IWMWriterAdvanced::RemoveSinkaan te roepen.
In de volgende voorbeeldcode ziet u hoe u een schrijfbestandssink maakt en deze toevoegt aan de schrijver. Zie De codevoorbeelden gebruikenvoor meer informatie over het gebruik van deze code.
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;
}
Verwante onderwerpen