共用方式為


新增接收器到寫入器

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 源讀取器匯流寫入器已取代它。 來源讀取器接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新的程式碼盡可能使用 Source ReaderSink Writer,而不是 Windows Media Format 11 SDK。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

寫入器的接收端是與寫入器分開的物件,必須加入到寫入器才能使用。 如果您要寫入檔案,您可以直接呼叫 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;
}

從“Sink”取得錯誤訊息

IWMWriterAdvanced 介面

與寫入器接收點協作