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::BeginGetEvent 및 IMFMediaEventGenerator::EndGetEvent를 사용하는 것보다 더 간단하므로 코드 예제를 더 쉽게 이해할 수 있습니다. 코드에서 GetEvent 를 사용하든 , IMFAsyncCallback 을 구현하든 BeginGetEvent 및 EndGetEvent를 사용하든 간에 이벤트를 받은 후 처리하는 논리는 동일합니다.
비동기 메서드 중 일부는 더 자세한 상태 정보를 가져오는 데 사용할 수 있는 개체에 대한 참조가 포함된 이벤트를 생성합니다. 이러한 경우 생성된 이벤트에는 IUnknown 포인터가 해당 값으로 포함되며, 이 포인터를 쿼리하여 상태 인터페이스를 검색할 수 있습니다. 다음 목록에는 비동기 호출, 생성된 이벤트 및 기타 인터페이스 간의 관계가 요약되어 있습니다.
- IWMDRMLicenseManagement::BackupLicenses 메서드는 연결된 IWMDRMLicenseBackupRestoreStatus 인터페이스를 사용하여 MEWMDRMLicenseBackupProgress 이벤트를 생성합니다.
- IWMDRMLicenseManagement::RestoreLicenses 메서드는 연결된 IWMDRMLicenseBackupRestoreStatus 인터페이스를 사용하여 MEWMDRMLicenseRestoreProgress 이벤트를 생성합니다.
- 개별화를 수행하는 데 사용되는 IWMDRMSecurity::P erformSecurityUpdate 메서드는 연결된 IWMDRMIndividualizationStatus 인터페이스를 사용하여 MEWMDRMIndividualizationProgress 이벤트를 생성합니다.
- IWMDRMLicenseManagement::AcquireLicense 메서드는 비사일 라이선스 취득을 위해 데이터를 준비하는 데 사용되는 경우 연결된 IWMDRMNonSilentLicenseAquisition 인터페이스를 사용하여 MEWMDRMLicenseAcquisitionCompleted 이벤트를 생성합니다.
관련 항목