[8/8] quartz: Add stubbed IAMCertifiedOutputProtection interface

André Hentschel nerv at dawncrow.de
Tue Nov 5 17:06:41 CST 2013


---
 dlls/quartz/vmr9.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c
index 1e89225..2dc12a6 100644
--- a/dlls/quartz/vmr9.c
+++ b/dlls/quartz/vmr9.c
@@ -52,6 +52,7 @@ struct quartz_vmr
     BaseControlVideo baseControlVideo;
 
     IUnknown IUnknown_inner;
+    IAMCertifiedOutputProtection IAMCertifiedOutputProtection_iface;
     IAMFilterMiscFlags IAMFilterMiscFlags_iface;
     IVMRFilterConfig IVMRFilterConfig_iface;
     IVMRFilterConfig9 IVMRFilterConfig9_iface;
@@ -120,6 +121,11 @@ static inline struct quartz_vmr *impl_from_IBasicVideo(IBasicVideo *iface)
     return CONTAINING_RECORD(iface, struct quartz_vmr, baseControlVideo.IBasicVideo_iface);
 }
 
+static inline struct quartz_vmr *impl_from_IAMCertifiedOutputProtection(IAMCertifiedOutputProtection *iface)
+{
+    return CONTAINING_RECORD(iface, struct quartz_vmr, IAMCertifiedOutputProtection_iface);
+}
+
 static inline struct quartz_vmr *impl_from_IAMFilterMiscFlags(IAMFilterMiscFlags *iface)
 {
     return CONTAINING_RECORD(iface, struct quartz_vmr, IAMFilterMiscFlags_iface);
@@ -753,6 +759,8 @@ static HRESULT WINAPI VMR9Inner_QueryInterface(IUnknown * iface, REFIID riid, LP
         *ppv = &This->baseControlWindow.IVideoWindow_iface;
     else if (IsEqualIID(riid, &IID_IBasicVideo))
         *ppv = &This->baseControlVideo.IBasicVideo_iface;
+    else if (IsEqualIID(riid, &IID_IAMCertifiedOutputProtection))
+        *ppv = &This->IAMCertifiedOutputProtection_iface;
     else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags))
         *ppv = &This->IAMFilterMiscFlags_iface;
     else if (IsEqualIID(riid, &IID_IVMRFilterConfig))
@@ -1086,6 +1094,74 @@ static const IBasicVideoVtbl IBasicVideo_VTable =
     BaseControlVideoImpl_IsUsingDefaultDestination
 };
 
+static HRESULT WINAPI AMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection *iface,
+                                                                 REFIID riid, void **ppv)
+{
+    struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
+    return VMR9_QueryInterface(&This->renderer.filter.IBaseFilter_iface, riid, ppv);
+}
+
+static ULONG WINAPI AMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection *iface)
+{
+    struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
+    return VMR9_AddRef(&This->renderer.filter.IBaseFilter_iface);
+}
+
+static ULONG WINAPI AMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection *iface)
+{
+    struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
+    return VMR9_Release(&This->renderer.filter.IBaseFilter_iface);
+}
+
+static HRESULT WINAPI AMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection *iface,
+                                                              GUID* pRandom, BYTE** VarLenCertGH,
+                                                              DWORD* pdwLengthCertGH)
+{
+    struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
+
+    FIXME("(%p/%p)->(%p, %p, %p) stub\n", iface, This, pRandom, VarLenCertGH, pdwLengthCertGH);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI AMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection *iface,
+                                                                       AMCOPPSignature* pSig)
+{
+    struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
+
+    FIXME("(%p/%p)->(%p) stub\n", iface, This, pSig);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI AMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection *iface,
+                                                                    const AMCOPPCommand* cmd)
+{
+    struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
+
+    FIXME("(%p/%p)->(%p) stub\n", iface, This, cmd);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI AMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection *iface,
+                                                                   const AMCOPPStatusInput* pStatusInput,
+                                                                   AMCOPPStatusOutput* pStatusOutput)
+{
+    struct quartz_vmr *This = impl_from_IAMCertifiedOutputProtection(iface);
+
+    FIXME("(%p/%p)->(%p, %p) stub\n", iface, This, pStatusInput, pStatusOutput);
+    return E_NOTIMPL;
+}
+
+static const IAMCertifiedOutputProtectionVtbl IAMCertifiedOutputProtection_Vtbl =
+{
+    AMCertifiedOutputProtection_QueryInterface,
+    AMCertifiedOutputProtection_AddRef,
+    AMCertifiedOutputProtection_Release,
+    AMCertifiedOutputProtection_KeyExchange,
+    AMCertifiedOutputProtection_SessionSequenceStart,
+    AMCertifiedOutputProtection_ProtectionCommand,
+    AMCertifiedOutputProtection_ProtectionStatus
+};
+
 static HRESULT WINAPI AMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags *iface, REFIID riid, void **ppv) {
     struct quartz_vmr *This = impl_from_IAMFilterMiscFlags(iface);
     return VMR9_QueryInterface(&This->renderer.filter.IBaseFilter_iface, riid, ppv);
@@ -2183,6 +2259,7 @@ static HRESULT vmr_create(IUnknown *outer_unk, LPVOID *ppv, const CLSID *clsid)
     pVMR->bUnkOuterValid = FALSE;
     pVMR->bAggregatable = FALSE;
     pVMR->IUnknown_inner.lpVtbl = &IInner_VTable;
+    pVMR->IAMCertifiedOutputProtection_iface.lpVtbl = &IAMCertifiedOutputProtection_Vtbl;
     pVMR->IAMFilterMiscFlags_iface.lpVtbl = &IAMFilterMiscFlags_Vtbl;
 
     pVMR->mode = 0;
-- 
1.8.1.2




More information about the wine-patches mailing list