將接收新增至寫入器
寫入器接收是與寫入器不同的物件,而且必須新增至要使用的寫入器。 如果您要寫入檔案,您可以直接呼叫 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;
}
相關主題