Delen via


Aangepaste sinks gebruiken

[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.]

Als u een speciale schrijfbehoefte hebt, kunt u uw eigen schrijfsinks maken. De schrijver onderhoudt eenrichtingscommunicatie met een sink door aanroepen te doen naar de methoden van IWMWriterSink. Als u uw eigen sink wilt maken, implementeert u de IWMWriterSink interface in een klasse in uw toepassing. Dit proces is vergelijkbaar met het implementeren van een andere callback-interface die wordt gebruikt door de objecten van de Windows Media Format SDK. Voor meer informatie over callbacks, zie De callbackmethoden gebruiken.

De buffer die is ontvangen in IWMWriterSink::OnHeader moet naar het begin van het bestand worden geschreven en alle buffers die zijn ontvangen in OnDataUnit- moeten opeenvolgend worden weggeschreven. OnHeader wordt aangeroepen aan het begin, maar kan ook op andere momenten worden aangeroepen. Als dit het geval is, moet u, indien mogelijk, de oorspronkelijke header overschrijven. Als uw applicatie dit om de een of andere reden niet kan doen, kunt u de daaropvolgende OnHeader-aanroepen simpelweg negeren.

Uw aangepaste sink moet de status doorgeven aan uw schrijftoepassing door aanroepen te doen naar de IWMStatusCallback::OnStatus callback-methode. Als u uw sink implementeert als com-object, kunt u de IWMRegisterCallback- interface beschikbaar maken. U kunt echter het adres van de OnStatus callback doorgeven aan uw sink en een context instellen op elke gewenste manier.

Werken met Writer Sinks