Share via


Media Foundation 이벤트 모델 사용

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 기록기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

Windows Media DRM 클라이언트 확장 API에서 지원하는 비동기 메서드는 Media Foundation SDK에서 사용하는 것과 동일한 이벤트 모델을 사용합니다. 비동기 메서드를 지원하는 각 개체는 비동기 작업이 완료될 때 이벤트를 검색하는 데 사용할 수 있는 IWMDRMEventGenerator 인터페이스를 구현합니다.

IWMDRMEventGenerator 인터페이스는 MEDIA Foundation SDK 설명서에 설명된 IMFMediaEventGenerator 인터페이스에서 상속됩니다.

DRM 개별화 예제의 예제 코드는 IMFMediaEventGenerator::GetEvent 메서드를 사용하여 큐에서 이벤트를 한 번에 하나씩 검색합니다. GetEvent를 사용하는 것은 콜백과 함께 IMFMediaEventGenerator::BeginGetEventIMFMediaEventGenerator::EndGetEvent를 사용하는 것보다 더 간단하므로 코드 예제를 더 쉽게 이해할 수 있습니다. 코드에서 GetEvent 를 사용하든 , IMFAsyncCallback 을 구현하든 BeginGetEventEndGetEvent를 사용하든 간에 이벤트를 받은 후 처리하는 논리는 동일합니다.

비동기 메서드 중 일부는 더 자세한 상태 정보를 가져오는 데 사용할 수 있는 개체에 대한 참조가 포함된 이벤트를 생성합니다. 이러한 경우 생성된 이벤트에는 IUnknown 포인터가 해당 값으로 포함되며, 이 포인터를 쿼리하여 상태 인터페이스를 검색할 수 있습니다. 다음 목록에는 비동기 호출, 생성된 이벤트 및 기타 인터페이스 간의 관계가 요약되어 있습니다.

DRM 개별화 예제

시작

Media Foundation SDK 설명서