Dela via


Lägga till sänkor i skrivaren

[Funktionen som är associerad med den här sidan, Windows Media Format 11 SDK, är en äldre funktion. Det har ersatts av Source Reader och Sink Writer. Source Reader och Sink Writer har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder Source Reader och Sink Writer i stället för Windows Media Format 11 SDK, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]

Skrivarsänkor är separata objekt från skrivarenheten och måste läggas till i skrivarenheten för att kunna användas. Om du skriver till en fil kan du helt enkelt anropa IWMWriter::SetOutputFilename, vilket automatiskt konfigurerar fil-sinken. I annat fall, om du vill lägga till en sink till skrivaren, anropar du metoden IWMWriterAdvanced::AddSink. AddSink kräver en pekare till IWMWriterSink gränssnittet för sinken.

När du är klar med att använda en sink bör du stänga den genom att anropa lämplig metod, beroende på typen av sink, och sedan ta bort den från skrivaren genom att anropa IWMWriterAdvanced::RemoveSink.

Följande exempelkod visar hur du skapar en filsänka för skrivarobjektet och lägger till den till författaren. Mer information om hur du använder den här koden finns i Använda kodexemplen.

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;
}

Få felmeddelanden från en datasink

IWMWriterAdvanced Interface

Arbeta med skrivarmottagare