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 |
---|---|
|
메서드가 성공했습니다. |
|
하나 이상의 출력 노드에 IMFActivate 포인터가 포함되어 있습니다. 호출자는 출력 노드를 미디어 싱크에 바인딩해야 합니다. 출력 노드를 미디어 싱크에 바인딩을 참조하세요. |
설명
이 메서드는 토폴로지를 완료하는 데 필요한 중간 변환을 만듭니다. 또한 토폴로지의 모든 개체에 대한 입력 및 출력 미디어 형식을 설정합니다. 메서드가 성공하면 전체 토폴로지는 ppOutputTopo 매개 변수에 반환됩니다.
pCurrentTopo 매개 변수를 사용하여 이전에 로드된 전체 토폴로지를 제공할 수 있습니다. 이 토폴로지에서 새 토폴로지에서 필요한 개체를 포함하는 경우 토폴로지 로더는 다시 만들지 않고 다시 사용할 수 있습니다. 이 캐싱은 잠재적으로 프로세스를 더 빠르게 만들 수 있습니다. pCurrentTopo의 개체는 다시 구성되지 않으므로 데이터를 적극적으로 스트리밍하는 토폴로지를 지정할 수 있습니다. 예를 들어 토폴로지를 계속 실행하는 동안 다음 토폴로지를 미리 로드할 수 있습니다.
이 메서드를 호출하기 전에 부분 토폴로지의 출력 노드에 IMFActivate 포인터가 아닌 유효한 IMFStreamSink 포인터가 있는지 확인해야 합니다. 미디어 세션은 IMFMediaSession::SetTopology 메서드 내에서 이 작업을 자동으로 수행합니다. 그러나 SetTopology를 호출하기 전에 Load를 호출하는 경우 출력 노드를 수동으로 바인딩해야 합니다. 자세한 내용은 미디어 싱크에 출력 노드 바인딩을 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | mfidl.h |
라이브러리 | Mfuuid.lib |