include/strmif: Regenerate from IDL

Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/strmif.h b/mingw-w64-headers/include/strmif.h
index b652239..26e14ee 100644
--- a/mingw-w64-headers/include/strmif.h
+++ b/mingw-w64-headers/include/strmif.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.0-rc3 from include/strmif.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.0-rc3 from strmif.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -466,6 +466,102 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IAMCameraControl_FWD_DEFINED__
+#define __IAMCameraControl_FWD_DEFINED__
+typedef interface IAMCameraControl IAMCameraControl;
+#ifdef __cplusplus
+interface IAMCameraControl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMVideoControl_FWD_DEFINED__
+#define __IAMVideoControl_FWD_DEFINED__
+typedef interface IAMVideoControl IAMVideoControl;
+#ifdef __cplusplus
+interface IAMVideoControl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMBufferNegotiation_FWD_DEFINED__
+#define __IAMBufferNegotiation_FWD_DEFINED__
+typedef interface IAMBufferNegotiation IAMBufferNegotiation;
+#ifdef __cplusplus
+interface IAMBufferNegotiation;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMDroppedFrames_FWD_DEFINED__
+#define __IAMDroppedFrames_FWD_DEFINED__
+typedef interface IAMDroppedFrames IAMDroppedFrames;
+#ifdef __cplusplus
+interface IAMDroppedFrames;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMLatency_FWD_DEFINED__
+#define __IAMLatency_FWD_DEFINED__
+typedef interface IAMLatency IAMLatency;
+#ifdef __cplusplus
+interface IAMLatency;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMPushSource_FWD_DEFINED__
+#define __IAMPushSource_FWD_DEFINED__
+typedef interface IAMPushSource IAMPushSource;
+#ifdef __cplusplus
+interface IAMPushSource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMVideoCompression_FWD_DEFINED__
+#define __IAMVideoCompression_FWD_DEFINED__
+typedef interface IAMVideoCompression IAMVideoCompression;
+#ifdef __cplusplus
+interface IAMVideoCompression;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMCrossbar_FWD_DEFINED__
+#define __IAMCrossbar_FWD_DEFINED__
+typedef interface IAMCrossbar IAMCrossbar;
+#ifdef __cplusplus
+interface IAMCrossbar;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMTunerNotification_FWD_DEFINED__
+#define __IAMTunerNotification_FWD_DEFINED__
+typedef interface IAMTunerNotification IAMTunerNotification;
+#ifdef __cplusplus
+interface IAMTunerNotification;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMTuner_FWD_DEFINED__
+#define __IAMTuner_FWD_DEFINED__
+typedef interface IAMTuner IAMTuner;
+#ifdef __cplusplus
+interface IAMTuner;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMTVTuner_FWD_DEFINED__
+#define __IAMTVTuner_FWD_DEFINED__
+typedef interface IAMTVTuner IAMTVTuner;
+#ifdef __cplusplus
+interface IAMTVTuner;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVideoFrameStep_FWD_DEFINED__
+#define __IVideoFrameStep_FWD_DEFINED__
+typedef interface IVideoFrameStep IVideoFrameStep;
+#ifdef __cplusplus
+interface IVideoFrameStep;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
 typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
@@ -4306,7 +4402,7 @@
         CLSID clsInMaj,
         CLSID clsInSub,
         WINBOOL bRender,
-        WINBOOL bOututNeeded,
+        WINBOOL bOutputNeeded,
         CLSID clsOutMaj,
         CLSID clsOutSub) = 0;
 
@@ -4382,7 +4478,7 @@
         CLSID clsInMaj,
         CLSID clsInSub,
         WINBOOL bRender,
-        WINBOOL bOututNeeded,
+        WINBOOL bOutputNeeded,
         CLSID clsOutMaj,
         CLSID clsOutSub);
 
@@ -4407,7 +4503,7 @@
 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
-#define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub)
+#define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub)
 #else
 /*** IUnknown methods ***/
 static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
@@ -4441,8 +4537,8 @@
 static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
     return This->lpVtbl->UnregisterPin(This,Filter,Name);
 }
-static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
-    return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub);
+static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOutputNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
+    return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub);
 }
 #endif
 #endif
@@ -8204,6 +8300,10 @@
 #define _IKsPropertySet_
 #define KSPROPERTY_SUPPORT_GET  1
 #define KSPROPERTY_SUPPORT_SET  2
+typedef enum AMPROPERTY_PIN {
+    AMPROPERTY_PIN_CATEGORY = 0,
+    AMPROPERTY_PIN_MEDIUM = 1
+} AMPROPERTY_PIN;
 /*****************************************************************************
  * IKsPropertySet interface
  */
@@ -8904,6 +9004,1788 @@
 
 #endif  /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IAMCameraControl interface
+ */
+#ifndef __IAMCameraControl_INTERFACE_DEFINED__
+#define __IAMCameraControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6e13370-30ac-11d0-a18c-00a0c9118956")
+IAMCameraControl : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetRange(
+        LONG property,
+        LONG *min,
+        LONG *max,
+        LONG *stepping_delta,
+        LONG *default_value,
+        LONG *flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Set(
+        LONG property,
+        LONG property_value,
+        LONG flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Get(
+        LONG property,
+        LONG *property_value,
+        LONG *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMCameraControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMCameraControl *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMCameraControl *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMCameraControl *This);
+
+    /*** IAMCameraControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetRange)(
+        IAMCameraControl *This,
+        LONG property,
+        LONG *min,
+        LONG *max,
+        LONG *stepping_delta,
+        LONG *default_value,
+        LONG *flags);
+
+    HRESULT (STDMETHODCALLTYPE *Set)(
+        IAMCameraControl *This,
+        LONG property,
+        LONG property_value,
+        LONG flags);
+
+    HRESULT (STDMETHODCALLTYPE *Get)(
+        IAMCameraControl *This,
+        LONG property,
+        LONG *property_value,
+        LONG *flags);
+
+    END_INTERFACE
+} IAMCameraControlVtbl;
+
+interface IAMCameraControl {
+    CONST_VTBL IAMCameraControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMCameraControl methods ***/
+#define IAMCameraControl_GetRange(This,property,min,max,stepping_delta,default_value,flags) (This)->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags)
+#define IAMCameraControl_Set(This,property,property_value,flags) (This)->lpVtbl->Set(This,property,property_value,flags)
+#define IAMCameraControl_Get(This,property,property_value,flags) (This)->lpVtbl->Get(This,property,property_value,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMCameraControl_QueryInterface(IAMCameraControl* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMCameraControl_AddRef(IAMCameraControl* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMCameraControl_Release(IAMCameraControl* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMCameraControl methods ***/
+static FORCEINLINE HRESULT IAMCameraControl_GetRange(IAMCameraControl* This,LONG property,LONG *min,LONG *max,LONG *stepping_delta,LONG *default_value,LONG *flags) {
+    return This->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags);
+}
+static FORCEINLINE HRESULT IAMCameraControl_Set(IAMCameraControl* This,LONG property,LONG property_value,LONG flags) {
+    return This->lpVtbl->Set(This,property,property_value,flags);
+}
+static FORCEINLINE HRESULT IAMCameraControl_Get(IAMCameraControl* This,LONG property,LONG *property_value,LONG *flags) {
+    return This->lpVtbl->Get(This,property,property_value,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMCameraControl_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMVideoControl interface
+ */
+#ifndef __IAMVideoControl_INTERFACE_DEFINED__
+#define __IAMVideoControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6a2e0670-28e4-11d0-a18c-00a0c9118956")
+IAMVideoControl : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetCaps(
+        IPin *pin,
+        LONG *flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetMode(
+        IPin *pin,
+        LONG mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMode(
+        IPin *pin,
+        LONG *mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentActualFrameRate(
+        IPin *pin,
+        LONGLONG *frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMaxAvailableFrameRate(
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONGLONG *frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFrameRateList(
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONG *list_size,
+        LONGLONG **frame_rate) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMVideoControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMVideoControl *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMVideoControl *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMVideoControl *This);
+
+    /*** IAMVideoControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCaps)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG *flags);
+
+    HRESULT (STDMETHODCALLTYPE *SetMode)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG mode);
+
+    HRESULT (STDMETHODCALLTYPE *GetMode)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG *mode);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentActualFrameRate)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONGLONG *frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *GetMaxAvailableFrameRate)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONGLONG *frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *GetFrameRateList)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONG *list_size,
+        LONGLONG **frame_rate);
+
+    END_INTERFACE
+} IAMVideoControlVtbl;
+
+interface IAMVideoControl {
+    CONST_VTBL IAMVideoControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMVideoControl methods ***/
+#define IAMVideoControl_GetCaps(This,pin,flags) (This)->lpVtbl->GetCaps(This,pin,flags)
+#define IAMVideoControl_SetMode(This,pin,mode) (This)->lpVtbl->SetMode(This,pin,mode)
+#define IAMVideoControl_GetMode(This,pin,mode) (This)->lpVtbl->GetMode(This,pin,mode)
+#define IAMVideoControl_GetCurrentActualFrameRate(This,pin,frame_rate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate)
+#define IAMVideoControl_GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate)
+#define IAMVideoControl_GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate) (This)->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMVideoControl_QueryInterface(IAMVideoControl* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMVideoControl_AddRef(IAMVideoControl* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMVideoControl_Release(IAMVideoControl* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMVideoControl methods ***/
+static FORCEINLINE HRESULT IAMVideoControl_GetCaps(IAMVideoControl* This,IPin *pin,LONG *flags) {
+    return This->lpVtbl->GetCaps(This,pin,flags);
+}
+static FORCEINLINE HRESULT IAMVideoControl_SetMode(IAMVideoControl* This,IPin *pin,LONG mode) {
+    return This->lpVtbl->SetMode(This,pin,mode);
+}
+static FORCEINLINE HRESULT IAMVideoControl_GetMode(IAMVideoControl* This,IPin *pin,LONG *mode) {
+    return This->lpVtbl->GetMode(This,pin,mode);
+}
+static FORCEINLINE HRESULT IAMVideoControl_GetCurrentActualFrameRate(IAMVideoControl* This,IPin *pin,LONGLONG *frame_rate) {
+    return This->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate);
+}
+static FORCEINLINE HRESULT IAMVideoControl_GetMaxAvailableFrameRate(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONGLONG *frame_rate) {
+    return This->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate);
+}
+static FORCEINLINE HRESULT IAMVideoControl_GetFrameRateList(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONG *list_size,LONGLONG **frame_rate) {
+    return This->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMVideoControl_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMBufferNegotiation interface
+ */
+#ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
+#define __IAMBufferNegotiation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("56ed71a0-af5f-11d0-b3f0-00aa003761c5")
+IAMBufferNegotiation : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SuggestAllocatorProperties(
+        const ALLOCATOR_PROPERTIES *prop) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAllocatorProperties(
+        ALLOCATOR_PROPERTIES *prop) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
+#endif
+#else
+typedef struct IAMBufferNegotiationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMBufferNegotiation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMBufferNegotiation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMBufferNegotiation *This);
+
+    /*** IAMBufferNegotiation methods ***/
+    HRESULT (STDMETHODCALLTYPE *SuggestAllocatorProperties)(
+        IAMBufferNegotiation *This,
+        const ALLOCATOR_PROPERTIES *prop);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllocatorProperties)(
+        IAMBufferNegotiation *This,
+        ALLOCATOR_PROPERTIES *prop);
+
+    END_INTERFACE
+} IAMBufferNegotiationVtbl;
+
+interface IAMBufferNegotiation {
+    CONST_VTBL IAMBufferNegotiationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMBufferNegotiation methods ***/
+#define IAMBufferNegotiation_SuggestAllocatorProperties(This,prop) (This)->lpVtbl->SuggestAllocatorProperties(This,prop)
+#define IAMBufferNegotiation_GetAllocatorProperties(This,prop) (This)->lpVtbl->GetAllocatorProperties(This,prop)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMBufferNegotiation_QueryInterface(IAMBufferNegotiation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMBufferNegotiation_AddRef(IAMBufferNegotiation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMBufferNegotiation_Release(IAMBufferNegotiation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMBufferNegotiation methods ***/
+static FORCEINLINE HRESULT IAMBufferNegotiation_SuggestAllocatorProperties(IAMBufferNegotiation* This,const ALLOCATOR_PROPERTIES *prop) {
+    return This->lpVtbl->SuggestAllocatorProperties(This,prop);
+}
+static FORCEINLINE HRESULT IAMBufferNegotiation_GetAllocatorProperties(IAMBufferNegotiation* This,ALLOCATOR_PROPERTIES *prop) {
+    return This->lpVtbl->GetAllocatorProperties(This,prop);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMBufferNegotiation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMDroppedFrames interface
+ */
+#ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
+#define __IAMDroppedFrames_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6e13344-30ac-11d0-a18c-00a0c9118956")
+IAMDroppedFrames : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetNumDropped(
+        LONG *number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNumNotDropped(
+        LONG *number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDroppedInfo(
+        LONG size,
+        LONG *array,
+        LONG *copied) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAverageFrameSize(
+        LONG *size) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMDroppedFramesVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMDroppedFrames *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMDroppedFrames *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMDroppedFrames *This);
+
+    /*** IAMDroppedFrames methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetNumDropped)(
+        IAMDroppedFrames *This,
+        LONG *number);
+
+    HRESULT (STDMETHODCALLTYPE *GetNumNotDropped)(
+        IAMDroppedFrames *This,
+        LONG *number);
+
+    HRESULT (STDMETHODCALLTYPE *GetDroppedInfo)(
+        IAMDroppedFrames *This,
+        LONG size,
+        LONG *array,
+        LONG *copied);
+
+    HRESULT (STDMETHODCALLTYPE *GetAverageFrameSize)(
+        IAMDroppedFrames *This,
+        LONG *size);
+
+    END_INTERFACE
+} IAMDroppedFramesVtbl;
+
+interface IAMDroppedFrames {
+    CONST_VTBL IAMDroppedFramesVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMDroppedFrames methods ***/
+#define IAMDroppedFrames_GetNumDropped(This,number) (This)->lpVtbl->GetNumDropped(This,number)
+#define IAMDroppedFrames_GetNumNotDropped(This,number) (This)->lpVtbl->GetNumNotDropped(This,number)
+#define IAMDroppedFrames_GetDroppedInfo(This,size,array,copied) (This)->lpVtbl->GetDroppedInfo(This,size,array,copied)
+#define IAMDroppedFrames_GetAverageFrameSize(This,size) (This)->lpVtbl->GetAverageFrameSize(This,size)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMDroppedFrames_QueryInterface(IAMDroppedFrames* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMDroppedFrames_AddRef(IAMDroppedFrames* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMDroppedFrames_Release(IAMDroppedFrames* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMDroppedFrames methods ***/
+static FORCEINLINE HRESULT IAMDroppedFrames_GetNumDropped(IAMDroppedFrames* This,LONG *number) {
+    return This->lpVtbl->GetNumDropped(This,number);
+}
+static FORCEINLINE HRESULT IAMDroppedFrames_GetNumNotDropped(IAMDroppedFrames* This,LONG *number) {
+    return This->lpVtbl->GetNumNotDropped(This,number);
+}
+static FORCEINLINE HRESULT IAMDroppedFrames_GetDroppedInfo(IAMDroppedFrames* This,LONG size,LONG *array,LONG *copied) {
+    return This->lpVtbl->GetDroppedInfo(This,size,array,copied);
+}
+static FORCEINLINE HRESULT IAMDroppedFrames_GetAverageFrameSize(IAMDroppedFrames* This,LONG *size) {
+    return This->lpVtbl->GetAverageFrameSize(This,size);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMDroppedFrames_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMLatency interface
+ */
+#ifndef __IAMLatency_INTERFACE_DEFINED__
+#define __IAMLatency_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("62ea93ba-ec62-11d2-b770-00c04fb6bd3d")
+IAMLatency : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetLatency(
+        REFERENCE_TIME *latency) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
+#endif
+#else
+typedef struct IAMLatencyVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMLatency *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMLatency *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMLatency *This);
+
+    /*** IAMLatency methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetLatency)(
+        IAMLatency *This,
+        REFERENCE_TIME *latency);
+
+    END_INTERFACE
+} IAMLatencyVtbl;
+
+interface IAMLatency {
+    CONST_VTBL IAMLatencyVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMLatency methods ***/
+#define IAMLatency_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMLatency_QueryInterface(IAMLatency* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMLatency_AddRef(IAMLatency* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMLatency_Release(IAMLatency* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMLatency methods ***/
+static FORCEINLINE HRESULT IAMLatency_GetLatency(IAMLatency* This,REFERENCE_TIME *latency) {
+    return This->lpVtbl->GetLatency(This,latency);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMLatency_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMPushSource interface
+ */
+#ifndef __IAMPushSource_INTERFACE_DEFINED__
+#define __IAMPushSource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f185fe76-e64e-11d2-b76e-00c04fb6bd3d")
+IAMPushSource : public IAMLatency
+{
+    virtual HRESULT STDMETHODCALLTYPE GetPushSourceFlags(
+        ULONG *flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPushSourceFlags(
+        ULONG flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetStreamOffset(
+        REFERENCE_TIME offset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStreamOffset(
+        REFERENCE_TIME *offset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMaxStreamOffset(
+        REFERENCE_TIME *offset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetMaxStreamOffset(
+        REFERENCE_TIME offset) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
+#endif
+#else
+typedef struct IAMPushSourceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMPushSource *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMPushSource *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMPushSource *This);
+
+    /*** IAMLatency methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetLatency)(
+        IAMPushSource *This,
+        REFERENCE_TIME *latency);
+
+    /*** IAMPushSource methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPushSourceFlags)(
+        IAMPushSource *This,
+        ULONG *flags);
+
+    HRESULT (STDMETHODCALLTYPE *SetPushSourceFlags)(
+        IAMPushSource *This,
+        ULONG flags);
+
+    HRESULT (STDMETHODCALLTYPE *SetStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME offset);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME *offset);
+
+    HRESULT (STDMETHODCALLTYPE *GetMaxStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME *offset);
+
+    HRESULT (STDMETHODCALLTYPE *SetMaxStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME offset);
+
+    END_INTERFACE
+} IAMPushSourceVtbl;
+
+interface IAMPushSource {
+    CONST_VTBL IAMPushSourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMLatency methods ***/
+#define IAMPushSource_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
+/*** IAMPushSource methods ***/
+#define IAMPushSource_GetPushSourceFlags(This,flags) (This)->lpVtbl->GetPushSourceFlags(This,flags)
+#define IAMPushSource_SetPushSourceFlags(This,flags) (This)->lpVtbl->SetPushSourceFlags(This,flags)
+#define IAMPushSource_SetStreamOffset(This,offset) (This)->lpVtbl->SetStreamOffset(This,offset)
+#define IAMPushSource_GetStreamOffset(This,offset) (This)->lpVtbl->GetStreamOffset(This,offset)
+#define IAMPushSource_GetMaxStreamOffset(This,offset) (This)->lpVtbl->GetMaxStreamOffset(This,offset)
+#define IAMPushSource_SetMaxStreamOffset(This,offset) (This)->lpVtbl->SetMaxStreamOffset(This,offset)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMPushSource_QueryInterface(IAMPushSource* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMPushSource_AddRef(IAMPushSource* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMPushSource_Release(IAMPushSource* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMLatency methods ***/
+static FORCEINLINE HRESULT IAMPushSource_GetLatency(IAMPushSource* This,REFERENCE_TIME *latency) {
+    return This->lpVtbl->GetLatency(This,latency);
+}
+/*** IAMPushSource methods ***/
+static FORCEINLINE HRESULT IAMPushSource_GetPushSourceFlags(IAMPushSource* This,ULONG *flags) {
+    return This->lpVtbl->GetPushSourceFlags(This,flags);
+}
+static FORCEINLINE HRESULT IAMPushSource_SetPushSourceFlags(IAMPushSource* This,ULONG flags) {
+    return This->lpVtbl->SetPushSourceFlags(This,flags);
+}
+static FORCEINLINE HRESULT IAMPushSource_SetStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
+    return This->lpVtbl->SetStreamOffset(This,offset);
+}
+static FORCEINLINE HRESULT IAMPushSource_GetStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
+    return This->lpVtbl->GetStreamOffset(This,offset);
+}
+static FORCEINLINE HRESULT IAMPushSource_GetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
+    return This->lpVtbl->GetMaxStreamOffset(This,offset);
+}
+static FORCEINLINE HRESULT IAMPushSource_SetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
+    return This->lpVtbl->SetMaxStreamOffset(This,offset);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMPushSource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMVideoCompression interface
+ */
+#ifndef __IAMVideoCompression_INTERFACE_DEFINED__
+#define __IAMVideoCompression_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6e13343-30ac-11d0-a18c-00a0c9118956")
+IAMVideoCompression : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE put_KeyFrameRate(
+        LONG frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_KeyFrameRate(
+        LONG *frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_PFramesPerKeyFrame(
+        LONG frame) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PFramesPerKeyFrame(
+        LONG *frame) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Quality(
+        double quality) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Quality(
+        double *quality) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_WindowSize(
+        DWORDLONG size) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_WindowSize(
+        DWORDLONG *size) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetInfo(
+        LPWSTR version,
+        int *version_size,
+        LPWSTR description,
+        int *description_size,
+        LONG *frame_rate,
+        LONG *key,
+        double *quality,
+        LONG *capabilities) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OverrideKeyFrame(
+        LONG number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OverrideFrameSize(
+        LONG number,
+        LONG size) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMVideoCompressionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMVideoCompression *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMVideoCompression *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMVideoCompression *This);
+
+    /*** IAMVideoCompression methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_KeyFrameRate)(
+        IAMVideoCompression *This,
+        LONG frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *get_KeyFrameRate)(
+        IAMVideoCompression *This,
+        LONG *frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *put_PFramesPerKeyFrame)(
+        IAMVideoCompression *This,
+        LONG frame);
+
+    HRESULT (STDMETHODCALLTYPE *get_PFramesPerKeyFrame)(
+        IAMVideoCompression *This,
+        LONG *frame);
+
+    HRESULT (STDMETHODCALLTYPE *put_Quality)(
+        IAMVideoCompression *This,
+        double quality);
+
+    HRESULT (STDMETHODCALLTYPE *get_Quality)(
+        IAMVideoCompression *This,
+        double *quality);
+
+    HRESULT (STDMETHODCALLTYPE *put_WindowSize)(
+        IAMVideoCompression *This,
+        DWORDLONG size);
+
+    HRESULT (STDMETHODCALLTYPE *get_WindowSize)(
+        IAMVideoCompression *This,
+        DWORDLONG *size);
+
+    HRESULT (STDMETHODCALLTYPE *GetInfo)(
+        IAMVideoCompression *This,
+        LPWSTR version,
+        int *version_size,
+        LPWSTR description,
+        int *description_size,
+        LONG *frame_rate,
+        LONG *key,
+        double *quality,
+        LONG *capabilities);
+
+    HRESULT (STDMETHODCALLTYPE *OverrideKeyFrame)(
+        IAMVideoCompression *This,
+        LONG number);
+
+    HRESULT (STDMETHODCALLTYPE *OverrideFrameSize)(
+        IAMVideoCompression *This,
+        LONG number,
+        LONG size);
+
+    END_INTERFACE
+} IAMVideoCompressionVtbl;
+
+interface IAMVideoCompression {
+    CONST_VTBL IAMVideoCompressionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMVideoCompression methods ***/
+#define IAMVideoCompression_put_KeyFrameRate(This,frame_rate) (This)->lpVtbl->put_KeyFrameRate(This,frame_rate)
+#define IAMVideoCompression_get_KeyFrameRate(This,frame_rate) (This)->lpVtbl->get_KeyFrameRate(This,frame_rate)
+#define IAMVideoCompression_put_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,frame)
+#define IAMVideoCompression_get_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,frame)
+#define IAMVideoCompression_put_Quality(This,quality) (This)->lpVtbl->put_Quality(This,quality)
+#define IAMVideoCompression_get_Quality(This,quality) (This)->lpVtbl->get_Quality(This,quality)
+#define IAMVideoCompression_put_WindowSize(This,size) (This)->lpVtbl->put_WindowSize(This,size)
+#define IAMVideoCompression_get_WindowSize(This,size) (This)->lpVtbl->get_WindowSize(This,size)
+#define IAMVideoCompression_GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities) (This)->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities)
+#define IAMVideoCompression_OverrideKeyFrame(This,number) (This)->lpVtbl->OverrideKeyFrame(This,number)
+#define IAMVideoCompression_OverrideFrameSize(This,number,size) (This)->lpVtbl->OverrideFrameSize(This,number,size)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMVideoCompression_QueryInterface(IAMVideoCompression* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMVideoCompression_AddRef(IAMVideoCompression* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMVideoCompression_Release(IAMVideoCompression* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMVideoCompression methods ***/
+static FORCEINLINE HRESULT IAMVideoCompression_put_KeyFrameRate(IAMVideoCompression* This,LONG frame_rate) {
+    return This->lpVtbl->put_KeyFrameRate(This,frame_rate);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_KeyFrameRate(IAMVideoCompression* This,LONG *frame_rate) {
+    return This->lpVtbl->get_KeyFrameRate(This,frame_rate);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_put_PFramesPerKeyFrame(IAMVideoCompression* This,LONG frame) {
+    return This->lpVtbl->put_PFramesPerKeyFrame(This,frame);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_PFramesPerKeyFrame(IAMVideoCompression* This,LONG *frame) {
+    return This->lpVtbl->get_PFramesPerKeyFrame(This,frame);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_put_Quality(IAMVideoCompression* This,double quality) {
+    return This->lpVtbl->put_Quality(This,quality);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_Quality(IAMVideoCompression* This,double *quality) {
+    return This->lpVtbl->get_Quality(This,quality);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_put_WindowSize(IAMVideoCompression* This,DWORDLONG size) {
+    return This->lpVtbl->put_WindowSize(This,size);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_WindowSize(IAMVideoCompression* This,DWORDLONG *size) {
+    return This->lpVtbl->get_WindowSize(This,size);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_GetInfo(IAMVideoCompression* This,LPWSTR version,int *version_size,LPWSTR description,int *description_size,LONG *frame_rate,LONG *key,double *quality,LONG *capabilities) {
+    return This->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_OverrideKeyFrame(IAMVideoCompression* This,LONG number) {
+    return This->lpVtbl->OverrideKeyFrame(This,number);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_OverrideFrameSize(IAMVideoCompression* This,LONG number,LONG size) {
+    return This->lpVtbl->OverrideFrameSize(This,number,size);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMVideoCompression_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMCrossbar interface
+ */
+#ifndef __IAMCrossbar_INTERFACE_DEFINED__
+#define __IAMCrossbar_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6e13380-30ac-11d0-a18c-00a0c9118956")
+IAMCrossbar : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_PinCounts(
+        LONG *output,
+        LONG *intput) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CanRoute(
+        LONG output,
+        LONG input) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Route(
+        LONG output,
+        LONG input) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsRoutedTo(
+        LONG output,
+        LONG *input) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CrossbarPinInfo(
+        WINBOOL is_input,
+        LONG index,
+        LONG *related,
+        LONG *type) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMCrossbarVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMCrossbar *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMCrossbar *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMCrossbar *This);
+
+    /*** IAMCrossbar methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_PinCounts)(
+        IAMCrossbar *This,
+        LONG *output,
+        LONG *intput);
+
+    HRESULT (STDMETHODCALLTYPE *CanRoute)(
+        IAMCrossbar *This,
+        LONG output,
+        LONG input);
+
+    HRESULT (STDMETHODCALLTYPE *Route)(
+        IAMCrossbar *This,
+        LONG output,
+        LONG input);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsRoutedTo)(
+        IAMCrossbar *This,
+        LONG output,
+        LONG *input);
+
+    HRESULT (STDMETHODCALLTYPE *get_CrossbarPinInfo)(
+        IAMCrossbar *This,
+        WINBOOL is_input,
+        LONG index,
+        LONG *related,
+        LONG *type);
+
+    END_INTERFACE
+} IAMCrossbarVtbl;
+
+interface IAMCrossbar {
+    CONST_VTBL IAMCrossbarVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMCrossbar methods ***/
+#define IAMCrossbar_get_PinCounts(This,output,intput) (This)->lpVtbl->get_PinCounts(This,output,intput)
+#define IAMCrossbar_CanRoute(This,output,input) (This)->lpVtbl->CanRoute(This,output,input)
+#define IAMCrossbar_Route(This,output,input) (This)->lpVtbl->Route(This,output,input)
+#define IAMCrossbar_get_IsRoutedTo(This,output,input) (This)->lpVtbl->get_IsRoutedTo(This,output,input)
+#define IAMCrossbar_get_CrossbarPinInfo(This,is_input,index,related,type) (This)->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMCrossbar_QueryInterface(IAMCrossbar* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMCrossbar_AddRef(IAMCrossbar* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMCrossbar_Release(IAMCrossbar* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMCrossbar methods ***/
+static FORCEINLINE HRESULT IAMCrossbar_get_PinCounts(IAMCrossbar* This,LONG *output,LONG *intput) {
+    return This->lpVtbl->get_PinCounts(This,output,intput);
+}
+static FORCEINLINE HRESULT IAMCrossbar_CanRoute(IAMCrossbar* This,LONG output,LONG input) {
+    return This->lpVtbl->CanRoute(This,output,input);
+}
+static FORCEINLINE HRESULT IAMCrossbar_Route(IAMCrossbar* This,LONG output,LONG input) {
+    return This->lpVtbl->Route(This,output,input);
+}
+static FORCEINLINE HRESULT IAMCrossbar_get_IsRoutedTo(IAMCrossbar* This,LONG output,LONG *input) {
+    return This->lpVtbl->get_IsRoutedTo(This,output,input);
+}
+static FORCEINLINE HRESULT IAMCrossbar_get_CrossbarPinInfo(IAMCrossbar* This,WINBOOL is_input,LONG index,LONG *related,LONG *type) {
+    return This->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMCrossbar_INTERFACE_DEFINED__ */
+
+typedef enum tagAMTunerEventType {
+    AMTUNER_EVENT_CHANGED = 0x1
+} AMTunerEventType;
+/*****************************************************************************
+ * IAMTunerNotification interface
+ */
+#ifndef __IAMTunerNotification_INTERFACE_DEFINED__
+#define __IAMTunerNotification_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("211a8760-03ac-11d1-8d13-00aa00bd8339")
+IAMTunerNotification : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnEvent(
+        AMTunerEventType event) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
+#endif
+#else
+typedef struct IAMTunerNotificationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMTunerNotification *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMTunerNotification *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMTunerNotification *This);
+
+    /*** IAMTunerNotification methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnEvent)(
+        IAMTunerNotification *This,
+        AMTunerEventType event);
+
+    END_INTERFACE
+} IAMTunerNotificationVtbl;
+
+interface IAMTunerNotification {
+    CONST_VTBL IAMTunerNotificationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMTunerNotification methods ***/
+#define IAMTunerNotification_OnEvent(This,event) (This)->lpVtbl->OnEvent(This,event)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMTunerNotification_QueryInterface(IAMTunerNotification* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMTunerNotification_AddRef(IAMTunerNotification* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMTunerNotification_Release(IAMTunerNotification* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMTunerNotification methods ***/
+static FORCEINLINE HRESULT IAMTunerNotification_OnEvent(IAMTunerNotification* This,AMTunerEventType event) {
+    return This->lpVtbl->OnEvent(This,event);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMTunerNotification_INTERFACE_DEFINED__ */
+
+typedef enum tagAMTunerModeType {
+    AMTUNER_MODE_DEFAULT = 0x0,
+    AMTUNER_MODE_TV = 0x1,
+    AMTUNER_MODE_FM_RADIO = 0x2,
+    AMTUNER_MODE_AM_RADIO = 0x4,
+    AMTUNER_MODE_DSS = 0x8
+} AMTunerModeType;
+/*****************************************************************************
+ * IAMTuner interface
+ */
+#ifndef __IAMTuner_INTERFACE_DEFINED__
+#define __IAMTuner_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("211a8761-03ac-11d1-8d13-00aa00bd8339")
+IAMTuner : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE put_Channel(
+        LONG channel,
+        LONG video,
+        LONG audio) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Channel(
+        LONG *channel,
+        LONG *video,
+        LONG *audio) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ChannelMinMax(
+        LONG *min,
+        LONG *max) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_CountryCode(
+        LONG country) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CountryCode(
+        LONG *country) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_TuningSpace(
+        LONG tuning_space) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_TuningSpace(
+        LONG *tuning_space) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Logon(
+        HANDLE user) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Logout(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SignalPresent(
+        LONG *signal_strength) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Mode(
+        AMTunerModeType mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Mode(
+        AMTunerModeType *mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAvailableModes(
+        LONG *modes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterNotificationCallBack(
+        IAMTunerNotification *notify,
+        LONG events) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UnRegisterNotificationCallBack(
+        IAMTunerNotification *notify) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
+#endif
+#else
+typedef struct IAMTunerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMTuner *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMTuner *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMTuner *This);
+
+    /*** IAMTuner methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Channel)(
+        IAMTuner *This,
+        LONG channel,
+        LONG video,
+        LONG audio);
+
+    HRESULT (STDMETHODCALLTYPE *get_Channel)(
+        IAMTuner *This,
+        LONG *channel,
+        LONG *video,
+        LONG *audio);
+
+    HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
+        IAMTuner *This,
+        LONG *min,
+        LONG *max);
+
+    HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
+        IAMTuner *This,
+        LONG country);
+
+    HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
+        IAMTuner *This,
+        LONG *country);
+
+    HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
+        IAMTuner *This,
+        LONG tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
+        IAMTuner *This,
+        LONG *tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *Logon)(
+        IAMTuner *This,
+        HANDLE user);
+
+    HRESULT (STDMETHODCALLTYPE *Logout)(
+        IAMTuner *This);
+
+    HRESULT (STDMETHODCALLTYPE *SignalPresent)(
+        IAMTuner *This,
+        LONG *signal_strength);
+
+    HRESULT (STDMETHODCALLTYPE *put_Mode)(
+        IAMTuner *This,
+        AMTunerModeType mode);
+
+    HRESULT (STDMETHODCALLTYPE *get_Mode)(
+        IAMTuner *This,
+        AMTunerModeType *mode);
+
+    HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
+        IAMTuner *This,
+        LONG *modes);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
+        IAMTuner *This,
+        IAMTunerNotification *notify,
+        LONG events);
+
+    HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
+        IAMTuner *This,
+        IAMTunerNotification *notify);
+
+    END_INTERFACE
+} IAMTunerVtbl;
+
+interface IAMTuner {
+    CONST_VTBL IAMTunerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMTuner methods ***/
+#define IAMTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
+#define IAMTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
+#define IAMTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
+#define IAMTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
+#define IAMTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
+#define IAMTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
+#define IAMTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
+#define IAMTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
+#define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
+#define IAMTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
+#define IAMTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
+#define IAMTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
+#define IAMTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
+#define IAMTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
+#define IAMTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMTuner_QueryInterface(IAMTuner* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMTuner_AddRef(IAMTuner* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMTuner_Release(IAMTuner* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMTuner methods ***/
+static FORCEINLINE HRESULT IAMTuner_put_Channel(IAMTuner* This,LONG channel,LONG video,LONG audio) {
+    return This->lpVtbl->put_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTuner_get_Channel(IAMTuner* This,LONG *channel,LONG *video,LONG *audio) {
+    return This->lpVtbl->get_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTuner_ChannelMinMax(IAMTuner* This,LONG *min,LONG *max) {
+    return This->lpVtbl->ChannelMinMax(This,min,max);
+}
+static FORCEINLINE HRESULT IAMTuner_put_CountryCode(IAMTuner* This,LONG country) {
+    return This->lpVtbl->put_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTuner_get_CountryCode(IAMTuner* This,LONG *country) {
+    return This->lpVtbl->get_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTuner_put_TuningSpace(IAMTuner* This,LONG tuning_space) {
+    return This->lpVtbl->put_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTuner_get_TuningSpace(IAMTuner* This,LONG *tuning_space) {
+    return This->lpVtbl->get_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTuner_Logon(IAMTuner* This,HANDLE user) {
+    return This->lpVtbl->Logon(This,user);
+}
+static FORCEINLINE HRESULT IAMTuner_Logout(IAMTuner* This) {
+    return This->lpVtbl->Logout(This);
+}
+static FORCEINLINE HRESULT IAMTuner_SignalPresent(IAMTuner* This,LONG *signal_strength) {
+    return This->lpVtbl->SignalPresent(This,signal_strength);
+}
+static FORCEINLINE HRESULT IAMTuner_put_Mode(IAMTuner* This,AMTunerModeType mode) {
+    return This->lpVtbl->put_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTuner_get_Mode(IAMTuner* This,AMTunerModeType *mode) {
+    return This->lpVtbl->get_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTuner_GetAvailableModes(IAMTuner* This,LONG *modes) {
+    return This->lpVtbl->GetAvailableModes(This,modes);
+}
+static FORCEINLINE HRESULT IAMTuner_RegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify,LONG events) {
+    return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
+}
+static FORCEINLINE HRESULT IAMTuner_UnRegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify) {
+    return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMTuner_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMTVTuner interface
+ */
+#ifndef __IAMTVTuner_INTERFACE_DEFINED__
+#define __IAMTVTuner_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("211a8766-03ac-11d1-8d13-00aa00bd8339")
+IAMTVTuner : public IAMTuner
+{
+    virtual HRESULT STDMETHODCALLTYPE get_AvailableTVFormats(
+        LONG *standard) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_TVFormat(
+        LONG *standard) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AutoTune(
+        LONG channel,
+        LONG *signal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StoreAutoTune(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_NumInputConnections(
+        LONG *number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_InputType(
+        LONG index,
+        TunerInputType type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_InputType(
+        LONG index,
+        TunerInputType *type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ConnectInput(
+        LONG index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ConnectInput(
+        LONG *index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_VideoFrequency(
+        LONG *freq) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AudioFrequency(
+        LONG *freq) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
+#endif
+#else
+typedef struct IAMTVTunerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMTVTuner *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMTVTuner *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMTVTuner *This);
+
+    /*** IAMTuner methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Channel)(
+        IAMTVTuner *This,
+        LONG channel,
+        LONG video,
+        LONG audio);
+
+    HRESULT (STDMETHODCALLTYPE *get_Channel)(
+        IAMTVTuner *This,
+        LONG *channel,
+        LONG *video,
+        LONG *audio);
+
+    HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
+        IAMTVTuner *This,
+        LONG *min,
+        LONG *max);
+
+    HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
+        IAMTVTuner *This,
+        LONG country);
+
+    HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
+        IAMTVTuner *This,
+        LONG *country);
+
+    HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
+        IAMTVTuner *This,
+        LONG tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
+        IAMTVTuner *This,
+        LONG *tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *Logon)(
+        IAMTVTuner *This,
+        HANDLE user);
+
+    HRESULT (STDMETHODCALLTYPE *Logout)(
+        IAMTVTuner *This);
+
+    HRESULT (STDMETHODCALLTYPE *SignalPresent)(
+        IAMTVTuner *This,
+        LONG *signal_strength);
+
+    HRESULT (STDMETHODCALLTYPE *put_Mode)(
+        IAMTVTuner *This,
+        AMTunerModeType mode);
+
+    HRESULT (STDMETHODCALLTYPE *get_Mode)(
+        IAMTVTuner *This,
+        AMTunerModeType *mode);
+
+    HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
+        IAMTVTuner *This,
+        LONG *modes);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
+        IAMTVTuner *This,
+        IAMTunerNotification *notify,
+        LONG events);
+
+    HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
+        IAMTVTuner *This,
+        IAMTunerNotification *notify);
+
+    /*** IAMTVTuner methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AvailableTVFormats)(
+        IAMTVTuner *This,
+        LONG *standard);
+
+    HRESULT (STDMETHODCALLTYPE *get_TVFormat)(
+        IAMTVTuner *This,
+        LONG *standard);
+
+    HRESULT (STDMETHODCALLTYPE *AutoTune)(
+        IAMTVTuner *This,
+        LONG channel,
+        LONG *signal);
+
+    HRESULT (STDMETHODCALLTYPE *StoreAutoTune)(
+        IAMTVTuner *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_NumInputConnections)(
+        IAMTVTuner *This,
+        LONG *number);
+
+    HRESULT (STDMETHODCALLTYPE *put_InputType)(
+        IAMTVTuner *This,
+        LONG index,
+        TunerInputType type);
+
+    HRESULT (STDMETHODCALLTYPE *get_InputType)(
+        IAMTVTuner *This,
+        LONG index,
+        TunerInputType *type);
+
+    HRESULT (STDMETHODCALLTYPE *put_ConnectInput)(
+        IAMTVTuner *This,
+        LONG index);
+
+    HRESULT (STDMETHODCALLTYPE *get_ConnectInput)(
+        IAMTVTuner *This,
+        LONG *index);
+
+    HRESULT (STDMETHODCALLTYPE *get_VideoFrequency)(
+        IAMTVTuner *This,
+        LONG *freq);
+
+    HRESULT (STDMETHODCALLTYPE *get_AudioFrequency)(
+        IAMTVTuner *This,
+        LONG *freq);
+
+    END_INTERFACE
+} IAMTVTunerVtbl;
+
+interface IAMTVTuner {
+    CONST_VTBL IAMTVTunerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMTuner methods ***/
+#define IAMTVTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
+#define IAMTVTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
+#define IAMTVTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
+#define IAMTVTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
+#define IAMTVTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
+#define IAMTVTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
+#define IAMTVTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
+#define IAMTVTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
+#define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
+#define IAMTVTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
+#define IAMTVTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
+#define IAMTVTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
+#define IAMTVTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
+#define IAMTVTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
+#define IAMTVTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
+/*** IAMTVTuner methods ***/
+#define IAMTVTuner_get_AvailableTVFormats(This,standard) (This)->lpVtbl->get_AvailableTVFormats(This,standard)
+#define IAMTVTuner_get_TVFormat(This,standard) (This)->lpVtbl->get_TVFormat(This,standard)
+#define IAMTVTuner_AutoTune(This,channel,signal) (This)->lpVtbl->AutoTune(This,channel,signal)
+#define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
+#define IAMTVTuner_get_NumInputConnections(This,number) (This)->lpVtbl->get_NumInputConnections(This,number)
+#define IAMTVTuner_put_InputType(This,index,type) (This)->lpVtbl->put_InputType(This,index,type)
+#define IAMTVTuner_get_InputType(This,index,type) (This)->lpVtbl->get_InputType(This,index,type)
+#define IAMTVTuner_put_ConnectInput(This,index) (This)->lpVtbl->put_ConnectInput(This,index)
+#define IAMTVTuner_get_ConnectInput(This,index) (This)->lpVtbl->get_ConnectInput(This,index)
+#define IAMTVTuner_get_VideoFrequency(This,freq) (This)->lpVtbl->get_VideoFrequency(This,freq)
+#define IAMTVTuner_get_AudioFrequency(This,freq) (This)->lpVtbl->get_AudioFrequency(This,freq)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMTVTuner_QueryInterface(IAMTVTuner* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMTVTuner_AddRef(IAMTVTuner* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMTVTuner_Release(IAMTVTuner* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMTuner methods ***/
+static FORCEINLINE HRESULT IAMTVTuner_put_Channel(IAMTVTuner* This,LONG channel,LONG video,LONG audio) {
+    return This->lpVtbl->put_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_Channel(IAMTVTuner* This,LONG *channel,LONG *video,LONG *audio) {
+    return This->lpVtbl->get_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTVTuner_ChannelMinMax(IAMTVTuner* This,LONG *min,LONG *max) {
+    return This->lpVtbl->ChannelMinMax(This,min,max);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_CountryCode(IAMTVTuner* This,LONG country) {
+    return This->lpVtbl->put_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_CountryCode(IAMTVTuner* This,LONG *country) {
+    return This->lpVtbl->get_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_TuningSpace(IAMTVTuner* This,LONG tuning_space) {
+    return This->lpVtbl->put_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_TuningSpace(IAMTVTuner* This,LONG *tuning_space) {
+    return This->lpVtbl->get_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTVTuner_Logon(IAMTVTuner* This,HANDLE user) {
+    return This->lpVtbl->Logon(This,user);
+}
+static FORCEINLINE HRESULT IAMTVTuner_Logout(IAMTVTuner* This) {
+    return This->lpVtbl->Logout(This);
+}
+static FORCEINLINE HRESULT IAMTVTuner_SignalPresent(IAMTVTuner* This,LONG *signal_strength) {
+    return This->lpVtbl->SignalPresent(This,signal_strength);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_Mode(IAMTVTuner* This,AMTunerModeType mode) {
+    return This->lpVtbl->put_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_Mode(IAMTVTuner* This,AMTunerModeType *mode) {
+    return This->lpVtbl->get_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTVTuner_GetAvailableModes(IAMTVTuner* This,LONG *modes) {
+    return This->lpVtbl->GetAvailableModes(This,modes);
+}
+static FORCEINLINE HRESULT IAMTVTuner_RegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify,LONG events) {
+    return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
+}
+static FORCEINLINE HRESULT IAMTVTuner_UnRegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify) {
+    return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
+}
+/*** IAMTVTuner methods ***/
+static FORCEINLINE HRESULT IAMTVTuner_get_AvailableTVFormats(IAMTVTuner* This,LONG *standard) {
+    return This->lpVtbl->get_AvailableTVFormats(This,standard);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_TVFormat(IAMTVTuner* This,LONG *standard) {
+    return This->lpVtbl->get_TVFormat(This,standard);
+}
+static FORCEINLINE HRESULT IAMTVTuner_AutoTune(IAMTVTuner* This,LONG channel,LONG *signal) {
+    return This->lpVtbl->AutoTune(This,channel,signal);
+}
+static FORCEINLINE HRESULT IAMTVTuner_StoreAutoTune(IAMTVTuner* This) {
+    return This->lpVtbl->StoreAutoTune(This);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_NumInputConnections(IAMTVTuner* This,LONG *number) {
+    return This->lpVtbl->get_NumInputConnections(This,number);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_InputType(IAMTVTuner* This,LONG index,TunerInputType type) {
+    return This->lpVtbl->put_InputType(This,index,type);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_InputType(IAMTVTuner* This,LONG index,TunerInputType *type) {
+    return This->lpVtbl->get_InputType(This,index,type);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_ConnectInput(IAMTVTuner* This,LONG index) {
+    return This->lpVtbl->put_ConnectInput(This,index);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_ConnectInput(IAMTVTuner* This,LONG *index) {
+    return This->lpVtbl->get_ConnectInput(This,index);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_VideoFrequency(IAMTVTuner* This,LONG *freq) {
+    return This->lpVtbl->get_VideoFrequency(This,freq);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_AudioFrequency(IAMTVTuner* This,LONG *freq) {
+    return This->lpVtbl->get_AudioFrequency(This,freq);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMTVTuner_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVideoFrameStep interface
+ */
+#ifndef __IVideoFrameStep_INTERFACE_DEFINED__
+#define __IVideoFrameStep_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e46a9787-2b71-444d-a4b5-1fab7b708d6a")
+IVideoFrameStep : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Step(
+        DWORD frame_count,
+        IUnknown *filter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CanStep(
+        LONG multiple,
+        IUnknown *filter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CancelStep(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a)
+#endif
+#else
+typedef struct IVideoFrameStepVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVideoFrameStep *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVideoFrameStep *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVideoFrameStep *This);
+
+    /*** IVideoFrameStep methods ***/
+    HRESULT (STDMETHODCALLTYPE *Step)(
+        IVideoFrameStep *This,
+        DWORD frame_count,
+        IUnknown *filter);
+
+    HRESULT (STDMETHODCALLTYPE *CanStep)(
+        IVideoFrameStep *This,
+        LONG multiple,
+        IUnknown *filter);
+
+    HRESULT (STDMETHODCALLTYPE *CancelStep)(
+        IVideoFrameStep *This);
+
+    END_INTERFACE
+} IVideoFrameStepVtbl;
+
+interface IVideoFrameStep {
+    CONST_VTBL IVideoFrameStepVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
+/*** IVideoFrameStep methods ***/
+#define IVideoFrameStep_Step(This,frame_count,filter) (This)->lpVtbl->Step(This,frame_count,filter)
+#define IVideoFrameStep_CanStep(This,multiple,filter) (This)->lpVtbl->CanStep(This,multiple,filter)
+#define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVideoFrameStep_QueryInterface(IVideoFrameStep* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVideoFrameStep_AddRef(IVideoFrameStep* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVideoFrameStep_Release(IVideoFrameStep* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IVideoFrameStep methods ***/
+static FORCEINLINE HRESULT IVideoFrameStep_Step(IVideoFrameStep* This,DWORD frame_count,IUnknown *filter) {
+    return This->lpVtbl->Step(This,frame_count,filter);
+}
+static FORCEINLINE HRESULT IVideoFrameStep_CanStep(IVideoFrameStep* This,LONG multiple,IUnknown *filter) {
+    return This->lpVtbl->CanStep(This,multiple,filter);
+}
+static FORCEINLINE HRESULT IVideoFrameStep_CancelStep(IVideoFrameStep* This) {
+    return This->lpVtbl->CancelStep(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IVideoFrameStep_INTERFACE_DEFINED__ */
+
 #if (_WIN32_WINNT >= 0x0601)
 /*****************************************************************************
  * IAMAsyncReaderTimestampScaling interface
@@ -9158,66 +11040,21 @@
 typedef struct IDistributorNotify IDistributorNotify;
 #endif
 
-#ifndef __IAMVideoCompression_FWD_DEFINED__
-#define __IAMVideoCompression_FWD_DEFINED__
-typedef struct IAMVideoCompression IAMVideoCompression;
-#endif
-
 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
 #define __IAMVfwCompressDialogs_FWD_DEFINED__
 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
 #endif
 
-#ifndef __IAMDroppedFrames_FWD_DEFINED__
-#define __IAMDroppedFrames_FWD_DEFINED__
-typedef struct IAMDroppedFrames IAMDroppedFrames;
-#endif
-
 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
 #define __IAMAudioInputMixer_FWD_DEFINED__
 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
 #endif
 
-#ifndef __IAMBufferNegotiation_FWD_DEFINED__
-#define __IAMBufferNegotiation_FWD_DEFINED__
-typedef struct IAMBufferNegotiation IAMBufferNegotiation;
-#endif
-
 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
 #endif
 
-#ifndef __IAMCameraControl_FWD_DEFINED__
-#define __IAMCameraControl_FWD_DEFINED__
-typedef struct IAMCameraControl IAMCameraControl;
-#endif
-
-#ifndef __IAMVideoControl_FWD_DEFINED__
-#define __IAMVideoControl_FWD_DEFINED__
-typedef struct IAMVideoControl IAMVideoControl;
-#endif
-
-#ifndef __IAMCrossbar_FWD_DEFINED__
-#define __IAMCrossbar_FWD_DEFINED__
-typedef struct IAMCrossbar IAMCrossbar;
-#endif
-
-#ifndef __IAMTuner_FWD_DEFINED__
-#define __IAMTuner_FWD_DEFINED__
-typedef struct IAMTuner IAMTuner;
-#endif
-
-#ifndef __IAMTunerNotification_FWD_DEFINED__
-#define __IAMTunerNotification_FWD_DEFINED__
-typedef struct IAMTunerNotification IAMTunerNotification;
-#endif
-
-#ifndef __IAMTVTuner_FWD_DEFINED__
-#define __IAMTVTuner_FWD_DEFINED__
-typedef struct IAMTVTuner IAMTVTuner;
-#endif
-
 #ifndef __IBPCSatelliteTuner_FWD_DEFINED__
 #define __IBPCSatelliteTuner_FWD_DEFINED__
 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
@@ -9308,21 +11145,6 @@
 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
 #endif
 
-#ifndef __IVideoFrameStep_FWD_DEFINED__
-#define __IVideoFrameStep_FWD_DEFINED__
-typedef struct IVideoFrameStep IVideoFrameStep;
-#endif
-
-#ifndef __IAMLatency_FWD_DEFINED__
-#define __IAMLatency_FWD_DEFINED__
-typedef struct IAMLatency IAMLatency;
-#endif
-
-#ifndef __IAMPushSource_FWD_DEFINED__
-#define __IAMPushSource_FWD_DEFINED__
-typedef struct IAMPushSource IAMPushSource;
-#endif
-
 #ifndef __IAMDeviceRemoval_FWD_DEFINED__
 #define __IAMDeviceRemoval_FWD_DEFINED__
 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
@@ -9670,86 +11492,6 @@
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
-#ifndef __IAMVideoCompression_INTERFACE_DEFINED__
-#define __IAMVideoCompression_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoCompression;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoCompression : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_KeyFrameRate(LONG KeyFrameRate) = 0;
-    virtual HRESULT WINAPI get_KeyFrameRate(LONG *pKeyFrameRate) = 0;
-    virtual HRESULT WINAPI put_PFramesPerKeyFrame(LONG PFramesPerKeyFrame) = 0;
-    virtual HRESULT WINAPI get_PFramesPerKeyFrame(LONG *pPFramesPerKeyFrame) = 0;
-    virtual HRESULT WINAPI put_Quality(double Quality) = 0;
-    virtual HRESULT WINAPI get_Quality(double *pQuality) = 0;
-    virtual HRESULT WINAPI put_WindowSize(DWORDLONG WindowSize) = 0;
-    virtual HRESULT WINAPI get_WindowSize(DWORDLONG *pWindowSize) = 0;
-    virtual HRESULT WINAPI GetInfo(WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities) = 0;
-    virtual HRESULT WINAPI OverrideKeyFrame(LONG FrameNumber) = 0;
-    virtual HRESULT WINAPI OverrideFrameSize(LONG FrameNumber,LONG Size) = 0;
-  };
-#else
-  typedef struct IAMVideoCompressionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoCompression *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoCompression *This);
-      ULONG (WINAPI *Release)(IAMVideoCompression *This);
-      HRESULT (WINAPI *put_KeyFrameRate)(IAMVideoCompression *This,LONG KeyFrameRate);
-      HRESULT (WINAPI *get_KeyFrameRate)(IAMVideoCompression *This,LONG *pKeyFrameRate);
-      HRESULT (WINAPI *put_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
-      HRESULT (WINAPI *get_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
-      HRESULT (WINAPI *put_Quality)(IAMVideoCompression *This,double Quality);
-      HRESULT (WINAPI *get_Quality)(IAMVideoCompression *This,double *pQuality);
-      HRESULT (WINAPI *put_WindowSize)(IAMVideoCompression *This,DWORDLONG WindowSize);
-      HRESULT (WINAPI *get_WindowSize)(IAMVideoCompression *This,DWORDLONG *pWindowSize);
-      HRESULT (WINAPI *GetInfo)(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
-      HRESULT (WINAPI *OverrideKeyFrame)(IAMVideoCompression *This,LONG FrameNumber);
-      HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
-    END_INTERFACE
-  } IAMVideoCompressionVtbl;
-  struct IAMVideoCompression {
-    CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoCompression_put_KeyFrameRate(This,KeyFrameRate) (This)->lpVtbl->put_KeyFrameRate(This,KeyFrameRate)
-#define IAMVideoCompression_get_KeyFrameRate(This,pKeyFrameRate) (This)->lpVtbl->get_KeyFrameRate(This,pKeyFrameRate)
-#define IAMVideoCompression_put_PFramesPerKeyFrame(This,PFramesPerKeyFrame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,PFramesPerKeyFrame)
-#define IAMVideoCompression_get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame)
-#define IAMVideoCompression_put_Quality(This,Quality) (This)->lpVtbl->put_Quality(This,Quality)
-#define IAMVideoCompression_get_Quality(This,pQuality) (This)->lpVtbl->get_Quality(This,pQuality)
-#define IAMVideoCompression_put_WindowSize(This,WindowSize) (This)->lpVtbl->put_WindowSize(This,WindowSize)
-#define IAMVideoCompression_get_WindowSize(This,pWindowSize) (This)->lpVtbl->get_WindowSize(This,pWindowSize)
-#define IAMVideoCompression_GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities) (This)->lpVtbl->GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities)
-#define IAMVideoCompression_OverrideKeyFrame(This,FrameNumber) (This)->lpVtbl->OverrideKeyFrame(This,FrameNumber)
-#define IAMVideoCompression_OverrideFrameSize(This,FrameNumber,Size) (This)->lpVtbl->OverrideFrameSize(This,FrameNumber,Size)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoCompression_put_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG KeyFrameRate);
-  void __RPC_STUB IAMVideoCompression_put_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG *pKeyFrameRate);
-  void __RPC_STUB IAMVideoCompression_get_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
-  void __RPC_STUB IAMVideoCompression_put_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
-  void __RPC_STUB IAMVideoCompression_get_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_Quality_Proxy(IAMVideoCompression *This,double Quality);
-  void __RPC_STUB IAMVideoCompression_put_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_Quality_Proxy(IAMVideoCompression *This,double *pQuality);
-  void __RPC_STUB IAMVideoCompression_get_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG WindowSize);
-  void __RPC_STUB IAMVideoCompression_put_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG *pWindowSize);
-  void __RPC_STUB IAMVideoCompression_get_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_GetInfo_Proxy(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
-  void __RPC_STUB IAMVideoCompression_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_OverrideKeyFrame_Proxy(IAMVideoCompression *This,LONG FrameNumber);
-  void __RPC_STUB IAMVideoCompression_OverrideKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_OverrideFrameSize_Proxy(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
-  void __RPC_STUB IAMVideoCompression_OverrideFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
   typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
     VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
@@ -9805,52 +11547,6 @@
   void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-#ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
-#define __IAMDroppedFrames_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMDroppedFrames;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMDroppedFrames : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetNumDropped(LONG *plDropped) = 0;
-    virtual HRESULT WINAPI GetNumNotDropped(LONG *plNotDropped) = 0;
-    virtual HRESULT WINAPI GetDroppedInfo(LONG lSize,LONG *plArray,LONG *plNumCopied) = 0;
-    virtual HRESULT WINAPI GetAverageFrameSize(LONG *plAverageSize) = 0;
-  };
-#else
-  typedef struct IAMDroppedFramesVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMDroppedFrames *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMDroppedFrames *This);
-      ULONG (WINAPI *Release)(IAMDroppedFrames *This);
-      HRESULT (WINAPI *GetNumDropped)(IAMDroppedFrames *This,LONG *plDropped);
-      HRESULT (WINAPI *GetNumNotDropped)(IAMDroppedFrames *This,LONG *plNotDropped);
-      HRESULT (WINAPI *GetDroppedInfo)(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
-      HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,LONG *plAverageSize);
-    END_INTERFACE
-  } IAMDroppedFramesVtbl;
-  struct IAMDroppedFrames {
-    CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
-#define IAMDroppedFrames_GetNumDropped(This,plDropped) (This)->lpVtbl->GetNumDropped(This,plDropped)
-#define IAMDroppedFrames_GetNumNotDropped(This,plNotDropped) (This)->lpVtbl->GetNumNotDropped(This,plNotDropped)
-#define IAMDroppedFrames_GetDroppedInfo(This,lSize,plArray,plNumCopied) (This)->lpVtbl->GetDroppedInfo(This,lSize,plArray,plNumCopied)
-#define IAMDroppedFrames_GetAverageFrameSize(This,plAverageSize) (This)->lpVtbl->GetAverageFrameSize(This,plAverageSize)
-#endif
-#endif
-  HRESULT WINAPI IAMDroppedFrames_GetNumDropped_Proxy(IAMDroppedFrames *This,LONG *plDropped);
-  void __RPC_STUB IAMDroppedFrames_GetNumDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetNumNotDropped_Proxy(IAMDroppedFrames *This,LONG *plNotDropped);
-  void __RPC_STUB IAMDroppedFrames_GetNumNotDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetDroppedInfo_Proxy(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
-  void __RPC_STUB IAMDroppedFrames_GetDroppedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetAverageFrameSize_Proxy(IAMDroppedFrames *This,LONG *plAverageSize);
-  void __RPC_STUB IAMDroppedFrames_GetAverageFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
 #define AMF_AUTOMATICGAIN -1.0
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
@@ -9961,42 +11657,6 @@
   void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-#ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
-#define __IAMBufferNegotiation_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMBufferNegotiation;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMBufferNegotiation : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop) = 0;
-    virtual HRESULT WINAPI GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop) = 0;
-  };
-#else
-  typedef struct IAMBufferNegotiationVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMBufferNegotiation *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMBufferNegotiation *This);
-      ULONG (WINAPI *Release)(IAMBufferNegotiation *This);
-      HRESULT (WINAPI *SuggestAllocatorProperties)(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
-      HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
-    END_INTERFACE
-  } IAMBufferNegotiationVtbl;
-  struct IAMBufferNegotiation {
-    CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
-#define IAMBufferNegotiation_SuggestAllocatorProperties(This,pprop) (This)->lpVtbl->SuggestAllocatorProperties(This,pprop)
-#define IAMBufferNegotiation_GetAllocatorProperties(This,pprop) (This)->lpVtbl->GetAllocatorProperties(This,pprop)
-#endif
-#endif
-  HRESULT WINAPI IAMBufferNegotiation_SuggestAllocatorProperties_Proxy(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
-  void __RPC_STUB IAMBufferNegotiation_SuggestAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMBufferNegotiation_GetAllocatorProperties_Proxy(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
-  void __RPC_STUB IAMBufferNegotiation_GetAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
 #define AnalogVideo_NTSC_Mask 0x00000007
 #define AnalogVideo_PAL_Mask 0x00100FF0
 #define AnalogVideo_SECAM_Mask 0x000FF000
@@ -10102,46 +11762,6 @@
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
-#ifndef __IAMCameraControl_INTERFACE_DEFINED__
-#define __IAMCameraControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCameraControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCameraControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetRange(LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) = 0;
-    virtual HRESULT WINAPI Set(LONG Property,LONG lValue,LONG Flags) = 0;
-    virtual HRESULT WINAPI Get(LONG Property,LONG *lValue,LONG *Flags) = 0;
-  };
-#else
-  typedef struct IAMCameraControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCameraControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCameraControl *This);
-      ULONG (WINAPI *Release)(IAMCameraControl *This);
-      HRESULT (WINAPI *GetRange)(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
-      HRESULT (WINAPI *Set)(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
-      HRESULT (WINAPI *Get)(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
-    END_INTERFACE
-  } IAMCameraControlVtbl;
-  struct IAMCameraControl {
-    CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCameraControl_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
-#define IAMCameraControl_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
-#define IAMCameraControl_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
-#endif
-#endif
-  HRESULT WINAPI IAMCameraControl_GetRange_Proxy(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
-  void __RPC_STUB IAMCameraControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCameraControl_Set_Proxy(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
-  void __RPC_STUB IAMCameraControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCameraControl_Get_Proxy(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
-  void __RPC_STUB IAMCameraControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
   typedef enum tagVideoControlFlags {
     VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
@@ -10149,116 +11769,6 @@
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
-#ifndef __IAMVideoControl_INTERFACE_DEFINED__
-#define __IAMVideoControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCaps(IPin *pPin,LONG *pCapsFlags) = 0;
-    virtual HRESULT WINAPI SetMode(IPin *pPin,LONG Mode) = 0;
-    virtual HRESULT WINAPI GetMode(IPin *pPin,LONG *Mode) = 0;
-    virtual HRESULT WINAPI GetCurrentActualFrameRate(IPin *pPin,LONGLONG *ActualFrameRate) = 0;
-    virtual HRESULT WINAPI GetMaxAvailableFrameRate(IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate) = 0;
-    virtual HRESULT WINAPI GetFrameRateList(IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates) = 0;
-  };
-#else
-  typedef struct IAMVideoControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoControl *This);
-      ULONG (WINAPI *Release)(IAMVideoControl *This);
-      HRESULT (WINAPI *GetCaps)(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
-      HRESULT (WINAPI *SetMode)(IAMVideoControl *This,IPin *pPin,LONG Mode);
-      HRESULT (WINAPI *GetMode)(IAMVideoControl *This,IPin *pPin,LONG *Mode);
-      HRESULT (WINAPI *GetCurrentActualFrameRate)(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
-      HRESULT (WINAPI *GetMaxAvailableFrameRate)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
-      HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
-    END_INTERFACE
-  } IAMVideoControlVtbl;
-  struct IAMVideoControl {
-    CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoControl_GetCaps(This,pPin,pCapsFlags) (This)->lpVtbl->GetCaps(This,pPin,pCapsFlags)
-#define IAMVideoControl_SetMode(This,pPin,Mode) (This)->lpVtbl->SetMode(This,pPin,Mode)
-#define IAMVideoControl_GetMode(This,pPin,Mode) (This)->lpVtbl->GetMode(This,pPin,Mode)
-#define IAMVideoControl_GetCurrentActualFrameRate(This,pPin,ActualFrameRate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pPin,ActualFrameRate)
-#define IAMVideoControl_GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate)
-#define IAMVideoControl_GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates) (This)->lpVtbl->GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoControl_GetCaps_Proxy(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
-  void __RPC_STUB IAMVideoControl_GetCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_SetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG Mode);
-  void __RPC_STUB IAMVideoControl_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG *Mode);
-  void __RPC_STUB IAMVideoControl_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetCurrentActualFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
-  void __RPC_STUB IAMVideoControl_GetCurrentActualFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetMaxAvailableFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
-  void __RPC_STUB IAMVideoControl_GetMaxAvailableFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetFrameRateList_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
-  void __RPC_STUB IAMVideoControl_GetFrameRateList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56);
-#endif
-
-#ifndef __IAMCrossbar_INTERFACE_DEFINED__
-#define __IAMCrossbar_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCrossbar;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCrossbar : public IUnknown {
-  public:
-    virtual HRESULT WINAPI get_PinCounts(LONG *OutputPinCount,LONG *InputPinCount) = 0;
-    virtual HRESULT WINAPI CanRoute(LONG OutputPinIndex,LONG InputPinIndex) = 0;
-    virtual HRESULT WINAPI Route(LONG OutputPinIndex,LONG InputPinIndex) = 0;
-    virtual HRESULT WINAPI get_IsRoutedTo(LONG OutputPinIndex,LONG *InputPinIndex) = 0;
-    virtual HRESULT WINAPI get_CrossbarPinInfo(WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType) = 0;
-  };
-#else
-  typedef struct IAMCrossbarVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCrossbar *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCrossbar *This);
-      ULONG (WINAPI *Release)(IAMCrossbar *This);
-      HRESULT (WINAPI *get_PinCounts)(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
-      HRESULT (WINAPI *CanRoute)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-      HRESULT (WINAPI *Route)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-      HRESULT (WINAPI *get_IsRoutedTo)(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
-      HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
-    END_INTERFACE
-  } IAMCrossbarVtbl;
-  struct IAMCrossbar {
-    CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCrossbar_get_PinCounts(This,OutputPinCount,InputPinCount) (This)->lpVtbl->get_PinCounts(This,OutputPinCount,InputPinCount)
-#define IAMCrossbar_CanRoute(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->CanRoute(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_Route(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->Route(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_get_IsRoutedTo(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->get_IsRoutedTo(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType) (This)->lpVtbl->get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType)
-#endif
-#endif
-  HRESULT WINAPI IAMCrossbar_get_PinCounts_Proxy(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
-  void __RPC_STUB IAMCrossbar_get_PinCounts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_CanRoute_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-  void __RPC_STUB IAMCrossbar_CanRoute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_Route_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-  void __RPC_STUB IAMCrossbar_Route_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_get_IsRoutedTo_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
-  void __RPC_STUB IAMCrossbar_get_IsRoutedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_get_CrossbarPinInfo_Proxy(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
-  void __RPC_STUB IAMCrossbar_get_CrossbarPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
   typedef enum tagAMTunerSubChannel {
     AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
@@ -10268,258 +11778,8 @@
     AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
   } AMTunerSignalStrength;
 
-  typedef enum tagAMTunerModeType {
-    AMTUNER_MODE_DEFAULT = 0,AMTUNER_MODE_TV = 0x1,AMTUNER_MODE_FM_RADIO = 0x2,AMTUNER_MODE_AM_RADIO = 0x4,AMTUNER_MODE_DSS = 0x8
-  } AMTunerModeType;
-
-  typedef enum tagAMTunerEventType {
-    AMTUNER_EVENT_CHANGED = 0x1
-  } AMTunerEventType;
-
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
-#ifndef __IAMTuner_INTERFACE_DEFINED__
-#define __IAMTuner_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTuner;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTuner : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_Channel(LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel) = 0;
-    virtual HRESULT WINAPI get_Channel(LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel) = 0;
-    virtual HRESULT WINAPI ChannelMinMax(LONG *lChannelMin,LONG *lChannelMax) = 0;
-    virtual HRESULT WINAPI put_CountryCode(LONG lCountryCode) = 0;
-    virtual HRESULT WINAPI get_CountryCode(LONG *plCountryCode) = 0;
-    virtual HRESULT WINAPI put_TuningSpace(LONG lTuningSpace) = 0;
-    virtual HRESULT WINAPI get_TuningSpace(LONG *plTuningSpace) = 0;
-    virtual HRESULT WINAPI Logon(HANDLE hCurrentUser) = 0;
-    virtual HRESULT WINAPI Logout(void) = 0;
-    virtual HRESULT WINAPI SignalPresent(LONG *plSignalStrength) = 0;
-    virtual HRESULT WINAPI put_Mode(AMTunerModeType lMode) = 0;
-    virtual HRESULT WINAPI get_Mode(AMTunerModeType *plMode) = 0;
-    virtual HRESULT WINAPI GetAvailableModes(LONG *plModes) = 0;
-    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
-    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
-  };
-#else
-  typedef struct IAMTunerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTuner *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTuner *This);
-      ULONG (WINAPI *Release)(IAMTuner *This);
-      HRESULT (WINAPI *put_Channel)(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
-      HRESULT (WINAPI *get_Channel)(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
-      HRESULT (WINAPI *ChannelMinMax)(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
-      HRESULT (WINAPI *put_CountryCode)(IAMTuner *This,LONG lCountryCode);
-      HRESULT (WINAPI *get_CountryCode)(IAMTuner *This,LONG *plCountryCode);
-      HRESULT (WINAPI *put_TuningSpace)(IAMTuner *This,LONG lTuningSpace);
-      HRESULT (WINAPI *get_TuningSpace)(IAMTuner *This,LONG *plTuningSpace);
-      HRESULT (WINAPI *Logon)(IAMTuner *This,HANDLE hCurrentUser);
-      HRESULT (WINAPI *Logout)(IAMTuner *This);
-      HRESULT (WINAPI *SignalPresent)(IAMTuner *This,LONG *plSignalStrength);
-      HRESULT (WINAPI *put_Mode)(IAMTuner *This,AMTunerModeType lMode);
-      HRESULT (WINAPI *get_Mode)(IAMTuner *This,AMTunerModeType *plMode);
-      HRESULT (WINAPI *GetAvailableModes)(IAMTuner *This,LONG *plModes);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
-    END_INTERFACE
-  } IAMTunerVtbl;
-  struct IAMTuner {
-    CONST_VTBL struct IAMTunerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
-#define IAMTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
-#define IAMTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
-#define IAMTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
-#define IAMTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
-#define IAMTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
-#define IAMTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
-#define IAMTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
-#define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
-#define IAMTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
-#define IAMTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
-#define IAMTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
-#define IAMTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
-#define IAMTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IAMTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#endif
-#endif
-  HRESULT WINAPI IAMTuner_put_Channel_Proxy(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
-  void __RPC_STUB IAMTuner_put_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_Channel_Proxy(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
-  void __RPC_STUB IAMTuner_get_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_ChannelMinMax_Proxy(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
-  void __RPC_STUB IAMTuner_ChannelMinMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_CountryCode_Proxy(IAMTuner *This,LONG lCountryCode);
-  void __RPC_STUB IAMTuner_put_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_CountryCode_Proxy(IAMTuner *This,LONG *plCountryCode);
-  void __RPC_STUB IAMTuner_get_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_TuningSpace_Proxy(IAMTuner *This,LONG lTuningSpace);
-  void __RPC_STUB IAMTuner_put_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_TuningSpace_Proxy(IAMTuner *This,LONG *plTuningSpace);
-  void __RPC_STUB IAMTuner_get_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_Logon_Proxy(IAMTuner *This,HANDLE hCurrentUser);
-  void __RPC_STUB IAMTuner_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_Logout_Proxy(IAMTuner *This);
-  void __RPC_STUB IAMTuner_Logout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_SignalPresent_Proxy(IAMTuner *This,LONG *plSignalStrength);
-  void __RPC_STUB IAMTuner_SignalPresent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_Mode_Proxy(IAMTuner *This,AMTunerModeType lMode);
-  void __RPC_STUB IAMTuner_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_Mode_Proxy(IAMTuner *This,AMTunerModeType *plMode);
-  void __RPC_STUB IAMTuner_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_GetAvailableModes_Proxy(IAMTuner *This,LONG *plModes);
-  void __RPC_STUB IAMTuner_GetAvailableModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_RegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
-  void __RPC_STUB IAMTuner_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_UnRegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify);
-  void __RPC_STUB IAMTuner_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMTunerNotification_INTERFACE_DEFINED__
-#define __IAMTunerNotification_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTunerNotification;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTunerNotification : public IUnknown {
-  public:
-    virtual HRESULT WINAPI OnEvent(AMTunerEventType Event) = 0;
-  };
-#else
-  typedef struct IAMTunerNotificationVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTunerNotification *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTunerNotification *This);
-      ULONG (WINAPI *Release)(IAMTunerNotification *This);
-      HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
-    END_INTERFACE
-  } IAMTunerNotificationVtbl;
-  struct IAMTunerNotification {
-    CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTunerNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
-#endif
-#endif
-  HRESULT WINAPI IAMTunerNotification_OnEvent_Proxy(IAMTunerNotification *This,AMTunerEventType Event);
-  void __RPC_STUB IAMTunerNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMTVTuner_INTERFACE_DEFINED__
-#define __IAMTVTuner_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTVTuner;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTVTuner : public IAMTuner {
-  public:
-    virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI AutoTune(LONG lChannel,LONG *plFoundSignal) = 0;
-    virtual HRESULT WINAPI StoreAutoTune(void) = 0;
-    virtual HRESULT WINAPI get_NumInputConnections(LONG *plNumInputConnections) = 0;
-    virtual HRESULT WINAPI put_InputType(LONG lIndex,TunerInputType InputType) = 0;
-    virtual HRESULT WINAPI get_InputType(LONG lIndex,TunerInputType *pInputType) = 0;
-    virtual HRESULT WINAPI put_ConnectInput(LONG lIndex) = 0;
-    virtual HRESULT WINAPI get_ConnectInput(LONG *plIndex) = 0;
-    virtual HRESULT WINAPI get_VideoFrequency(LONG *lFreq) = 0;
-    virtual HRESULT WINAPI get_AudioFrequency(LONG *lFreq) = 0;
-  };
-#else
-  typedef struct IAMTVTunerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTVTuner *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTVTuner *This);
-      ULONG (WINAPI *Release)(IAMTVTuner *This);
-      HRESULT (WINAPI *put_Channel)(IAMTVTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
-      HRESULT (WINAPI *get_Channel)(IAMTVTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
-      HRESULT (WINAPI *ChannelMinMax)(IAMTVTuner *This,LONG *lChannelMin,LONG *lChannelMax);
-      HRESULT (WINAPI *put_CountryCode)(IAMTVTuner *This,LONG lCountryCode);
-      HRESULT (WINAPI *get_CountryCode)(IAMTVTuner *This,LONG *plCountryCode);
-      HRESULT (WINAPI *put_TuningSpace)(IAMTVTuner *This,LONG lTuningSpace);
-      HRESULT (WINAPI *get_TuningSpace)(IAMTVTuner *This,LONG *plTuningSpace);
-      HRESULT (WINAPI *Logon)(IAMTVTuner *This,HANDLE hCurrentUser);
-      HRESULT (WINAPI *Logout)(IAMTVTuner *This);
-      HRESULT (WINAPI *SignalPresent)(IAMTVTuner *This,LONG *plSignalStrength);
-      HRESULT (WINAPI *put_Mode)(IAMTVTuner *This,AMTunerModeType lMode);
-      HRESULT (WINAPI *get_Mode)(IAMTVTuner *This,AMTunerModeType *plMode);
-      HRESULT (WINAPI *GetAvailableModes)(IAMTVTuner *This,LONG *plModes);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify);
-      HRESULT (WINAPI *get_AvailableTVFormats)(IAMTVTuner *This,LONG *lAnalogVideoStandard);
-      HRESULT (WINAPI *get_TVFormat)(IAMTVTuner *This,LONG *plAnalogVideoStandard);
-      HRESULT (WINAPI *AutoTune)(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
-      HRESULT (WINAPI *StoreAutoTune)(IAMTVTuner *This);
-      HRESULT (WINAPI *get_NumInputConnections)(IAMTVTuner *This,LONG *plNumInputConnections);
-      HRESULT (WINAPI *put_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
-      HRESULT (WINAPI *get_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
-      HRESULT (WINAPI *put_ConnectInput)(IAMTVTuner *This,LONG lIndex);
-      HRESULT (WINAPI *get_ConnectInput)(IAMTVTuner *This,LONG *plIndex);
-      HRESULT (WINAPI *get_VideoFrequency)(IAMTVTuner *This,LONG *lFreq);
-      HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,LONG *lFreq);
-    END_INTERFACE
-  } IAMTVTunerVtbl;
-  struct IAMTVTuner {
-    CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTVTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
-#define IAMTVTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
-#define IAMTVTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
-#define IAMTVTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
-#define IAMTVTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
-#define IAMTVTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
-#define IAMTVTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
-#define IAMTVTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
-#define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
-#define IAMTVTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
-#define IAMTVTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
-#define IAMTVTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
-#define IAMTVTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
-#define IAMTVTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IAMTVTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#define IAMTVTuner_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
-#define IAMTVTuner_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
-#define IAMTVTuner_AutoTune(This,lChannel,plFoundSignal) (This)->lpVtbl->AutoTune(This,lChannel,plFoundSignal)
-#define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
-#define IAMTVTuner_get_NumInputConnections(This,plNumInputConnections) (This)->lpVtbl->get_NumInputConnections(This,plNumInputConnections)
-#define IAMTVTuner_put_InputType(This,lIndex,InputType) (This)->lpVtbl->put_InputType(This,lIndex,InputType)
-#define IAMTVTuner_get_InputType(This,lIndex,pInputType) (This)->lpVtbl->get_InputType(This,lIndex,pInputType)
-#define IAMTVTuner_put_ConnectInput(This,lIndex) (This)->lpVtbl->put_ConnectInput(This,lIndex)
-#define IAMTVTuner_get_ConnectInput(This,plIndex) (This)->lpVtbl->get_ConnectInput(This,plIndex)
-#define IAMTVTuner_get_VideoFrequency(This,lFreq) (This)->lpVtbl->get_VideoFrequency(This,lFreq)
-#define IAMTVTuner_get_AudioFrequency(This,lFreq) (This)->lpVtbl->get_AudioFrequency(This,lFreq)
-#endif
-#endif
-  HRESULT WINAPI IAMTVTuner_get_AvailableTVFormats_Proxy(IAMTVTuner *This,LONG *lAnalogVideoStandard);
-  void __RPC_STUB IAMTVTuner_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_TVFormat_Proxy(IAMTVTuner *This,LONG *plAnalogVideoStandard);
-  void __RPC_STUB IAMTVTuner_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_AutoTune_Proxy(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
-  void __RPC_STUB IAMTVTuner_AutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_StoreAutoTune_Proxy(IAMTVTuner *This);
-  void __RPC_STUB IAMTVTuner_StoreAutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_NumInputConnections_Proxy(IAMTVTuner *This,LONG *plNumInputConnections);
-  void __RPC_STUB IAMTVTuner_get_NumInputConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_put_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
-  void __RPC_STUB IAMTVTuner_put_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
-  void __RPC_STUB IAMTVTuner_get_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_put_ConnectInput_Proxy(IAMTVTuner *This,LONG lIndex);
-  void __RPC_STUB IAMTVTuner_put_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_ConnectInput_Proxy(IAMTVTuner *This,LONG *plIndex);
-  void __RPC_STUB IAMTVTuner_get_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_VideoFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
-  void __RPC_STUB IAMTVTuner_get_VideoFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_AudioFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
-  void __RPC_STUB IAMTVTuner_get_AudioFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
 #ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
 #define __IBPCSatelliteTuner_INTERFACE_DEFINED__
@@ -10746,10 +12006,6 @@
   void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-  typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {
-    AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
-  } AMPROPERTY_PIN;
-
 #ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
 #define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IAMPhysicalPinInfo;
@@ -11553,47 +12809,6 @@
   void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-#ifndef __IVideoFrameStep_INTERFACE_DEFINED__
-#define __IVideoFrameStep_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVideoFrameStep;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVideoFrameStep : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Step(DWORD dwFrames,IUnknown *pStepObject) = 0;
-    virtual HRESULT WINAPI CanStep(LONG bMultiple,IUnknown *pStepObject) = 0;
-    virtual HRESULT WINAPI CancelStep(void) = 0;
-  };
-#else
-  typedef struct IVideoFrameStepVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVideoFrameStep *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVideoFrameStep *This);
-      ULONG (WINAPI *Release)(IVideoFrameStep *This);
-      HRESULT (WINAPI *Step)(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
-      HRESULT (WINAPI *CanStep)(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
-      HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
-    END_INTERFACE
-  } IVideoFrameStepVtbl;
-  struct IVideoFrameStep {
-    CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
-#define IVideoFrameStep_Step(This,dwFrames,pStepObject) (This)->lpVtbl->Step(This,dwFrames,pStepObject)
-#define IVideoFrameStep_CanStep(This,bMultiple,pStepObject) (This)->lpVtbl->CanStep(This,bMultiple,pStepObject)
-#define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
-#endif
-#endif
-  HRESULT WINAPI IVideoFrameStep_Step_Proxy(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
-  void __RPC_STUB IVideoFrameStep_Step_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoFrameStep_CanStep_Proxy(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
-  void __RPC_STUB IVideoFrameStep_CanStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoFrameStep_CancelStep_Proxy(IVideoFrameStep *This);
-  void __RPC_STUB IVideoFrameStep_CancelStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
   enum _AM_PUSHSOURCE_FLAGS {
     AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
     AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
@@ -11601,94 +12816,6 @@
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
-#ifndef __IAMLatency_INTERFACE_DEFINED__
-#define __IAMLatency_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMLatency;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMLatency : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetLatency(REFERENCE_TIME *prtLatency) = 0;
-  };
-#else
-  typedef struct IAMLatencyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMLatency *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMLatency *This);
-      ULONG (WINAPI *Release)(IAMLatency *This);
-      HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
-    END_INTERFACE
-  } IAMLatencyVtbl;
-  struct IAMLatency {
-    CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
-#define IAMLatency_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
-#endif
-#endif
-  HRESULT WINAPI IAMLatency_GetLatency_Proxy(IAMLatency *This,REFERENCE_TIME *prtLatency);
-  void __RPC_STUB IAMLatency_GetLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMPushSource_INTERFACE_DEFINED__
-#define __IAMPushSource_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMPushSource;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMPushSource : public IAMLatency {
-  public:
-    virtual HRESULT WINAPI GetPushSourceFlags(ULONG *pFlags) = 0;
-    virtual HRESULT WINAPI SetPushSourceFlags(ULONG Flags) = 0;
-    virtual HRESULT WINAPI SetStreamOffset(REFERENCE_TIME rtOffset) = 0;
-    virtual HRESULT WINAPI GetStreamOffset(REFERENCE_TIME *prtOffset) = 0;
-    virtual HRESULT WINAPI GetMaxStreamOffset(REFERENCE_TIME *prtMaxOffset) = 0;
-    virtual HRESULT WINAPI SetMaxStreamOffset(REFERENCE_TIME rtMaxOffset) = 0;
-  };
-#else
-  typedef struct IAMPushSourceVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMPushSource *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMPushSource *This);
-      ULONG (WINAPI *Release)(IAMPushSource *This);
-      HRESULT (WINAPI *GetLatency)(IAMPushSource *This,REFERENCE_TIME *prtLatency);
-      HRESULT (WINAPI *GetPushSourceFlags)(IAMPushSource *This,ULONG *pFlags);
-      HRESULT (WINAPI *SetPushSourceFlags)(IAMPushSource *This,ULONG Flags);
-      HRESULT (WINAPI *SetStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtOffset);
-      HRESULT (WINAPI *GetStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtOffset);
-      HRESULT (WINAPI *GetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
-      HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
-    END_INTERFACE
-  } IAMPushSourceVtbl;
-  struct IAMPushSource {
-    CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
-#define IAMPushSource_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
-#define IAMPushSource_GetPushSourceFlags(This,pFlags) (This)->lpVtbl->GetPushSourceFlags(This,pFlags)
-#define IAMPushSource_SetPushSourceFlags(This,Flags) (This)->lpVtbl->SetPushSourceFlags(This,Flags)
-#define IAMPushSource_SetStreamOffset(This,rtOffset) (This)->lpVtbl->SetStreamOffset(This,rtOffset)
-#define IAMPushSource_GetStreamOffset(This,prtOffset) (This)->lpVtbl->GetStreamOffset(This,prtOffset)
-#define IAMPushSource_GetMaxStreamOffset(This,prtMaxOffset) (This)->lpVtbl->GetMaxStreamOffset(This,prtMaxOffset)
-#define IAMPushSource_SetMaxStreamOffset(This,rtMaxOffset) (This)->lpVtbl->SetMaxStreamOffset(This,rtMaxOffset)
-#endif
-#endif
-  HRESULT WINAPI IAMPushSource_GetPushSourceFlags_Proxy(IAMPushSource *This,ULONG *pFlags);
-  void __RPC_STUB IAMPushSource_GetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetPushSourceFlags_Proxy(IAMPushSource *This,ULONG Flags);
-  void __RPC_STUB IAMPushSource_SetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtOffset);
-  void __RPC_STUB IAMPushSource_SetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_GetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtOffset);
-  void __RPC_STUB IAMPushSource_GetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_GetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
-  void __RPC_STUB IAMPushSource_GetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
-  void __RPC_STUB IAMPushSource_SetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
 #ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
 #define __IAMDeviceRemoval_INTERFACE_DEFINED__