[1/3] quartz: Implement better stubs for AMCertifiedOutputProtection

Michael Müller michael at fds-team.de
Sun Nov 10 18:25:58 CST 2013


This series of patches is needed by Silverlight to play some DRM
protected media which needs to determine the output type using the
AMCertifiedOutputProtection interface. The MonitorConfig interface is
needed by Silverlight to probe all connected displays.

Note: the AMCertifiedOutputProtection functions are just stubs since
this interface would require a Microsoft signed driver to work properly,
which is impossible for Wine. Most Silverlight applications will
fallback to the Unknown Output type and play anyway (sadly not all).

---
 dlls/quartz/vmr9.c |    8 ++++----
 include/vfwmsgs.h  |    1 +
 2 files changed, 5 insertions(+), 4 deletions(-)


-------------- next part --------------
From 95de7ce5572ff82805bbee85a2af72d0b221371c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael at fds-team.de>
Date: Sun, 10 Nov 2013 20:44:10 +0100
Subject: quartz: Implement better stubs for AMCertifiedOutputProtection

---
 dlls/quartz/vmr9.c |    8 ++++----
 include/vfwmsgs.h  |    1 +
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c
index 2dc12a6..0acdd26 100644
--- a/dlls/quartz/vmr9.c
+++ b/dlls/quartz/vmr9.c
@@ -1120,7 +1120,7 @@ static HRESULT WINAPI AMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutput
     struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
 
     FIXME("(%p/%p)->(%p, %p, %p) stub\n", iface, This, pRandom, VarLenCertGH, pdwLengthCertGH);
-    return E_NOTIMPL;
+    return VFW_E_NO_COPP_HW;
 }
 
 static HRESULT WINAPI AMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection *iface,
@@ -1129,7 +1129,7 @@ static HRESULT WINAPI AMCertifiedOutputProtection_SessionSequenceStart(IAMCertif
     struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
 
     FIXME("(%p/%p)->(%p) stub\n", iface, This, pSig);
-    return E_NOTIMPL;
+    return VFW_E_NO_COPP_HW;
 }
 
 static HRESULT WINAPI AMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection *iface,
@@ -1138,7 +1138,7 @@ static HRESULT WINAPI AMCertifiedOutputProtection_ProtectionCommand(IAMCertified
     struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
 
     FIXME("(%p/%p)->(%p) stub\n", iface, This, cmd);
-    return E_NOTIMPL;
+    return VFW_E_NO_COPP_HW;
 }
 
 static HRESULT WINAPI AMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection *iface,
@@ -1148,7 +1148,7 @@ static HRESULT WINAPI AMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedO
     struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
 
     FIXME("(%p/%p)->(%p, %p) stub\n", iface, This, pStatusInput, pStatusOutput);
-    return E_NOTIMPL;
+    return VFW_E_NO_COPP_HW;
 }
 
 static const IAMCertifiedOutputProtectionVtbl IAMCertifiedOutputProtection_Vtbl =
diff --git a/include/vfwmsgs.h b/include/vfwmsgs.h
index 16b25c3..660ee40 100644
--- a/include/vfwmsgs.h
+++ b/include/vfwmsgs.h
@@ -156,6 +156,7 @@
 #define VFW_E_VMR_NO_AP_SUPPLIED         ((HRESULT)0x80040297)
 #define VFW_E_VMR_NO_DEINTERLACE_HW      ((HRESULT)0x80040298)
 #define VFW_E_DVD_VMR9_INCOMPATIBLEDEC   ((HRESULT)0x8004029A)
+#define VFW_E_NO_COPP_HW                 ((HRESULT)0x8004029B)
 #define VFW_E_BAD_KEY                    ((HRESULT)0x800403F2)
 
 #ifndef E_PROP_ID_UNSUPPORTED
-- 
1.7.9.5



More information about the wine-patches mailing list