Condividi tramite


Aggiunta di sink al writer

I sink writer sono oggetti separati dal writer e devono essere aggiunti al writer da usare. Se si scrive in un file, è sufficiente chiamare IWMWriter::SetOutputFilename, che verrà configurato automaticamente il sink di file. In caso contrario, per aggiungere un sink al writer, chiamare il metodo IWMWriterAdvanced::AddSink . AddSink richiede un puntatore all'interfaccia IWMWriterSink del sink.

Al termine dell'uso di un sink, è necessario chiuderlo chiamando il metodo appropriato, a seconda del tipo di sink e quindi rimuoverlo dal writer chiamando IWMWriterAdvanced::RemoveSink.

Il codice di esempio seguente illustra come creare un sink di file writer e aggiungerlo al writer. Per altre informazioni sull'uso di questo codice, vedere Uso degli esempi di codice.

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

Recupero di messaggi di errore da un sink

Interfaccia IWMWriterAdvanced

Uso dei sink writer