次の方法で共有


ライターへのシンクの追加

ライター シンクはライターとは別のオブジェクトであり、使用するライターに追加する必要があります。 ファイルに書き込む場合は、 IWMWriter::SetOutputFilename を呼び出すだけで、ファイル シンクが自動的に設定されます。 それ以外の場合は、ライターにシンクを追加するには、 IWMWriterAdvanced::AddSink メソッドを 呼び出します。 AddSink には、シンクの IWMWriterSink インターフェイスへのポインターが必要です。

シンクの使用が完了したら、シンクの種類に応じて適切なメソッドを呼び出してシンクを閉じ、 IWMWriterAdvanced::RemoveSink を呼び出してライターから削除する必要があります。

次のコード例は、ライター ファイル シンクを作成してライターに追加する方法を示しています。 このコードの使用方法の詳細については、「コード 例の使用」を参照してください。

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

シンクからのエラー メッセージの取得

IWMWriterAdvanced インターフェイス

ライター シンクの操作