다음을 통해 공유


IMFTopoLoader::Load 메서드(mfidl.h)

입력 부분 토폴로지에서 완전히 로드된 토폴로지를 만듭니다.

구문

HRESULT Load(
  [in]  IMFTopology *pInputTopo,
  [out] IMFTopology **ppOutputTopo,
  [in]  IMFTopology *pCurrentTopo
);

매개 변수

[in] pInputTopo

확인할 부분 토폴로지의 IMFTopology 인터페이스에 대한 포인터입니다.

[out] ppOutputTopo

완료된 토폴로지의 IMFTopology 인터페이스에 대한 포인터를 받습니다. 호출자는 인터페이스를 해제해야 합니다.

[in] pCurrentTopo

이전 전체 토폴로지의 IMFTopology 인터페이스에 대한 포인터입니다. 토폴로지 로더는 새 토폴로지에서 이 토폴로지의 개체를 다시 사용할 수 있습니다. 이 매개 변수는 NULL일 수 있습니다. 설명 부분을 참조하세요.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED
하나 이상의 출력 노드에 IMFActivate 포인터가 포함되어 있습니다. 호출자는 출력 노드를 미디어 싱크에 바인딩해야 합니다. 출력 노드를 미디어 싱크에 바인딩을 참조하세요.

설명

이 메서드는 토폴로지를 완료하는 데 필요한 중간 변환을 만듭니다. 또한 토폴로지의 모든 개체에 대한 입력 및 출력 미디어 형식을 설정합니다. 메서드가 성공하면 전체 토폴로지는 ppOutputTopo 매개 변수에 반환됩니다.

pCurrentTopo 매개 변수를 사용하여 이전에 로드된 전체 토폴로지를 제공할 수 있습니다. 이 토폴로지에서 새 토폴로지에서 필요한 개체를 포함하는 경우 토폴로지 로더는 다시 만들지 않고 다시 사용할 수 있습니다. 이 캐싱은 잠재적으로 프로세스를 더 빠르게 만들 수 있습니다. pCurrentTopo의 개체는 다시 구성되지 않으므로 데이터를 적극적으로 스트리밍하는 토폴로지를 지정할 수 있습니다. 예를 들어 토폴로지를 계속 실행하는 동안 다음 토폴로지를 미리 로드할 수 있습니다.

이 메서드를 호출하기 전에 부분 토폴로지의 출력 노드에 IMFActivate 포인터가 아닌 유효한 IMFStreamSink 포인터가 있는지 확인해야 합니다. 미디어 세션은 IMFMediaSession::SetTopology 메서드 내에서 이 작업을 자동으로 수행합니다. 그러나 SetTopology를 호출하기 전에 Load를 호출하는 경우 출력 노드를 수동으로 바인딩해야 합니다. 자세한 내용은 미디어 싱크에 출력 노드 바인딩을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 mfidl.h
라이브러리 Mfuuid.lib

참고 항목

고급 토폴로지 빌드

IMFTopoLoader

토폴로지