summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/common/directshowmediatypeenum.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/directshow/common/directshowmediatypeenum.cpp')
-rw-r--r--src/plugins/directshow/common/directshowmediatypeenum.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/plugins/directshow/common/directshowmediatypeenum.cpp b/src/plugins/directshow/common/directshowmediatypeenum.cpp
index 8fbdf7dea..a6afcd5f1 100644
--- a/src/plugins/directshow/common/directshowmediatypeenum.cpp
+++ b/src/plugins/directshow/common/directshowmediatypeenum.cpp
@@ -62,13 +62,18 @@ DirectShowMediaTypeEnum::~DirectShowMediaTypeEnum()
m_pin->Release();
}
-HRESULT DirectShowMediaTypeEnum::getInterface(REFIID riid, void **ppvObject)
+HRESULT DirectShowMediaTypeEnum::QueryInterface(REFIID riid, void **ppv)
{
- if (riid == IID_IEnumMediaTypes) {
- return GetInterface(static_cast<IEnumMediaTypes *>(this), ppvObject);
- } else {
- return DirectShowObject::getInterface(riid, ppvObject);
- }
+ if (ppv == nullptr)
+ return E_POINTER;
+ if (riid == IID_IUnknown)
+ *ppv = static_cast<IUnknown *>(this);
+ else if (riid == IID_IEnumMediaTypes)
+ *ppv = static_cast<IEnumMediaTypes *>(this);
+ else
+ return E_NOINTERFACE;
+ AddRef();
+ return S_OK;
}
HRESULT DirectShowMediaTypeEnum::Next(ULONG cMediaTypes, AM_MEDIA_TYPE **ppMediaTypes, ULONG *pcFetched)