다음을 통해 공유


작성기에 싱크 추가

[Windows Media Format 11 SDK 이 페이지와 연결된 기능은 레거시 기능입니다. 소스 리더싱크 라이터로 대체되었습니다. 원본 판독기싱크 기록기 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 원본 판독기싱크 기록기 사용하는 것이 좋습니다. 가능한 경우 레거시 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;
}

수신기에서 오류 메시지 가져오기

IWMWriterAdvanced 인터페이스

기록기를 사용한 싱크 작업