aboutsummaryrefslogtreecommitdiff
path: root/x86_64-w64-mingw32/include/wmsdkidl.h
diff options
context:
space:
mode:
Diffstat (limited to 'x86_64-w64-mingw32/include/wmsdkidl.h')
-rw-r--r--x86_64-w64-mingw32/include/wmsdkidl.h3263
1 files changed, 3263 insertions, 0 deletions
diff --git a/x86_64-w64-mingw32/include/wmsdkidl.h b/x86_64-w64-mingw32/include/wmsdkidl.h
index 5ff3d9e9..24952a6e 100644
--- a/x86_64-w64-mingw32/include/wmsdkidl.h
+++ b/x86_64-w64-mingw32/include/wmsdkidl.h
@@ -72,6 +72,41 @@ typedef interface IWMMetadataEditor IWMMetadataEditor;
typedef interface IWMReader IWMReader;
#endif
+#ifndef __IWMPlayerHook_FWD_DEFINED__
+#define __IWMPlayerHook_FWD_DEFINED__
+typedef interface IWMPlayerHook IWMPlayerHook;
+#endif
+
+#ifndef __IWMReaderAdvanced_FWD_DEFINED__
+#define __IWMReaderAdvanced_FWD_DEFINED__
+typedef interface IWMReaderAdvanced IWMReaderAdvanced;
+#endif
+
+#ifndef __IWMReaderAdvanced2_FWD_DEFINED__
+#define __IWMReaderAdvanced2_FWD_DEFINED__
+typedef interface IWMReaderAdvanced2 IWMReaderAdvanced2;
+#endif
+
+#ifndef __IWMReaderAdvanced3_FWD_DEFINED__
+#define __IWMReaderAdvanced3_FWD_DEFINED__
+typedef interface IWMReaderAdvanced3 IWMReaderAdvanced3;
+#endif
+
+#ifndef __IWMReaderAdvanced4_FWD_DEFINED__
+#define __IWMReaderAdvanced4_FWD_DEFINED__
+typedef interface IWMReaderAdvanced4 IWMReaderAdvanced4;
+#endif
+
+#ifndef __IWMReaderAdvanced5_FWD_DEFINED__
+#define __IWMReaderAdvanced5_FWD_DEFINED__
+typedef interface IWMReaderAdvanced5 IWMReaderAdvanced5;
+#endif
+
+#ifndef __IWMReaderAdvanced6_FWD_DEFINED__
+#define __IWMReaderAdvanced6_FWD_DEFINED__
+typedef interface IWMReaderAdvanced6 IWMReaderAdvanced6;
+#endif
+
#ifndef __IWMSyncReader_FWD_DEFINED__
#define __IWMSyncReader_FWD_DEFINED__
typedef interface IWMSyncReader IWMSyncReader;
@@ -149,6 +184,25 @@ typedef struct _WMWriterStatisticsEx {
DWORD dwTotalSampleDropsInCodec;
DWORD dwTotalSampleDropsInMultiplexer;
} WM_WRITER_STATISTICS_EX;
+typedef struct _WMReaderStatistics {
+ DWORD cbSize;
+ DWORD dwBandwidth;
+ DWORD cPacketsReceived;
+ DWORD cPacketsRecovered;
+ DWORD cPacketsLost;
+ WORD wQuality;
+} WM_READER_STATISTICS;
+typedef struct _WMReaderClientInfo {
+ DWORD cbSize;
+ WCHAR *wszLang;
+ WCHAR *wszBrowserUserAgent;
+ WCHAR *wszBrowserWebPage;
+ QWORD qwReserved;
+ LPARAM *pReserved;
+ WCHAR *wszHostExe;
+ QWORD qwHostVersion;
+ WCHAR *wszPlayerUserAgent;
+} WM_READER_CLIENTINFO;
typedef enum WMT_ATTR_DATATYPE {
WMT_TYPE_DWORD = 0,
WMT_TYPE_STRING = 1,
@@ -224,6 +278,19 @@ typedef enum WMT_VERSION {
WMT_VER_8_0 = 0x80000,
WMT_VER_9_0 = 0x90000
} WMT_VERSION;
+typedef enum WMT_PLAY_MODE {
+ WMT_PLAY_MODE_AUTOSELECT = 0,
+ WMT_PLAY_MODE_LOCAL = 1,
+ WMT_PLAY_MODE_DOWNLOAD = 2,
+ WMT_PLAY_MODE_STREAMING = 3
+} WMT_PLAY_MODE;
+typedef enum tagWMT_OFFSET_FORMAT {
+ WMT_OFFSET_FORMAT_100NS = 0,
+ WMT_OFFSET_FORMAT_FRAME_NUMBERS = 1,
+ WMT_OFFSET_FORMAT_PLAYLIST_OFFSET = 2,
+ WMT_OFFSET_FORMAT_TIMECODE = 3,
+ WMT_OFFSET_FORMAT_100NS_APPROXIMATE = 4
+} WMT_OFFSET_FORMAT;
typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE;
/*****************************************************************************
* IWMStatusCallback interface
@@ -2271,6 +2338,3201 @@ void __RPC_STUB IWMReader_Resume_Stub(
#endif /* __IWMReader_INTERFACE_DEFINED__ */
/*****************************************************************************
+ * IWMPlayerHook interface
+ */
+#ifndef __IWMPlayerHook_INTERFACE_DEFINED__
+#define __IWMPlayerHook_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e5b7ca9a-0f1c-4f66-9002-74ec50d8b304")
+IWMPlayerHook : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE PreDecode(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04)
+#endif
+#else
+typedef struct IWMPlayerHookVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMPlayerHook* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMPlayerHook* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMPlayerHook* This);
+
+ /*** IWMPlayerHook methods ***/
+ HRESULT (STDMETHODCALLTYPE *PreDecode)(
+ IWMPlayerHook* This);
+
+ END_INTERFACE
+} IWMPlayerHookVtbl;
+interface IWMPlayerHook {
+ CONST_VTBL IWMPlayerHookVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPlayerHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPlayerHook_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPlayerHook_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPlayerHook methods ***/
+#define IWMPlayerHook_PreDecode(This) (This)->lpVtbl->PreDecode(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPlayerHook_QueryInterface(IWMPlayerHook* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPlayerHook_AddRef(IWMPlayerHook* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPlayerHook_Release(IWMPlayerHook* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMPlayerHook methods ***/
+static FORCEINLINE HRESULT IWMPlayerHook_PreDecode(IWMPlayerHook* This) {
+ return This->lpVtbl->PreDecode(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMPlayerHook_PreDecode_Proxy(
+ IWMPlayerHook* This);
+void __RPC_STUB IWMPlayerHook_PreDecode_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMPlayerHook_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMReaderAdvanced interface
+ */
+#ifndef __IWMReaderAdvanced_INTERFACE_DEFINED__
+#define __IWMReaderAdvanced_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("96406bea-2b2b-11d3-b36b-00c04f6108ff")
+IWMReaderAdvanced : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetUserProvidedClock(
+ WINBOOL fUserClock) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetUserProvidedClock(
+ WINBOOL *pfUserClock) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DeliverTime(
+ QWORD cnsTime) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetManualStreamSelection(
+ WINBOOL fSelection) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetManualStreamSelection(
+ WINBOOL *pfSelection) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected(
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStreamSelected(
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetReceiveSelectionCallbacks(
+ WINBOOL fGetCallbacks) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetReceiveSelectionCallbacks(
+ WINBOOL *pfGetCallbacks) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetReceiveStreamSamples(
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetReceiveStreamSamples(
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput(
+ DWORD dwOutputNum,
+ WINBOOL fAllocate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput(
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream(
+ WORD wStreamNum,
+ WINBOOL fAllocate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream(
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStatistics(
+ WM_READER_STATISTICS *pStatistics) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetClientInfo(
+ WM_READER_CLIENTINFO *pClientInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize(
+ DWORD dwOutput,
+ DWORD *pcbMax) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize(
+ WORD wStream,
+ DWORD *pcbMax) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE NotifyLateDelivery(
+ QWORD cnsLateness) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
+#endif
+#else
+typedef struct IWMReaderAdvancedVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMReaderAdvanced* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMReaderAdvanced* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMReaderAdvanced* This);
+
+ /*** IWMReaderAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
+ IWMReaderAdvanced* This,
+ WINBOOL fUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
+ IWMReaderAdvanced* This,
+ WINBOOL *pfUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *DeliverTime)(
+ IWMReaderAdvanced* This,
+ QWORD cnsTime);
+
+ HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
+ IWMReaderAdvanced* This,
+ WINBOOL fSelection);
+
+ HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
+ IWMReaderAdvanced* This,
+ WINBOOL *pfSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
+ IWMReaderAdvanced* This,
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced* This,
+ WINBOOL fGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced* This,
+ WINBOOL *pfGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
+ IWMReaderAdvanced* This,
+ DWORD dwOutputNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
+ IWMReaderAdvanced* This,
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
+ IWMReaderAdvanced* This,
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMReaderAdvanced* This,
+ WM_READER_STATISTICS *pStatistics);
+
+ HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
+ IWMReaderAdvanced* This,
+ WM_READER_CLIENTINFO *pClientInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
+ IWMReaderAdvanced* This,
+ DWORD dwOutput,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
+ IWMReaderAdvanced* This,
+ WORD wStream,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
+ IWMReaderAdvanced* This,
+ QWORD cnsLateness);
+
+ END_INTERFACE
+} IWMReaderAdvancedVtbl;
+interface IWMReaderAdvanced {
+ CONST_VTBL IWMReaderAdvancedVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMReaderAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMReaderAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMReaderAdvanced_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMReaderAdvanced methods ***/
+#define IWMReaderAdvanced_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
+#define IWMReaderAdvanced_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
+#define IWMReaderAdvanced_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
+#define IWMReaderAdvanced_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
+#define IWMReaderAdvanced_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
+#define IWMReaderAdvanced_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
+#define IWMReaderAdvanced_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
+#define IWMReaderAdvanced_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
+#define IWMReaderAdvanced_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
+#define IWMReaderAdvanced_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
+#define IWMReaderAdvanced_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
+#define IWMReaderAdvanced_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
+#define IWMReaderAdvanced_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
+#define IWMReaderAdvanced_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
+#define IWMReaderAdvanced_GetAllocateForStream(This,dwSreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate)
+#define IWMReaderAdvanced_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
+#define IWMReaderAdvanced_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
+#define IWMReaderAdvanced_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
+#define IWMReaderAdvanced_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
+#define IWMReaderAdvanced_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced_QueryInterface(IWMReaderAdvanced* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced_AddRef(IWMReaderAdvanced* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced_Release(IWMReaderAdvanced* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMReaderAdvanced methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL fUserClock) {
+ return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL *pfUserClock) {
+ return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_DeliverTime(IWMReaderAdvanced* This,QWORD cnsTime) {
+ return This->lpVtbl->DeliverTime(This,cnsTime);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL fSelection) {
+ return This->lpVtbl->SetManualStreamSelection(This,fSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL *pfSelection) {
+ return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetStreamsSelected(IWMReaderAdvanced* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
+ return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetStreamSelected(IWMReaderAdvanced* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
+ return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL fGetCallbacks) {
+ return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL *pfGetCallbacks) {
+ return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
+ return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
+ return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetAllocateForStream(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetAllocateForStream(IWMReaderAdvanced* This,WORD dwSreamNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetStatistics(IWMReaderAdvanced* This,WM_READER_STATISTICS *pStatistics) {
+ return This->lpVtbl->GetStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_SetClientInfo(IWMReaderAdvanced* This,WM_READER_CLIENTINFO *pClientInfo) {
+ return This->lpVtbl->SetClientInfo(This,pClientInfo);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetMaxOutputSampleSize(IWMReaderAdvanced* This,DWORD dwOutput,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_GetMaxStreamSampleSize(IWMReaderAdvanced* This,WORD wStream,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced_NotifyLateDelivery(IWMReaderAdvanced* This,QWORD cnsLateness) {
+ return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetUserProvidedClock_Proxy(
+ IWMReaderAdvanced* This,
+ WINBOOL fUserClock);
+void __RPC_STUB IWMReaderAdvanced_SetUserProvidedClock_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetUserProvidedClock_Proxy(
+ IWMReaderAdvanced* This,
+ WINBOOL *pfUserClock);
+void __RPC_STUB IWMReaderAdvanced_GetUserProvidedClock_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_DeliverTime_Proxy(
+ IWMReaderAdvanced* This,
+ QWORD cnsTime);
+void __RPC_STUB IWMReaderAdvanced_DeliverTime_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetManualStreamSelection_Proxy(
+ IWMReaderAdvanced* This,
+ WINBOOL fSelection);
+void __RPC_STUB IWMReaderAdvanced_SetManualStreamSelection_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetManualStreamSelection_Proxy(
+ IWMReaderAdvanced* This,
+ WINBOOL *pfSelection);
+void __RPC_STUB IWMReaderAdvanced_GetManualStreamSelection_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetStreamsSelected_Proxy(
+ IWMReaderAdvanced* This,
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections);
+void __RPC_STUB IWMReaderAdvanced_SetStreamsSelected_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetStreamSelected_Proxy(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection);
+void __RPC_STUB IWMReaderAdvanced_GetStreamSelected_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetReceiveSelectionCallbacks_Proxy(
+ IWMReaderAdvanced* This,
+ WINBOOL fGetCallbacks);
+void __RPC_STUB IWMReaderAdvanced_SetReceiveSelectionCallbacks_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetReceiveSelectionCallbacks_Proxy(
+ IWMReaderAdvanced* This,
+ WINBOOL *pfGetCallbacks);
+void __RPC_STUB IWMReaderAdvanced_GetReceiveSelectionCallbacks_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetReceiveStreamSamples_Proxy(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples);
+void __RPC_STUB IWMReaderAdvanced_SetReceiveStreamSamples_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetReceiveStreamSamples_Proxy(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples);
+void __RPC_STUB IWMReaderAdvanced_GetReceiveStreamSamples_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetAllocateForOutput_Proxy(
+ IWMReaderAdvanced* This,
+ DWORD dwOutputNum,
+ WINBOOL fAllocate);
+void __RPC_STUB IWMReaderAdvanced_SetAllocateForOutput_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetAllocateForOutput_Proxy(
+ IWMReaderAdvanced* This,
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate);
+void __RPC_STUB IWMReaderAdvanced_GetAllocateForOutput_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetAllocateForStream_Proxy(
+ IWMReaderAdvanced* This,
+ WORD wStreamNum,
+ WINBOOL fAllocate);
+void __RPC_STUB IWMReaderAdvanced_SetAllocateForStream_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetAllocateForStream_Proxy(
+ IWMReaderAdvanced* This,
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate);
+void __RPC_STUB IWMReaderAdvanced_GetAllocateForStream_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetStatistics_Proxy(
+ IWMReaderAdvanced* This,
+ WM_READER_STATISTICS *pStatistics);
+void __RPC_STUB IWMReaderAdvanced_GetStatistics_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_SetClientInfo_Proxy(
+ IWMReaderAdvanced* This,
+ WM_READER_CLIENTINFO *pClientInfo);
+void __RPC_STUB IWMReaderAdvanced_SetClientInfo_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetMaxOutputSampleSize_Proxy(
+ IWMReaderAdvanced* This,
+ DWORD dwOutput,
+ DWORD *pcbMax);
+void __RPC_STUB IWMReaderAdvanced_GetMaxOutputSampleSize_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_GetMaxStreamSampleSize_Proxy(
+ IWMReaderAdvanced* This,
+ WORD wStream,
+ DWORD *pcbMax);
+void __RPC_STUB IWMReaderAdvanced_GetMaxStreamSampleSize_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced_NotifyLateDelivery_Proxy(
+ IWMReaderAdvanced* This,
+ QWORD cnsLateness);
+void __RPC_STUB IWMReaderAdvanced_NotifyLateDelivery_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMReaderAdvanced_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMReaderAdvanced2 interface
+ */
+#ifndef __IWMReaderAdvanced2_INTERFACE_DEFINED__
+#define __IWMReaderAdvanced2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ae14a945-b90c-4d0d-9127-80d665f7d73e")
+IWMReaderAdvanced2 : public IWMReaderAdvanced
+{
+ virtual HRESULT STDMETHODCALLTYPE SetPlayMode(
+ WMT_PLAY_MODE Mode) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPlayMode(
+ WMT_PLAY_MODE *pMode) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBufferProgress(
+ DWORD *pdwPercent,
+ QWORD *pcnsBuffering) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDownloadProgress(
+ DWORD *pdwPercent,
+ QWORD *pqwBytesDownloaded,
+ QWORD *pcnsDownload) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSaveAsProgress(
+ DWORD *pdwPercent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SaveFileAs(
+ const WCHAR *pwszFilename) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProtocolName(
+ WCHAR *pwszProtocol,
+ DWORD *pcchProtocol) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartAtMarker(
+ WORD wMarkerIndex,
+ QWORD cnsDuration,
+ float fRate,
+ void *pvContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOutputSetting(
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetOutputSetting(
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Preroll(
+ QWORD cnsStart,
+ QWORD cnsDuration,
+ float fRate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetLogClientID(
+ WINBOOL fLogClientID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLogClientID(
+ WINBOOL *pfLogClientID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StopBuffering(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenStream(
+ IStream *pStream,
+ IWMReaderCallback *pCallback,
+ void *pvContext) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e)
+#endif
+#else
+typedef struct IWMReaderAdvanced2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMReaderAdvanced2* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMReaderAdvanced2* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMReaderAdvanced2* This);
+
+ /*** IWMReaderAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
+ IWMReaderAdvanced2* This,
+ WINBOOL fUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
+ IWMReaderAdvanced2* This,
+ WINBOOL *pfUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *DeliverTime)(
+ IWMReaderAdvanced2* This,
+ QWORD cnsTime);
+
+ HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
+ IWMReaderAdvanced2* This,
+ WINBOOL fSelection);
+
+ HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
+ IWMReaderAdvanced2* This,
+ WINBOOL *pfSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
+ IWMReaderAdvanced2* This,
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
+ IWMReaderAdvanced2* This,
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced2* This,
+ WINBOOL fGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced2* This,
+ WINBOOL *pfGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
+ IWMReaderAdvanced2* This,
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
+ IWMReaderAdvanced2* This,
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
+ IWMReaderAdvanced2* This,
+ DWORD dwOutputNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
+ IWMReaderAdvanced2* This,
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
+ IWMReaderAdvanced2* This,
+ WORD wStreamNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
+ IWMReaderAdvanced2* This,
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMReaderAdvanced2* This,
+ WM_READER_STATISTICS *pStatistics);
+
+ HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
+ IWMReaderAdvanced2* This,
+ WM_READER_CLIENTINFO *pClientInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
+ IWMReaderAdvanced2* This,
+ DWORD dwOutput,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
+ IWMReaderAdvanced2* This,
+ WORD wStream,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
+ IWMReaderAdvanced2* This,
+ QWORD cnsLateness);
+
+ /*** IWMReaderAdvanced2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
+ IWMReaderAdvanced2* This,
+ WMT_PLAY_MODE Mode);
+
+ HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
+ IWMReaderAdvanced2* This,
+ WMT_PLAY_MODE *pMode);
+
+ HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
+ IWMReaderAdvanced2* This,
+ DWORD *pdwPercent,
+ QWORD *pcnsBuffering);
+
+ HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
+ IWMReaderAdvanced2* This,
+ DWORD *pdwPercent,
+ QWORD *pqwBytesDownloaded,
+ QWORD *pcnsDownload);
+
+ HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
+ IWMReaderAdvanced2* This,
+ DWORD *pdwPercent);
+
+ HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
+ IWMReaderAdvanced2* This,
+ const WCHAR *pwszFilename);
+
+ HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
+ IWMReaderAdvanced2* This,
+ WCHAR *pwszProtocol,
+ DWORD *pcchProtocol);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
+ IWMReaderAdvanced2* This,
+ WORD wMarkerIndex,
+ QWORD cnsDuration,
+ float fRate,
+ void *pvContext);
+
+ HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
+ IWMReaderAdvanced2* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
+ IWMReaderAdvanced2* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+
+ HRESULT (STDMETHODCALLTYPE *Preroll)(
+ IWMReaderAdvanced2* This,
+ QWORD cnsStart,
+ QWORD cnsDuration,
+ float fRate);
+
+ HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
+ IWMReaderAdvanced2* This,
+ WINBOOL fLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
+ IWMReaderAdvanced2* This,
+ WINBOOL *pfLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *StopBuffering)(
+ IWMReaderAdvanced2* This);
+
+ HRESULT (STDMETHODCALLTYPE *OpenStream)(
+ IWMReaderAdvanced2* This,
+ IStream *pStream,
+ IWMReaderCallback *pCallback,
+ void *pvContext);
+
+ END_INTERFACE
+} IWMReaderAdvanced2Vtbl;
+interface IWMReaderAdvanced2 {
+ CONST_VTBL IWMReaderAdvanced2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMReaderAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMReaderAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMReaderAdvanced2_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMReaderAdvanced methods ***/
+#define IWMReaderAdvanced2_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
+#define IWMReaderAdvanced2_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
+#define IWMReaderAdvanced2_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
+#define IWMReaderAdvanced2_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
+#define IWMReaderAdvanced2_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
+#define IWMReaderAdvanced2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
+#define IWMReaderAdvanced2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
+#define IWMReaderAdvanced2_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
+#define IWMReaderAdvanced2_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
+#define IWMReaderAdvanced2_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
+#define IWMReaderAdvanced2_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
+#define IWMReaderAdvanced2_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
+#define IWMReaderAdvanced2_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
+#define IWMReaderAdvanced2_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
+#define IWMReaderAdvanced2_GetAllocateForStream(This,dwSreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate)
+#define IWMReaderAdvanced2_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
+#define IWMReaderAdvanced2_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
+#define IWMReaderAdvanced2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
+#define IWMReaderAdvanced2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
+#define IWMReaderAdvanced2_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
+/*** IWMReaderAdvanced2 methods ***/
+#define IWMReaderAdvanced2_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
+#define IWMReaderAdvanced2_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
+#define IWMReaderAdvanced2_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
+#define IWMReaderAdvanced2_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
+#define IWMReaderAdvanced2_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
+#define IWMReaderAdvanced2_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
+#define IWMReaderAdvanced2_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
+#define IWMReaderAdvanced2_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
+#define IWMReaderAdvanced2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
+#define IWMReaderAdvanced2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
+#define IWMReaderAdvanced2_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
+#define IWMReaderAdvanced2_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
+#define IWMReaderAdvanced2_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
+#define IWMReaderAdvanced2_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
+#define IWMReaderAdvanced2_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced2_QueryInterface(IWMReaderAdvanced2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced2_AddRef(IWMReaderAdvanced2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced2_Release(IWMReaderAdvanced2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMReaderAdvanced methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL fUserClock) {
+ return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL *pfUserClock) {
+ return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_DeliverTime(IWMReaderAdvanced2* This,QWORD cnsTime) {
+ return This->lpVtbl->DeliverTime(This,cnsTime);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL fSelection) {
+ return This->lpVtbl->SetManualStreamSelection(This,fSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL *pfSelection) {
+ return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetStreamsSelected(IWMReaderAdvanced2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
+ return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetStreamSelected(IWMReaderAdvanced2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
+ return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL fGetCallbacks) {
+ return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL *pfGetCallbacks) {
+ return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
+ return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
+ return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetAllocateForStream(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetAllocateForStream(IWMReaderAdvanced2* This,WORD dwSreamNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetStatistics(IWMReaderAdvanced2* This,WM_READER_STATISTICS *pStatistics) {
+ return This->lpVtbl->GetStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetClientInfo(IWMReaderAdvanced2* This,WM_READER_CLIENTINFO *pClientInfo) {
+ return This->lpVtbl->SetClientInfo(This,pClientInfo);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetMaxOutputSampleSize(IWMReaderAdvanced2* This,DWORD dwOutput,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetMaxStreamSampleSize(IWMReaderAdvanced2* This,WORD wStream,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_NotifyLateDelivery(IWMReaderAdvanced2* This,QWORD cnsLateness) {
+ return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
+}
+/*** IWMReaderAdvanced2 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE Mode) {
+ return This->lpVtbl->SetPlayMode(This,Mode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE *pMode) {
+ return This->lpVtbl->GetPlayMode(This,pMode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetBufferProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
+ return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetDownloadProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
+ return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetSaveAsProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent) {
+ return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SaveFileAs(IWMReaderAdvanced2* This,const WCHAR *pwszFilename) {
+ return This->lpVtbl->SaveFileAs(This,pwszFilename);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetProtocolName(IWMReaderAdvanced2* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
+ return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_StartAtMarker(IWMReaderAdvanced2* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
+ return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
+ return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_Preroll(IWMReaderAdvanced2* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
+ return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_SetLogClientID(IWMReaderAdvanced2* This,WINBOOL fLogClientID) {
+ return This->lpVtbl->SetLogClientID(This,fLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_GetLogClientID(IWMReaderAdvanced2* This,WINBOOL *pfLogClientID) {
+ return This->lpVtbl->GetLogClientID(This,pfLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_StopBuffering(IWMReaderAdvanced2* This) {
+ return This->lpVtbl->StopBuffering(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced2_OpenStream(IWMReaderAdvanced2* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
+ return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SetPlayMode_Proxy(
+ IWMReaderAdvanced2* This,
+ WMT_PLAY_MODE Mode);
+void __RPC_STUB IWMReaderAdvanced2_SetPlayMode_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetPlayMode_Proxy(
+ IWMReaderAdvanced2* This,
+ WMT_PLAY_MODE *pMode);
+void __RPC_STUB IWMReaderAdvanced2_GetPlayMode_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetBufferProgress_Proxy(
+ IWMReaderAdvanced2* This,
+ DWORD *pdwPercent,
+ QWORD *pcnsBuffering);
+void __RPC_STUB IWMReaderAdvanced2_GetBufferProgress_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetDownloadProgress_Proxy(
+ IWMReaderAdvanced2* This,
+ DWORD *pdwPercent,
+ QWORD *pqwBytesDownloaded,
+ QWORD *pcnsDownload);
+void __RPC_STUB IWMReaderAdvanced2_GetDownloadProgress_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetSaveAsProgress_Proxy(
+ IWMReaderAdvanced2* This,
+ DWORD *pdwPercent);
+void __RPC_STUB IWMReaderAdvanced2_GetSaveAsProgress_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SaveFileAs_Proxy(
+ IWMReaderAdvanced2* This,
+ const WCHAR *pwszFilename);
+void __RPC_STUB IWMReaderAdvanced2_SaveFileAs_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetProtocolName_Proxy(
+ IWMReaderAdvanced2* This,
+ WCHAR *pwszProtocol,
+ DWORD *pcchProtocol);
+void __RPC_STUB IWMReaderAdvanced2_GetProtocolName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_StartAtMarker_Proxy(
+ IWMReaderAdvanced2* This,
+ WORD wMarkerIndex,
+ QWORD cnsDuration,
+ float fRate,
+ void *pvContext);
+void __RPC_STUB IWMReaderAdvanced2_StartAtMarker_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetOutputSetting_Proxy(
+ IWMReaderAdvanced2* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+void __RPC_STUB IWMReaderAdvanced2_GetOutputSetting_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SetOutputSetting_Proxy(
+ IWMReaderAdvanced2* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+void __RPC_STUB IWMReaderAdvanced2_SetOutputSetting_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_Preroll_Proxy(
+ IWMReaderAdvanced2* This,
+ QWORD cnsStart,
+ QWORD cnsDuration,
+ float fRate);
+void __RPC_STUB IWMReaderAdvanced2_Preroll_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_SetLogClientID_Proxy(
+ IWMReaderAdvanced2* This,
+ WINBOOL fLogClientID);
+void __RPC_STUB IWMReaderAdvanced2_SetLogClientID_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_GetLogClientID_Proxy(
+ IWMReaderAdvanced2* This,
+ WINBOOL *pfLogClientID);
+void __RPC_STUB IWMReaderAdvanced2_GetLogClientID_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_StopBuffering_Proxy(
+ IWMReaderAdvanced2* This);
+void __RPC_STUB IWMReaderAdvanced2_StopBuffering_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced2_OpenStream_Proxy(
+ IWMReaderAdvanced2* This,
+ IStream *pStream,
+ IWMReaderCallback *pCallback,
+ void *pvContext);
+void __RPC_STUB IWMReaderAdvanced2_OpenStream_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMReaderAdvanced2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMReaderAdvanced3 interface
+ */
+#ifndef __IWMReaderAdvanced3_INTERFACE_DEFINED__
+#define __IWMReaderAdvanced3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5dc0674b-f04b-4a4e-9f2a-b1afde2c8100")
+IWMReaderAdvanced3 : public IWMReaderAdvanced2
+{
+ virtual HRESULT STDMETHODCALLTYPE StopNetStreaming(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartAtPosition(
+ WORD wStreamNum,
+ void *pvOffsetStart,
+ void *pvDuration,
+ WMT_OFFSET_FORMAT dwOffsetFormat,
+ float fRate,
+ void *pvContext) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00)
+#endif
+#else
+typedef struct IWMReaderAdvanced3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMReaderAdvanced3* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMReaderAdvanced3* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMReaderAdvanced3* This);
+
+ /*** IWMReaderAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
+ IWMReaderAdvanced3* This,
+ WINBOOL fUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
+ IWMReaderAdvanced3* This,
+ WINBOOL *pfUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *DeliverTime)(
+ IWMReaderAdvanced3* This,
+ QWORD cnsTime);
+
+ HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
+ IWMReaderAdvanced3* This,
+ WINBOOL fSelection);
+
+ HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
+ IWMReaderAdvanced3* This,
+ WINBOOL *pfSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
+ IWMReaderAdvanced3* This,
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
+ IWMReaderAdvanced3* This,
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced3* This,
+ WINBOOL fGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced3* This,
+ WINBOOL *pfGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
+ IWMReaderAdvanced3* This,
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
+ IWMReaderAdvanced3* This,
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
+ IWMReaderAdvanced3* This,
+ DWORD dwOutputNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
+ IWMReaderAdvanced3* This,
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
+ IWMReaderAdvanced3* This,
+ WORD wStreamNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
+ IWMReaderAdvanced3* This,
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMReaderAdvanced3* This,
+ WM_READER_STATISTICS *pStatistics);
+
+ HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
+ IWMReaderAdvanced3* This,
+ WM_READER_CLIENTINFO *pClientInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
+ IWMReaderAdvanced3* This,
+ DWORD dwOutput,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
+ IWMReaderAdvanced3* This,
+ WORD wStream,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
+ IWMReaderAdvanced3* This,
+ QWORD cnsLateness);
+
+ /*** IWMReaderAdvanced2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
+ IWMReaderAdvanced3* This,
+ WMT_PLAY_MODE Mode);
+
+ HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
+ IWMReaderAdvanced3* This,
+ WMT_PLAY_MODE *pMode);
+
+ HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
+ IWMReaderAdvanced3* This,
+ DWORD *pdwPercent,
+ QWORD *pcnsBuffering);
+
+ HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
+ IWMReaderAdvanced3* This,
+ DWORD *pdwPercent,
+ QWORD *pqwBytesDownloaded,
+ QWORD *pcnsDownload);
+
+ HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
+ IWMReaderAdvanced3* This,
+ DWORD *pdwPercent);
+
+ HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
+ IWMReaderAdvanced3* This,
+ const WCHAR *pwszFilename);
+
+ HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
+ IWMReaderAdvanced3* This,
+ WCHAR *pwszProtocol,
+ DWORD *pcchProtocol);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
+ IWMReaderAdvanced3* This,
+ WORD wMarkerIndex,
+ QWORD cnsDuration,
+ float fRate,
+ void *pvContext);
+
+ HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
+ IWMReaderAdvanced3* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
+ IWMReaderAdvanced3* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+
+ HRESULT (STDMETHODCALLTYPE *Preroll)(
+ IWMReaderAdvanced3* This,
+ QWORD cnsStart,
+ QWORD cnsDuration,
+ float fRate);
+
+ HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
+ IWMReaderAdvanced3* This,
+ WINBOOL fLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
+ IWMReaderAdvanced3* This,
+ WINBOOL *pfLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *StopBuffering)(
+ IWMReaderAdvanced3* This);
+
+ HRESULT (STDMETHODCALLTYPE *OpenStream)(
+ IWMReaderAdvanced3* This,
+ IStream *pStream,
+ IWMReaderCallback *pCallback,
+ void *pvContext);
+
+ /*** IWMReaderAdvanced3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
+ IWMReaderAdvanced3* This);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
+ IWMReaderAdvanced3* This,
+ WORD wStreamNum,
+ void *pvOffsetStart,
+ void *pvDuration,
+ WMT_OFFSET_FORMAT dwOffsetFormat,
+ float fRate,
+ void *pvContext);
+
+ END_INTERFACE
+} IWMReaderAdvanced3Vtbl;
+interface IWMReaderAdvanced3 {
+ CONST_VTBL IWMReaderAdvanced3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMReaderAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMReaderAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMReaderAdvanced3_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMReaderAdvanced methods ***/
+#define IWMReaderAdvanced3_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
+#define IWMReaderAdvanced3_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
+#define IWMReaderAdvanced3_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
+#define IWMReaderAdvanced3_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
+#define IWMReaderAdvanced3_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
+#define IWMReaderAdvanced3_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
+#define IWMReaderAdvanced3_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
+#define IWMReaderAdvanced3_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
+#define IWMReaderAdvanced3_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
+#define IWMReaderAdvanced3_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
+#define IWMReaderAdvanced3_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
+#define IWMReaderAdvanced3_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
+#define IWMReaderAdvanced3_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
+#define IWMReaderAdvanced3_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
+#define IWMReaderAdvanced3_GetAllocateForStream(This,dwSreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate)
+#define IWMReaderAdvanced3_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
+#define IWMReaderAdvanced3_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
+#define IWMReaderAdvanced3_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
+#define IWMReaderAdvanced3_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
+#define IWMReaderAdvanced3_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
+/*** IWMReaderAdvanced2 methods ***/
+#define IWMReaderAdvanced3_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
+#define IWMReaderAdvanced3_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
+#define IWMReaderAdvanced3_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
+#define IWMReaderAdvanced3_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
+#define IWMReaderAdvanced3_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
+#define IWMReaderAdvanced3_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
+#define IWMReaderAdvanced3_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
+#define IWMReaderAdvanced3_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
+#define IWMReaderAdvanced3_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
+#define IWMReaderAdvanced3_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
+#define IWMReaderAdvanced3_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
+#define IWMReaderAdvanced3_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
+#define IWMReaderAdvanced3_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
+#define IWMReaderAdvanced3_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
+#define IWMReaderAdvanced3_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
+/*** IWMReaderAdvanced3 methods ***/
+#define IWMReaderAdvanced3_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
+#define IWMReaderAdvanced3_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced3_QueryInterface(IWMReaderAdvanced3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced3_AddRef(IWMReaderAdvanced3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced3_Release(IWMReaderAdvanced3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMReaderAdvanced methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL fUserClock) {
+ return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL *pfUserClock) {
+ return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_DeliverTime(IWMReaderAdvanced3* This,QWORD cnsTime) {
+ return This->lpVtbl->DeliverTime(This,cnsTime);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL fSelection) {
+ return This->lpVtbl->SetManualStreamSelection(This,fSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL *pfSelection) {
+ return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetStreamsSelected(IWMReaderAdvanced3* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
+ return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetStreamSelected(IWMReaderAdvanced3* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
+ return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL fGetCallbacks) {
+ return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL *pfGetCallbacks) {
+ return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
+ return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
+ return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetAllocateForStream(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetAllocateForStream(IWMReaderAdvanced3* This,WORD dwSreamNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetStatistics(IWMReaderAdvanced3* This,WM_READER_STATISTICS *pStatistics) {
+ return This->lpVtbl->GetStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetClientInfo(IWMReaderAdvanced3* This,WM_READER_CLIENTINFO *pClientInfo) {
+ return This->lpVtbl->SetClientInfo(This,pClientInfo);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetMaxOutputSampleSize(IWMReaderAdvanced3* This,DWORD dwOutput,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetMaxStreamSampleSize(IWMReaderAdvanced3* This,WORD wStream,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_NotifyLateDelivery(IWMReaderAdvanced3* This,QWORD cnsLateness) {
+ return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
+}
+/*** IWMReaderAdvanced2 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE Mode) {
+ return This->lpVtbl->SetPlayMode(This,Mode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE *pMode) {
+ return This->lpVtbl->GetPlayMode(This,pMode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetBufferProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
+ return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetDownloadProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
+ return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetSaveAsProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent) {
+ return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SaveFileAs(IWMReaderAdvanced3* This,const WCHAR *pwszFilename) {
+ return This->lpVtbl->SaveFileAs(This,pwszFilename);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetProtocolName(IWMReaderAdvanced3* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
+ return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_StartAtMarker(IWMReaderAdvanced3* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
+ return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
+ return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_Preroll(IWMReaderAdvanced3* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
+ return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_SetLogClientID(IWMReaderAdvanced3* This,WINBOOL fLogClientID) {
+ return This->lpVtbl->SetLogClientID(This,fLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_GetLogClientID(IWMReaderAdvanced3* This,WINBOOL *pfLogClientID) {
+ return This->lpVtbl->GetLogClientID(This,pfLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_StopBuffering(IWMReaderAdvanced3* This) {
+ return This->lpVtbl->StopBuffering(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_OpenStream(IWMReaderAdvanced3* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
+ return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
+}
+/*** IWMReaderAdvanced3 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced3_StopNetStreaming(IWMReaderAdvanced3* This) {
+ return This->lpVtbl->StopNetStreaming(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced3_StartAtPosition(IWMReaderAdvanced3* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced3_StopNetStreaming_Proxy(
+ IWMReaderAdvanced3* This);
+void __RPC_STUB IWMReaderAdvanced3_StopNetStreaming_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced3_StartAtPosition_Proxy(
+ IWMReaderAdvanced3* This,
+ WORD wStreamNum,
+ void *pvOffsetStart,
+ void *pvDuration,
+ WMT_OFFSET_FORMAT dwOffsetFormat,
+ float fRate,
+ void *pvContext);
+void __RPC_STUB IWMReaderAdvanced3_StartAtPosition_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMReaderAdvanced3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMReaderAdvanced4 interface
+ */
+#ifndef __IWMReaderAdvanced4_INTERFACE_DEFINED__
+#define __IWMReaderAdvanced4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("945a76a2-12ae-4d48-bd3c-cd1d90399b85")
+IWMReaderAdvanced4 : public IWMReaderAdvanced3
+{
+ virtual HRESULT STDMETHODCALLTYPE GetLanguageCount(
+ DWORD dwOutputNum,
+ WORD *pwLanguageCount) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLanguage(
+ DWORD dwOutputNum,
+ WORD wLanguage,
+ WCHAR *pwszLanguageString,
+ WORD *pcchLanguageStringLength) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaxSpeedFactor(
+ double *pdblFactor) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsUsingFastCache(
+ WINBOOL *pfUsingFastCache) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddLogParam(
+ LPCWSTR wszNameSpace,
+ LPCWSTR wszName,
+ LPCWSTR wszValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SendLogParams(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CanSaveFileAs(
+ WINBOOL *pfCanSave) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CancelSaveFileAs(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetURL(
+ WCHAR *pwszURL,
+ DWORD *pcchURL) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85)
+#endif
+#else
+typedef struct IWMReaderAdvanced4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMReaderAdvanced4* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMReaderAdvanced4* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMReaderAdvanced4* This);
+
+ /*** IWMReaderAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
+ IWMReaderAdvanced4* This,
+ WINBOOL fUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *DeliverTime)(
+ IWMReaderAdvanced4* This,
+ QWORD cnsTime);
+
+ HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
+ IWMReaderAdvanced4* This,
+ WINBOOL fSelection);
+
+ HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
+ IWMReaderAdvanced4* This,
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
+ IWMReaderAdvanced4* This,
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced4* This,
+ WINBOOL fGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
+ IWMReaderAdvanced4* This,
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
+ IWMReaderAdvanced4* This,
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
+ IWMReaderAdvanced4* This,
+ WORD wStreamNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
+ IWMReaderAdvanced4* This,
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMReaderAdvanced4* This,
+ WM_READER_STATISTICS *pStatistics);
+
+ HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
+ IWMReaderAdvanced4* This,
+ WM_READER_CLIENTINFO *pClientInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutput,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
+ IWMReaderAdvanced4* This,
+ WORD wStream,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
+ IWMReaderAdvanced4* This,
+ QWORD cnsLateness);
+
+ /*** IWMReaderAdvanced2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
+ IWMReaderAdvanced4* This,
+ WMT_PLAY_MODE Mode);
+
+ HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
+ IWMReaderAdvanced4* This,
+ WMT_PLAY_MODE *pMode);
+
+ HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
+ IWMReaderAdvanced4* This,
+ DWORD *pdwPercent,
+ QWORD *pcnsBuffering);
+
+ HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
+ IWMReaderAdvanced4* This,
+ DWORD *pdwPercent,
+ QWORD *pqwBytesDownloaded,
+ QWORD *pcnsDownload);
+
+ HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
+ IWMReaderAdvanced4* This,
+ DWORD *pdwPercent);
+
+ HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
+ IWMReaderAdvanced4* This,
+ const WCHAR *pwszFilename);
+
+ HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
+ IWMReaderAdvanced4* This,
+ WCHAR *pwszProtocol,
+ DWORD *pcchProtocol);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
+ IWMReaderAdvanced4* This,
+ WORD wMarkerIndex,
+ QWORD cnsDuration,
+ float fRate,
+ void *pvContext);
+
+ HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+
+ HRESULT (STDMETHODCALLTYPE *Preroll)(
+ IWMReaderAdvanced4* This,
+ QWORD cnsStart,
+ QWORD cnsDuration,
+ float fRate);
+
+ HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
+ IWMReaderAdvanced4* This,
+ WINBOOL fLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *StopBuffering)(
+ IWMReaderAdvanced4* This);
+
+ HRESULT (STDMETHODCALLTYPE *OpenStream)(
+ IWMReaderAdvanced4* This,
+ IStream *pStream,
+ IWMReaderCallback *pCallback,
+ void *pvContext);
+
+ /*** IWMReaderAdvanced3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
+ IWMReaderAdvanced4* This);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
+ IWMReaderAdvanced4* This,
+ WORD wStreamNum,
+ void *pvOffsetStart,
+ void *pvDuration,
+ WMT_OFFSET_FORMAT dwOffsetFormat,
+ float fRate,
+ void *pvContext);
+
+ /*** IWMReaderAdvanced4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ WORD *pwLanguageCount);
+
+ HRESULT (STDMETHODCALLTYPE *GetLanguage)(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ WORD wLanguage,
+ WCHAR *pwszLanguageString,
+ WORD *pcchLanguageStringLength);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
+ IWMReaderAdvanced4* This,
+ double *pdblFactor);
+
+ HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfUsingFastCache);
+
+ HRESULT (STDMETHODCALLTYPE *AddLogParam)(
+ IWMReaderAdvanced4* This,
+ LPCWSTR wszNameSpace,
+ LPCWSTR wszName,
+ LPCWSTR wszValue);
+
+ HRESULT (STDMETHODCALLTYPE *SendLogParams)(
+ IWMReaderAdvanced4* This);
+
+ HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfCanSave);
+
+ HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
+ IWMReaderAdvanced4* This);
+
+ HRESULT (STDMETHODCALLTYPE *GetURL)(
+ IWMReaderAdvanced4* This,
+ WCHAR *pwszURL,
+ DWORD *pcchURL);
+
+ END_INTERFACE
+} IWMReaderAdvanced4Vtbl;
+interface IWMReaderAdvanced4 {
+ CONST_VTBL IWMReaderAdvanced4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMReaderAdvanced4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMReaderAdvanced4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMReaderAdvanced4_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMReaderAdvanced methods ***/
+#define IWMReaderAdvanced4_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
+#define IWMReaderAdvanced4_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
+#define IWMReaderAdvanced4_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
+#define IWMReaderAdvanced4_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
+#define IWMReaderAdvanced4_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
+#define IWMReaderAdvanced4_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
+#define IWMReaderAdvanced4_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
+#define IWMReaderAdvanced4_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
+#define IWMReaderAdvanced4_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
+#define IWMReaderAdvanced4_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
+#define IWMReaderAdvanced4_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
+#define IWMReaderAdvanced4_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
+#define IWMReaderAdvanced4_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
+#define IWMReaderAdvanced4_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
+#define IWMReaderAdvanced4_GetAllocateForStream(This,dwSreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate)
+#define IWMReaderAdvanced4_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
+#define IWMReaderAdvanced4_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
+#define IWMReaderAdvanced4_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
+#define IWMReaderAdvanced4_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
+#define IWMReaderAdvanced4_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
+/*** IWMReaderAdvanced2 methods ***/
+#define IWMReaderAdvanced4_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
+#define IWMReaderAdvanced4_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
+#define IWMReaderAdvanced4_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
+#define IWMReaderAdvanced4_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
+#define IWMReaderAdvanced4_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
+#define IWMReaderAdvanced4_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
+#define IWMReaderAdvanced4_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
+#define IWMReaderAdvanced4_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
+#define IWMReaderAdvanced4_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
+#define IWMReaderAdvanced4_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
+#define IWMReaderAdvanced4_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
+#define IWMReaderAdvanced4_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
+#define IWMReaderAdvanced4_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
+#define IWMReaderAdvanced4_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
+#define IWMReaderAdvanced4_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
+/*** IWMReaderAdvanced3 methods ***/
+#define IWMReaderAdvanced4_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
+#define IWMReaderAdvanced4_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
+/*** IWMReaderAdvanced4 methods ***/
+#define IWMReaderAdvanced4_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
+#define IWMReaderAdvanced4_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
+#define IWMReaderAdvanced4_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
+#define IWMReaderAdvanced4_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
+#define IWMReaderAdvanced4_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
+#define IWMReaderAdvanced4_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
+#define IWMReaderAdvanced4_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
+#define IWMReaderAdvanced4_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
+#define IWMReaderAdvanced4_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced4_QueryInterface(IWMReaderAdvanced4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced4_AddRef(IWMReaderAdvanced4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced4_Release(IWMReaderAdvanced4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMReaderAdvanced methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL fUserClock) {
+ return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL *pfUserClock) {
+ return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_DeliverTime(IWMReaderAdvanced4* This,QWORD cnsTime) {
+ return This->lpVtbl->DeliverTime(This,cnsTime);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL fSelection) {
+ return This->lpVtbl->SetManualStreamSelection(This,fSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL *pfSelection) {
+ return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetStreamsSelected(IWMReaderAdvanced4* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
+ return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetStreamSelected(IWMReaderAdvanced4* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
+ return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL fGetCallbacks) {
+ return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL *pfGetCallbacks) {
+ return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
+ return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
+ return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetAllocateForStream(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetAllocateForStream(IWMReaderAdvanced4* This,WORD dwSreamNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetStatistics(IWMReaderAdvanced4* This,WM_READER_STATISTICS *pStatistics) {
+ return This->lpVtbl->GetStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetClientInfo(IWMReaderAdvanced4* This,WM_READER_CLIENTINFO *pClientInfo) {
+ return This->lpVtbl->SetClientInfo(This,pClientInfo);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxOutputSampleSize(IWMReaderAdvanced4* This,DWORD dwOutput,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxStreamSampleSize(IWMReaderAdvanced4* This,WORD wStream,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_NotifyLateDelivery(IWMReaderAdvanced4* This,QWORD cnsLateness) {
+ return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
+}
+/*** IWMReaderAdvanced2 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE Mode) {
+ return This->lpVtbl->SetPlayMode(This,Mode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE *pMode) {
+ return This->lpVtbl->GetPlayMode(This,pMode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetBufferProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
+ return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetDownloadProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
+ return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetSaveAsProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent) {
+ return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SaveFileAs(IWMReaderAdvanced4* This,const WCHAR *pwszFilename) {
+ return This->lpVtbl->SaveFileAs(This,pwszFilename);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetProtocolName(IWMReaderAdvanced4* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
+ return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_StartAtMarker(IWMReaderAdvanced4* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
+ return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
+ return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_Preroll(IWMReaderAdvanced4* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
+ return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SetLogClientID(IWMReaderAdvanced4* This,WINBOOL fLogClientID) {
+ return This->lpVtbl->SetLogClientID(This,fLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLogClientID(IWMReaderAdvanced4* This,WINBOOL *pfLogClientID) {
+ return This->lpVtbl->GetLogClientID(This,pfLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_StopBuffering(IWMReaderAdvanced4* This) {
+ return This->lpVtbl->StopBuffering(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_OpenStream(IWMReaderAdvanced4* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
+ return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
+}
+/*** IWMReaderAdvanced3 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced4_StopNetStreaming(IWMReaderAdvanced4* This) {
+ return This->lpVtbl->StopNetStreaming(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_StartAtPosition(IWMReaderAdvanced4* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
+}
+/*** IWMReaderAdvanced4 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLanguageCount(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
+ return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLanguage(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
+ return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxSpeedFactor(IWMReaderAdvanced4* This,double *pdblFactor) {
+ return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_IsUsingFastCache(IWMReaderAdvanced4* This,WINBOOL *pfUsingFastCache) {
+ return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_AddLogParam(IWMReaderAdvanced4* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
+ return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_SendLogParams(IWMReaderAdvanced4* This) {
+ return This->lpVtbl->SendLogParams(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_CanSaveFileAs(IWMReaderAdvanced4* This,WINBOOL *pfCanSave) {
+ return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_CancelSaveFileAs(IWMReaderAdvanced4* This) {
+ return This->lpVtbl->CancelSaveFileAs(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced4_GetURL(IWMReaderAdvanced4* This,WCHAR *pwszURL,DWORD *pcchURL) {
+ return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetLanguageCount_Proxy(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ WORD *pwLanguageCount);
+void __RPC_STUB IWMReaderAdvanced4_GetLanguageCount_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetLanguage_Proxy(
+ IWMReaderAdvanced4* This,
+ DWORD dwOutputNum,
+ WORD wLanguage,
+ WCHAR *pwszLanguageString,
+ WORD *pcchLanguageStringLength);
+void __RPC_STUB IWMReaderAdvanced4_GetLanguage_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetMaxSpeedFactor_Proxy(
+ IWMReaderAdvanced4* This,
+ double *pdblFactor);
+void __RPC_STUB IWMReaderAdvanced4_GetMaxSpeedFactor_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_IsUsingFastCache_Proxy(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfUsingFastCache);
+void __RPC_STUB IWMReaderAdvanced4_IsUsingFastCache_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_AddLogParam_Proxy(
+ IWMReaderAdvanced4* This,
+ LPCWSTR wszNameSpace,
+ LPCWSTR wszName,
+ LPCWSTR wszValue);
+void __RPC_STUB IWMReaderAdvanced4_AddLogParam_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_SendLogParams_Proxy(
+ IWMReaderAdvanced4* This);
+void __RPC_STUB IWMReaderAdvanced4_SendLogParams_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_CanSaveFileAs_Proxy(
+ IWMReaderAdvanced4* This,
+ WINBOOL *pfCanSave);
+void __RPC_STUB IWMReaderAdvanced4_CanSaveFileAs_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_CancelSaveFileAs_Proxy(
+ IWMReaderAdvanced4* This);
+void __RPC_STUB IWMReaderAdvanced4_CancelSaveFileAs_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced4_GetURL_Proxy(
+ IWMReaderAdvanced4* This,
+ WCHAR *pwszURL,
+ DWORD *pcchURL);
+void __RPC_STUB IWMReaderAdvanced4_GetURL_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMReaderAdvanced4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMReaderAdvanced5 interface
+ */
+#ifndef __IWMReaderAdvanced5_INTERFACE_DEFINED__
+#define __IWMReaderAdvanced5_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("24c44db0-55d1-49ae-a5cc-f13815e36363")
+IWMReaderAdvanced5 : public IWMReaderAdvanced4
+{
+ virtual HRESULT STDMETHODCALLTYPE SetPlayerHook(
+ DWORD dwOutputNum,
+ IWMPlayerHook *pHook) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63)
+#endif
+#else
+typedef struct IWMReaderAdvanced5Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMReaderAdvanced5* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMReaderAdvanced5* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMReaderAdvanced5* This);
+
+ /*** IWMReaderAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
+ IWMReaderAdvanced5* This,
+ WINBOOL fUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
+ IWMReaderAdvanced5* This,
+ WINBOOL *pfUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *DeliverTime)(
+ IWMReaderAdvanced5* This,
+ QWORD cnsTime);
+
+ HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
+ IWMReaderAdvanced5* This,
+ WINBOOL fSelection);
+
+ HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
+ IWMReaderAdvanced5* This,
+ WINBOOL *pfSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
+ IWMReaderAdvanced5* This,
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
+ IWMReaderAdvanced5* This,
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced5* This,
+ WINBOOL fGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced5* This,
+ WINBOOL *pfGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
+ IWMReaderAdvanced5* This,
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
+ IWMReaderAdvanced5* This,
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
+ IWMReaderAdvanced5* This,
+ WORD wStreamNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
+ IWMReaderAdvanced5* This,
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMReaderAdvanced5* This,
+ WM_READER_STATISTICS *pStatistics);
+
+ HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
+ IWMReaderAdvanced5* This,
+ WM_READER_CLIENTINFO *pClientInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutput,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
+ IWMReaderAdvanced5* This,
+ WORD wStream,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
+ IWMReaderAdvanced5* This,
+ QWORD cnsLateness);
+
+ /*** IWMReaderAdvanced2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
+ IWMReaderAdvanced5* This,
+ WMT_PLAY_MODE Mode);
+
+ HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
+ IWMReaderAdvanced5* This,
+ WMT_PLAY_MODE *pMode);
+
+ HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
+ IWMReaderAdvanced5* This,
+ DWORD *pdwPercent,
+ QWORD *pcnsBuffering);
+
+ HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
+ IWMReaderAdvanced5* This,
+ DWORD *pdwPercent,
+ QWORD *pqwBytesDownloaded,
+ QWORD *pcnsDownload);
+
+ HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
+ IWMReaderAdvanced5* This,
+ DWORD *pdwPercent);
+
+ HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
+ IWMReaderAdvanced5* This,
+ const WCHAR *pwszFilename);
+
+ HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
+ IWMReaderAdvanced5* This,
+ WCHAR *pwszProtocol,
+ DWORD *pcchProtocol);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
+ IWMReaderAdvanced5* This,
+ WORD wMarkerIndex,
+ QWORD cnsDuration,
+ float fRate,
+ void *pvContext);
+
+ HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+
+ HRESULT (STDMETHODCALLTYPE *Preroll)(
+ IWMReaderAdvanced5* This,
+ QWORD cnsStart,
+ QWORD cnsDuration,
+ float fRate);
+
+ HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
+ IWMReaderAdvanced5* This,
+ WINBOOL fLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
+ IWMReaderAdvanced5* This,
+ WINBOOL *pfLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *StopBuffering)(
+ IWMReaderAdvanced5* This);
+
+ HRESULT (STDMETHODCALLTYPE *OpenStream)(
+ IWMReaderAdvanced5* This,
+ IStream *pStream,
+ IWMReaderCallback *pCallback,
+ void *pvContext);
+
+ /*** IWMReaderAdvanced3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
+ IWMReaderAdvanced5* This);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
+ IWMReaderAdvanced5* This,
+ WORD wStreamNum,
+ void *pvOffsetStart,
+ void *pvDuration,
+ WMT_OFFSET_FORMAT dwOffsetFormat,
+ float fRate,
+ void *pvContext);
+
+ /*** IWMReaderAdvanced4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ WORD *pwLanguageCount);
+
+ HRESULT (STDMETHODCALLTYPE *GetLanguage)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ WORD wLanguage,
+ WCHAR *pwszLanguageString,
+ WORD *pcchLanguageStringLength);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
+ IWMReaderAdvanced5* This,
+ double *pdblFactor);
+
+ HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
+ IWMReaderAdvanced5* This,
+ WINBOOL *pfUsingFastCache);
+
+ HRESULT (STDMETHODCALLTYPE *AddLogParam)(
+ IWMReaderAdvanced5* This,
+ LPCWSTR wszNameSpace,
+ LPCWSTR wszName,
+ LPCWSTR wszValue);
+
+ HRESULT (STDMETHODCALLTYPE *SendLogParams)(
+ IWMReaderAdvanced5* This);
+
+ HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
+ IWMReaderAdvanced5* This,
+ WINBOOL *pfCanSave);
+
+ HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
+ IWMReaderAdvanced5* This);
+
+ HRESULT (STDMETHODCALLTYPE *GetURL)(
+ IWMReaderAdvanced5* This,
+ WCHAR *pwszURL,
+ DWORD *pcchURL);
+
+ /*** IWMReaderAdvanced5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPlayerHook)(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ IWMPlayerHook *pHook);
+
+ END_INTERFACE
+} IWMReaderAdvanced5Vtbl;
+interface IWMReaderAdvanced5 {
+ CONST_VTBL IWMReaderAdvanced5Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMReaderAdvanced5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMReaderAdvanced5_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMReaderAdvanced5_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMReaderAdvanced methods ***/
+#define IWMReaderAdvanced5_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
+#define IWMReaderAdvanced5_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
+#define IWMReaderAdvanced5_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
+#define IWMReaderAdvanced5_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
+#define IWMReaderAdvanced5_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
+#define IWMReaderAdvanced5_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
+#define IWMReaderAdvanced5_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
+#define IWMReaderAdvanced5_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
+#define IWMReaderAdvanced5_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
+#define IWMReaderAdvanced5_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
+#define IWMReaderAdvanced5_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
+#define IWMReaderAdvanced5_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
+#define IWMReaderAdvanced5_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
+#define IWMReaderAdvanced5_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
+#define IWMReaderAdvanced5_GetAllocateForStream(This,dwSreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate)
+#define IWMReaderAdvanced5_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
+#define IWMReaderAdvanced5_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
+#define IWMReaderAdvanced5_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
+#define IWMReaderAdvanced5_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
+#define IWMReaderAdvanced5_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
+/*** IWMReaderAdvanced2 methods ***/
+#define IWMReaderAdvanced5_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
+#define IWMReaderAdvanced5_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
+#define IWMReaderAdvanced5_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
+#define IWMReaderAdvanced5_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
+#define IWMReaderAdvanced5_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
+#define IWMReaderAdvanced5_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
+#define IWMReaderAdvanced5_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
+#define IWMReaderAdvanced5_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
+#define IWMReaderAdvanced5_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
+#define IWMReaderAdvanced5_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
+#define IWMReaderAdvanced5_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
+#define IWMReaderAdvanced5_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
+#define IWMReaderAdvanced5_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
+#define IWMReaderAdvanced5_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
+#define IWMReaderAdvanced5_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
+/*** IWMReaderAdvanced3 methods ***/
+#define IWMReaderAdvanced5_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
+#define IWMReaderAdvanced5_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
+/*** IWMReaderAdvanced4 methods ***/
+#define IWMReaderAdvanced5_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
+#define IWMReaderAdvanced5_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
+#define IWMReaderAdvanced5_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
+#define IWMReaderAdvanced5_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
+#define IWMReaderAdvanced5_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
+#define IWMReaderAdvanced5_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
+#define IWMReaderAdvanced5_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
+#define IWMReaderAdvanced5_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
+#define IWMReaderAdvanced5_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
+/*** IWMReaderAdvanced5 methods ***/
+#define IWMReaderAdvanced5_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced5_QueryInterface(IWMReaderAdvanced5* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced5_AddRef(IWMReaderAdvanced5* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced5_Release(IWMReaderAdvanced5* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMReaderAdvanced methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL fUserClock) {
+ return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL *pfUserClock) {
+ return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_DeliverTime(IWMReaderAdvanced5* This,QWORD cnsTime) {
+ return This->lpVtbl->DeliverTime(This,cnsTime);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL fSelection) {
+ return This->lpVtbl->SetManualStreamSelection(This,fSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL *pfSelection) {
+ return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetStreamsSelected(IWMReaderAdvanced5* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
+ return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetStreamSelected(IWMReaderAdvanced5* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
+ return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL fGetCallbacks) {
+ return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL *pfGetCallbacks) {
+ return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
+ return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
+ return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetAllocateForStream(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetAllocateForStream(IWMReaderAdvanced5* This,WORD dwSreamNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetStatistics(IWMReaderAdvanced5* This,WM_READER_STATISTICS *pStatistics) {
+ return This->lpVtbl->GetStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetClientInfo(IWMReaderAdvanced5* This,WM_READER_CLIENTINFO *pClientInfo) {
+ return This->lpVtbl->SetClientInfo(This,pClientInfo);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxOutputSampleSize(IWMReaderAdvanced5* This,DWORD dwOutput,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxStreamSampleSize(IWMReaderAdvanced5* This,WORD wStream,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_NotifyLateDelivery(IWMReaderAdvanced5* This,QWORD cnsLateness) {
+ return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
+}
+/*** IWMReaderAdvanced2 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE Mode) {
+ return This->lpVtbl->SetPlayMode(This,Mode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE *pMode) {
+ return This->lpVtbl->GetPlayMode(This,pMode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetBufferProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
+ return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetDownloadProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
+ return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetSaveAsProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent) {
+ return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SaveFileAs(IWMReaderAdvanced5* This,const WCHAR *pwszFilename) {
+ return This->lpVtbl->SaveFileAs(This,pwszFilename);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetProtocolName(IWMReaderAdvanced5* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
+ return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_StartAtMarker(IWMReaderAdvanced5* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
+ return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
+ return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_Preroll(IWMReaderAdvanced5* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
+ return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetLogClientID(IWMReaderAdvanced5* This,WINBOOL fLogClientID) {
+ return This->lpVtbl->SetLogClientID(This,fLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLogClientID(IWMReaderAdvanced5* This,WINBOOL *pfLogClientID) {
+ return This->lpVtbl->GetLogClientID(This,pfLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_StopBuffering(IWMReaderAdvanced5* This) {
+ return This->lpVtbl->StopBuffering(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_OpenStream(IWMReaderAdvanced5* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
+ return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
+}
+/*** IWMReaderAdvanced3 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced5_StopNetStreaming(IWMReaderAdvanced5* This) {
+ return This->lpVtbl->StopNetStreaming(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_StartAtPosition(IWMReaderAdvanced5* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
+}
+/*** IWMReaderAdvanced4 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLanguageCount(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
+ return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLanguage(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
+ return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxSpeedFactor(IWMReaderAdvanced5* This,double *pdblFactor) {
+ return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_IsUsingFastCache(IWMReaderAdvanced5* This,WINBOOL *pfUsingFastCache) {
+ return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_AddLogParam(IWMReaderAdvanced5* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
+ return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SendLogParams(IWMReaderAdvanced5* This) {
+ return This->lpVtbl->SendLogParams(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_CanSaveFileAs(IWMReaderAdvanced5* This,WINBOOL *pfCanSave) {
+ return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_CancelSaveFileAs(IWMReaderAdvanced5* This) {
+ return This->lpVtbl->CancelSaveFileAs(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced5_GetURL(IWMReaderAdvanced5* This,WCHAR *pwszURL,DWORD *pcchURL) {
+ return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
+}
+/*** IWMReaderAdvanced5 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced5_SetPlayerHook(IWMReaderAdvanced5* This,DWORD dwOutputNum,IWMPlayerHook *pHook) {
+ return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced5_SetPlayerHook_Proxy(
+ IWMReaderAdvanced5* This,
+ DWORD dwOutputNum,
+ IWMPlayerHook *pHook);
+void __RPC_STUB IWMReaderAdvanced5_SetPlayerHook_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMReaderAdvanced5_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMReaderAdvanced6 interface
+ */
+#ifndef __IWMReaderAdvanced6_INTERFACE_DEFINED__
+#define __IWMReaderAdvanced6_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("18a2e7f8-428f-4acd-8a00-e64639bc93de")
+IWMReaderAdvanced6 : public IWMReaderAdvanced5
+{
+ virtual HRESULT STDMETHODCALLTYPE SetProtectStreamSamples(
+ BYTE *pbCertificate,
+ DWORD cbCertificate,
+ DWORD dwCertificateType,
+ DWORD dwFlags,
+ BYTE *pbInitializationVector,
+ DWORD *pcbInitializationVector) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde)
+#endif
+#else
+typedef struct IWMReaderAdvanced6Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMReaderAdvanced6* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMReaderAdvanced6* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMReaderAdvanced6* This);
+
+ /*** IWMReaderAdvanced methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
+ IWMReaderAdvanced6* This,
+ WINBOOL fUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
+ IWMReaderAdvanced6* This,
+ WINBOOL *pfUserClock);
+
+ HRESULT (STDMETHODCALLTYPE *DeliverTime)(
+ IWMReaderAdvanced6* This,
+ QWORD cnsTime);
+
+ HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
+ IWMReaderAdvanced6* This,
+ WINBOOL fSelection);
+
+ HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
+ IWMReaderAdvanced6* This,
+ WINBOOL *pfSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
+ IWMReaderAdvanced6* This,
+ WORD cStreamCount,
+ WORD *pwStreamNumbers,
+ WMT_STREAM_SELECTION *pSelections);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
+ IWMReaderAdvanced6* This,
+ WORD wStreamNum,
+ WMT_STREAM_SELECTION *pSelection);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced6* This,
+ WINBOOL fGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
+ IWMReaderAdvanced6* This,
+ WINBOOL *pfGetCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
+ IWMReaderAdvanced6* This,
+ WORD wStreamNum,
+ WINBOOL fReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
+ IWMReaderAdvanced6* This,
+ WORD wStreamNum,
+ WINBOOL *pfReceiveStreamSamples);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutputNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutputNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
+ IWMReaderAdvanced6* This,
+ WORD wStreamNum,
+ WINBOOL fAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
+ IWMReaderAdvanced6* This,
+ WORD dwSreamNum,
+ WINBOOL *pfAllocate);
+
+ HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+ IWMReaderAdvanced6* This,
+ WM_READER_STATISTICS *pStatistics);
+
+ HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
+ IWMReaderAdvanced6* This,
+ WM_READER_CLIENTINFO *pClientInfo);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutput,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
+ IWMReaderAdvanced6* This,
+ WORD wStream,
+ DWORD *pcbMax);
+
+ HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
+ IWMReaderAdvanced6* This,
+ QWORD cnsLateness);
+
+ /*** IWMReaderAdvanced2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
+ IWMReaderAdvanced6* This,
+ WMT_PLAY_MODE Mode);
+
+ HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
+ IWMReaderAdvanced6* This,
+ WMT_PLAY_MODE *pMode);
+
+ HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
+ IWMReaderAdvanced6* This,
+ DWORD *pdwPercent,
+ QWORD *pcnsBuffering);
+
+ HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
+ IWMReaderAdvanced6* This,
+ DWORD *pdwPercent,
+ QWORD *pqwBytesDownloaded,
+ QWORD *pcnsDownload);
+
+ HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
+ IWMReaderAdvanced6* This,
+ DWORD *pdwPercent);
+
+ HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
+ IWMReaderAdvanced6* This,
+ const WCHAR *pwszFilename);
+
+ HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
+ IWMReaderAdvanced6* This,
+ WCHAR *pwszProtocol,
+ DWORD *pcchProtocol);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
+ IWMReaderAdvanced6* This,
+ WORD wMarkerIndex,
+ QWORD cnsDuration,
+ float fRate,
+ void *pvContext);
+
+ HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE *pType,
+ BYTE *pValue,
+ WORD *pcbLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutputNum,
+ LPCWSTR pszName,
+ WMT_ATTR_DATATYPE Type,
+ const BYTE *pValue,
+ WORD cbLength);
+
+ HRESULT (STDMETHODCALLTYPE *Preroll)(
+ IWMReaderAdvanced6* This,
+ QWORD cnsStart,
+ QWORD cnsDuration,
+ float fRate);
+
+ HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
+ IWMReaderAdvanced6* This,
+ WINBOOL fLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
+ IWMReaderAdvanced6* This,
+ WINBOOL *pfLogClientID);
+
+ HRESULT (STDMETHODCALLTYPE *StopBuffering)(
+ IWMReaderAdvanced6* This);
+
+ HRESULT (STDMETHODCALLTYPE *OpenStream)(
+ IWMReaderAdvanced6* This,
+ IStream *pStream,
+ IWMReaderCallback *pCallback,
+ void *pvContext);
+
+ /*** IWMReaderAdvanced3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
+ IWMReaderAdvanced6* This);
+
+ HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
+ IWMReaderAdvanced6* This,
+ WORD wStreamNum,
+ void *pvOffsetStart,
+ void *pvDuration,
+ WMT_OFFSET_FORMAT dwOffsetFormat,
+ float fRate,
+ void *pvContext);
+
+ /*** IWMReaderAdvanced4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutputNum,
+ WORD *pwLanguageCount);
+
+ HRESULT (STDMETHODCALLTYPE *GetLanguage)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutputNum,
+ WORD wLanguage,
+ WCHAR *pwszLanguageString,
+ WORD *pcchLanguageStringLength);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
+ IWMReaderAdvanced6* This,
+ double *pdblFactor);
+
+ HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
+ IWMReaderAdvanced6* This,
+ WINBOOL *pfUsingFastCache);
+
+ HRESULT (STDMETHODCALLTYPE *AddLogParam)(
+ IWMReaderAdvanced6* This,
+ LPCWSTR wszNameSpace,
+ LPCWSTR wszName,
+ LPCWSTR wszValue);
+
+ HRESULT (STDMETHODCALLTYPE *SendLogParams)(
+ IWMReaderAdvanced6* This);
+
+ HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
+ IWMReaderAdvanced6* This,
+ WINBOOL *pfCanSave);
+
+ HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
+ IWMReaderAdvanced6* This);
+
+ HRESULT (STDMETHODCALLTYPE *GetURL)(
+ IWMReaderAdvanced6* This,
+ WCHAR *pwszURL,
+ DWORD *pcchURL);
+
+ /*** IWMReaderAdvanced5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPlayerHook)(
+ IWMReaderAdvanced6* This,
+ DWORD dwOutputNum,
+ IWMPlayerHook *pHook);
+
+ /*** IWMReaderAdvanced6 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetProtectStreamSamples)(
+ IWMReaderAdvanced6* This,
+ BYTE *pbCertificate,
+ DWORD cbCertificate,
+ DWORD dwCertificateType,
+ DWORD dwFlags,
+ BYTE *pbInitializationVector,
+ DWORD *pcbInitializationVector);
+
+ END_INTERFACE
+} IWMReaderAdvanced6Vtbl;
+interface IWMReaderAdvanced6 {
+ CONST_VTBL IWMReaderAdvanced6Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMReaderAdvanced6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMReaderAdvanced6_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMReaderAdvanced6_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMReaderAdvanced methods ***/
+#define IWMReaderAdvanced6_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
+#define IWMReaderAdvanced6_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
+#define IWMReaderAdvanced6_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
+#define IWMReaderAdvanced6_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
+#define IWMReaderAdvanced6_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
+#define IWMReaderAdvanced6_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
+#define IWMReaderAdvanced6_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
+#define IWMReaderAdvanced6_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
+#define IWMReaderAdvanced6_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
+#define IWMReaderAdvanced6_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
+#define IWMReaderAdvanced6_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
+#define IWMReaderAdvanced6_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
+#define IWMReaderAdvanced6_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
+#define IWMReaderAdvanced6_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
+#define IWMReaderAdvanced6_GetAllocateForStream(This,dwSreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate)
+#define IWMReaderAdvanced6_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
+#define IWMReaderAdvanced6_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
+#define IWMReaderAdvanced6_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
+#define IWMReaderAdvanced6_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
+#define IWMReaderAdvanced6_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
+/*** IWMReaderAdvanced2 methods ***/
+#define IWMReaderAdvanced6_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
+#define IWMReaderAdvanced6_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
+#define IWMReaderAdvanced6_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
+#define IWMReaderAdvanced6_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
+#define IWMReaderAdvanced6_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
+#define IWMReaderAdvanced6_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
+#define IWMReaderAdvanced6_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
+#define IWMReaderAdvanced6_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
+#define IWMReaderAdvanced6_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
+#define IWMReaderAdvanced6_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
+#define IWMReaderAdvanced6_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
+#define IWMReaderAdvanced6_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
+#define IWMReaderAdvanced6_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
+#define IWMReaderAdvanced6_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
+#define IWMReaderAdvanced6_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
+/*** IWMReaderAdvanced3 methods ***/
+#define IWMReaderAdvanced6_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
+#define IWMReaderAdvanced6_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
+/*** IWMReaderAdvanced4 methods ***/
+#define IWMReaderAdvanced6_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
+#define IWMReaderAdvanced6_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
+#define IWMReaderAdvanced6_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
+#define IWMReaderAdvanced6_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
+#define IWMReaderAdvanced6_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
+#define IWMReaderAdvanced6_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
+#define IWMReaderAdvanced6_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
+#define IWMReaderAdvanced6_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
+#define IWMReaderAdvanced6_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
+/*** IWMReaderAdvanced5 methods ***/
+#define IWMReaderAdvanced6_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook)
+/*** IWMReaderAdvanced6 methods ***/
+#define IWMReaderAdvanced6_SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector) (This)->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced6_QueryInterface(IWMReaderAdvanced6* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced6_AddRef(IWMReaderAdvanced6* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMReaderAdvanced6_Release(IWMReaderAdvanced6* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMReaderAdvanced methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL fUserClock) {
+ return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL *pfUserClock) {
+ return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_DeliverTime(IWMReaderAdvanced6* This,QWORD cnsTime) {
+ return This->lpVtbl->DeliverTime(This,cnsTime);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL fSelection) {
+ return This->lpVtbl->SetManualStreamSelection(This,fSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL *pfSelection) {
+ return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetStreamsSelected(IWMReaderAdvanced6* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
+ return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetStreamSelected(IWMReaderAdvanced6* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
+ return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL fGetCallbacks) {
+ return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL *pfGetCallbacks) {
+ return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
+ return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
+ return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetAllocateForStream(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fAllocate) {
+ return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetAllocateForStream(IWMReaderAdvanced6* This,WORD dwSreamNum,WINBOOL *pfAllocate) {
+ return This->lpVtbl->GetAllocateForStream(This,dwSreamNum,pfAllocate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetStatistics(IWMReaderAdvanced6* This,WM_READER_STATISTICS *pStatistics) {
+ return This->lpVtbl->GetStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetClientInfo(IWMReaderAdvanced6* This,WM_READER_CLIENTINFO *pClientInfo) {
+ return This->lpVtbl->SetClientInfo(This,pClientInfo);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxOutputSampleSize(IWMReaderAdvanced6* This,DWORD dwOutput,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxStreamSampleSize(IWMReaderAdvanced6* This,WORD wStream,DWORD *pcbMax) {
+ return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_NotifyLateDelivery(IWMReaderAdvanced6* This,QWORD cnsLateness) {
+ return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
+}
+/*** IWMReaderAdvanced2 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE Mode) {
+ return This->lpVtbl->SetPlayMode(This,Mode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE *pMode) {
+ return This->lpVtbl->GetPlayMode(This,pMode);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetBufferProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
+ return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetDownloadProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
+ return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetSaveAsProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent) {
+ return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SaveFileAs(IWMReaderAdvanced6* This,const WCHAR *pwszFilename) {
+ return This->lpVtbl->SaveFileAs(This,pwszFilename);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetProtocolName(IWMReaderAdvanced6* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
+ return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_StartAtMarker(IWMReaderAdvanced6* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
+ return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
+ return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_Preroll(IWMReaderAdvanced6* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
+ return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetLogClientID(IWMReaderAdvanced6* This,WINBOOL fLogClientID) {
+ return This->lpVtbl->SetLogClientID(This,fLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLogClientID(IWMReaderAdvanced6* This,WINBOOL *pfLogClientID) {
+ return This->lpVtbl->GetLogClientID(This,pfLogClientID);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_StopBuffering(IWMReaderAdvanced6* This) {
+ return This->lpVtbl->StopBuffering(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_OpenStream(IWMReaderAdvanced6* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
+ return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
+}
+/*** IWMReaderAdvanced3 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced6_StopNetStreaming(IWMReaderAdvanced6* This) {
+ return This->lpVtbl->StopNetStreaming(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_StartAtPosition(IWMReaderAdvanced6* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
+ return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
+}
+/*** IWMReaderAdvanced4 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLanguageCount(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
+ return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLanguage(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
+ return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxSpeedFactor(IWMReaderAdvanced6* This,double *pdblFactor) {
+ return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_IsUsingFastCache(IWMReaderAdvanced6* This,WINBOOL *pfUsingFastCache) {
+ return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_AddLogParam(IWMReaderAdvanced6* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
+ return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SendLogParams(IWMReaderAdvanced6* This) {
+ return This->lpVtbl->SendLogParams(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_CanSaveFileAs(IWMReaderAdvanced6* This,WINBOOL *pfCanSave) {
+ return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_CancelSaveFileAs(IWMReaderAdvanced6* This) {
+ return This->lpVtbl->CancelSaveFileAs(This);
+}
+static FORCEINLINE HRESULT IWMReaderAdvanced6_GetURL(IWMReaderAdvanced6* This,WCHAR *pwszURL,DWORD *pcchURL) {
+ return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
+}
+/*** IWMReaderAdvanced5 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetPlayerHook(IWMReaderAdvanced6* This,DWORD dwOutputNum,IWMPlayerHook *pHook) {
+ return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook);
+}
+/*** IWMReaderAdvanced6 methods ***/
+static FORCEINLINE HRESULT IWMReaderAdvanced6_SetProtectStreamSamples(IWMReaderAdvanced6* This,BYTE *pbCertificate,DWORD cbCertificate,DWORD dwCertificateType,DWORD dwFlags,BYTE *pbInitializationVector,DWORD *pcbInitializationVector) {
+ return This->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWMReaderAdvanced6_SetProtectStreamSamples_Proxy(
+ IWMReaderAdvanced6* This,
+ BYTE *pbCertificate,
+ DWORD cbCertificate,
+ DWORD dwCertificateType,
+ DWORD dwFlags,
+ BYTE *pbInitializationVector,
+ DWORD *pcbInitializationVector);
+void __RPC_STUB IWMReaderAdvanced6_SetProtectStreamSamples_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IWMReaderAdvanced6_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
* IWMSyncReader interface
*/
#ifndef __IWMSyncReader_INTERFACE_DEFINED__
@@ -4206,6 +7468,7 @@ void __RPC_STUB IWMWriterAdvanced3_SetNonBlocking_Stub(
#endif /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */
HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);
+HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**);
EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);