[PATCH 2/2] wmvcore: Add WMReader stubs
Jefferson Carpenter
jeffersoncarpenter2 at gmail.com
Thu Apr 6 22:51:12 CDT 2017
Adds interfaces used by IMesh in bug 42416, except for these:
5c938aeb-6378-479e-bfd5-eafba63dc6e9
7af7d5ed-4ef9-48da-a4b6-8ea7eb38f5cc
---
dlls/wmvcore/wmvcore_main.c | 1301 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1301 insertions(+)
diff --git a/dlls/wmvcore/wmvcore_main.c b/dlls/wmvcore/wmvcore_main.c
index d196079698e7..efe2feb2e25b 100644
--- a/dlls/wmvcore/wmvcore_main.c
+++ b/dlls/wmvcore/wmvcore_main.c
@@ -19,6 +19,7 @@
#include "wmvcore.h"
#include "initguid.h"
+#include "strmif.h"
#include "wmsdkidl.h"
#include "wine/debug.h"
@@ -59,6 +60,16 @@ HRESULT WINAPI WMCreateEditor(IWMMetadataEditor **editor)
typedef struct {
IWMReader IWMReader_iface;
IWMReaderAdvanced6 IWMReaderAdvanced6_iface;
+ IWMDRMReader3 IWMDRMReader3_iface;
+ IWMHeaderInfo3 IWMHeaderInfo3_iface;
+ IWMPacketSize2 IWMPacketSize2_iface;
+ IWMProfile3 IWMProfile3_iface;
+ IWMReaderAccelerator IWMReaderAccelerator_iface;
+ IWMReaderTimecode IWMReaderTimecode_iface;
+ IWMReaderNetworkConfig2 IWMReaderNetworkConfig2_iface;
+ IWMReaderStreamClock IWMReaderStreamClock_iface;
+ IWMReaderTypeNegotiation IWMReaderTypeNegotiation_iface;
+ IReferenceClock IReferenceClock_iface;
LONG ref;
} WMReader;
@@ -95,6 +106,51 @@ static HRESULT WINAPI WMReader_QueryInterface(IWMReader *iface, REFIID riid, voi
}else if(IsEqualGUID(riid, &IID_IWMReaderAdvanced6)) {
TRACE("(%p)->(IID_IWMReaderAdvanced6 %p)\n", This, ppv);
*ppv = &This->IWMReaderAdvanced6_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMDRMReader)) {
+ TRACE("(%p)->(IID_IWMDRMReader %p)\n", This, ppv);
+ *ppv = &This->IWMDRMReader3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMDRMReader2)) {
+ TRACE("(%p)->(IID_IWMDRMReader2 %p)\n", This, ppv);
+ *ppv = &This->IWMDRMReader3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMHeaderInfo)) {
+ TRACE("(%p)->(IID_IWMHeaderInfo %p)\n", This, ppv);
+ *ppv = &This->IWMHeaderInfo3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMHeaderInfo2)) {
+ TRACE("(%p)->(IID_IWMHeaderInfo2 %p)\n", This, ppv);
+ *ppv = &This->IWMHeaderInfo3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMHeaderInfo3)) {
+ TRACE("(%p)->(IID_IWMHeaderInfo3 %p)\n", This, ppv);
+ *ppv = &This->IWMHeaderInfo3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMPacketSize)) {
+ TRACE("(%p)->(IID_IWMPacketSize %p)\n", This, ppv);
+ *ppv = &This->IWMPacketSize2_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMPacketSize2)) {
+ TRACE("(%p)->(IID_IWMPacketSize2 %p)\n", This, ppv);
+ *ppv = &This->IWMPacketSize2_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMProfile)) {
+ TRACE("(%p)->(IID_IWMProfile %p)\n", This, ppv);
+ *ppv = &This->IWMProfile3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMProfile2)) {
+ TRACE("(%p)->(IID_IWMProfile2 %p)\n", This, ppv);
+ *ppv = &This->IWMProfile3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMProfile3)) {
+ TRACE("(%p)->(IID_IWMProfile3 %p)\n", This, ppv);
+ *ppv = &This->IWMProfile3_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMReaderNetworkConfig)) {
+ TRACE("(%p)->(IID_IWMReaderNetworkConfig %p)\n", This, ppv);
+ *ppv = &This->IWMReaderNetworkConfig2_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMReaderNetworkConfig2)) {
+ TRACE("(%p)->IID_IWMReaderNetworkConfig2 %p)\n", This, ppv);
+ *ppv = &This->IWMReaderNetworkConfig2_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMReaderStreamClock)) {
+ TRACE("(%p)->IID_IWMReaderStreamClock %p)\n", This, ppv);
+ *ppv = &This->IWMReaderStreamClock_iface;
+ }else if(IsEqualGUID(riid, &IID_IWMReaderTypeNegotiation)) {
+ TRACE("(%p)->IID_IWMReaderTypeNegotiation %p)\n", This, ppv);
+ *ppv = &This->IWMReaderTypeNegotiation_iface;
+ }else if(IsEqualGUID(riid, &IID_IReferenceClock)) {
+ TRACE("(%p)->IID_IReferenceClock %p)\n", This, ppv);
+ *ppv = &This->IReferenceClock_iface;
}else {
*ppv = NULL;
FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
@@ -649,6 +705,1241 @@ static const IWMReaderAdvanced6Vtbl WMReaderAdvanced6Vtbl = {
WMReaderAdvanced6_SetProtextStreamSamples
};
+static inline WMReader *impl_from_IWMDRMReader3(IWMDRMReader3 *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMDRMReader3_iface);
+}
+
+static HRESULT WINAPI WMDRMReader_QueryInterface(IWMDRMReader3 *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMDRMReader_AddRef(IWMDRMReader3 *iface)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMDRMReader_Release(IWMDRMReader3 *iface)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMDRMReader_AcquireLicense(IWMDRMReader3 *iface, DWORD dwFlags) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader_CancelIndividualization(IWMDRMReader3 *iface) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader_CancelLicenseAcquisition(IWMDRMReader3 *iface) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader_CancelMonitorLicenseAcquisition(IWMDRMReader3 *iface) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader_GetDRMProperty(IWMDRMReader3 *iface, LPCWSTR pwstrName, WMT_ATTR_DATATYPE *pdwType, BYTE *pValue, WORD *pcbLength) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader_Individualize(IWMDRMReader3 *iface, DWORD dwFlags) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader_MonitorLicenseAcquisition(IWMDRMReader3 *iface) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader_SetDRMProperty(IWMDRMReader3 *iface, LPCWSTR pwstrName, WMT_ATTR_DATATYPE dwType, const BYTE *pValue, WORD cbLength) {
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader2_GetCopyOutputLevels(IWMDRMReader3 *iface, DRM_COPY_OPL *pCopyOPL, DWORD *pcbLength, DWORD *pdwMinAppComplianceLevel)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader2_GetPlayOutputLevels(IWMDRMReader3 *iface, DRM_PLAY_OPL *pPlayOPL, DWORD *pcbLength, DWORD *pdwMinAppComplianceLevel)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader2_SetEvaluateOutputLevelLicenses(IWMDRMReader3 *iface, BOOL fEvaluate)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader2_TryNextLicense(IWMDRMReader3 *iface)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMDRMReader3_GetInclusionList(IWMDRMReader3 *iface, GUID **ppGuids, DWORD *pcGuids)
+{
+ WMReader *This = impl_from_IWMDRMReader3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMDRMReader3Vtbl WMDRMReader3Vtbl = {
+ WMDRMReader_QueryInterface,
+ WMDRMReader_AddRef,
+ WMDRMReader_Release,
+ WMDRMReader_AcquireLicense,
+ WMDRMReader_CancelIndividualization,
+ WMDRMReader_CancelLicenseAcquisition,
+ WMDRMReader_CancelMonitorLicenseAcquisition,
+ WMDRMReader_GetDRMProperty,
+ WMDRMReader_Individualize,
+ WMDRMReader_MonitorLicenseAcquisition,
+ WMDRMReader_SetDRMProperty,
+ WMDRMReader2_GetCopyOutputLevels,
+ WMDRMReader2_GetPlayOutputLevels,
+ WMDRMReader2_SetEvaluateOutputLevelLicenses,
+ WMDRMReader2_TryNextLicense,
+ WMDRMReader3_GetInclusionList,
+};
+
+static inline WMReader *impl_from_IWMHeaderInfo3(IWMHeaderInfo3 *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMHeaderInfo3_iface);
+}
+
+static HRESULT WINAPI WMHeaderInfo_QueryInterface(IWMHeaderInfo3 *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMHeaderInfo_AddRef(IWMHeaderInfo3 *iface)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMHeaderInfo_Release(IWMHeaderInfo3 *iface)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMHeaderInfo_AddMarker(IWMHeaderInfo3 *iface, WCHAR *pwszMarkerName, QWORD cnsMarkerTime)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_AddScript(IWMHeaderInfo3 *iface, WCHAR *pwszType, WCHAR *pwszCommand, QWORD cnsScriptTime)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_GetAttributeByIndex(IWMHeaderInfo3 *iface, WORD wIndex, WORD *pwStreamNum, WCHAR *pwszName, WORD *pcchNameLen, WMT_ATTR_DATATYPE *pType, BYTE *pValue, WORD *pcbLength)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_GetAttributeByName(IWMHeaderInfo3 *iface, WORD *pwStreamNum, LPCWSTR pszName, WMT_ATTR_DATATYPE *pType, BYTE *pValue, WORD *pcbLength)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_GetAttributeCount(IWMHeaderInfo3 *iface, WORD wStreamNum, WORD *pcAttributes)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_GetMarker(IWMHeaderInfo3 *iface, WORD wIndex, WCHAR *pwszMarkerName, WORD *pcchMarkerNameLen, QWORD *pcnsMarkerTime)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_GetMarkerCount(IWMHeaderInfo3 *iface, WORD *pcMarkers)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_GetScript(IWMHeaderInfo3 *iface, WORD wIndex, WCHAR *pwszType, WORD *pcchTypeLen, WCHAR *pwszCommand, WORD *pcchCommandLen, QWORD *pcnsScriptTime)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_GetScriptCount(IWMHeaderInfo3 *iface, WORD *pcScripts)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_RemoveMarker(IWMHeaderInfo3 *iface, WORD wIndex)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_RemoveScript(IWMHeaderInfo3 *iface, WORD wIndex)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo_SetAttribute(IWMHeaderInfo3 *iface, WORD wStreamNum, LPCWSTR pszName, WMT_ATTR_DATATYPE Type, const BYTE *pValue, WORD cbLength)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo2_GetCodecInfo(IWMHeaderInfo3 *iface, DWORD wIndex, WORD *pcchName, WCHAR *pwszName, WORD *pcchDescription, WCHAR *pwszDescription, WMT_CODEC_INFO_TYPE *pCodecType, WORD *pcbCodecInfo, BYTE *pbCodecInfo)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo2_GetCodecInfoCount(IWMHeaderInfo3 *iface, DWORD *pcCodecInfos)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo3_AddAttribute(IWMHeaderInfo3 *iface, WORD wStreamNum, LPCWSTR pszName, WORD *pwIndex, WMT_ATTR_DATATYPE Type, WORD wLangIndex, const BYTE *pValue, DWORD dwLength)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo3_AddCodecInfo(IWMHeaderInfo3 *iface, WCHAR *pwszName, WCHAR *pwszDescription, WMT_CODEC_INFO_TYPE codecType, WORD cbCodecInfo, BYTE *pbCodecInfo)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo3_DeleteAttribute(IWMHeaderInfo3 *iface, WORD wStreamNum, WORD wIndex)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo3_GetAttributeByIndexEx(IWMHeaderInfo3 *iface, WORD wStreamNum, WORD wIndex, LPWSTR pwszName, WORD *pwNameLen, WMT_ATTR_DATATYPE *pType, WORD *pwLangIndex, BYTE *pValue, DWORD *pdwDataLength)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo3_GetAttributeCountEx(IWMHeaderInfo3 *iface, WORD wStreamNum, WORD *pcAttributes)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo3_GetAttributeIndices(IWMHeaderInfo3 *iface, WORD wStreamNum, LPCWSTR pwszName, WORD *pwLangIndex, WORD *pwIndices, WORD *pwCount)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMHeaderInfo3_ModifyAttribute(IWMHeaderInfo3 *iface, WORD wStreamNum, WORD wIndex, WMT_ATTR_DATATYPE Type, WORD wLangIndex, const BYTE *pValue, DWORD dwLength)
+{
+ WMReader *This = impl_from_IWMHeaderInfo3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+
+static const IWMHeaderInfo3Vtbl WMHeaderInfo3Vtbl = {
+ WMHeaderInfo_QueryInterface,
+ WMHeaderInfo_AddRef,
+ WMHeaderInfo_Release,
+ WMHeaderInfo_AddMarker,
+ WMHeaderInfo_AddScript,
+ WMHeaderInfo_GetAttributeByIndex,
+ WMHeaderInfo_GetAttributeByName,
+ WMHeaderInfo_GetAttributeCount,
+ WMHeaderInfo_GetMarker,
+ WMHeaderInfo_GetMarkerCount,
+ WMHeaderInfo_GetScript,
+ WMHeaderInfo_GetScriptCount,
+ WMHeaderInfo_RemoveMarker,
+ WMHeaderInfo_RemoveScript,
+ WMHeaderInfo_SetAttribute,
+ WMHeaderInfo2_GetCodecInfo,
+ WMHeaderInfo2_GetCodecInfoCount,
+ WMHeaderInfo3_AddAttribute,
+ WMHeaderInfo3_AddCodecInfo,
+ WMHeaderInfo3_DeleteAttribute,
+ WMHeaderInfo3_GetAttributeByIndexEx,
+ WMHeaderInfo3_GetAttributeCountEx,
+ WMHeaderInfo3_GetAttributeIndices,
+ WMHeaderInfo3_ModifyAttribute,
+};
+
+static inline WMReader *impl_from_IWMPacketSize2(IWMPacketSize2 *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMPacketSize2_iface);
+}
+
+static HRESULT WINAPI WMPacketSize_QueryInterface(IWMPacketSize2 *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMPacketSize2(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMPacketSize_AddRef(IWMPacketSize2 *iface)
+{
+ WMReader *This = impl_from_IWMPacketSize2(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMPacketSize_Release(IWMPacketSize2 *iface)
+{
+ WMReader *This = impl_from_IWMPacketSize2(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMPacketSize_GetMaxPacketSize(IWMPacketSize2 *iface, DWORD *pdwMaxPacketSize)
+{
+ WMReader *This = impl_from_IWMPacketSize2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMPacketSize_SetMaxPacketSize(IWMPacketSize2 *iface, DWORD dwMaxPacketSize)
+{
+ WMReader *This = impl_from_IWMPacketSize2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMPacketSize2_GetMinPacketSize(IWMPacketSize2 *iface, DWORD *pdwMinPacketSize)
+{
+ WMReader *This = impl_from_IWMPacketSize2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMPacketSize2_SetMinPacketSize(IWMPacketSize2 *iface, DWORD dwMinPacketSize)
+{
+ WMReader *This = impl_from_IWMPacketSize2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMPacketSize2Vtbl WMPacketSize2Vtbl = {
+ WMPacketSize_QueryInterface,
+ WMPacketSize_AddRef,
+ WMPacketSize_Release,
+ WMPacketSize_GetMaxPacketSize,
+ WMPacketSize_SetMaxPacketSize,
+ WMPacketSize2_GetMinPacketSize,
+ WMPacketSize2_SetMinPacketSize,
+};
+
+static inline WMReader *impl_from_IWMProfile3(IWMProfile3 *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMProfile3_iface);
+}
+
+static HRESULT WINAPI WMProfile_QueryInterface(IWMProfile3 *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMProfile_AddRef(IWMProfile3 *iface)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMProfile_Release(IWMProfile3 *iface)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMProfile_GetVersion(IWMProfile3 *iface, WMT_VERSION *pdwVersion) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_GetName(IWMProfile3 *iface, WCHAR *pwszName, DWORD *pcchName) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_SetName(IWMProfile3 *iface, const WCHAR *pwszName) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_GetDescription(IWMProfile3 *iface, WCHAR *pwszDescription, DWORD *pcchDescription) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_SetDescription(IWMProfile3 *iface, const WCHAR *pwszDescription) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_GetStreamCount(IWMProfile3 *iface, DWORD *pcStreams) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_GetStream(IWMProfile3 *iface, DWORD dwStreamIndex, IWMStreamConfig **ppConfig) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_GetStreamByNumber(IWMProfile3 *iface, WORD wStreamNum, IWMStreamConfig **ppConfig) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_RemoveStream(IWMProfile3 *iface, IWMStreamConfig *pConfig) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_RemoveStreamByNumber(IWMProfile3 *iface, WORD wStreamNum) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_AddStream(IWMProfile3 *iface, IWMStreamConfig *pConfig) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_ReconfigStream(IWMProfile3 *iface, IWMStreamConfig *pConfig) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_CreateNewStream(IWMProfile3 *iface, REFGUID guidStreamType, IWMStreamConfig **ppConfig) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_GetMutualExclusionCount(IWMProfile3 *iface, DWORD *pcME) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_GetMutualExclusion(IWMProfile3 *iface, DWORD dwMEIndex, IWMMutualExclusion **ppME) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_RemoveMutualExclusion(IWMProfile3 *iface, IWMMutualExclusion *pME) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_AddMutualExclusion(IWMProfile3 *iface, IWMMutualExclusion *pME) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile_CreateNewMutualExclusion(IWMProfile3 *iface, IWMMutualExclusion **ppME) {
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile2_GetProfileID(IWMProfile3 *iface, GUID *pguidID)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_AddBandwidthSharing(IWMProfile3 *iface, IWMBandwidthSharing *pBS)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_CreateNewBandwidthSharing(IWMProfile3 *iface, IWMBandwidthSharing **ppBS)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_CreateNewStreamPrioritization(IWMProfile3 *iface, IWMStreamPrioritization **ppSP)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_GetBandwidthSharing(IWMProfile3 *iface, DWORD dwBSIndex, IWMBandwidthSharing **ppBS)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_GetBandwidthSharingCount(IWMProfile3 *iface, DWORD *pcBS)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_GetExpectedPacketCount(IWMProfile3 *iface, QWORD msDuration, QWORD *pcPackets)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_GetStorageFormat(IWMProfile3 *iface, WMT_STORAGE_FORMAT *pnStorageFormat)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_GetStreamPrioritization(IWMProfile3 *iface, IWMStreamPrioritization **ppSP)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_RemoveBandwidthSharing(IWMProfile3 *iface, IWMBandwidthSharing *pBS)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_RemoveStreamPrioritization(IWMProfile3 *iface)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_SetStorageFormat(IWMProfile3 *iface, WMT_STORAGE_FORMAT nStorageFormat)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMProfile3_SetStreamPrioritization(IWMProfile3 *iface, IWMStreamPrioritization *pSP)
+{
+ WMReader *This = impl_from_IWMProfile3(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMProfile3Vtbl WMProfile3Vtbl = {
+ WMProfile_QueryInterface,
+ WMProfile_AddRef,
+ WMProfile_Release,
+ WMProfile_GetVersion,
+ WMProfile_GetName,
+ WMProfile_SetName,
+ WMProfile_GetDescription,
+ WMProfile_SetDescription,
+ WMProfile_GetStreamCount,
+ WMProfile_GetStream,
+ WMProfile_GetStreamByNumber,
+ WMProfile_RemoveStream,
+ WMProfile_RemoveStreamByNumber,
+ WMProfile_AddStream,
+ WMProfile_ReconfigStream,
+ WMProfile_CreateNewStream,
+ WMProfile_GetMutualExclusionCount,
+ WMProfile_GetMutualExclusion,
+ WMProfile_RemoveMutualExclusion,
+ WMProfile_AddMutualExclusion,
+ WMProfile_CreateNewMutualExclusion,
+ WMProfile2_GetProfileID,
+ WMProfile3_AddBandwidthSharing,
+ WMProfile3_CreateNewBandwidthSharing,
+ WMProfile3_CreateNewStreamPrioritization,
+ WMProfile3_GetBandwidthSharing,
+ WMProfile3_GetBandwidthSharingCount,
+ WMProfile3_GetExpectedPacketCount,
+ WMProfile3_GetStorageFormat,
+ WMProfile3_GetStreamPrioritization,
+ WMProfile3_RemoveBandwidthSharing,
+ WMProfile3_RemoveStreamPrioritization,
+ WMProfile3_SetStorageFormat,
+ WMProfile3_SetStreamPrioritization
+};
+
+static inline WMReader *impl_from_IWMReaderAccelerator(IWMReaderAccelerator *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMReaderAccelerator_iface);
+}
+
+static HRESULT WINAPI WMReaderAccelerator_QueryInterface(IWMReaderAccelerator *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMReaderAccelerator(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMReaderAccelerator_AddRef(IWMReaderAccelerator *iface)
+{
+ WMReader *This = impl_from_IWMReaderAccelerator(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMReaderAccelerator_Release(IWMReaderAccelerator *iface)
+{
+ WMReader *This = impl_from_IWMReaderAccelerator(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMReaderAccelerator_GetCodecInterface(IWMReaderAccelerator *iface, DWORD dwOutputNum, REFIID riid, void **ppvCodecInterface)
+{
+ WMReader *This = impl_from_IWMReaderAccelerator(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMReaderAccelerator_Notify(IWMReaderAccelerator *iface, DWORD dwOutputNum, WM_MEDIA_TYPE *pSubtype)
+{
+ WMReader *This = impl_from_IWMReaderAccelerator(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMReaderAcceleratorVtbl WMReaderAcceleratorVtbl = {
+ WMReaderAccelerator_QueryInterface,
+ WMReaderAccelerator_AddRef,
+ WMReaderAccelerator_Release,
+ WMReaderAccelerator_GetCodecInterface,
+ WMReaderAccelerator_Notify,
+};
+
+static inline WMReader *impl_from_IWMReaderTimecode(IWMReaderTimecode *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMReaderTimecode_iface);
+}
+
+static HRESULT WINAPI WMReaderTimecode_QueryInterface(IWMReaderTimecode *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMReaderTimecode(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMReaderTimecode_AddRef(IWMReaderTimecode *iface)
+{
+ WMReader *This = impl_from_IWMReaderTimecode(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMReaderTimecode_Release(IWMReaderTimecode *iface)
+{
+ WMReader *This = impl_from_IWMReaderTimecode(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMReaderTimecode_GetTimecodeRangeBounds(IWMReaderTimecode *iface, WORD wStreamNum, WORD wRangeNum, DWORD *pStartTimecode, DWORD *pEndTimecode)
+{
+ WMReader *This = impl_from_IWMReaderTimecode(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMReaderTimecode_GetTimecodeRangeCount(IWMReaderTimecode *iface, WORD wStreamNum, WORD *pwRangeCount)
+{
+ WMReader *This = impl_from_IWMReaderTimecode(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMReaderTimecodeVtbl WMReaderTimecodeVtbl = {
+ WMReaderTimecode_QueryInterface,
+ WMReaderTimecode_AddRef,
+ WMReaderTimecode_Release,
+ WMReaderTimecode_GetTimecodeRangeBounds,
+ WMReaderTimecode_GetTimecodeRangeCount,
+};
+
+static inline WMReader *impl_from_IWMReaderNetworkConfig2(IWMReaderNetworkConfig2 *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMReaderNetworkConfig2_iface);
+}
+
+static HRESULT WINAPI WMReaderNetworkConfig_QueryInterface(IWMReaderNetworkConfig2 *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMReaderNetworkConfig_AddRef(IWMReaderNetworkConfig2 *iface)
+{
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMReaderNetworkConfig_Release(IWMReaderNetworkConfig2 *iface)
+{
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_AddLoggingUrl(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszUrl) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetBufferingTime(IWMReaderNetworkConfig2 *iface, QWORD *pcnsBufferingTime) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetConnectionBandwidth(IWMReaderNetworkConfig2 *iface, DWORD *pdwConnectionBandwidth) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetEnableHTTP(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableHTTP) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetEnableMulticast(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableMulticast) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetEnableTCP(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableTCP) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetEnableUDP(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableUDP) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2 *iface, BOOL *pfForceRerunDetection) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetLoggingUrl(IWMReaderNetworkConfig2 *iface, DWORD dwIndex, LPWSTR pwszUrl, DWORD *pcchUrl) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetLoggingUrlCount(IWMReaderNetworkConfig2 *iface, DWORD *pdwUrlCount) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetNumProtocolsSupported(IWMReaderNetworkConfig2 *iface, DWORD *pcProtocols) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetProxyBypassForLocal(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, BOOL *pfBypassForLocal) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetProxyExceptionList(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, WCHAR *pwszExceptionList, DWORD *pcchExceptionList) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetProxyHostName(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, WCHAR *pwszHostName, DWORD *pcchHostName) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetProxyPort(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, DWORD *pdwPort) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetProxySettings(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, WMT_PROXY_SETTINGS *pProxySetting) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetSupportedProtocolName(IWMReaderNetworkConfig2 *iface, DWORD dwProtocolNum, WCHAR *pwszProtocolName, DWORD *pcchProtocolName) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_GetUDPPortRanges(IWMReaderNetworkConfig2 *iface, WM_PORT_NUMBER_RANGE *pRangeArray, DWORD *pcRanges) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_ResetLoggingUrlList(IWMReaderNetworkConfig2 *iface) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_ResetProtocolRollover(IWMReaderNetworkConfig2 *iface) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetBufferingTime(IWMReaderNetworkConfig2 *iface, QWORD cnsBufferingTime) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetConnectionBandwidth(IWMReaderNetworkConfig2 *iface, DWORD dwConnectionBandwidth) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetEnableHTTP(IWMReaderNetworkConfig2 *iface, BOOL fEnableHTTP) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetEnableMulticast(IWMReaderNetworkConfig2 *iface, BOOL fEnableMulticast) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetEnableTCP(IWMReaderNetworkConfig2 *iface, BOOL fEnableTCP) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetEnableUDP(IWMReaderNetworkConfig2 *iface, BOOL fEnableUDP) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2 *iface, BOOL fForceRerunDetection) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetProxyBypassForLocal(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, BOOL fBypassForLocal) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetProxyExceptionList(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, LPCWSTR pwszExceptionList) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetProxyHostName(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, LPCWSTR pwszHostName) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetProxyPort(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, DWORD dwPort) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetProxySettings(IWMReaderNetworkConfig2 *iface, LPCWSTR pwszProtocol, WMT_PROXY_SETTINGS ProxySetting) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig_SetUDPPortRanges(IWMReaderNetworkConfig2 *iface, WM_PORT_NUMBER_RANGE *pRangeArray, DWORD cRanges) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_GetAcceleratedStreamingDuration(IWMReaderNetworkConfig2 *iface, QWORD *pcnsAccelDuration) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_GetAutoReconnectLimit(IWMReaderNetworkConfig2 *iface, DWORD *pdwAutoReconnectLimit) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_GetEnableContentCaching(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableContentCaching) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_GetEnableFastCache(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableFastCache) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_GetEnableResends(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableResends) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_GetEnableThinning(IWMReaderNetworkConfig2 *iface, BOOL *pfEnableThinning) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_GetMaxNetPacketSize(IWMReaderNetworkConfig2 *iface, DWORD *pdwMaxNetPacketSize) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_SetAcceleratedStreamingDuration(IWMReaderNetworkConfig2 *iface, QWORD cnsAccelDuration) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_SetAutoReconnectLimit(IWMReaderNetworkConfig2 *iface, DWORD dwAutoReconnectLimit) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_SetEnableContentCaching(IWMReaderNetworkConfig2 *iface, BOOL fEnableContentCaching) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_SetEnableFastCache(IWMReaderNetworkConfig2 *iface, BOOL fEnableFastCache) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_SetEnableResends(IWMReaderNetworkConfig2 *iface, BOOL fEnableResends) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static WINAPI HRESULT WMReaderNetworkConfig2_SetEnableThinning(IWMReaderNetworkConfig2 *iface, BOOL fEnableThinning) {
+ WMReader *This = impl_from_IWMReaderNetworkConfig2(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMReaderNetworkConfig2Vtbl WMReaderNetworkConfig2Vtbl = {
+ WMReaderNetworkConfig_QueryInterface,
+ WMReaderNetworkConfig_AddRef,
+ WMReaderNetworkConfig_Release,
+ WMReaderNetworkConfig_AddLoggingUrl,
+ WMReaderNetworkConfig_GetBufferingTime,
+ WMReaderNetworkConfig_GetConnectionBandwidth,
+ WMReaderNetworkConfig_GetEnableHTTP,
+ WMReaderNetworkConfig_GetEnableMulticast,
+ WMReaderNetworkConfig_GetEnableTCP,
+ WMReaderNetworkConfig_GetEnableUDP,
+ WMReaderNetworkConfig_GetForceRerunAutoProxyDetection,
+ WMReaderNetworkConfig_GetLoggingUrl,
+ WMReaderNetworkConfig_GetLoggingUrlCount,
+ WMReaderNetworkConfig_GetNumProtocolsSupported,
+ WMReaderNetworkConfig_GetProxyBypassForLocal,
+ WMReaderNetworkConfig_GetProxyExceptionList,
+ WMReaderNetworkConfig_GetProxyHostName,
+ WMReaderNetworkConfig_GetProxyPort,
+ WMReaderNetworkConfig_GetProxySettings,
+ WMReaderNetworkConfig_GetSupportedProtocolName,
+ WMReaderNetworkConfig_GetUDPPortRanges,
+ WMReaderNetworkConfig_ResetLoggingUrlList,
+ WMReaderNetworkConfig_ResetProtocolRollover,
+ WMReaderNetworkConfig_SetBufferingTime,
+ WMReaderNetworkConfig_SetConnectionBandwidth,
+ WMReaderNetworkConfig_SetEnableHTTP,
+ WMReaderNetworkConfig_SetEnableMulticast,
+ WMReaderNetworkConfig_SetEnableTCP,
+ WMReaderNetworkConfig_SetEnableUDP,
+ WMReaderNetworkConfig_SetForceRerunAutoProxyDetection,
+ WMReaderNetworkConfig_SetProxyBypassForLocal,
+ WMReaderNetworkConfig_SetProxyExceptionList,
+ WMReaderNetworkConfig_SetProxyHostName,
+ WMReaderNetworkConfig_SetProxyPort,
+ WMReaderNetworkConfig_SetProxySettings,
+ WMReaderNetworkConfig_SetUDPPortRanges,
+ WMReaderNetworkConfig2_GetAcceleratedStreamingDuration,
+ WMReaderNetworkConfig2_GetAutoReconnectLimit,
+ WMReaderNetworkConfig2_GetEnableContentCaching,
+ WMReaderNetworkConfig2_GetEnableFastCache,
+ WMReaderNetworkConfig2_GetEnableResends,
+ WMReaderNetworkConfig2_GetEnableThinning,
+ WMReaderNetworkConfig2_GetMaxNetPacketSize,
+ WMReaderNetworkConfig2_SetAcceleratedStreamingDuration,
+ WMReaderNetworkConfig2_SetAutoReconnectLimit,
+ WMReaderNetworkConfig2_SetEnableContentCaching,
+ WMReaderNetworkConfig2_SetEnableFastCache,
+ WMReaderNetworkConfig2_SetEnableResends,
+ WMReaderNetworkConfig2_SetEnableThinning
+};
+
+static inline WMReader *impl_from_IWMReaderStreamClock(IWMReaderStreamClock *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMReaderStreamClock_iface);
+}
+
+static HRESULT WINAPI WMReaderStreamClock_QueryInterface(IWMReaderStreamClock *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMReaderStreamClock(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMReaderStreamClock_AddRef(IWMReaderStreamClock *iface)
+{
+ WMReader *This = impl_from_IWMReaderStreamClock(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMReaderStreamClock_Release(IWMReaderStreamClock *iface)
+{
+ WMReader *This = impl_from_IWMReaderStreamClock(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMReaderStreamClock_GetTime(IWMReaderStreamClock *iface, QWORD *pcnsNow)
+{
+ WMReader *This = impl_from_IWMReaderStreamClock(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMReaderStreamClock_KillTimer(IWMReaderStreamClock *iface, DWORD dwTimerId)
+{
+ WMReader *This = impl_from_IWMReaderStreamClock(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI WMReaderStreamClock_SetTimer(IWMReaderStreamClock *iface, QWORD cnsWhen, void *pvParam, DWORD *pdwTimerId)
+{
+ WMReader *This = impl_from_IWMReaderStreamClock(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMReaderStreamClockVtbl WMReaderStreamClockVtbl = {
+ WMReaderStreamClock_QueryInterface,
+ WMReaderStreamClock_AddRef,
+ WMReaderStreamClock_Release,
+ WMReaderStreamClock_GetTime,
+ WMReaderStreamClock_KillTimer,
+ WMReaderStreamClock_SetTimer,
+};
+
+static inline WMReader *impl_from_IWMReaderTypeNegotiation(IWMReaderTypeNegotiation *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IWMReaderTypeNegotiation_iface);
+}
+
+static HRESULT WINAPI WMReaderTypeNegotiation_QueryInterface(IWMReaderTypeNegotiation *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IWMReaderTypeNegotiation(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI WMReaderTypeNegotiation_AddRef(IWMReaderTypeNegotiation *iface)
+{
+ WMReader *This = impl_from_IWMReaderTypeNegotiation(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI WMReaderTypeNegotiation_Release(IWMReaderTypeNegotiation *iface)
+{
+ WMReader *This = impl_from_IWMReaderTypeNegotiation(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI WMReaderTypeNegotiation_TryOutputProps(IWMReaderTypeNegotiation *iface, DWORD dwOutputNum, IWMOutputMediaProps *pOutput)
+{
+ WMReader *This = impl_from_IWMReaderTypeNegotiation(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IWMReaderTypeNegotiationVtbl WMReaderTypeNegotiationVtbl = {
+ WMReaderTypeNegotiation_QueryInterface,
+ WMReaderTypeNegotiation_AddRef,
+ WMReaderTypeNegotiation_Release,
+ WMReaderTypeNegotiation_TryOutputProps,
+};
+
+static inline WMReader *impl_from_IReferenceClock(IReferenceClock *iface)
+{
+ return CONTAINING_RECORD(iface, WMReader, IReferenceClock_iface);
+}
+
+static HRESULT WINAPI ReferenceClock_QueryInterface(IReferenceClock *iface, REFIID riid, void **ppv)
+{
+ WMReader *This = impl_from_IReferenceClock(iface);
+ return IWMReader_QueryInterface(&This->IWMReader_iface, riid, ppv);
+}
+
+static ULONG WINAPI ReferenceClock_AddRef(IReferenceClock *iface)
+{
+ WMReader *This = impl_from_IReferenceClock(iface);
+ return IWMReader_AddRef(&This->IWMReader_iface);
+}
+
+static ULONG WINAPI ReferenceClock_Release(IReferenceClock *iface)
+{
+ WMReader *This = impl_from_IReferenceClock(iface);
+ return IWMReader_Release(&This->IWMReader_iface);
+}
+
+static HRESULT WINAPI ReferenceClock_GetTime(IReferenceClock *iface, REFERENCE_TIME *pTime)
+{
+ WMReader *This = impl_from_IReferenceClock(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ReferenceClock_AdviseTime(IReferenceClock *iface, REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR * pdwAdviseCookie)
+{
+ WMReader *This = impl_from_IReferenceClock(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ReferenceClock_AdvisePeriodic(IReferenceClock *iface, REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR * pdwAdviseCookie)
+{
+ WMReader *This = impl_from_IReferenceClock(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ReferenceClock_Unadvise(IReferenceClock *iface, DWORD_PTR dwAdviseCookie)
+{
+ WMReader *This = impl_from_IReferenceClock(iface);
+ FIXME("%p\n", This);
+ return E_NOTIMPL;
+}
+
+static const IReferenceClockVtbl ReferenceClockVtbl = {
+ ReferenceClock_QueryInterface,
+ ReferenceClock_AddRef,
+ ReferenceClock_Release,
+ ReferenceClock_GetTime,
+ ReferenceClock_AdviseTime,
+ ReferenceClock_AdvisePeriodic,
+ ReferenceClock_Unadvise,
+};
+
HRESULT WINAPI WMCreateReader(IUnknown *reserved, DWORD rights, IWMReader **ret_reader)
{
WMReader *reader;
@@ -661,6 +1952,16 @@ HRESULT WINAPI WMCreateReader(IUnknown *reserved, DWORD rights, IWMReader **ret_
reader->IWMReader_iface.lpVtbl = &WMReaderVtbl;
reader->IWMReaderAdvanced6_iface.lpVtbl = &WMReaderAdvanced6Vtbl;
+ reader->IWMDRMReader3_iface.lpVtbl = &WMDRMReader3Vtbl;
+ reader->IWMHeaderInfo3_iface.lpVtbl = &WMHeaderInfo3Vtbl;
+ reader->IWMPacketSize2_iface.lpVtbl = &WMPacketSize2Vtbl;
+ reader->IWMProfile3_iface.lpVtbl = &WMProfile3Vtbl;
+ reader->IWMReaderAccelerator_iface.lpVtbl = &WMReaderAcceleratorVtbl;
+ reader->IWMReaderTimecode_iface.lpVtbl = &WMReaderTimecodeVtbl;
+ reader->IWMReaderNetworkConfig2_iface.lpVtbl = &WMReaderNetworkConfig2Vtbl;
+ reader->IWMReaderStreamClock_iface.lpVtbl = &WMReaderStreamClockVtbl;
+ reader->IWMReaderTypeNegotiation_iface.lpVtbl = &WMReaderTypeNegotiationVtbl;
+ reader->IReferenceClock_iface.lpVtbl = &ReferenceClockVtbl;
reader->ref = 1;
*ret_reader = &reader->IWMReader_iface;
--
2.12.0
More information about the wine-patches
mailing list