strmif.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:843k
源码类别:

模拟服务器

开发平台:

C/C++

  1.             IMemInputPin * This,
  2.             /* [in] */ IMemAllocator *pAllocator,
  3.             /* [in] */ BOOL bReadOnly);
  4.         
  5.         HRESULT ( STDMETHODCALLTYPE *GetAllocatorRequirements )( 
  6.             IMemInputPin * This,
  7.             /* [out] */ ALLOCATOR_PROPERTIES *pProps);
  8.         
  9.         HRESULT ( STDMETHODCALLTYPE *Receive )( 
  10.             IMemInputPin * This,
  11.             /* [in] */ IMediaSample *pSample);
  12.         
  13.         HRESULT ( STDMETHODCALLTYPE *ReceiveMultiple )( 
  14.             IMemInputPin * This,
  15.             /* [size_is][in] */ IMediaSample **pSamples,
  16.             /* [in] */ long nSamples,
  17.             /* [out] */ long *nSamplesProcessed);
  18.         
  19.         HRESULT ( STDMETHODCALLTYPE *ReceiveCanBlock )( 
  20.             IMemInputPin * This);
  21.         
  22.         END_INTERFACE
  23.     } IMemInputPinVtbl;
  24.     interface IMemInputPin
  25.     {
  26.         CONST_VTBL struct IMemInputPinVtbl *lpVtbl;
  27.     };
  28.     
  29. #ifdef COBJMACROS
  30. #define IMemInputPin_QueryInterface(This,riid,ppvObject)
  31.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  32. #define IMemInputPin_AddRef(This)
  33.     (This)->lpVtbl -> AddRef(This)
  34. #define IMemInputPin_Release(This)
  35.     (This)->lpVtbl -> Release(This)
  36. #define IMemInputPin_GetAllocator(This,ppAllocator)
  37.     (This)->lpVtbl -> GetAllocator(This,ppAllocator)
  38. #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly)
  39.     (This)->lpVtbl -> NotifyAllocator(This,pAllocator,bReadOnly)
  40. #define IMemInputPin_GetAllocatorRequirements(This,pProps)
  41.     (This)->lpVtbl -> GetAllocatorRequirements(This,pProps)
  42. #define IMemInputPin_Receive(This,pSample)
  43.     (This)->lpVtbl -> Receive(This,pSample)
  44. #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
  45.     (This)->lpVtbl -> ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
  46. #define IMemInputPin_ReceiveCanBlock(This)
  47.     (This)->lpVtbl -> ReceiveCanBlock(This)
  48. #endif /* COBJMACROS */
  49. #endif  /* C style interface */
  50. HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocator_Proxy( 
  51.     IMemInputPin * This,
  52.     /* [out] */ IMemAllocator **ppAllocator);
  53. void __RPC_STUB IMemInputPin_GetAllocator_Stub(
  54.     IRpcStubBuffer *This,
  55.     IRpcChannelBuffer *_pRpcChannelBuffer,
  56.     PRPC_MESSAGE _pRpcMessage,
  57.     DWORD *_pdwStubPhase);
  58. HRESULT STDMETHODCALLTYPE IMemInputPin_NotifyAllocator_Proxy( 
  59.     IMemInputPin * This,
  60.     /* [in] */ IMemAllocator *pAllocator,
  61.     /* [in] */ BOOL bReadOnly);
  62. void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(
  63.     IRpcStubBuffer *This,
  64.     IRpcChannelBuffer *_pRpcChannelBuffer,
  65.     PRPC_MESSAGE _pRpcMessage,
  66.     DWORD *_pdwStubPhase);
  67. HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocatorRequirements_Proxy( 
  68.     IMemInputPin * This,
  69.     /* [out] */ ALLOCATOR_PROPERTIES *pProps);
  70. void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(
  71.     IRpcStubBuffer *This,
  72.     IRpcChannelBuffer *_pRpcChannelBuffer,
  73.     PRPC_MESSAGE _pRpcMessage,
  74.     DWORD *_pdwStubPhase);
  75. HRESULT STDMETHODCALLTYPE IMemInputPin_Receive_Proxy( 
  76.     IMemInputPin * This,
  77.     /* [in] */ IMediaSample *pSample);
  78. void __RPC_STUB IMemInputPin_Receive_Stub(
  79.     IRpcStubBuffer *This,
  80.     IRpcChannelBuffer *_pRpcChannelBuffer,
  81.     PRPC_MESSAGE _pRpcMessage,
  82.     DWORD *_pdwStubPhase);
  83. HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveMultiple_Proxy( 
  84.     IMemInputPin * This,
  85.     /* [size_is][in] */ IMediaSample **pSamples,
  86.     /* [in] */ long nSamples,
  87.     /* [out] */ long *nSamplesProcessed);
  88. void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(
  89.     IRpcStubBuffer *This,
  90.     IRpcChannelBuffer *_pRpcChannelBuffer,
  91.     PRPC_MESSAGE _pRpcMessage,
  92.     DWORD *_pdwStubPhase);
  93. HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveCanBlock_Proxy( 
  94.     IMemInputPin * This);
  95. void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(
  96.     IRpcStubBuffer *This,
  97.     IRpcChannelBuffer *_pRpcChannelBuffer,
  98.     PRPC_MESSAGE _pRpcMessage,
  99.     DWORD *_pdwStubPhase);
  100. #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
  101. /* interface __MIDL_itf_strmif_0126 */
  102. /* [local] */ 
  103. typedef IMemInputPin *PMEMINPUTPIN;
  104. extern RPC_IF_HANDLE __MIDL_itf_strmif_0126_v0_0_c_ifspec;
  105. extern RPC_IF_HANDLE __MIDL_itf_strmif_0126_v0_0_s_ifspec;
  106. #ifndef __IAMovieSetup_INTERFACE_DEFINED__
  107. #define __IAMovieSetup_INTERFACE_DEFINED__
  108. /* interface IAMovieSetup */
  109. /* [unique][uuid][object] */ 
  110. EXTERN_C const IID IID_IAMovieSetup;
  111. #if defined(__cplusplus) && !defined(CINTERFACE)
  112.     
  113.     MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
  114.     IAMovieSetup : public IUnknown
  115.     {
  116.     public:
  117.         virtual HRESULT STDMETHODCALLTYPE Register( void) = 0;
  118.         
  119.         virtual HRESULT STDMETHODCALLTYPE Unregister( void) = 0;
  120.         
  121.     };
  122.     
  123. #else  /* C style interface */
  124.     typedef struct IAMovieSetupVtbl
  125.     {
  126.         BEGIN_INTERFACE
  127.         
  128.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  129.             IAMovieSetup * This,
  130.             /* [in] */ REFIID riid,
  131.             /* [iid_is][out] */ void **ppvObject);
  132.         
  133.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  134.             IAMovieSetup * This);
  135.         
  136.         ULONG ( STDMETHODCALLTYPE *Release )( 
  137.             IAMovieSetup * This);
  138.         
  139.         HRESULT ( STDMETHODCALLTYPE *Register )( 
  140.             IAMovieSetup * This);
  141.         
  142.         HRESULT ( STDMETHODCALLTYPE *Unregister )( 
  143.             IAMovieSetup * This);
  144.         
  145.         END_INTERFACE
  146.     } IAMovieSetupVtbl;
  147.     interface IAMovieSetup
  148.     {
  149.         CONST_VTBL struct IAMovieSetupVtbl *lpVtbl;
  150.     };
  151.     
  152. #ifdef COBJMACROS
  153. #define IAMovieSetup_QueryInterface(This,riid,ppvObject)
  154.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  155. #define IAMovieSetup_AddRef(This)
  156.     (This)->lpVtbl -> AddRef(This)
  157. #define IAMovieSetup_Release(This)
  158.     (This)->lpVtbl -> Release(This)
  159. #define IAMovieSetup_Register(This)
  160.     (This)->lpVtbl -> Register(This)
  161. #define IAMovieSetup_Unregister(This)
  162.     (This)->lpVtbl -> Unregister(This)
  163. #endif /* COBJMACROS */
  164. #endif  /* C style interface */
  165. HRESULT STDMETHODCALLTYPE IAMovieSetup_Register_Proxy( 
  166.     IAMovieSetup * This);
  167. void __RPC_STUB IAMovieSetup_Register_Stub(
  168.     IRpcStubBuffer *This,
  169.     IRpcChannelBuffer *_pRpcChannelBuffer,
  170.     PRPC_MESSAGE _pRpcMessage,
  171.     DWORD *_pdwStubPhase);
  172. HRESULT STDMETHODCALLTYPE IAMovieSetup_Unregister_Proxy( 
  173.     IAMovieSetup * This);
  174. void __RPC_STUB IAMovieSetup_Unregister_Stub(
  175.     IRpcStubBuffer *This,
  176.     IRpcChannelBuffer *_pRpcChannelBuffer,
  177.     PRPC_MESSAGE _pRpcMessage,
  178.     DWORD *_pdwStubPhase);
  179. #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
  180. /* interface __MIDL_itf_strmif_0127 */
  181. /* [local] */ 
  182. typedef IAMovieSetup *PAMOVIESETUP;
  183. typedef 
  184. enum AM_SEEKING_SeekingFlags
  185.     { AM_SEEKING_NoPositioning = 0,
  186. AM_SEEKING_AbsolutePositioning = 0x1,
  187. AM_SEEKING_RelativePositioning = 0x2,
  188. AM_SEEKING_IncrementalPositioning = 0x3,
  189. AM_SEEKING_PositioningBitsMask = 0x3,
  190. AM_SEEKING_SeekToKeyFrame = 0x4,
  191. AM_SEEKING_ReturnTime = 0x8,
  192. AM_SEEKING_Segment = 0x10,
  193. AM_SEEKING_NoFlush = 0x20
  194.     }  AM_SEEKING_SEEKING_FLAGS;
  195. typedef 
  196. enum AM_SEEKING_SeekingCapabilities
  197.     { AM_SEEKING_CanSeekAbsolute = 0x1,
  198. AM_SEEKING_CanSeekForwards = 0x2,
  199. AM_SEEKING_CanSeekBackwards = 0x4,
  200. AM_SEEKING_CanGetCurrentPos = 0x8,
  201. AM_SEEKING_CanGetStopPos = 0x10,
  202. AM_SEEKING_CanGetDuration = 0x20,
  203. AM_SEEKING_CanPlayBackwards = 0x40,
  204. AM_SEEKING_CanDoSegments = 0x80,
  205. AM_SEEKING_Source = 0x100
  206.     }  AM_SEEKING_SEEKING_CAPABILITIES;
  207. extern RPC_IF_HANDLE __MIDL_itf_strmif_0127_v0_0_c_ifspec;
  208. extern RPC_IF_HANDLE __MIDL_itf_strmif_0127_v0_0_s_ifspec;
  209. #ifndef __IMediaSeeking_INTERFACE_DEFINED__
  210. #define __IMediaSeeking_INTERFACE_DEFINED__
  211. /* interface IMediaSeeking */
  212. /* [unique][uuid][object] */ 
  213. EXTERN_C const IID IID_IMediaSeeking;
  214. #if defined(__cplusplus) && !defined(CINTERFACE)
  215.     
  216.     MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
  217.     IMediaSeeking : public IUnknown
  218.     {
  219.     public:
  220.         virtual HRESULT STDMETHODCALLTYPE GetCapabilities( 
  221.             /* [out] */ DWORD *pCapabilities) = 0;
  222.         
  223.         virtual HRESULT STDMETHODCALLTYPE CheckCapabilities( 
  224.             /* [out][in] */ DWORD *pCapabilities) = 0;
  225.         
  226.         virtual HRESULT STDMETHODCALLTYPE IsFormatSupported( 
  227.             /* [in] */ const GUID *pFormat) = 0;
  228.         
  229.         virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat( 
  230.             /* [out] */ GUID *pFormat) = 0;
  231.         
  232.         virtual HRESULT STDMETHODCALLTYPE GetTimeFormat( 
  233.             /* [out] */ GUID *pFormat) = 0;
  234.         
  235.         virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat( 
  236.             /* [in] */ const GUID *pFormat) = 0;
  237.         
  238.         virtual HRESULT STDMETHODCALLTYPE SetTimeFormat( 
  239.             /* [in] */ const GUID *pFormat) = 0;
  240.         
  241.         virtual HRESULT STDMETHODCALLTYPE GetDuration( 
  242.             /* [out] */ LONGLONG *pDuration) = 0;
  243.         
  244.         virtual HRESULT STDMETHODCALLTYPE GetStopPosition( 
  245.             /* [out] */ LONGLONG *pStop) = 0;
  246.         
  247.         virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition( 
  248.             /* [out] */ LONGLONG *pCurrent) = 0;
  249.         
  250.         virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat( 
  251.             /* [out] */ LONGLONG *pTarget,
  252.             /* [in] */ const GUID *pTargetFormat,
  253.             /* [in] */ LONGLONG Source,
  254.             /* [in] */ const GUID *pSourceFormat) = 0;
  255.         
  256.         virtual HRESULT STDMETHODCALLTYPE SetPositions( 
  257.             /* [out][in] */ LONGLONG *pCurrent,
  258.             /* [in] */ DWORD dwCurrentFlags,
  259.             /* [out][in] */ LONGLONG *pStop,
  260.             /* [in] */ DWORD dwStopFlags) = 0;
  261.         
  262.         virtual HRESULT STDMETHODCALLTYPE GetPositions( 
  263.             /* [out] */ LONGLONG *pCurrent,
  264.             /* [out] */ LONGLONG *pStop) = 0;
  265.         
  266.         virtual HRESULT STDMETHODCALLTYPE GetAvailable( 
  267.             /* [out] */ LONGLONG *pEarliest,
  268.             /* [out] */ LONGLONG *pLatest) = 0;
  269.         
  270.         virtual HRESULT STDMETHODCALLTYPE SetRate( 
  271.             /* [in] */ double dRate) = 0;
  272.         
  273.         virtual HRESULT STDMETHODCALLTYPE GetRate( 
  274.             /* [out] */ double *pdRate) = 0;
  275.         
  276.         virtual HRESULT STDMETHODCALLTYPE GetPreroll( 
  277.             /* [out] */ LONGLONG *pllPreroll) = 0;
  278.         
  279.     };
  280.     
  281. #else  /* C style interface */
  282.     typedef struct IMediaSeekingVtbl
  283.     {
  284.         BEGIN_INTERFACE
  285.         
  286.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  287.             IMediaSeeking * This,
  288.             /* [in] */ REFIID riid,
  289.             /* [iid_is][out] */ void **ppvObject);
  290.         
  291.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  292.             IMediaSeeking * This);
  293.         
  294.         ULONG ( STDMETHODCALLTYPE *Release )( 
  295.             IMediaSeeking * This);
  296.         
  297.         HRESULT ( STDMETHODCALLTYPE *GetCapabilities )( 
  298.             IMediaSeeking * This,
  299.             /* [out] */ DWORD *pCapabilities);
  300.         
  301.         HRESULT ( STDMETHODCALLTYPE *CheckCapabilities )( 
  302.             IMediaSeeking * This,
  303.             /* [out][in] */ DWORD *pCapabilities);
  304.         
  305.         HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )( 
  306.             IMediaSeeking * This,
  307.             /* [in] */ const GUID *pFormat);
  308.         
  309.         HRESULT ( STDMETHODCALLTYPE *QueryPreferredFormat )( 
  310.             IMediaSeeking * This,
  311.             /* [out] */ GUID *pFormat);
  312.         
  313.         HRESULT ( STDMETHODCALLTYPE *GetTimeFormat )( 
  314.             IMediaSeeking * This,
  315.             /* [out] */ GUID *pFormat);
  316.         
  317.         HRESULT ( STDMETHODCALLTYPE *IsUsingTimeFormat )( 
  318.             IMediaSeeking * This,
  319.             /* [in] */ const GUID *pFormat);
  320.         
  321.         HRESULT ( STDMETHODCALLTYPE *SetTimeFormat )( 
  322.             IMediaSeeking * This,
  323.             /* [in] */ const GUID *pFormat);
  324.         
  325.         HRESULT ( STDMETHODCALLTYPE *GetDuration )( 
  326.             IMediaSeeking * This,
  327.             /* [out] */ LONGLONG *pDuration);
  328.         
  329.         HRESULT ( STDMETHODCALLTYPE *GetStopPosition )( 
  330.             IMediaSeeking * This,
  331.             /* [out] */ LONGLONG *pStop);
  332.         
  333.         HRESULT ( STDMETHODCALLTYPE *GetCurrentPosition )( 
  334.             IMediaSeeking * This,
  335.             /* [out] */ LONGLONG *pCurrent);
  336.         
  337.         HRESULT ( STDMETHODCALLTYPE *ConvertTimeFormat )( 
  338.             IMediaSeeking * This,
  339.             /* [out] */ LONGLONG *pTarget,
  340.             /* [in] */ const GUID *pTargetFormat,
  341.             /* [in] */ LONGLONG Source,
  342.             /* [in] */ const GUID *pSourceFormat);
  343.         
  344.         HRESULT ( STDMETHODCALLTYPE *SetPositions )( 
  345.             IMediaSeeking * This,
  346.             /* [out][in] */ LONGLONG *pCurrent,
  347.             /* [in] */ DWORD dwCurrentFlags,
  348.             /* [out][in] */ LONGLONG *pStop,
  349.             /* [in] */ DWORD dwStopFlags);
  350.         
  351.         HRESULT ( STDMETHODCALLTYPE *GetPositions )( 
  352.             IMediaSeeking * This,
  353.             /* [out] */ LONGLONG *pCurrent,
  354.             /* [out] */ LONGLONG *pStop);
  355.         
  356.         HRESULT ( STDMETHODCALLTYPE *GetAvailable )( 
  357.             IMediaSeeking * This,
  358.             /* [out] */ LONGLONG *pEarliest,
  359.             /* [out] */ LONGLONG *pLatest);
  360.         
  361.         HRESULT ( STDMETHODCALLTYPE *SetRate )( 
  362.             IMediaSeeking * This,
  363.             /* [in] */ double dRate);
  364.         
  365.         HRESULT ( STDMETHODCALLTYPE *GetRate )( 
  366.             IMediaSeeking * This,
  367.             /* [out] */ double *pdRate);
  368.         
  369.         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( 
  370.             IMediaSeeking * This,
  371.             /* [out] */ LONGLONG *pllPreroll);
  372.         
  373.         END_INTERFACE
  374.     } IMediaSeekingVtbl;
  375.     interface IMediaSeeking
  376.     {
  377.         CONST_VTBL struct IMediaSeekingVtbl *lpVtbl;
  378.     };
  379.     
  380. #ifdef COBJMACROS
  381. #define IMediaSeeking_QueryInterface(This,riid,ppvObject)
  382.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  383. #define IMediaSeeking_AddRef(This)
  384.     (This)->lpVtbl -> AddRef(This)
  385. #define IMediaSeeking_Release(This)
  386.     (This)->lpVtbl -> Release(This)
  387. #define IMediaSeeking_GetCapabilities(This,pCapabilities)
  388.     (This)->lpVtbl -> GetCapabilities(This,pCapabilities)
  389. #define IMediaSeeking_CheckCapabilities(This,pCapabilities)
  390.     (This)->lpVtbl -> CheckCapabilities(This,pCapabilities)
  391. #define IMediaSeeking_IsFormatSupported(This,pFormat)
  392.     (This)->lpVtbl -> IsFormatSupported(This,pFormat)
  393. #define IMediaSeeking_QueryPreferredFormat(This,pFormat)
  394.     (This)->lpVtbl -> QueryPreferredFormat(This,pFormat)
  395. #define IMediaSeeking_GetTimeFormat(This,pFormat)
  396.     (This)->lpVtbl -> GetTimeFormat(This,pFormat)
  397. #define IMediaSeeking_IsUsingTimeFormat(This,pFormat)
  398.     (This)->lpVtbl -> IsUsingTimeFormat(This,pFormat)
  399. #define IMediaSeeking_SetTimeFormat(This,pFormat)
  400.     (This)->lpVtbl -> SetTimeFormat(This,pFormat)
  401. #define IMediaSeeking_GetDuration(This,pDuration)
  402.     (This)->lpVtbl -> GetDuration(This,pDuration)
  403. #define IMediaSeeking_GetStopPosition(This,pStop)
  404.     (This)->lpVtbl -> GetStopPosition(This,pStop)
  405. #define IMediaSeeking_GetCurrentPosition(This,pCurrent)
  406.     (This)->lpVtbl -> GetCurrentPosition(This,pCurrent)
  407. #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
  408.     (This)->lpVtbl -> ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
  409. #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
  410.     (This)->lpVtbl -> SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
  411. #define IMediaSeeking_GetPositions(This,pCurrent,pStop)
  412.     (This)->lpVtbl -> GetPositions(This,pCurrent,pStop)
  413. #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest)
  414.     (This)->lpVtbl -> GetAvailable(This,pEarliest,pLatest)
  415. #define IMediaSeeking_SetRate(This,dRate)
  416.     (This)->lpVtbl -> SetRate(This,dRate)
  417. #define IMediaSeeking_GetRate(This,pdRate)
  418.     (This)->lpVtbl -> GetRate(This,pdRate)
  419. #define IMediaSeeking_GetPreroll(This,pllPreroll)
  420.     (This)->lpVtbl -> GetPreroll(This,pllPreroll)
  421. #endif /* COBJMACROS */
  422. #endif  /* C style interface */
  423. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCapabilities_Proxy( 
  424.     IMediaSeeking * This,
  425.     /* [out] */ DWORD *pCapabilities);
  426. void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(
  427.     IRpcStubBuffer *This,
  428.     IRpcChannelBuffer *_pRpcChannelBuffer,
  429.     PRPC_MESSAGE _pRpcMessage,
  430.     DWORD *_pdwStubPhase);
  431. HRESULT STDMETHODCALLTYPE IMediaSeeking_CheckCapabilities_Proxy( 
  432.     IMediaSeeking * This,
  433.     /* [out][in] */ DWORD *pCapabilities);
  434. void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(
  435.     IRpcStubBuffer *This,
  436.     IRpcChannelBuffer *_pRpcChannelBuffer,
  437.     PRPC_MESSAGE _pRpcMessage,
  438.     DWORD *_pdwStubPhase);
  439. HRESULT STDMETHODCALLTYPE IMediaSeeking_IsFormatSupported_Proxy( 
  440.     IMediaSeeking * This,
  441.     /* [in] */ const GUID *pFormat);
  442. void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(
  443.     IRpcStubBuffer *This,
  444.     IRpcChannelBuffer *_pRpcChannelBuffer,
  445.     PRPC_MESSAGE _pRpcMessage,
  446.     DWORD *_pdwStubPhase);
  447. HRESULT STDMETHODCALLTYPE IMediaSeeking_QueryPreferredFormat_Proxy( 
  448.     IMediaSeeking * This,
  449.     /* [out] */ GUID *pFormat);
  450. void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(
  451.     IRpcStubBuffer *This,
  452.     IRpcChannelBuffer *_pRpcChannelBuffer,
  453.     PRPC_MESSAGE _pRpcMessage,
  454.     DWORD *_pdwStubPhase);
  455. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetTimeFormat_Proxy( 
  456.     IMediaSeeking * This,
  457.     /* [out] */ GUID *pFormat);
  458. void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(
  459.     IRpcStubBuffer *This,
  460.     IRpcChannelBuffer *_pRpcChannelBuffer,
  461.     PRPC_MESSAGE _pRpcMessage,
  462.     DWORD *_pdwStubPhase);
  463. HRESULT STDMETHODCALLTYPE IMediaSeeking_IsUsingTimeFormat_Proxy( 
  464.     IMediaSeeking * This,
  465.     /* [in] */ const GUID *pFormat);
  466. void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(
  467.     IRpcStubBuffer *This,
  468.     IRpcChannelBuffer *_pRpcChannelBuffer,
  469.     PRPC_MESSAGE _pRpcMessage,
  470.     DWORD *_pdwStubPhase);
  471. HRESULT STDMETHODCALLTYPE IMediaSeeking_SetTimeFormat_Proxy( 
  472.     IMediaSeeking * This,
  473.     /* [in] */ const GUID *pFormat);
  474. void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(
  475.     IRpcStubBuffer *This,
  476.     IRpcChannelBuffer *_pRpcChannelBuffer,
  477.     PRPC_MESSAGE _pRpcMessage,
  478.     DWORD *_pdwStubPhase);
  479. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetDuration_Proxy( 
  480.     IMediaSeeking * This,
  481.     /* [out] */ LONGLONG *pDuration);
  482. void __RPC_STUB IMediaSeeking_GetDuration_Stub(
  483.     IRpcStubBuffer *This,
  484.     IRpcChannelBuffer *_pRpcChannelBuffer,
  485.     PRPC_MESSAGE _pRpcMessage,
  486.     DWORD *_pdwStubPhase);
  487. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetStopPosition_Proxy( 
  488.     IMediaSeeking * This,
  489.     /* [out] */ LONGLONG *pStop);
  490. void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(
  491.     IRpcStubBuffer *This,
  492.     IRpcChannelBuffer *_pRpcChannelBuffer,
  493.     PRPC_MESSAGE _pRpcMessage,
  494.     DWORD *_pdwStubPhase);
  495. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCurrentPosition_Proxy( 
  496.     IMediaSeeking * This,
  497.     /* [out] */ LONGLONG *pCurrent);
  498. void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(
  499.     IRpcStubBuffer *This,
  500.     IRpcChannelBuffer *_pRpcChannelBuffer,
  501.     PRPC_MESSAGE _pRpcMessage,
  502.     DWORD *_pdwStubPhase);
  503. HRESULT STDMETHODCALLTYPE IMediaSeeking_ConvertTimeFormat_Proxy( 
  504.     IMediaSeeking * This,
  505.     /* [out] */ LONGLONG *pTarget,
  506.     /* [in] */ const GUID *pTargetFormat,
  507.     /* [in] */ LONGLONG Source,
  508.     /* [in] */ const GUID *pSourceFormat);
  509. void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(
  510.     IRpcStubBuffer *This,
  511.     IRpcChannelBuffer *_pRpcChannelBuffer,
  512.     PRPC_MESSAGE _pRpcMessage,
  513.     DWORD *_pdwStubPhase);
  514. HRESULT STDMETHODCALLTYPE IMediaSeeking_SetPositions_Proxy( 
  515.     IMediaSeeking * This,
  516.     /* [out][in] */ LONGLONG *pCurrent,
  517.     /* [in] */ DWORD dwCurrentFlags,
  518.     /* [out][in] */ LONGLONG *pStop,
  519.     /* [in] */ DWORD dwStopFlags);
  520. void __RPC_STUB IMediaSeeking_SetPositions_Stub(
  521.     IRpcStubBuffer *This,
  522.     IRpcChannelBuffer *_pRpcChannelBuffer,
  523.     PRPC_MESSAGE _pRpcMessage,
  524.     DWORD *_pdwStubPhase);
  525. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPositions_Proxy( 
  526.     IMediaSeeking * This,
  527.     /* [out] */ LONGLONG *pCurrent,
  528.     /* [out] */ LONGLONG *pStop);
  529. void __RPC_STUB IMediaSeeking_GetPositions_Stub(
  530.     IRpcStubBuffer *This,
  531.     IRpcChannelBuffer *_pRpcChannelBuffer,
  532.     PRPC_MESSAGE _pRpcMessage,
  533.     DWORD *_pdwStubPhase);
  534. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetAvailable_Proxy( 
  535.     IMediaSeeking * This,
  536.     /* [out] */ LONGLONG *pEarliest,
  537.     /* [out] */ LONGLONG *pLatest);
  538. void __RPC_STUB IMediaSeeking_GetAvailable_Stub(
  539.     IRpcStubBuffer *This,
  540.     IRpcChannelBuffer *_pRpcChannelBuffer,
  541.     PRPC_MESSAGE _pRpcMessage,
  542.     DWORD *_pdwStubPhase);
  543. HRESULT STDMETHODCALLTYPE IMediaSeeking_SetRate_Proxy( 
  544.     IMediaSeeking * This,
  545.     /* [in] */ double dRate);
  546. void __RPC_STUB IMediaSeeking_SetRate_Stub(
  547.     IRpcStubBuffer *This,
  548.     IRpcChannelBuffer *_pRpcChannelBuffer,
  549.     PRPC_MESSAGE _pRpcMessage,
  550.     DWORD *_pdwStubPhase);
  551. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetRate_Proxy( 
  552.     IMediaSeeking * This,
  553.     /* [out] */ double *pdRate);
  554. void __RPC_STUB IMediaSeeking_GetRate_Stub(
  555.     IRpcStubBuffer *This,
  556.     IRpcChannelBuffer *_pRpcChannelBuffer,
  557.     PRPC_MESSAGE _pRpcMessage,
  558.     DWORD *_pdwStubPhase);
  559. HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPreroll_Proxy( 
  560.     IMediaSeeking * This,
  561.     /* [out] */ LONGLONG *pllPreroll);
  562. void __RPC_STUB IMediaSeeking_GetPreroll_Stub(
  563.     IRpcStubBuffer *This,
  564.     IRpcChannelBuffer *_pRpcChannelBuffer,
  565.     PRPC_MESSAGE _pRpcMessage,
  566.     DWORD *_pdwStubPhase);
  567. #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
  568. /* interface __MIDL_itf_strmif_0128 */
  569. /* [local] */ 
  570. typedef IMediaSeeking *PMEDIASEEKING;
  571. enum tagAM_MEDIAEVENT_FLAGS
  572. {
  573.     AM_MEDIAEVENT_NONOTIFY = 0x01
  574. };
  575. typedef /* [public][public] */ struct __MIDL___MIDL_itf_strmif_0128_0001
  576.     {
  577.     CLSID Clsid;
  578.     LPWSTR Name;
  579.     }  REGFILTER;
  580. extern RPC_IF_HANDLE __MIDL_itf_strmif_0128_v0_0_c_ifspec;
  581. extern RPC_IF_HANDLE __MIDL_itf_strmif_0128_v0_0_s_ifspec;
  582. #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
  583. #define __IEnumRegFilters_INTERFACE_DEFINED__
  584. /* interface IEnumRegFilters */
  585. /* [unique][uuid][object] */ 
  586. EXTERN_C const IID IID_IEnumRegFilters;
  587. #if defined(__cplusplus) && !defined(CINTERFACE)
  588.     
  589.     MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
  590.     IEnumRegFilters : public IUnknown
  591.     {
  592.     public:
  593.         virtual HRESULT STDMETHODCALLTYPE Next( 
  594.             /* [in] */ ULONG cFilters,
  595.             /* [out] */ REGFILTER **apRegFilter,
  596.             /* [out] */ ULONG *pcFetched) = 0;
  597.         
  598.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  599.             /* [in] */ ULONG cFilters) = 0;
  600.         
  601.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  602.         
  603.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  604.             /* [out] */ IEnumRegFilters **ppEnum) = 0;
  605.         
  606.     };
  607.     
  608. #else  /* C style interface */
  609.     typedef struct IEnumRegFiltersVtbl
  610.     {
  611.         BEGIN_INTERFACE
  612.         
  613.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  614.             IEnumRegFilters * This,
  615.             /* [in] */ REFIID riid,
  616.             /* [iid_is][out] */ void **ppvObject);
  617.         
  618.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  619.             IEnumRegFilters * This);
  620.         
  621.         ULONG ( STDMETHODCALLTYPE *Release )( 
  622.             IEnumRegFilters * This);
  623.         
  624.         HRESULT ( STDMETHODCALLTYPE *Next )( 
  625.             IEnumRegFilters * This,
  626.             /* [in] */ ULONG cFilters,
  627.             /* [out] */ REGFILTER **apRegFilter,
  628.             /* [out] */ ULONG *pcFetched);
  629.         
  630.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  631.             IEnumRegFilters * This,
  632.             /* [in] */ ULONG cFilters);
  633.         
  634.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  635.             IEnumRegFilters * This);
  636.         
  637.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  638.             IEnumRegFilters * This,
  639.             /* [out] */ IEnumRegFilters **ppEnum);
  640.         
  641.         END_INTERFACE
  642.     } IEnumRegFiltersVtbl;
  643.     interface IEnumRegFilters
  644.     {
  645.         CONST_VTBL struct IEnumRegFiltersVtbl *lpVtbl;
  646.     };
  647.     
  648. #ifdef COBJMACROS
  649. #define IEnumRegFilters_QueryInterface(This,riid,ppvObject)
  650.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  651. #define IEnumRegFilters_AddRef(This)
  652.     (This)->lpVtbl -> AddRef(This)
  653. #define IEnumRegFilters_Release(This)
  654.     (This)->lpVtbl -> Release(This)
  655. #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched)
  656.     (This)->lpVtbl -> Next(This,cFilters,apRegFilter,pcFetched)
  657. #define IEnumRegFilters_Skip(This,cFilters)
  658.     (This)->lpVtbl -> Skip(This,cFilters)
  659. #define IEnumRegFilters_Reset(This)
  660.     (This)->lpVtbl -> Reset(This)
  661. #define IEnumRegFilters_Clone(This,ppEnum)
  662.     (This)->lpVtbl -> Clone(This,ppEnum)
  663. #endif /* COBJMACROS */
  664. #endif  /* C style interface */
  665. HRESULT STDMETHODCALLTYPE IEnumRegFilters_Next_Proxy( 
  666.     IEnumRegFilters * This,
  667.     /* [in] */ ULONG cFilters,
  668.     /* [out] */ REGFILTER **apRegFilter,
  669.     /* [out] */ ULONG *pcFetched);
  670. void __RPC_STUB IEnumRegFilters_Next_Stub(
  671.     IRpcStubBuffer *This,
  672.     IRpcChannelBuffer *_pRpcChannelBuffer,
  673.     PRPC_MESSAGE _pRpcMessage,
  674.     DWORD *_pdwStubPhase);
  675. HRESULT STDMETHODCALLTYPE IEnumRegFilters_Skip_Proxy( 
  676.     IEnumRegFilters * This,
  677.     /* [in] */ ULONG cFilters);
  678. void __RPC_STUB IEnumRegFilters_Skip_Stub(
  679.     IRpcStubBuffer *This,
  680.     IRpcChannelBuffer *_pRpcChannelBuffer,
  681.     PRPC_MESSAGE _pRpcMessage,
  682.     DWORD *_pdwStubPhase);
  683. HRESULT STDMETHODCALLTYPE IEnumRegFilters_Reset_Proxy( 
  684.     IEnumRegFilters * This);
  685. void __RPC_STUB IEnumRegFilters_Reset_Stub(
  686.     IRpcStubBuffer *This,
  687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  688.     PRPC_MESSAGE _pRpcMessage,
  689.     DWORD *_pdwStubPhase);
  690. HRESULT STDMETHODCALLTYPE IEnumRegFilters_Clone_Proxy( 
  691.     IEnumRegFilters * This,
  692.     /* [out] */ IEnumRegFilters **ppEnum);
  693. void __RPC_STUB IEnumRegFilters_Clone_Stub(
  694.     IRpcStubBuffer *This,
  695.     IRpcChannelBuffer *_pRpcChannelBuffer,
  696.     PRPC_MESSAGE _pRpcMessage,
  697.     DWORD *_pdwStubPhase);
  698. #endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
  699. /* interface __MIDL_itf_strmif_0130 */
  700. /* [local] */ 
  701. typedef IEnumRegFilters *PENUMREGFILTERS;
  702. extern RPC_IF_HANDLE __MIDL_itf_strmif_0130_v0_0_c_ifspec;
  703. extern RPC_IF_HANDLE __MIDL_itf_strmif_0130_v0_0_s_ifspec;
  704. #ifndef __IFilterMapper_INTERFACE_DEFINED__
  705. #define __IFilterMapper_INTERFACE_DEFINED__
  706. /* interface IFilterMapper */
  707. /* [unique][uuid][object] */ 
  708. enum __MIDL_IFilterMapper_0001
  709.     { MERIT_PREFERRED = 0x800000,
  710. MERIT_NORMAL = 0x600000,
  711. MERIT_UNLIKELY = 0x400000,
  712. MERIT_DO_NOT_USE = 0x200000,
  713. MERIT_SW_COMPRESSOR = 0x100000,
  714. MERIT_HW_COMPRESSOR = 0x100050
  715.     } ;
  716. EXTERN_C const IID IID_IFilterMapper;
  717. #if defined(__cplusplus) && !defined(CINTERFACE)
  718.     
  719.     MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
  720.     IFilterMapper : public IUnknown
  721.     {
  722.     public:
  723.         virtual HRESULT STDMETHODCALLTYPE RegisterFilter( 
  724.             /* [in] */ CLSID clsid,
  725.             /* [in] */ LPCWSTR Name,
  726.             /* [in] */ DWORD dwMerit) = 0;
  727.         
  728.         virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance( 
  729.             /* [in] */ CLSID clsid,
  730.             /* [in] */ LPCWSTR Name,
  731.             /* [out] */ CLSID *MRId) = 0;
  732.         
  733.         virtual HRESULT STDMETHODCALLTYPE RegisterPin( 
  734.             /* [in] */ CLSID Filter,
  735.             /* [in] */ LPCWSTR Name,
  736.             /* [in] */ BOOL bRendered,
  737.             /* [in] */ BOOL bOutput,
  738.             /* [in] */ BOOL bZero,
  739.             /* [in] */ BOOL bMany,
  740.             /* [in] */ CLSID ConnectsToFilter,
  741.             /* [in] */ LPCWSTR ConnectsToPin) = 0;
  742.         
  743.         virtual HRESULT STDMETHODCALLTYPE RegisterPinType( 
  744.             /* [in] */ CLSID clsFilter,
  745.             /* [in] */ LPCWSTR strName,
  746.             /* [in] */ CLSID clsMajorType,
  747.             /* [in] */ CLSID clsSubType) = 0;
  748.         
  749.         virtual HRESULT STDMETHODCALLTYPE UnregisterFilter( 
  750.             /* [in] */ CLSID Filter) = 0;
  751.         
  752.         virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance( 
  753.             /* [in] */ CLSID MRId) = 0;
  754.         
  755.         virtual HRESULT STDMETHODCALLTYPE UnregisterPin( 
  756.             /* [in] */ CLSID Filter,
  757.             /* [in] */ LPCWSTR Name) = 0;
  758.         
  759.         virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters( 
  760.             /* [out] */ IEnumRegFilters **ppEnum,
  761.             /* [in] */ DWORD dwMerit,
  762.             /* [in] */ BOOL bInputNeeded,
  763.             /* [in] */ CLSID clsInMaj,
  764.             /* [in] */ CLSID clsInSub,
  765.             /* [in] */ BOOL bRender,
  766.             /* [in] */ BOOL bOututNeeded,
  767.             /* [in] */ CLSID clsOutMaj,
  768.             /* [in] */ CLSID clsOutSub) = 0;
  769.         
  770.     };
  771.     
  772. #else  /* C style interface */
  773.     typedef struct IFilterMapperVtbl
  774.     {
  775.         BEGIN_INTERFACE
  776.         
  777.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  778.             IFilterMapper * This,
  779.             /* [in] */ REFIID riid,
  780.             /* [iid_is][out] */ void **ppvObject);
  781.         
  782.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  783.             IFilterMapper * This);
  784.         
  785.         ULONG ( STDMETHODCALLTYPE *Release )( 
  786.             IFilterMapper * This);
  787.         
  788.         HRESULT ( STDMETHODCALLTYPE *RegisterFilter )( 
  789.             IFilterMapper * This,
  790.             /* [in] */ CLSID clsid,
  791.             /* [in] */ LPCWSTR Name,
  792.             /* [in] */ DWORD dwMerit);
  793.         
  794.         HRESULT ( STDMETHODCALLTYPE *RegisterFilterInstance )( 
  795.             IFilterMapper * This,
  796.             /* [in] */ CLSID clsid,
  797.             /* [in] */ LPCWSTR Name,
  798.             /* [out] */ CLSID *MRId);
  799.         
  800.         HRESULT ( STDMETHODCALLTYPE *RegisterPin )( 
  801.             IFilterMapper * This,
  802.             /* [in] */ CLSID Filter,
  803.             /* [in] */ LPCWSTR Name,
  804.             /* [in] */ BOOL bRendered,
  805.             /* [in] */ BOOL bOutput,
  806.             /* [in] */ BOOL bZero,
  807.             /* [in] */ BOOL bMany,
  808.             /* [in] */ CLSID ConnectsToFilter,
  809.             /* [in] */ LPCWSTR ConnectsToPin);
  810.         
  811.         HRESULT ( STDMETHODCALLTYPE *RegisterPinType )( 
  812.             IFilterMapper * This,
  813.             /* [in] */ CLSID clsFilter,
  814.             /* [in] */ LPCWSTR strName,
  815.             /* [in] */ CLSID clsMajorType,
  816.             /* [in] */ CLSID clsSubType);
  817.         
  818.         HRESULT ( STDMETHODCALLTYPE *UnregisterFilter )( 
  819.             IFilterMapper * This,
  820.             /* [in] */ CLSID Filter);
  821.         
  822.         HRESULT ( STDMETHODCALLTYPE *UnregisterFilterInstance )( 
  823.             IFilterMapper * This,
  824.             /* [in] */ CLSID MRId);
  825.         
  826.         HRESULT ( STDMETHODCALLTYPE *UnregisterPin )( 
  827.             IFilterMapper * This,
  828.             /* [in] */ CLSID Filter,
  829.             /* [in] */ LPCWSTR Name);
  830.         
  831.         HRESULT ( STDMETHODCALLTYPE *EnumMatchingFilters )( 
  832.             IFilterMapper * This,
  833.             /* [out] */ IEnumRegFilters **ppEnum,
  834.             /* [in] */ DWORD dwMerit,
  835.             /* [in] */ BOOL bInputNeeded,
  836.             /* [in] */ CLSID clsInMaj,
  837.             /* [in] */ CLSID clsInSub,
  838.             /* [in] */ BOOL bRender,
  839.             /* [in] */ BOOL bOututNeeded,
  840.             /* [in] */ CLSID clsOutMaj,
  841.             /* [in] */ CLSID clsOutSub);
  842.         
  843.         END_INTERFACE
  844.     } IFilterMapperVtbl;
  845.     interface IFilterMapper
  846.     {
  847.         CONST_VTBL struct IFilterMapperVtbl *lpVtbl;
  848.     };
  849.     
  850. #ifdef COBJMACROS
  851. #define IFilterMapper_QueryInterface(This,riid,ppvObject)
  852.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  853. #define IFilterMapper_AddRef(This)
  854.     (This)->lpVtbl -> AddRef(This)
  855. #define IFilterMapper_Release(This)
  856.     (This)->lpVtbl -> Release(This)
  857. #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit)
  858.     (This)->lpVtbl -> RegisterFilter(This,clsid,Name,dwMerit)
  859. #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId)
  860.     (This)->lpVtbl -> RegisterFilterInstance(This,clsid,Name,MRId)
  861. #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
  862.     (This)->lpVtbl -> RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
  863. #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
  864.     (This)->lpVtbl -> RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
  865. #define IFilterMapper_UnregisterFilter(This,Filter)
  866.     (This)->lpVtbl -> UnregisterFilter(This,Filter)
  867. #define IFilterMapper_UnregisterFilterInstance(This,MRId)
  868.     (This)->lpVtbl -> UnregisterFilterInstance(This,MRId)
  869. #define IFilterMapper_UnregisterPin(This,Filter,Name)
  870.     (This)->lpVtbl -> UnregisterPin(This,Filter,Name)
  871. #define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub)
  872.     (This)->lpVtbl -> EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub)
  873. #endif /* COBJMACROS */
  874. #endif  /* C style interface */
  875. HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilter_Proxy( 
  876.     IFilterMapper * This,
  877.     /* [in] */ CLSID clsid,
  878.     /* [in] */ LPCWSTR Name,
  879.     /* [in] */ DWORD dwMerit);
  880. void __RPC_STUB IFilterMapper_RegisterFilter_Stub(
  881.     IRpcStubBuffer *This,
  882.     IRpcChannelBuffer *_pRpcChannelBuffer,
  883.     PRPC_MESSAGE _pRpcMessage,
  884.     DWORD *_pdwStubPhase);
  885. HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilterInstance_Proxy( 
  886.     IFilterMapper * This,
  887.     /* [in] */ CLSID clsid,
  888.     /* [in] */ LPCWSTR Name,
  889.     /* [out] */ CLSID *MRId);
  890. void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(
  891.     IRpcStubBuffer *This,
  892.     IRpcChannelBuffer *_pRpcChannelBuffer,
  893.     PRPC_MESSAGE _pRpcMessage,
  894.     DWORD *_pdwStubPhase);
  895. HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPin_Proxy( 
  896.     IFilterMapper * This,
  897.     /* [in] */ CLSID Filter,
  898.     /* [in] */ LPCWSTR Name,
  899.     /* [in] */ BOOL bRendered,
  900.     /* [in] */ BOOL bOutput,
  901.     /* [in] */ BOOL bZero,
  902.     /* [in] */ BOOL bMany,
  903.     /* [in] */ CLSID ConnectsToFilter,
  904.     /* [in] */ LPCWSTR ConnectsToPin);
  905. void __RPC_STUB IFilterMapper_RegisterPin_Stub(
  906.     IRpcStubBuffer *This,
  907.     IRpcChannelBuffer *_pRpcChannelBuffer,
  908.     PRPC_MESSAGE _pRpcMessage,
  909.     DWORD *_pdwStubPhase);
  910. HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPinType_Proxy( 
  911.     IFilterMapper * This,
  912.     /* [in] */ CLSID clsFilter,
  913.     /* [in] */ LPCWSTR strName,
  914.     /* [in] */ CLSID clsMajorType,
  915.     /* [in] */ CLSID clsSubType);
  916. void __RPC_STUB IFilterMapper_RegisterPinType_Stub(
  917.     IRpcStubBuffer *This,
  918.     IRpcChannelBuffer *_pRpcChannelBuffer,
  919.     PRPC_MESSAGE _pRpcMessage,
  920.     DWORD *_pdwStubPhase);
  921. HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilter_Proxy( 
  922.     IFilterMapper * This,
  923.     /* [in] */ CLSID Filter);
  924. void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(
  925.     IRpcStubBuffer *This,
  926.     IRpcChannelBuffer *_pRpcChannelBuffer,
  927.     PRPC_MESSAGE _pRpcMessage,
  928.     DWORD *_pdwStubPhase);
  929. HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilterInstance_Proxy( 
  930.     IFilterMapper * This,
  931.     /* [in] */ CLSID MRId);
  932. void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(
  933.     IRpcStubBuffer *This,
  934.     IRpcChannelBuffer *_pRpcChannelBuffer,
  935.     PRPC_MESSAGE _pRpcMessage,
  936.     DWORD *_pdwStubPhase);
  937. HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterPin_Proxy( 
  938.     IFilterMapper * This,
  939.     /* [in] */ CLSID Filter,
  940.     /* [in] */ LPCWSTR Name);
  941. void __RPC_STUB IFilterMapper_UnregisterPin_Stub(
  942.     IRpcStubBuffer *This,
  943.     IRpcChannelBuffer *_pRpcChannelBuffer,
  944.     PRPC_MESSAGE _pRpcMessage,
  945.     DWORD *_pdwStubPhase);
  946. HRESULT STDMETHODCALLTYPE IFilterMapper_EnumMatchingFilters_Proxy( 
  947.     IFilterMapper * This,
  948.     /* [out] */ IEnumRegFilters **ppEnum,
  949.     /* [in] */ DWORD dwMerit,
  950.     /* [in] */ BOOL bInputNeeded,
  951.     /* [in] */ CLSID clsInMaj,
  952.     /* [in] */ CLSID clsInSub,
  953.     /* [in] */ BOOL bRender,
  954.     /* [in] */ BOOL bOututNeeded,
  955.     /* [in] */ CLSID clsOutMaj,
  956.     /* [in] */ CLSID clsOutSub);
  957. void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(
  958.     IRpcStubBuffer *This,
  959.     IRpcChannelBuffer *_pRpcChannelBuffer,
  960.     PRPC_MESSAGE _pRpcMessage,
  961.     DWORD *_pdwStubPhase);
  962. #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
  963. /* interface __MIDL_itf_strmif_0132 */
  964. /* [local] */ 
  965. typedef /* [public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_strmif_0132_0001
  966.     {
  967.     const CLSID *clsMajorType;
  968.     const CLSID *clsMinorType;
  969.     }  REGPINTYPES;
  970. typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_strmif_0132_0002
  971.     {
  972.     LPWSTR strName;
  973.     BOOL bRendered;
  974.     BOOL bOutput;
  975.     BOOL bZero;
  976.     BOOL bMany;
  977.     const CLSID *clsConnectsToFilter;
  978.     const WCHAR *strConnectsToPin;
  979.     UINT nMediaTypes;
  980.     const REGPINTYPES *lpMediaType;
  981.     }  REGFILTERPINS;
  982. typedef /* [public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_strmif_0132_0003
  983.     {
  984.     CLSID clsMedium;
  985.     DWORD dw1;
  986.     DWORD dw2;
  987.     }  REGPINMEDIUM;
  988. enum __MIDL___MIDL_itf_strmif_0132_0004
  989.     { REG_PINFLAG_B_ZERO = 0x1,
  990. REG_PINFLAG_B_RENDERER = 0x2,
  991. REG_PINFLAG_B_MANY = 0x4,
  992. REG_PINFLAG_B_OUTPUT = 0x8
  993.     } ;
  994. typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_strmif_0132_0005
  995.     {
  996.     DWORD dwFlags;
  997.     UINT cInstances;
  998.     UINT nMediaTypes;
  999.     /* [size_is] */ const REGPINTYPES *lpMediaType;
  1000.     UINT nMediums;
  1001.     /* [size_is] */ const REGPINMEDIUM *lpMedium;
  1002.     const CLSID *clsPinCategory;
  1003.     }  REGFILTERPINS2;
  1004. typedef /* [public][public] */ struct __MIDL___MIDL_itf_strmif_0132_0006
  1005.     {
  1006.     DWORD dwVersion;
  1007.     DWORD dwMerit;
  1008.     /* [switch_type][switch_is] */ union 
  1009.         {
  1010.         /* [case()] */ struct 
  1011.             {
  1012.             ULONG cPins;
  1013.             /* [size_is] */ const REGFILTERPINS *rgPins;
  1014.             }  ;
  1015.         /* [case()] */ struct 
  1016.             {
  1017.             ULONG cPins2;
  1018.             /* [size_is] */ const REGFILTERPINS2 *rgPins2;
  1019.             }  ;
  1020.         /* [default] */  /* Empty union arm */ 
  1021.         }  ;
  1022.     }  REGFILTER2;
  1023. extern RPC_IF_HANDLE __MIDL_itf_strmif_0132_v0_0_c_ifspec;
  1024. extern RPC_IF_HANDLE __MIDL_itf_strmif_0132_v0_0_s_ifspec;
  1025. #ifndef __IFilterMapper2_INTERFACE_DEFINED__
  1026. #define __IFilterMapper2_INTERFACE_DEFINED__
  1027. /* interface IFilterMapper2 */
  1028. /* [unique][uuid][object] */ 
  1029. EXTERN_C const IID IID_IFilterMapper2;
  1030. #if defined(__cplusplus) && !defined(CINTERFACE)
  1031.     
  1032.     MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
  1033.     IFilterMapper2 : public IUnknown
  1034.     {
  1035.     public:
  1036.         virtual HRESULT STDMETHODCALLTYPE CreateCategory( 
  1037.             /* [in] */ REFCLSID clsidCategory,
  1038.             /* [in] */ DWORD dwCategoryMerit,
  1039.             /* [in] */ LPCWSTR Description) = 0;
  1040.         
  1041.         virtual HRESULT STDMETHODCALLTYPE UnregisterFilter( 
  1042.             /* [in] */ const CLSID *pclsidCategory,
  1043.             /* [in] */ const OLECHAR *szInstance,
  1044.             /* [in] */ REFCLSID Filter) = 0;
  1045.         
  1046.         virtual HRESULT STDMETHODCALLTYPE RegisterFilter( 
  1047.             /* [in] */ REFCLSID clsidFilter,
  1048.             /* [in] */ LPCWSTR Name,
  1049.             /* [out][in] */ IMoniker **ppMoniker,
  1050.             /* [in] */ const CLSID *pclsidCategory,
  1051.             /* [in] */ const OLECHAR *szInstance,
  1052.             /* [in] */ const REGFILTER2 *prf2) = 0;
  1053.         
  1054.         virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters( 
  1055.             /* [out] */ IEnumMoniker **ppEnum,
  1056.             /* [in] */ DWORD dwFlags,
  1057.             /* [in] */ BOOL bExactMatch,
  1058.             /* [in] */ DWORD dwMerit,
  1059.             /* [in] */ BOOL bInputNeeded,
  1060.             /* [in] */ DWORD cInputTypes,
  1061.             /* [size_is] */ const GUID *pInputTypes,
  1062.             /* [in] */ const REGPINMEDIUM *pMedIn,
  1063.             /* [in] */ const CLSID *pPinCategoryIn,
  1064.             /* [in] */ BOOL bRender,
  1065.             /* [in] */ BOOL bOutputNeeded,
  1066.             /* [in] */ DWORD cOutputTypes,
  1067.             /* [size_is] */ const GUID *pOutputTypes,
  1068.             /* [in] */ const REGPINMEDIUM *pMedOut,
  1069.             /* [in] */ const CLSID *pPinCategoryOut) = 0;
  1070.         
  1071.     };
  1072.     
  1073. #else  /* C style interface */
  1074.     typedef struct IFilterMapper2Vtbl
  1075.     {
  1076.         BEGIN_INTERFACE
  1077.         
  1078.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1079.             IFilterMapper2 * This,
  1080.             /* [in] */ REFIID riid,
  1081.             /* [iid_is][out] */ void **ppvObject);
  1082.         
  1083.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1084.             IFilterMapper2 * This);
  1085.         
  1086.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1087.             IFilterMapper2 * This);
  1088.         
  1089.         HRESULT ( STDMETHODCALLTYPE *CreateCategory )( 
  1090.             IFilterMapper2 * This,
  1091.             /* [in] */ REFCLSID clsidCategory,
  1092.             /* [in] */ DWORD dwCategoryMerit,
  1093.             /* [in] */ LPCWSTR Description);
  1094.         
  1095.         HRESULT ( STDMETHODCALLTYPE *UnregisterFilter )( 
  1096.             IFilterMapper2 * This,
  1097.             /* [in] */ const CLSID *pclsidCategory,
  1098.             /* [in] */ const OLECHAR *szInstance,
  1099.             /* [in] */ REFCLSID Filter);
  1100.         
  1101.         HRESULT ( STDMETHODCALLTYPE *RegisterFilter )( 
  1102.             IFilterMapper2 * This,
  1103.             /* [in] */ REFCLSID clsidFilter,
  1104.             /* [in] */ LPCWSTR Name,
  1105.             /* [out][in] */ IMoniker **ppMoniker,
  1106.             /* [in] */ const CLSID *pclsidCategory,
  1107.             /* [in] */ const OLECHAR *szInstance,
  1108.             /* [in] */ const REGFILTER2 *prf2);
  1109.         
  1110.         HRESULT ( STDMETHODCALLTYPE *EnumMatchingFilters )( 
  1111.             IFilterMapper2 * This,
  1112.             /* [out] */ IEnumMoniker **ppEnum,
  1113.             /* [in] */ DWORD dwFlags,
  1114.             /* [in] */ BOOL bExactMatch,
  1115.             /* [in] */ DWORD dwMerit,
  1116.             /* [in] */ BOOL bInputNeeded,
  1117.             /* [in] */ DWORD cInputTypes,
  1118.             /* [size_is] */ const GUID *pInputTypes,
  1119.             /* [in] */ const REGPINMEDIUM *pMedIn,
  1120.             /* [in] */ const CLSID *pPinCategoryIn,
  1121.             /* [in] */ BOOL bRender,
  1122.             /* [in] */ BOOL bOutputNeeded,
  1123.             /* [in] */ DWORD cOutputTypes,
  1124.             /* [size_is] */ const GUID *pOutputTypes,
  1125.             /* [in] */ const REGPINMEDIUM *pMedOut,
  1126.             /* [in] */ const CLSID *pPinCategoryOut);
  1127.         
  1128.         END_INTERFACE
  1129.     } IFilterMapper2Vtbl;
  1130.     interface IFilterMapper2
  1131.     {
  1132.         CONST_VTBL struct IFilterMapper2Vtbl *lpVtbl;
  1133.     };
  1134.     
  1135. #ifdef COBJMACROS
  1136. #define IFilterMapper2_QueryInterface(This,riid,ppvObject)
  1137.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1138. #define IFilterMapper2_AddRef(This)
  1139.     (This)->lpVtbl -> AddRef(This)
  1140. #define IFilterMapper2_Release(This)
  1141.     (This)->lpVtbl -> Release(This)
  1142. #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
  1143.     (This)->lpVtbl -> CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
  1144. #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter)
  1145.     (This)->lpVtbl -> UnregisterFilter(This,pclsidCategory,szInstance,Filter)
  1146. #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
  1147.     (This)->lpVtbl -> RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
  1148. #define IFilterMapper2_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
  1149.     (This)->lpVtbl -> EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
  1150. #endif /* COBJMACROS */
  1151. #endif  /* C style interface */
  1152. HRESULT STDMETHODCALLTYPE IFilterMapper2_CreateCategory_Proxy( 
  1153.     IFilterMapper2 * This,
  1154.     /* [in] */ REFCLSID clsidCategory,
  1155.     /* [in] */ DWORD dwCategoryMerit,
  1156.     /* [in] */ LPCWSTR Description);
  1157. void __RPC_STUB IFilterMapper2_CreateCategory_Stub(
  1158.     IRpcStubBuffer *This,
  1159.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1160.     PRPC_MESSAGE _pRpcMessage,
  1161.     DWORD *_pdwStubPhase);
  1162. HRESULT STDMETHODCALLTYPE IFilterMapper2_UnregisterFilter_Proxy( 
  1163.     IFilterMapper2 * This,
  1164.     /* [in] */ const CLSID *pclsidCategory,
  1165.     /* [in] */ const OLECHAR *szInstance,
  1166.     /* [in] */ REFCLSID Filter);
  1167. void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(
  1168.     IRpcStubBuffer *This,
  1169.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1170.     PRPC_MESSAGE _pRpcMessage,
  1171.     DWORD *_pdwStubPhase);
  1172. HRESULT STDMETHODCALLTYPE IFilterMapper2_RegisterFilter_Proxy( 
  1173.     IFilterMapper2 * This,
  1174.     /* [in] */ REFCLSID clsidFilter,
  1175.     /* [in] */ LPCWSTR Name,
  1176.     /* [out][in] */ IMoniker **ppMoniker,
  1177.     /* [in] */ const CLSID *pclsidCategory,
  1178.     /* [in] */ const OLECHAR *szInstance,
  1179.     /* [in] */ const REGFILTER2 *prf2);
  1180. void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(
  1181.     IRpcStubBuffer *This,
  1182.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1183.     PRPC_MESSAGE _pRpcMessage,
  1184.     DWORD *_pdwStubPhase);
  1185. HRESULT STDMETHODCALLTYPE IFilterMapper2_EnumMatchingFilters_Proxy( 
  1186.     IFilterMapper2 * This,
  1187.     /* [out] */ IEnumMoniker **ppEnum,
  1188.     /* [in] */ DWORD dwFlags,
  1189.     /* [in] */ BOOL bExactMatch,
  1190.     /* [in] */ DWORD dwMerit,
  1191.     /* [in] */ BOOL bInputNeeded,
  1192.     /* [in] */ DWORD cInputTypes,
  1193.     /* [size_is] */ const GUID *pInputTypes,
  1194.     /* [in] */ const REGPINMEDIUM *pMedIn,
  1195.     /* [in] */ const CLSID *pPinCategoryIn,
  1196.     /* [in] */ BOOL bRender,
  1197.     /* [in] */ BOOL bOutputNeeded,
  1198.     /* [in] */ DWORD cOutputTypes,
  1199.     /* [size_is] */ const GUID *pOutputTypes,
  1200.     /* [in] */ const REGPINMEDIUM *pMedOut,
  1201.     /* [in] */ const CLSID *pPinCategoryOut);
  1202. void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(
  1203.     IRpcStubBuffer *This,
  1204.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1205.     PRPC_MESSAGE _pRpcMessage,
  1206.     DWORD *_pdwStubPhase);
  1207. #endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
  1208. #ifndef __IFilterMapper3_INTERFACE_DEFINED__
  1209. #define __IFilterMapper3_INTERFACE_DEFINED__
  1210. /* interface IFilterMapper3 */
  1211. /* [unique][uuid][object] */ 
  1212. EXTERN_C const IID IID_IFilterMapper3;
  1213. #if defined(__cplusplus) && !defined(CINTERFACE)
  1214.     
  1215.     MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
  1216.     IFilterMapper3 : public IFilterMapper2
  1217.     {
  1218.     public:
  1219.         virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum( 
  1220.             /* [out] */ ICreateDevEnum **ppEnum) = 0;
  1221.         
  1222.     };
  1223.     
  1224. #else  /* C style interface */
  1225.     typedef struct IFilterMapper3Vtbl
  1226.     {
  1227.         BEGIN_INTERFACE
  1228.         
  1229.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1230.             IFilterMapper3 * This,
  1231.             /* [in] */ REFIID riid,
  1232.             /* [iid_is][out] */ void **ppvObject);
  1233.         
  1234.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1235.             IFilterMapper3 * This);
  1236.         
  1237.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1238.             IFilterMapper3 * This);
  1239.         
  1240.         HRESULT ( STDMETHODCALLTYPE *CreateCategory )( 
  1241.             IFilterMapper3 * This,
  1242.             /* [in] */ REFCLSID clsidCategory,
  1243.             /* [in] */ DWORD dwCategoryMerit,
  1244.             /* [in] */ LPCWSTR Description);
  1245.         
  1246.         HRESULT ( STDMETHODCALLTYPE *UnregisterFilter )( 
  1247.             IFilterMapper3 * This,
  1248.             /* [in] */ const CLSID *pclsidCategory,
  1249.             /* [in] */ const OLECHAR *szInstance,
  1250.             /* [in] */ REFCLSID Filter);
  1251.         
  1252.         HRESULT ( STDMETHODCALLTYPE *RegisterFilter )( 
  1253.             IFilterMapper3 * This,
  1254.             /* [in] */ REFCLSID clsidFilter,
  1255.             /* [in] */ LPCWSTR Name,
  1256.             /* [out][in] */ IMoniker **ppMoniker,
  1257.             /* [in] */ const CLSID *pclsidCategory,
  1258.             /* [in] */ const OLECHAR *szInstance,
  1259.             /* [in] */ const REGFILTER2 *prf2);
  1260.         
  1261.         HRESULT ( STDMETHODCALLTYPE *EnumMatchingFilters )( 
  1262.             IFilterMapper3 * This,
  1263.             /* [out] */ IEnumMoniker **ppEnum,
  1264.             /* [in] */ DWORD dwFlags,
  1265.             /* [in] */ BOOL bExactMatch,
  1266.             /* [in] */ DWORD dwMerit,
  1267.             /* [in] */ BOOL bInputNeeded,
  1268.             /* [in] */ DWORD cInputTypes,
  1269.             /* [size_is] */ const GUID *pInputTypes,
  1270.             /* [in] */ const REGPINMEDIUM *pMedIn,
  1271.             /* [in] */ const CLSID *pPinCategoryIn,
  1272.             /* [in] */ BOOL bRender,
  1273.             /* [in] */ BOOL bOutputNeeded,
  1274.             /* [in] */ DWORD cOutputTypes,
  1275.             /* [size_is] */ const GUID *pOutputTypes,
  1276.             /* [in] */ const REGPINMEDIUM *pMedOut,
  1277.             /* [in] */ const CLSID *pPinCategoryOut);
  1278.         
  1279.         HRESULT ( STDMETHODCALLTYPE *GetICreateDevEnum )( 
  1280.             IFilterMapper3 * This,
  1281.             /* [out] */ ICreateDevEnum **ppEnum);
  1282.         
  1283.         END_INTERFACE
  1284.     } IFilterMapper3Vtbl;
  1285.     interface IFilterMapper3
  1286.     {
  1287.         CONST_VTBL struct IFilterMapper3Vtbl *lpVtbl;
  1288.     };
  1289.     
  1290. #ifdef COBJMACROS
  1291. #define IFilterMapper3_QueryInterface(This,riid,ppvObject)
  1292.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1293. #define IFilterMapper3_AddRef(This)
  1294.     (This)->lpVtbl -> AddRef(This)
  1295. #define IFilterMapper3_Release(This)
  1296.     (This)->lpVtbl -> Release(This)
  1297. #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
  1298.     (This)->lpVtbl -> CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
  1299. #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter)
  1300.     (This)->lpVtbl -> UnregisterFilter(This,pclsidCategory,szInstance,Filter)
  1301. #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
  1302.     (This)->lpVtbl -> RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
  1303. #define IFilterMapper3_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
  1304.     (This)->lpVtbl -> EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
  1305. #define IFilterMapper3_GetICreateDevEnum(This,ppEnum)
  1306.     (This)->lpVtbl -> GetICreateDevEnum(This,ppEnum)
  1307. #endif /* COBJMACROS */
  1308. #endif  /* C style interface */
  1309. HRESULT STDMETHODCALLTYPE IFilterMapper3_GetICreateDevEnum_Proxy( 
  1310.     IFilterMapper3 * This,
  1311.     /* [out] */ ICreateDevEnum **ppEnum);
  1312. void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(
  1313.     IRpcStubBuffer *This,
  1314.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1315.     PRPC_MESSAGE _pRpcMessage,
  1316.     DWORD *_pdwStubPhase);
  1317. #endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
  1318. /* interface __MIDL_itf_strmif_0135 */
  1319. /* [local] */ 
  1320. typedef 
  1321. enum tagQualityMessageType
  1322.     { Famine = 0,
  1323. Flood = Famine + 1
  1324.     }  QualityMessageType;
  1325. typedef struct tagQuality
  1326.     {
  1327.     QualityMessageType Type;
  1328.     long Proportion;
  1329.     REFERENCE_TIME Late;
  1330.     REFERENCE_TIME TimeStamp;
  1331.     }  Quality;
  1332. typedef IQualityControl *PQUALITYCONTROL;
  1333. extern RPC_IF_HANDLE __MIDL_itf_strmif_0135_v0_0_c_ifspec;
  1334. extern RPC_IF_HANDLE __MIDL_itf_strmif_0135_v0_0_s_ifspec;
  1335. #ifndef __IQualityControl_INTERFACE_DEFINED__
  1336. #define __IQualityControl_INTERFACE_DEFINED__
  1337. /* interface IQualityControl */
  1338. /* [unique][uuid][object] */ 
  1339. EXTERN_C const IID IID_IQualityControl;
  1340. #if defined(__cplusplus) && !defined(CINTERFACE)
  1341.     
  1342.     MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
  1343.     IQualityControl : public IUnknown
  1344.     {
  1345.     public:
  1346.         virtual HRESULT STDMETHODCALLTYPE Notify( 
  1347.             /* [in] */ IBaseFilter *pSelf,
  1348.             /* [in] */ Quality q) = 0;
  1349.         
  1350.         virtual HRESULT STDMETHODCALLTYPE SetSink( 
  1351.             /* [in] */ IQualityControl *piqc) = 0;
  1352.         
  1353.     };
  1354.     
  1355. #else  /* C style interface */
  1356.     typedef struct IQualityControlVtbl
  1357.     {
  1358.         BEGIN_INTERFACE
  1359.         
  1360.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1361.             IQualityControl * This,
  1362.             /* [in] */ REFIID riid,
  1363.             /* [iid_is][out] */ void **ppvObject);
  1364.         
  1365.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1366.             IQualityControl * This);
  1367.         
  1368.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1369.             IQualityControl * This);
  1370.         
  1371.         HRESULT ( STDMETHODCALLTYPE *Notify )( 
  1372.             IQualityControl * This,
  1373.             /* [in] */ IBaseFilter *pSelf,
  1374.             /* [in] */ Quality q);
  1375.         
  1376.         HRESULT ( STDMETHODCALLTYPE *SetSink )( 
  1377.             IQualityControl * This,
  1378.             /* [in] */ IQualityControl *piqc);
  1379.         
  1380.         END_INTERFACE
  1381.     } IQualityControlVtbl;
  1382.     interface IQualityControl
  1383.     {
  1384.         CONST_VTBL struct IQualityControlVtbl *lpVtbl;
  1385.     };
  1386.     
  1387. #ifdef COBJMACROS
  1388. #define IQualityControl_QueryInterface(This,riid,ppvObject)
  1389.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1390. #define IQualityControl_AddRef(This)
  1391.     (This)->lpVtbl -> AddRef(This)
  1392. #define IQualityControl_Release(This)
  1393.     (This)->lpVtbl -> Release(This)
  1394. #define IQualityControl_Notify(This,pSelf,q)
  1395.     (This)->lpVtbl -> Notify(This,pSelf,q)
  1396. #define IQualityControl_SetSink(This,piqc)
  1397.     (This)->lpVtbl -> SetSink(This,piqc)
  1398. #endif /* COBJMACROS */
  1399. #endif  /* C style interface */
  1400. HRESULT STDMETHODCALLTYPE IQualityControl_Notify_Proxy( 
  1401.     IQualityControl * This,
  1402.     /* [in] */ IBaseFilter *pSelf,
  1403.     /* [in] */ Quality q);
  1404. void __RPC_STUB IQualityControl_Notify_Stub(
  1405.     IRpcStubBuffer *This,
  1406.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1407.     PRPC_MESSAGE _pRpcMessage,
  1408.     DWORD *_pdwStubPhase);
  1409. HRESULT STDMETHODCALLTYPE IQualityControl_SetSink_Proxy( 
  1410.     IQualityControl * This,
  1411.     /* [in] */ IQualityControl *piqc);
  1412. void __RPC_STUB IQualityControl_SetSink_Stub(
  1413.     IRpcStubBuffer *This,
  1414.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1415.     PRPC_MESSAGE _pRpcMessage,
  1416.     DWORD *_pdwStubPhase);
  1417. #endif  /* __IQualityControl_INTERFACE_DEFINED__ */
  1418. /* interface __MIDL_itf_strmif_0136 */
  1419. /* [local] */ 
  1420. enum __MIDL___MIDL_itf_strmif_0136_0001
  1421.     { CK_NOCOLORKEY = 0,
  1422. CK_INDEX = 0x1,
  1423. CK_RGB = 0x2
  1424.     } ;
  1425. typedef struct tagCOLORKEY
  1426.     {
  1427.     DWORD KeyType;
  1428.     DWORD PaletteIndex;
  1429.     COLORREF LowColorValue;
  1430.     COLORREF HighColorValue;
  1431.     }  COLORKEY;
  1432. enum __MIDL___MIDL_itf_strmif_0136_0002
  1433.     { ADVISE_NONE = 0,
  1434. ADVISE_CLIPPING = 0x1,
  1435. ADVISE_PALETTE = 0x2,
  1436. ADVISE_COLORKEY = 0x4,
  1437. ADVISE_POSITION = 0x8,
  1438. ADVISE_DISPLAY_CHANGE = 0x10
  1439.     } ;
  1440. #define ADVISE_ALL ( ADVISE_CLIPPING | ADVISE_PALETTE | ADVISE_COLORKEY | ADVISE_POSITION )
  1441. #define ADVISE_ALL2 ( ADVISE_ALL | ADVISE_DISPLAY_CHANGE )
  1442. #ifndef _WINGDI_
  1443. typedef struct _RGNDATAHEADER
  1444.     {
  1445.     DWORD dwSize;
  1446.     DWORD iType;
  1447.     DWORD nCount;
  1448.     DWORD nRgnSize;
  1449.     RECT rcBound;
  1450.     }  RGNDATAHEADER;
  1451. typedef struct _RGNDATA
  1452.     {
  1453.     RGNDATAHEADER rdh;
  1454.     char Buffer[ 1 ];
  1455.     }  RGNDATA;
  1456. #endif
  1457. extern RPC_IF_HANDLE __MIDL_itf_strmif_0136_v0_0_c_ifspec;
  1458. extern RPC_IF_HANDLE __MIDL_itf_strmif_0136_v0_0_s_ifspec;
  1459. #ifndef __IOverlayNotify_INTERFACE_DEFINED__
  1460. #define __IOverlayNotify_INTERFACE_DEFINED__
  1461. /* interface IOverlayNotify */
  1462. /* [unique][uuid][local][object] */ 
  1463. EXTERN_C const IID IID_IOverlayNotify;
  1464. #if defined(__cplusplus) && !defined(CINTERFACE)
  1465.     
  1466.     MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
  1467.     IOverlayNotify : public IUnknown
  1468.     {
  1469.     public:
  1470.         virtual HRESULT STDMETHODCALLTYPE OnPaletteChange( 
  1471.             /* [in] */ DWORD dwColors,
  1472.             /* [in] */ const PALETTEENTRY *pPalette) = 0;
  1473.         
  1474.         virtual HRESULT STDMETHODCALLTYPE OnClipChange( 
  1475.             /* [in] */ const RECT *pSourceRect,
  1476.             /* [in] */ const RECT *pDestinationRect,
  1477.             /* [in] */ const RGNDATA *pRgnData) = 0;
  1478.         
  1479.         virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange( 
  1480.             /* [in] */ const COLORKEY *pColorKey) = 0;
  1481.         
  1482.         virtual HRESULT STDMETHODCALLTYPE OnPositionChange( 
  1483.             /* [in] */ const RECT *pSourceRect,
  1484.             /* [in] */ const RECT *pDestinationRect) = 0;
  1485.         
  1486.     };
  1487.     
  1488. #else  /* C style interface */
  1489.     typedef struct IOverlayNotifyVtbl
  1490.     {
  1491.         BEGIN_INTERFACE
  1492.         
  1493.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1494.             IOverlayNotify * This,
  1495.             /* [in] */ REFIID riid,
  1496.             /* [iid_is][out] */ void **ppvObject);
  1497.         
  1498.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1499.             IOverlayNotify * This);
  1500.         
  1501.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1502.             IOverlayNotify * This);
  1503.         
  1504.         HRESULT ( STDMETHODCALLTYPE *OnPaletteChange )( 
  1505.             IOverlayNotify * This,
  1506.             /* [in] */ DWORD dwColors,
  1507.             /* [in] */ const PALETTEENTRY *pPalette);
  1508.         
  1509.         HRESULT ( STDMETHODCALLTYPE *OnClipChange )( 
  1510.             IOverlayNotify * This,
  1511.             /* [in] */ const RECT *pSourceRect,
  1512.             /* [in] */ const RECT *pDestinationRect,
  1513.             /* [in] */ const RGNDATA *pRgnData);
  1514.         
  1515.         HRESULT ( STDMETHODCALLTYPE *OnColorKeyChange )( 
  1516.             IOverlayNotify * This,
  1517.             /* [in] */ const COLORKEY *pColorKey);
  1518.         
  1519.         HRESULT ( STDMETHODCALLTYPE *OnPositionChange )( 
  1520.             IOverlayNotify * This,
  1521.             /* [in] */ const RECT *pSourceRect,
  1522.             /* [in] */ const RECT *pDestinationRect);
  1523.         
  1524.         END_INTERFACE
  1525.     } IOverlayNotifyVtbl;
  1526.     interface IOverlayNotify
  1527.     {
  1528.         CONST_VTBL struct IOverlayNotifyVtbl *lpVtbl;
  1529.     };
  1530.     
  1531. #ifdef COBJMACROS
  1532. #define IOverlayNotify_QueryInterface(This,riid,ppvObject)
  1533.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1534. #define IOverlayNotify_AddRef(This)
  1535.     (This)->lpVtbl -> AddRef(This)
  1536. #define IOverlayNotify_Release(This)
  1537.     (This)->lpVtbl -> Release(This)
  1538. #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette)
  1539.     (This)->lpVtbl -> OnPaletteChange(This,dwColors,pPalette)
  1540. #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
  1541.     (This)->lpVtbl -> OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
  1542. #define IOverlayNotify_OnColorKeyChange(This,pColorKey)
  1543.     (This)->lpVtbl -> OnColorKeyChange(This,pColorKey)
  1544. #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect)
  1545.     (This)->lpVtbl -> OnPositionChange(This,pSourceRect,pDestinationRect)
  1546. #endif /* COBJMACROS */
  1547. #endif  /* C style interface */
  1548. HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPaletteChange_Proxy( 
  1549.     IOverlayNotify * This,
  1550.     /* [in] */ DWORD dwColors,
  1551.     /* [in] */ const PALETTEENTRY *pPalette);
  1552. void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(
  1553.     IRpcStubBuffer *This,
  1554.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1555.     PRPC_MESSAGE _pRpcMessage,
  1556.     DWORD *_pdwStubPhase);
  1557. HRESULT STDMETHODCALLTYPE IOverlayNotify_OnClipChange_Proxy( 
  1558.     IOverlayNotify * This,
  1559.     /* [in] */ const RECT *pSourceRect,
  1560.     /* [in] */ const RECT *pDestinationRect,
  1561.     /* [in] */ const RGNDATA *pRgnData);
  1562. void __RPC_STUB IOverlayNotify_OnClipChange_Stub(
  1563.     IRpcStubBuffer *This,
  1564.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1565.     PRPC_MESSAGE _pRpcMessage,
  1566.     DWORD *_pdwStubPhase);
  1567. HRESULT STDMETHODCALLTYPE IOverlayNotify_OnColorKeyChange_Proxy( 
  1568.     IOverlayNotify * This,
  1569.     /* [in] */ const COLORKEY *pColorKey);
  1570. void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(
  1571.     IRpcStubBuffer *This,
  1572.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1573.     PRPC_MESSAGE _pRpcMessage,
  1574.     DWORD *_pdwStubPhase);
  1575. HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPositionChange_Proxy( 
  1576.     IOverlayNotify * This,
  1577.     /* [in] */ const RECT *pSourceRect,
  1578.     /* [in] */ const RECT *pDestinationRect);
  1579. void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(
  1580.     IRpcStubBuffer *This,
  1581.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1582.     PRPC_MESSAGE _pRpcMessage,
  1583.     DWORD *_pdwStubPhase);
  1584. #endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
  1585. /* interface __MIDL_itf_strmif_0137 */
  1586. /* [local] */ 
  1587. typedef IOverlayNotify *POVERLAYNOTIFY;
  1588. #if !defined(HMONITOR_DECLARED) && !defined(HMONITOR) && (WINVER < 0x0500)
  1589. #define HMONITOR_DECLARED
  1590. #if 0
  1591. typedef HANDLE HMONITOR;
  1592. #endif
  1593. DECLARE_HANDLE(HMONITOR);
  1594. #endif
  1595. extern RPC_IF_HANDLE __MIDL_itf_strmif_0137_v0_0_c_ifspec;
  1596. extern RPC_IF_HANDLE __MIDL_itf_strmif_0137_v0_0_s_ifspec;
  1597. #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
  1598. #define __IOverlayNotify2_INTERFACE_DEFINED__
  1599. /* interface IOverlayNotify2 */
  1600. /* [unique][uuid][local][object] */ 
  1601. EXTERN_C const IID IID_IOverlayNotify2;
  1602. #if defined(__cplusplus) && !defined(CINTERFACE)
  1603.     
  1604.     MIDL_INTERFACE("680EFA10-D535-11D1-87C8-00A0C9223196")
  1605.     IOverlayNotify2 : public IOverlayNotify
  1606.     {
  1607.     public:
  1608.         virtual HRESULT STDMETHODCALLTYPE OnDisplayChange( 
  1609.             HMONITOR hMonitor) = 0;
  1610.         
  1611.     };
  1612.     
  1613. #else  /* C style interface */
  1614.     typedef struct IOverlayNotify2Vtbl
  1615.     {
  1616.         BEGIN_INTERFACE
  1617.         
  1618.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1619.             IOverlayNotify2 * This,
  1620.             /* [in] */ REFIID riid,
  1621.             /* [iid_is][out] */ void **ppvObject);
  1622.         
  1623.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1624.             IOverlayNotify2 * This);
  1625.         
  1626.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1627.             IOverlayNotify2 * This);
  1628.         
  1629.         HRESULT ( STDMETHODCALLTYPE *OnPaletteChange )( 
  1630.             IOverlayNotify2 * This,
  1631.             /* [in] */ DWORD dwColors,
  1632.             /* [in] */ const PALETTEENTRY *pPalette);
  1633.         
  1634.         HRESULT ( STDMETHODCALLTYPE *OnClipChange )( 
  1635.             IOverlayNotify2 * This,
  1636.             /* [in] */ const RECT *pSourceRect,
  1637.             /* [in] */ const RECT *pDestinationRect,
  1638.             /* [in] */ const RGNDATA *pRgnData);
  1639.         
  1640.         HRESULT ( STDMETHODCALLTYPE *OnColorKeyChange )( 
  1641.             IOverlayNotify2 * This,
  1642.             /* [in] */ const COLORKEY *pColorKey);
  1643.         
  1644.         HRESULT ( STDMETHODCALLTYPE *OnPositionChange )( 
  1645.             IOverlayNotify2 * This,
  1646.             /* [in] */ const RECT *pSourceRect,
  1647.             /* [in] */ const RECT *pDestinationRect);
  1648.         
  1649.         HRESULT ( STDMETHODCALLTYPE *OnDisplayChange )( 
  1650.             IOverlayNotify2 * This,
  1651.             HMONITOR hMonitor);
  1652.         
  1653.         END_INTERFACE
  1654.     } IOverlayNotify2Vtbl;
  1655.     interface IOverlayNotify2
  1656.     {
  1657.         CONST_VTBL struct IOverlayNotify2Vtbl *lpVtbl;
  1658.     };
  1659.     
  1660. #ifdef COBJMACROS
  1661. #define IOverlayNotify2_QueryInterface(This,riid,ppvObject)
  1662.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1663. #define IOverlayNotify2_AddRef(This)
  1664.     (This)->lpVtbl -> AddRef(This)
  1665. #define IOverlayNotify2_Release(This)
  1666.     (This)->lpVtbl -> Release(This)
  1667. #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette)
  1668.     (This)->lpVtbl -> OnPaletteChange(This,dwColors,pPalette)
  1669. #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
  1670.     (This)->lpVtbl -> OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
  1671. #define IOverlayNotify2_OnColorKeyChange(This,pColorKey)
  1672.     (This)->lpVtbl -> OnColorKeyChange(This,pColorKey)
  1673. #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect)
  1674.     (This)->lpVtbl -> OnPositionChange(This,pSourceRect,pDestinationRect)
  1675. #define IOverlayNotify2_OnDisplayChange(This,hMonitor)
  1676.     (This)->lpVtbl -> OnDisplayChange(This,hMonitor)
  1677. #endif /* COBJMACROS */
  1678. #endif  /* C style interface */
  1679. HRESULT STDMETHODCALLTYPE IOverlayNotify2_OnDisplayChange_Proxy( 
  1680.     IOverlayNotify2 * This,
  1681.     HMONITOR hMonitor);
  1682. void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(
  1683.     IRpcStubBuffer *This,
  1684.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1685.     PRPC_MESSAGE _pRpcMessage,
  1686.     DWORD *_pdwStubPhase);
  1687. #endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
  1688. /* interface __MIDL_itf_strmif_0138 */
  1689. /* [local] */ 
  1690. typedef IOverlayNotify2 *POVERLAYNOTIFY2;
  1691. extern RPC_IF_HANDLE __MIDL_itf_strmif_0138_v0_0_c_ifspec;
  1692. extern RPC_IF_HANDLE __MIDL_itf_strmif_0138_v0_0_s_ifspec;
  1693. #ifndef __IOverlay_INTERFACE_DEFINED__
  1694. #define __IOverlay_INTERFACE_DEFINED__
  1695. /* interface IOverlay */
  1696. /* [unique][uuid][local][object] */ 
  1697. EXTERN_C const IID IID_IOverlay;
  1698. #if defined(__cplusplus) && !defined(CINTERFACE)
  1699.     
  1700.     MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
  1701.     IOverlay : public IUnknown
  1702.     {
  1703.     public:
  1704.         virtual HRESULT STDMETHODCALLTYPE GetPalette( 
  1705.             /* [out] */ DWORD *pdwColors,
  1706.             /* [out] */ PALETTEENTRY **ppPalette) = 0;
  1707.         
  1708.         virtual HRESULT STDMETHODCALLTYPE SetPalette( 
  1709.             /* [in] */ DWORD dwColors,
  1710.             /* [in] */ PALETTEENTRY *pPalette) = 0;
  1711.         
  1712.         virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey( 
  1713.             /* [out] */ COLORKEY *pColorKey) = 0;
  1714.         
  1715.         virtual HRESULT STDMETHODCALLTYPE GetColorKey( 
  1716.             /* [out] */ COLORKEY *pColorKey) = 0;
  1717.         
  1718.         virtual HRESULT STDMETHODCALLTYPE SetColorKey( 
  1719.             /* [out][in] */ COLORKEY *pColorKey) = 0;
  1720.         
  1721.         virtual HRESULT STDMETHODCALLTYPE GetWindowHandle( 
  1722.             /* [out] */ HWND *pHwnd) = 0;
  1723.         
  1724.         virtual HRESULT STDMETHODCALLTYPE GetClipList( 
  1725.             /* [out] */ RECT *pSourceRect,
  1726.             /* [out] */ RECT *pDestinationRect,
  1727.             /* [out] */ RGNDATA **ppRgnData) = 0;
  1728.         
  1729.         virtual HRESULT STDMETHODCALLTYPE GetVideoPosition( 
  1730.             /* [out] */ RECT *pSourceRect,
  1731.             /* [out] */ RECT *pDestinationRect) = 0;
  1732.         
  1733.         virtual HRESULT STDMETHODCALLTYPE Advise( 
  1734.             /* [in] */ IOverlayNotify *pOverlayNotify,
  1735.             /* [in] */ DWORD dwInterests) = 0;
  1736.         
  1737.         virtual HRESULT STDMETHODCALLTYPE Unadvise( void) = 0;
  1738.         
  1739.     };
  1740.     
  1741. #else  /* C style interface */
  1742.     typedef struct IOverlayVtbl
  1743.     {
  1744.         BEGIN_INTERFACE
  1745.         
  1746.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1747.             IOverlay * This,
  1748.             /* [in] */ REFIID riid,
  1749.             /* [iid_is][out] */ void **ppvObject);
  1750.         
  1751.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1752.             IOverlay * This);
  1753.         
  1754.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1755.             IOverlay * This);
  1756.         
  1757.         HRESULT ( STDMETHODCALLTYPE *GetPalette )( 
  1758.             IOverlay * This,
  1759.             /* [out] */ DWORD *pdwColors,
  1760.             /* [out] */ PALETTEENTRY **ppPalette);
  1761.         
  1762.         HRESULT ( STDMETHODCALLTYPE *SetPalette )( 
  1763.             IOverlay * This,
  1764.             /* [in] */ DWORD dwColors,
  1765.             /* [in] */ PALETTEENTRY *pPalette);
  1766.         
  1767.         HRESULT ( STDMETHODCALLTYPE *GetDefaultColorKey )( 
  1768.             IOverlay * This,
  1769.             /* [out] */ COLORKEY *pColorKey);
  1770.         
  1771.         HRESULT ( STDMETHODCALLTYPE *GetColorKey )( 
  1772.             IOverlay * This,
  1773.             /* [out] */ COLORKEY *pColorKey);
  1774.         
  1775.         HRESULT ( STDMETHODCALLTYPE *SetColorKey )( 
  1776.             IOverlay * This,
  1777.             /* [out][in] */ COLORKEY *pColorKey);
  1778.         
  1779.         HRESULT ( STDMETHODCALLTYPE *GetWindowHandle )( 
  1780.             IOverlay * This,
  1781.             /* [out] */ HWND *pHwnd);
  1782.         
  1783.         HRESULT ( STDMETHODCALLTYPE *GetClipList )( 
  1784.             IOverlay * This,
  1785.             /* [out] */ RECT *pSourceRect,
  1786.             /* [out] */ RECT *pDestinationRect,
  1787.             /* [out] */ RGNDATA **ppRgnData);
  1788.         
  1789.         HRESULT ( STDMETHODCALLTYPE *GetVideoPosition )( 
  1790.             IOverlay * This,
  1791.             /* [out] */ RECT *pSourceRect,
  1792.             /* [out] */ RECT *pDestinationRect);
  1793.         
  1794.         HRESULT ( STDMETHODCALLTYPE *Advise )( 
  1795.             IOverlay * This,
  1796.             /* [in] */ IOverlayNotify *pOverlayNotify,
  1797.             /* [in] */ DWORD dwInterests);
  1798.         
  1799.         HRESULT ( STDMETHODCALLTYPE *Unadvise )( 
  1800.             IOverlay * This);
  1801.         
  1802.         END_INTERFACE
  1803.     } IOverlayVtbl;
  1804.     interface IOverlay
  1805.     {
  1806.         CONST_VTBL struct IOverlayVtbl *lpVtbl;
  1807.     };
  1808.     
  1809. #ifdef COBJMACROS
  1810. #define IOverlay_QueryInterface(This,riid,ppvObject)
  1811.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1812. #define IOverlay_AddRef(This)
  1813.     (This)->lpVtbl -> AddRef(This)
  1814. #define IOverlay_Release(This)
  1815.     (This)->lpVtbl -> Release(This)
  1816. #define IOverlay_GetPalette(This,pdwColors,ppPalette)
  1817.     (This)->lpVtbl -> GetPalette(This,pdwColors,ppPalette)
  1818. #define IOverlay_SetPalette(This,dwColors,pPalette)
  1819.     (This)->lpVtbl -> SetPalette(This,dwColors,pPalette)
  1820. #define IOverlay_GetDefaultColorKey(This,pColorKey)
  1821.     (This)->lpVtbl -> GetDefaultColorKey(This,pColorKey)
  1822. #define IOverlay_GetColorKey(This,pColorKey)
  1823.     (This)->lpVtbl -> GetColorKey(This,pColorKey)
  1824. #define IOverlay_SetColorKey(This,pColorKey)
  1825.     (This)->lpVtbl -> SetColorKey(This,pColorKey)
  1826. #define IOverlay_GetWindowHandle(This,pHwnd)
  1827.     (This)->lpVtbl -> GetWindowHandle(This,pHwnd)
  1828. #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
  1829.     (This)->lpVtbl -> GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
  1830. #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect)
  1831.     (This)->lpVtbl -> GetVideoPosition(This,pSourceRect,pDestinationRect)
  1832. #define IOverlay_Advise(This,pOverlayNotify,dwInterests)
  1833.     (This)->lpVtbl -> Advise(This,pOverlayNotify,dwInterests)
  1834. #define IOverlay_Unadvise(This)
  1835.     (This)->lpVtbl -> Unadvise(This)
  1836. #endif /* COBJMACROS */
  1837. #endif  /* C style interface */
  1838. HRESULT STDMETHODCALLTYPE IOverlay_GetPalette_Proxy( 
  1839.     IOverlay * This,
  1840.     /* [out] */ DWORD *pdwColors,
  1841.     /* [out] */ PALETTEENTRY **ppPalette);
  1842. void __RPC_STUB IOverlay_GetPalette_Stub(
  1843.     IRpcStubBuffer *This,
  1844.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1845.     PRPC_MESSAGE _pRpcMessage,
  1846.     DWORD *_pdwStubPhase);
  1847. HRESULT STDMETHODCALLTYPE IOverlay_SetPalette_Proxy( 
  1848.     IOverlay * This,
  1849.     /* [in] */ DWORD dwColors,
  1850.     /* [in] */ PALETTEENTRY *pPalette);
  1851. void __RPC_STUB IOverlay_SetPalette_Stub(
  1852.     IRpcStubBuffer *This,
  1853.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1854.     PRPC_MESSAGE _pRpcMessage,
  1855.     DWORD *_pdwStubPhase);
  1856. HRESULT STDMETHODCALLTYPE IOverlay_GetDefaultColorKey_Proxy( 
  1857.     IOverlay * This,
  1858.     /* [out] */ COLORKEY *pColorKey);
  1859. void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(
  1860.     IRpcStubBuffer *This,
  1861.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1862.     PRPC_MESSAGE _pRpcMessage,
  1863.     DWORD *_pdwStubPhase);
  1864. HRESULT STDMETHODCALLTYPE IOverlay_GetColorKey_Proxy( 
  1865.     IOverlay * This,
  1866.     /* [out] */ COLORKEY *pColorKey);
  1867. void __RPC_STUB IOverlay_GetColorKey_Stub(
  1868.     IRpcStubBuffer *This,
  1869.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1870.     PRPC_MESSAGE _pRpcMessage,
  1871.     DWORD *_pdwStubPhase);
  1872. HRESULT STDMETHODCALLTYPE IOverlay_SetColorKey_Proxy( 
  1873.     IOverlay * This,
  1874.     /* [out][in] */ COLORKEY *pColorKey);
  1875. void __RPC_STUB IOverlay_SetColorKey_Stub(
  1876.     IRpcStubBuffer *This,
  1877.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1878.     PRPC_MESSAGE _pRpcMessage,
  1879.     DWORD *_pdwStubPhase);
  1880. HRESULT STDMETHODCALLTYPE IOverlay_GetWindowHandle_Proxy( 
  1881.     IOverlay * This,
  1882.     /* [out] */ HWND *pHwnd);
  1883. void __RPC_STUB IOverlay_GetWindowHandle_Stub(
  1884.     IRpcStubBuffer *This,
  1885.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1886.     PRPC_MESSAGE _pRpcMessage,
  1887.     DWORD *_pdwStubPhase);
  1888. HRESULT STDMETHODCALLTYPE IOverlay_GetClipList_Proxy( 
  1889.     IOverlay * This,
  1890.     /* [out] */ RECT *pSourceRect,
  1891.     /* [out] */ RECT *pDestinationRect,
  1892.     /* [out] */ RGNDATA **ppRgnData);
  1893. void __RPC_STUB IOverlay_GetClipList_Stub(
  1894.     IRpcStubBuffer *This,
  1895.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1896.     PRPC_MESSAGE _pRpcMessage,
  1897.     DWORD *_pdwStubPhase);
  1898. HRESULT STDMETHODCALLTYPE IOverlay_GetVideoPosition_Proxy( 
  1899.     IOverlay * This,
  1900.     /* [out] */ RECT *pSourceRect,
  1901.     /* [out] */ RECT *pDestinationRect);
  1902. void __RPC_STUB IOverlay_GetVideoPosition_Stub(
  1903.     IRpcStubBuffer *This,
  1904.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1905.     PRPC_MESSAGE _pRpcMessage,
  1906.     DWORD *_pdwStubPhase);
  1907. HRESULT STDMETHODCALLTYPE IOverlay_Advise_Proxy( 
  1908.     IOverlay * This,
  1909.     /* [in] */ IOverlayNotify *pOverlayNotify,
  1910.     /* [in] */ DWORD dwInterests);
  1911. void __RPC_STUB IOverlay_Advise_Stub(
  1912.     IRpcStubBuffer *This,
  1913.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1914.     PRPC_MESSAGE _pRpcMessage,
  1915.     DWORD *_pdwStubPhase);
  1916. HRESULT STDMETHODCALLTYPE IOverlay_Unadvise_Proxy( 
  1917.     IOverlay * This);
  1918. void __RPC_STUB IOverlay_Unadvise_Stub(
  1919.     IRpcStubBuffer *This,
  1920.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1921.     PRPC_MESSAGE _pRpcMessage,
  1922.     DWORD *_pdwStubPhase);
  1923. #endif  /* __IOverlay_INTERFACE_DEFINED__ */
  1924. /* interface __MIDL_itf_strmif_0139 */
  1925. /* [local] */ 
  1926. typedef IOverlay *POVERLAY;
  1927. extern RPC_IF_HANDLE __MIDL_itf_strmif_0139_v0_0_c_ifspec;
  1928. extern RPC_IF_HANDLE __MIDL_itf_strmif_0139_v0_0_s_ifspec;
  1929. #ifndef __IMediaEventSink_INTERFACE_DEFINED__
  1930. #define __IMediaEventSink_INTERFACE_DEFINED__
  1931. /* interface IMediaEventSink */
  1932. /* [unique][uuid][object] */ 
  1933. EXTERN_C const IID IID_IMediaEventSink;
  1934. #if defined(__cplusplus) && !defined(CINTERFACE)
  1935.     
  1936.     MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
  1937.     IMediaEventSink : public IUnknown
  1938.     {
  1939.     public:
  1940.         virtual HRESULT STDMETHODCALLTYPE Notify( 
  1941.             /* [in] */ long EventCode,
  1942.             /* [in] */ LONG_PTR EventParam1,
  1943.             /* [in] */ LONG_PTR EventParam2) = 0;
  1944.         
  1945.     };
  1946.     
  1947. #else  /* C style interface */
  1948.     typedef struct IMediaEventSinkVtbl
  1949.     {
  1950.         BEGIN_INTERFACE
  1951.         
  1952.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1953.             IMediaEventSink * This,
  1954.             /* [in] */ REFIID riid,
  1955.             /* [iid_is][out] */ void **ppvObject);
  1956.         
  1957.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1958.             IMediaEventSink * This);
  1959.         
  1960.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1961.             IMediaEventSink * This);
  1962.         
  1963.         HRESULT ( STDMETHODCALLTYPE *Notify )( 
  1964.             IMediaEventSink * This,
  1965.             /* [in] */ long EventCode,
  1966.             /* [in] */ LONG_PTR EventParam1,
  1967.             /* [in] */ LONG_PTR EventParam2);
  1968.         
  1969.         END_INTERFACE
  1970.     } IMediaEventSinkVtbl;
  1971.     interface IMediaEventSink
  1972.     {
  1973.         CONST_VTBL struct IMediaEventSinkVtbl *lpVtbl;
  1974.     };
  1975.     
  1976. #ifdef COBJMACROS
  1977. #define IMediaEventSink_QueryInterface(This,riid,ppvObject)
  1978.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1979. #define IMediaEventSink_AddRef(This)
  1980.     (This)->lpVtbl -> AddRef(This)
  1981. #define IMediaEventSink_Release(This)
  1982.     (This)->lpVtbl -> Release(This)
  1983. #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2)
  1984.     (This)->lpVtbl -> Notify(This,EventCode,EventParam1,EventParam2)
  1985. #endif /* COBJMACROS */
  1986. #endif  /* C style interface */
  1987. HRESULT STDMETHODCALLTYPE IMediaEventSink_Notify_Proxy( 
  1988.     IMediaEventSink * This,
  1989.     /* [in] */ long EventCode,
  1990.     /* [in] */ LONG_PTR EventParam1,
  1991.     /* [in] */ LONG_PTR EventParam2);
  1992. void __RPC_STUB IMediaEventSink_Notify_Stub(
  1993.     IRpcStubBuffer *This,
  1994.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1995.     PRPC_MESSAGE _pRpcMessage,
  1996.     DWORD *_pdwStubPhase);
  1997. #endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
  1998. /* interface __MIDL_itf_strmif_0140 */
  1999. /* [local] */ 
  2000. typedef IMediaEventSink *PMEDIAEVENTSINK;
  2001. extern RPC_IF_HANDLE __MIDL_itf_strmif_0140_v0_0_c_ifspec;
  2002. extern RPC_IF_HANDLE __MIDL_itf_strmif_0140_v0_0_s_ifspec;
  2003. #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
  2004. #define __IFileSourceFilter_INTERFACE_DEFINED__
  2005. /* interface IFileSourceFilter */
  2006. /* [unique][uuid][object] */ 
  2007. EXTERN_C const IID IID_IFileSourceFilter;
  2008. #if defined(__cplusplus) && !defined(CINTERFACE)
  2009.     
  2010.     MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
  2011.     IFileSourceFilter : public IUnknown
  2012.     {
  2013.     public:
  2014.         virtual HRESULT STDMETHODCALLTYPE Load( 
  2015.             /* [in] */ LPCOLESTR pszFileName,
  2016.             /* [unique][in] */ const AM_MEDIA_TYPE *pmt) = 0;
  2017.         
  2018.         virtual HRESULT STDMETHODCALLTYPE GetCurFile( 
  2019.             /* [out] */ LPOLESTR *ppszFileName,
  2020.             /* [out] */ AM_MEDIA_TYPE *pmt) = 0;
  2021.         
  2022.     };
  2023.     
  2024. #else  /* C style interface */
  2025.     typedef struct IFileSourceFilterVtbl
  2026.     {
  2027.         BEGIN_INTERFACE
  2028.         
  2029.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2030.             IFileSourceFilter * This,
  2031.             /* [in] */ REFIID riid,
  2032.             /* [iid_is][out] */ void **ppvObject);
  2033.         
  2034.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2035.             IFileSourceFilter * This);
  2036.         
  2037.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2038.             IFileSourceFilter * This);
  2039.         
  2040.         HRESULT ( STDMETHODCALLTYPE *Load )( 
  2041.             IFileSourceFilter * This,
  2042.             /* [in] */ LPCOLESTR pszFileName,
  2043.             /* [unique][in] */ const AM_MEDIA_TYPE *pmt);
  2044.         
  2045.         HRESULT ( STDMETHODCALLTYPE *GetCurFile )( 
  2046.             IFileSourceFilter * This,
  2047.             /* [out] */ LPOLESTR *ppszFileName,
  2048.             /* [out] */ AM_MEDIA_TYPE *pmt);
  2049.         
  2050.         END_INTERFACE
  2051.     } IFileSourceFilterVtbl;
  2052.     interface IFileSourceFilter
  2053.     {
  2054.         CONST_VTBL struct IFileSourceFilterVtbl *lpVtbl;
  2055.     };
  2056.     
  2057. #ifdef COBJMACROS
  2058. #define IFileSourceFilter_QueryInterface(This,riid,ppvObject)
  2059.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2060. #define IFileSourceFilter_AddRef(This)
  2061.     (This)->lpVtbl -> AddRef(This)
  2062. #define IFileSourceFilter_Release(This)
  2063.     (This)->lpVtbl -> Release(This)
  2064. #define IFileSourceFilter_Load(This,pszFileName,pmt)
  2065.     (This)->lpVtbl -> Load(This,pszFileName,pmt)
  2066. #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt)
  2067.     (This)->lpVtbl -> GetCurFile(This,ppszFileName,pmt)
  2068. #endif /* COBJMACROS */
  2069. #endif  /* C style interface */
  2070. HRESULT STDMETHODCALLTYPE IFileSourceFilter_Load_Proxy( 
  2071.     IFileSourceFilter * This,
  2072.     /* [in] */ LPCOLESTR pszFileName,
  2073.     /* [unique][in] */ const AM_MEDIA_TYPE *pmt);
  2074. void __RPC_STUB IFileSourceFilter_Load_Stub(
  2075.     IRpcStubBuffer *This,
  2076.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2077.     PRPC_MESSAGE _pRpcMessage,
  2078.     DWORD *_pdwStubPhase);
  2079. HRESULT STDMETHODCALLTYPE IFileSourceFilter_GetCurFile_Proxy( 
  2080.     IFileSourceFilter * This,
  2081.     /* [out] */ LPOLESTR *ppszFileName,
  2082.     /* [out] */ AM_MEDIA_TYPE *pmt);
  2083. void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(
  2084.     IRpcStubBuffer *This,
  2085.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2086.     PRPC_MESSAGE _pRpcMessage,
  2087.     DWORD *_pdwStubPhase);
  2088. #endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
  2089. /* interface __MIDL_itf_strmif_0141 */
  2090. /* [local] */ 
  2091. typedef IFileSourceFilter *PFILTERFILESOURCE;
  2092. extern RPC_IF_HANDLE __MIDL_itf_strmif_0141_v0_0_c_ifspec;
  2093. extern RPC_IF_HANDLE __MIDL_itf_strmif_0141_v0_0_s_ifspec;
  2094. #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
  2095. #define __IFileSinkFilter_INTERFACE_DEFINED__
  2096. /* interface IFileSinkFilter */
  2097. /* [unique][uuid][object] */ 
  2098. EXTERN_C const IID IID_IFileSinkFilter;
  2099. #if defined(__cplusplus) && !defined(CINTERFACE)
  2100.     
  2101.     MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
  2102.     IFileSinkFilter : public IUnknown
  2103.     {
  2104.     public:
  2105.         virtual HRESULT STDMETHODCALLTYPE SetFileName( 
  2106.             /* [in] */ LPCOLESTR pszFileName,
  2107.             /* [unique][in] */ const AM_MEDIA_TYPE *pmt) = 0;
  2108.         
  2109.         virtual HRESULT STDMETHODCALLTYPE GetCurFile( 
  2110.             /* [out] */ LPOLESTR *ppszFileName,
  2111.             /* [out] */ AM_MEDIA_TYPE *pmt) = 0;
  2112.         
  2113.     };
  2114.     
  2115. #else  /* C style interface */
  2116.     typedef struct IFileSinkFilterVtbl
  2117.     {
  2118.         BEGIN_INTERFACE
  2119.         
  2120.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2121.             IFileSinkFilter * This,
  2122.             /* [in] */ REFIID riid,
  2123.             /* [iid_is][out] */ void **ppvObject);
  2124.         
  2125.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2126.             IFileSinkFilter * This);
  2127.         
  2128.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2129.             IFileSinkFilter * This);
  2130.         
  2131.         HRESULT ( STDMETHODCALLTYPE *SetFileName )( 
  2132.             IFileSinkFilter * This,
  2133.             /* [in] */ LPCOLESTR pszFileName,
  2134.             /* [unique][in] */ const AM_MEDIA_TYPE *pmt);
  2135.         
  2136.         HRESULT ( STDMETHODCALLTYPE *GetCurFile )( 
  2137.             IFileSinkFilter * This,
  2138.             /* [out] */ LPOLESTR *ppszFileName,
  2139.             /* [out] */ AM_MEDIA_TYPE *pmt);
  2140.         
  2141.         END_INTERFACE
  2142.     } IFileSinkFilterVtbl;
  2143.     interface IFileSinkFilter
  2144.     {
  2145.         CONST_VTBL struct IFileSinkFilterVtbl *lpVtbl;
  2146.     };
  2147.     
  2148. #ifdef COBJMACROS
  2149. #define IFileSinkFilter_QueryInterface(This,riid,ppvObject)
  2150.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2151. #define IFileSinkFilter_AddRef(This)
  2152.     (This)->lpVtbl -> AddRef(This)
  2153. #define IFileSinkFilter_Release(This)
  2154.     (This)->lpVtbl -> Release(This)
  2155. #define IFileSinkFilter_SetFileName(This,pszFileName,pmt)
  2156.     (This)->lpVtbl -> SetFileName(This,pszFileName,pmt)
  2157. #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt)
  2158.     (This)->lpVtbl -> GetCurFile(This,ppszFileName,pmt)
  2159. #endif /* COBJMACROS */
  2160. #endif  /* C style interface */
  2161. HRESULT STDMETHODCALLTYPE IFileSinkFilter_SetFileName_Proxy( 
  2162.     IFileSinkFilter * This,
  2163.     /* [in] */ LPCOLESTR pszFileName,
  2164.     /* [unique][in] */ const AM_MEDIA_TYPE *pmt);
  2165. void __RPC_STUB IFileSinkFilter_SetFileName_Stub(
  2166.     IRpcStubBuffer *This,
  2167.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2168.     PRPC_MESSAGE _pRpcMessage,
  2169.     DWORD *_pdwStubPhase);
  2170. HRESULT STDMETHODCALLTYPE IFileSinkFilter_GetCurFile_Proxy( 
  2171.     IFileSinkFilter * This,
  2172.     /* [out] */ LPOLESTR *ppszFileName,
  2173.     /* [out] */ AM_MEDIA_TYPE *pmt);
  2174. void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(
  2175.     IRpcStubBuffer *This,
  2176.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2177.     PRPC_MESSAGE _pRpcMessage,
  2178.     DWORD *_pdwStubPhase);
  2179. #endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
  2180. /* interface __MIDL_itf_strmif_0142 */
  2181. /* [local] */ 
  2182. typedef IFileSinkFilter *PFILTERFILESINK;
  2183. extern RPC_IF_HANDLE __MIDL_itf_strmif_0142_v0_0_c_ifspec;
  2184. extern RPC_IF_HANDLE __MIDL_itf_strmif_0142_v0_0_s_ifspec;
  2185. #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
  2186. #define __IFileSinkFilter2_INTERFACE_DEFINED__
  2187. /* interface IFileSinkFilter2 */
  2188. /* [unique][uuid][object] */ 
  2189. EXTERN_C const IID IID_IFileSinkFilter2;
  2190. #if defined(__cplusplus) && !defined(CINTERFACE)
  2191.     
  2192.     MIDL_INTERFACE("00855B90-CE1B-11d0-BD4F-00A0C911CE86")
  2193.     IFileSinkFilter2 : public IFileSinkFilter
  2194.     {
  2195.     public:
  2196.         virtual HRESULT STDMETHODCALLTYPE SetMode( 
  2197.             /* [in] */ DWORD dwFlags) = 0;
  2198.         
  2199.         virtual HRESULT STDMETHODCALLTYPE GetMode( 
  2200.             /* [out] */ DWORD *pdwFlags) = 0;
  2201.         
  2202.     };
  2203.     
  2204. #else  /* C style interface */
  2205.     typedef struct IFileSinkFilter2Vtbl
  2206.     {
  2207.         BEGIN_INTERFACE
  2208.         
  2209.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2210.             IFileSinkFilter2 * This,
  2211.             /* [in] */ REFIID riid,
  2212.             /* [iid_is][out] */ void **ppvObject);
  2213.         
  2214.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2215.             IFileSinkFilter2 * This);
  2216.         
  2217.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2218.             IFileSinkFilter2 * This);
  2219.         
  2220.         HRESULT ( STDMETHODCALLTYPE *SetFileName )( 
  2221.             IFileSinkFilter2 * This,
  2222.             /* [in] */ LPCOLESTR pszFileName,
  2223.             /* [unique][in] */ const AM_MEDIA_TYPE *pmt);
  2224.         
  2225.         HRESULT ( STDMETHODCALLTYPE *GetCurFile )( 
  2226.             IFileSinkFilter2 * This,
  2227.             /* [out] */ LPOLESTR *ppszFileName,
  2228.             /* [out] */ AM_MEDIA_TYPE *pmt);
  2229.         
  2230.         HRESULT ( STDMETHODCALLTYPE *SetMode )( 
  2231.             IFileSinkFilter2 * This,
  2232.             /* [in] */ DWORD dwFlags);
  2233.         
  2234.         HRESULT ( STDMETHODCALLTYPE *GetMode )( 
  2235.             IFileSinkFilter2 * This,
  2236.             /* [out] */ DWORD *pdwFlags);
  2237.         
  2238.         END_INTERFACE
  2239.     } IFileSinkFilter2Vtbl;
  2240.     interface IFileSinkFilter2
  2241.     {
  2242.         CONST_VTBL struct IFileSinkFilter2Vtbl *lpVtbl;
  2243.     };
  2244.     
  2245. #ifdef COBJMACROS
  2246. #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject)
  2247.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2248. #define IFileSinkFilter2_AddRef(This)
  2249.     (This)->lpVtbl -> AddRef(This)
  2250. #define IFileSinkFilter2_Release(This)
  2251.     (This)->lpVtbl -> Release(This)
  2252. #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt)
  2253.     (This)->lpVtbl -> SetFileName(This,pszFileName,pmt)
  2254. #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt)
  2255.     (This)->lpVtbl -> GetCurFile(This,ppszFileName,pmt)
  2256. #define IFileSinkFilter2_SetMode(This,dwFlags)
  2257.     (This)->lpVtbl -> SetMode(This,dwFlags)
  2258. #define IFileSinkFilter2_GetMode(This,pdwFlags)
  2259.     (This)->lpVtbl -> GetMode(This,pdwFlags)
  2260. #endif /* COBJMACROS */
  2261. #endif  /* C style interface */
  2262. HRESULT STDMETHODCALLTYPE IFileSinkFilter2_SetMode_Proxy( 
  2263.     IFileSinkFilter2 * This,
  2264.     /* [in] */ DWORD dwFlags);
  2265. void __RPC_STUB IFileSinkFilter2_SetMode_Stub(
  2266.     IRpcStubBuffer *This,
  2267.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2268.     PRPC_MESSAGE _pRpcMessage,
  2269.     DWORD *_pdwStubPhase);
  2270. HRESULT STDMETHODCALLTYPE IFileSinkFilter2_GetMode_Proxy( 
  2271.     IFileSinkFilter2 * This,
  2272.     /* [out] */ DWORD *pdwFlags);
  2273. void __RPC_STUB IFileSinkFilter2_GetMode_Stub(
  2274.     IRpcStubBuffer *This,
  2275.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2276.     PRPC_MESSAGE _pRpcMessage,
  2277.     DWORD *_pdwStubPhase);
  2278. #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
  2279. /* interface __MIDL_itf_strmif_0143 */
  2280. /* [local] */ 
  2281. typedef IFileSinkFilter2 *PFILESINKFILTER2;
  2282. typedef /* [public] */ 
  2283. enum __MIDL___MIDL_itf_strmif_0143_0001
  2284.     { AM_FILE_OVERWRITE = 0x1
  2285.     }  AM_FILESINK_FLAGS;
  2286. extern RPC_IF_HANDLE __MIDL_itf_strmif_0143_v0_0_c_ifspec;
  2287. extern RPC_IF_HANDLE __MIDL_itf_strmif_0143_v0_0_s_ifspec;
  2288. #ifndef __IGraphBuilder_INTERFACE_DEFINED__
  2289. #define __IGraphBuilder_INTERFACE_DEFINED__
  2290. /* interface IGraphBuilder */
  2291. /* [unique][uuid][object] */ 
  2292. EXTERN_C const IID IID_IGraphBuilder;
  2293. #if defined(__cplusplus) && !defined(CINTERFACE)
  2294.     
  2295.     MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
  2296.     IGraphBuilder : public IFilterGraph
  2297.     {
  2298.     public:
  2299.         virtual HRESULT STDMETHODCALLTYPE Connect( 
  2300.             /* [in] */ IPin *ppinOut,
  2301.             /* [in] */ IPin *ppinIn) = 0;
  2302.         
  2303.         virtual HRESULT STDMETHODCALLTYPE Render( 
  2304.             /* [in] */ IPin *ppinOut) = 0;
  2305.         
  2306.         virtual HRESULT STDMETHODCALLTYPE RenderFile( 
  2307.             /* [in] */ LPCWSTR lpcwstrFile,
  2308.             /* [unique][in] */ LPCWSTR lpcwstrPlayList) = 0;
  2309.         
  2310.         virtual HRESULT STDMETHODCALLTYPE AddSourceFilter( 
  2311.             /* [in] */ LPCWSTR lpcwstrFileName,
  2312.             /* [unique][in] */ LPCWSTR lpcwstrFilterName,
  2313.             /* [out] */ IBaseFilter **ppFilter) = 0;
  2314.         
  2315.         virtual HRESULT STDMETHODCALLTYPE SetLogFile( 
  2316.             /* [in] */ DWORD_PTR hFile) = 0;
  2317.         
  2318.         virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
  2319.         
  2320.         virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue( void) = 0;
  2321.         
  2322.     };
  2323.     
  2324. #else  /* C style interface */
  2325.     typedef struct IGraphBuilderVtbl
  2326.     {
  2327.         BEGIN_INTERFACE
  2328.         
  2329.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2330.             IGraphBuilder * This,
  2331.             /* [in] */ REFIID riid,
  2332.             /* [iid_is][out] */ void **ppvObject);
  2333.         
  2334.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2335.             IGraphBuilder * This);
  2336.         
  2337.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2338.             IGraphBuilder * This);
  2339.         
  2340.         HRESULT ( STDMETHODCALLTYPE *AddFilter )( 
  2341.             IGraphBuilder * This,
  2342.             /* [in] */ IBaseFilter *pFilter,
  2343.             /* [string][in] */ LPCWSTR pName);
  2344.         
  2345.         HRESULT ( STDMETHODCALLTYPE *RemoveFilter )( 
  2346.             IGraphBuilder * This,
  2347.             /* [in] */ IBaseFilter *pFilter);
  2348.         
  2349.         HRESULT ( STDMETHODCALLTYPE *EnumFilters )( 
  2350.             IGraphBuilder * This,
  2351.             /* [out] */ IEnumFilters **ppEnum);
  2352.         
  2353.         HRESULT ( STDMETHODCALLTYPE *FindFilterByName )( 
  2354.             IGraphBuilder * This,
  2355.             /* [string][in] */ LPCWSTR pName,
  2356.             /* [out] */ IBaseFilter **ppFilter);
  2357.         
  2358.         HRESULT ( STDMETHODCALLTYPE *ConnectDirect )( 
  2359.             IGraphBuilder * This,
  2360.             /* [in] */ IPin *ppinOut,
  2361.             /* [in] */ IPin *ppinIn,
  2362.             /* [unique][in] */ const AM_MEDIA_TYPE *pmt);
  2363.         
  2364.         HRESULT ( STDMETHODCALLTYPE *Reconnect )( 
  2365.             IGraphBuilder * This,
  2366.             /* [in] */ IPin *ppin);
  2367.         
  2368.         HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
  2369.             IGraphBuilder * This,
  2370.             /* [in] */ IPin *ppin);
  2371.         
  2372.         HRESULT ( STDMETHODCALLTYPE *SetDefaultSyncSource )( 
  2373.             IGraphBuilder * This);
  2374.         
  2375.         HRESULT ( STDMETHODCALLTYPE *Connect )( 
  2376.             IGraphBuilder * This,
  2377.             /* [in] */ IPin *ppinOut,
  2378.             /* [in] */ IPin *ppinIn);
  2379.         
  2380.         HRESULT ( STDMETHODCALLTYPE *Render )( 
  2381.             IGraphBuilder * This,
  2382.             /* [in] */ IPin *ppinOut);
  2383.         
  2384.         HRESULT ( STDMETHODCALLTYPE *RenderFile )( 
  2385.             IGraphBuilder * This,
  2386.             /* [in] */ LPCWSTR lpcwstrFile,
  2387.             /* [unique][in] */ LPCWSTR lpcwstrPlayList);
  2388.         
  2389.         HRESULT ( STDMETHODCALLTYPE *AddSourceFilter )( 
  2390.             IGraphBuilder * This,
  2391.             /* [in] */ LPCWSTR lpcwstrFileName,
  2392.             /* [unique][in] */ LPCWSTR lpcwstrFilterName,
  2393.             /* [out] */ IBaseFilter **ppFilter);
  2394.         
  2395.         HRESULT ( STDMETHODCALLTYPE *SetLogFile )( 
  2396.             IGraphBuilder * This,
  2397.             /* [in] */ DWORD_PTR hFile);
  2398.         
  2399.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  2400.             IGraphBuilder * This);
  2401.         
  2402.         HRESULT ( STDMETHODCALLTYPE *ShouldOperationContinue )( 
  2403.             IGraphBuilder * This);
  2404.         
  2405.         END_INTERFACE
  2406.     } IGraphBuilderVtbl;
  2407.     interface IGraphBuilder
  2408.     {
  2409.         CONST_VTBL struct IGraphBuilderVtbl *lpVtbl;
  2410.     };
  2411.     
  2412. #ifdef COBJMACROS
  2413. #define IGraphBuilder_QueryInterface(This,riid,ppvObject)
  2414.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2415. #define IGraphBuilder_AddRef(This)
  2416.     (This)->lpVtbl -> AddRef(This)
  2417. #define IGraphBuilder_Release(This)
  2418.     (This)->lpVtbl -> Release(This)
  2419. #define IGraphBuilder_AddFilter(This,pFilter,pName)
  2420.     (This)->lpVtbl -> AddFilter(This,pFilter,pName)
  2421. #define IGraphBuilder_RemoveFilter(This,pFilter)
  2422.     (This)->lpVtbl -> RemoveFilter(This,pFilter)
  2423. #define IGraphBuilder_EnumFilters(This,ppEnum)
  2424.     (This)->lpVtbl -> EnumFilters(This,ppEnum)
  2425. #define IGraphBuilder_FindFilterByName(This,pName,ppFilter)
  2426.     (This)->lpVtbl -> FindFilterByName(This,pName,ppFilter)
  2427. #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt)
  2428.     (This)->lpVtbl -> ConnectDirect(This,ppinOut,ppinIn,pmt)
  2429. #define IGraphBuilder_Reconnect(This,ppin)
  2430.     (This)->lpVtbl -> Reconnect(This,ppin)
  2431. #define IGraphBuilder_Disconnect(This,ppin)
  2432.     (This)->lpVtbl -> Disconnect(This,ppin)
  2433. #define IGraphBuilder_SetDefaultSyncSource(This)
  2434.     (This)->lpVtbl -> SetDefaultSyncSource(This)
  2435. #define IGraphBuilder_Connect(This,ppinOut,ppinIn)
  2436.     (This)->lpVtbl -> Connect(This,ppinOut,ppinIn)
  2437. #define IGraphBuilder_Render(This,ppinOut)
  2438.     (This)->lpVtbl -> Render(This,ppinOut)
  2439. #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList)
  2440.     (This)->lpVtbl -> RenderFile(This,lpcwstrFile,lpcwstrPlayList)
  2441. #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
  2442.     (This)->lpVtbl -> AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
  2443. #define IGraphBuilder_SetLogFile(This,hFile)
  2444.     (This)->lpVtbl -> SetLogFile(This,hFile)
  2445. #define IGraphBuilder_Abort(This)
  2446.     (This)->lpVtbl -> Abort(This)
  2447. #define IGraphBuilder_ShouldOperationContinue(This)
  2448.     (This)->lpVtbl -> ShouldOperationContinue(This)
  2449. #endif /* COBJMACROS */
  2450. #endif  /* C style interface */
  2451. HRESULT STDMETHODCALLTYPE IGraphBuilder_Connect_Proxy( 
  2452.     IGraphBuilder * This,
  2453.     /* [in] */ IPin *ppinOut,
  2454.     /* [in] */ IPin *ppinIn);
  2455. void __RPC_STUB IGraphBuilder_Connect_Stub(
  2456.     IRpcStubBuffer *This,
  2457.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2458.     PRPC_MESSAGE _pRpcMessage,
  2459.     DWORD *_pdwStubPhase);
  2460. HRESULT STDMETHODCALLTYPE IGraphBuilder_Render_Proxy( 
  2461.     IGraphBuilder * This,
  2462.     /* [in] */ IPin *ppinOut);
  2463. void __RPC_STUB IGraphBuilder_Render_Stub(
  2464.     IRpcStubBuffer *This,
  2465.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2466.     PRPC_MESSAGE _pRpcMessage,
  2467.     DWORD *_pdwStubPhase);
  2468. HRESULT STDMETHODCALLTYPE IGraphBuilder_RenderFile_Proxy( 
  2469.     IGraphBuilder * This,
  2470.     /* [in] */ LPCWSTR lpcwstrFile,
  2471.     /* [unique][in] */ LPCWSTR lpcwstrPlayList);
  2472. void __RPC_STUB IGraphBuilder_RenderFile_Stub(
  2473.     IRpcStubBuffer *This,
  2474.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2475.     PRPC_MESSAGE _pRpcMessage,
  2476.     DWORD *_pdwStubPhase);
  2477. HRESULT STDMETHODCALLTYPE IGraphBuilder_AddSourceFilter_Proxy( 
  2478.     IGraphBuilder * This,
  2479.     /* [in] */ LPCWSTR lpcwstrFileName,
  2480.     /* [unique][in] */ LPCWSTR lpcwstrFilterName,
  2481.     /* [out] */ IBaseFilter **ppFilter);
  2482. void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(
  2483.     IRpcStubBuffer *This,
  2484.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2485.     PRPC_MESSAGE _pRpcMessage,
  2486.     DWORD *_pdwStubPhase);
  2487. HRESULT STDMETHODCALLTYPE IGraphBuilder_SetLogFile_Proxy( 
  2488.     IGraphBuilder * This,
  2489.     /* [in] */ DWORD_PTR hFile);
  2490. void __RPC_STUB IGraphBuilder_SetLogFile_Stub(
  2491.     IRpcStubBuffer *This,
  2492.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2493.     PRPC_MESSAGE _pRpcMessage,
  2494.     DWORD *_pdwStubPhase);
  2495. HRESULT STDMETHODCALLTYPE IGraphBuilder_Abort_Proxy( 
  2496.     IGraphBuilder * This);
  2497. void __RPC_STUB IGraphBuilder_Abort_Stub(
  2498.     IRpcStubBuffer *This,
  2499.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2500.     PRPC_MESSAGE _pRpcMessage,
  2501.     DWORD *_pdwStubPhase);
  2502. HRESULT STDMETHODCALLTYPE IGraphBuilder_ShouldOperationContinue_Proxy( 
  2503.     IGraphBuilder * This);
  2504. void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(
  2505.     IRpcStubBuffer *This,
  2506.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2507.     PRPC_MESSAGE _pRpcMessage,
  2508.     DWORD *_pdwStubPhase);
  2509. #endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
  2510. #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
  2511. #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
  2512. /* interface ICaptureGraphBuilder */
  2513. /* [unique][uuid][object] */ 
  2514. EXTERN_C const IID IID_ICaptureGraphBuilder;
  2515. #if defined(__cplusplus) && !defined(CINTERFACE)
  2516.     
  2517.     MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
  2518.     ICaptureGraphBuilder : public IUnknown
  2519.     {
  2520.     public:
  2521.         virtual HRESULT STDMETHODCALLTYPE SetFiltergraph( 
  2522.             /* [in] */ IGraphBuilder *pfg) = 0;
  2523.         
  2524.         virtual HRESULT STDMETHODCALLTYPE GetFiltergraph( 
  2525.             /* [out] */ IGraphBuilder **ppfg) = 0;
  2526.         
  2527.         virtual HRESULT STDMETHODCALLTYPE SetOutputFileName( 
  2528.             /* [in] */ const GUID *pType,
  2529.             /* [in] */ LPCOLESTR lpstrFile,
  2530.             /* [out] */ IBaseFilter **ppf,
  2531.             /* [out] */ IFileSinkFilter **ppSink) = 0;
  2532.         
  2533.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE FindInterface( 
  2534.             /* [unique][in] */ const GUID *pCategory,
  2535.             /* [in] */ IBaseFilter *pf,
  2536.             /* [in] */ REFIID riid,
  2537.             /* [out] */ void **ppint) = 0;
  2538.         
  2539.         virtual HRESULT STDMETHODCALLTYPE RenderStream( 
  2540.             /* [in] */ const GUID *pCategory,
  2541.             /* [in] */ IUnknown *pSource,
  2542.             /* [in] */ IBaseFilter *pfCompressor,
  2543.             /* [in] */ IBaseFilter *pfRenderer) = 0;
  2544.         
  2545.         virtual HRESULT STDMETHODCALLTYPE ControlStream( 
  2546.             /* [in] */ const GUID *pCategory,
  2547.             /* [in] */ IBaseFilter *pFilter,
  2548.             /* [in] */ REFERENCE_TIME *pstart,
  2549.             /* [in] */ REFERENCE_TIME *pstop,
  2550.             /* [in] */ WORD wStartCookie,
  2551.             /* [in] */ WORD wStopCookie) = 0;
  2552.         
  2553.         virtual HRESULT STDMETHODCALLTYPE AllocCapFile( 
  2554.             /* [in] */ LPCOLESTR lpstr,
  2555.             /* [in] */ DWORDLONG dwlSize) = 0;
  2556.         
  2557.         virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile( 
  2558.             /* [in] */ LPOLESTR lpwstrOld,
  2559.             /* [in] */ LPOLESTR lpwstrNew,
  2560.             /* [in] */ int fAllowEscAbort,
  2561.             /* [in] */ IAMCopyCaptureFileProgress *pCallback) = 0;
  2562.         
  2563.     };
  2564.     
  2565. #else  /* C style interface */
  2566.     typedef struct ICaptureGraphBuilderVtbl
  2567.     {
  2568.         BEGIN_INTERFACE
  2569.         
  2570.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2571.             ICaptureGraphBuilder * This,
  2572.             /* [in] */ REFIID riid,
  2573.             /* [iid_is][out] */ void **ppvObject);
  2574.         
  2575.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2576.             ICaptureGraphBuilder * This);
  2577.         
  2578.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2579.             ICaptureGraphBuilder * This);
  2580.         
  2581.         HRESULT ( STDMETHODCALLTYPE *SetFiltergraph )( 
  2582.             ICaptureGraphBuilder * This,
  2583.             /* [in] */ IGraphBuilder *pfg);
  2584.         
  2585.         HRESULT ( STDMETHODCALLTYPE *GetFiltergraph )( 
  2586.             ICaptureGraphBuilder * This,
  2587.             /* [out] */ IGraphBuilder **ppfg);
  2588.         
  2589.         HRESULT ( STDMETHODCALLTYPE *SetOutputFileName )( 
  2590.             ICaptureGraphBuilder * This,
  2591.             /* [in] */ const GUID *pType,
  2592.             /* [in] */ LPCOLESTR lpstrFile,
  2593.             /* [out] */ IBaseFilter **ppf,
  2594.             /* [out] */ IFileSinkFilter **ppSink);
  2595.         
  2596.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *FindInterface )( 
  2597.             ICaptureGraphBuilder * This,
  2598.             /* [unique][in] */ const GUID *pCategory,
  2599.             /* [in] */ IBaseFilter *pf,
  2600.             /* [in] */ REFIID riid,
  2601.             /* [out] */ void **ppint);
  2602.         
  2603.         HRESULT ( STDMETHODCALLTYPE *RenderStream )( 
  2604.             ICaptureGraphBuilder * This,
  2605.             /* [in] */ const GUID *pCategory,
  2606.             /* [in] */ IUnknown *pSource,
  2607.             /* [in] */ IBaseFilter *pfCompressor,
  2608.             /* [in] */ IBaseFilter *pfRenderer);
  2609.         
  2610.         HRESULT ( STDMETHODCALLTYPE *ControlStream )( 
  2611.             ICaptureGraphBuilder * This,
  2612.             /* [in] */ const GUID *pCategory,
  2613.             /* [in] */ IBaseFilter *pFilter,
  2614.             /* [in] */ REFERENCE_TIME *pstart,
  2615.             /* [in] */ REFERENCE_TIME *pstop,
  2616.             /* [in] */ WORD wStartCookie,
  2617.             /* [in] */ WORD wStopCookie);
  2618.         
  2619.         HRESULT ( STDMETHODCALLTYPE *AllocCapFile )( 
  2620.             ICaptureGraphBuilder * This,
  2621.             /* [in] */ LPCOLESTR lpstr,
  2622.             /* [in] */ DWORDLONG dwlSize);
  2623.         
  2624.         HRESULT ( STDMETHODCALLTYPE *CopyCaptureFile )( 
  2625.             ICaptureGraphBuilder * This,
  2626.             /* [in] */ LPOLESTR lpwstrOld,
  2627.             /* [in] */ LPOLESTR lpwstrNew,
  2628.             /* [in] */ int fAllowEscAbort,
  2629.             /* [in] */ IAMCopyCaptureFileProgress *pCallback);
  2630.         
  2631.         END_INTERFACE
  2632.     } ICaptureGraphBuilderVtbl;
  2633.     interface ICaptureGraphBuilder
  2634.     {
  2635.         CONST_VTBL struct ICaptureGraphBuilderVtbl *lpVtbl;
  2636.     };
  2637.     
  2638. #ifdef COBJMACROS
  2639. #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject)
  2640.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2641. #define ICaptureGraphBuilder_AddRef(This)
  2642.     (This)->lpVtbl -> AddRef(This)
  2643. #define ICaptureGraphBuilder_Release(This)
  2644.     (This)->lpVtbl -> Release(This)
  2645. #define ICaptureGraphBuilder_SetFiltergraph(This,pfg)
  2646.     (This)->lpVtbl -> SetFiltergraph(This,pfg)
  2647. #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg)
  2648.     (This)->lpVtbl -> GetFiltergraph(This,ppfg)
  2649. #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
  2650.     (This)->lpVtbl -> SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
  2651. #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint)
  2652.     (This)->lpVtbl -> FindInterface(This,pCategory,pf,riid,ppint)
  2653. #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
  2654.     (This)->lpVtbl -> RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
  2655. #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
  2656.     (This)->lpVtbl -> ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
  2657. #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize)
  2658.     (This)->lpVtbl -> AllocCapFile(This,lpstr,dwlSize)
  2659. #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
  2660.     (This)->lpVtbl -> CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
  2661. #endif /* COBJMACROS */
  2662. #endif  /* C style interface */
  2663. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetFiltergraph_Proxy( 
  2664.     ICaptureGraphBuilder * This,
  2665.     /* [in] */ IGraphBuilder *pfg);
  2666. void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(
  2667.     IRpcStubBuffer *This,
  2668.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2669.     PRPC_MESSAGE _pRpcMessage,
  2670.     DWORD *_pdwStubPhase);
  2671. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_GetFiltergraph_Proxy( 
  2672.     ICaptureGraphBuilder * This,
  2673.     /* [out] */ IGraphBuilder **ppfg);
  2674. void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(
  2675.     IRpcStubBuffer *This,
  2676.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2677.     PRPC_MESSAGE _pRpcMessage,
  2678.     DWORD *_pdwStubPhase);
  2679. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetOutputFileName_Proxy( 
  2680.     ICaptureGraphBuilder * This,
  2681.     /* [in] */ const GUID *pType,
  2682.     /* [in] */ LPCOLESTR lpstrFile,
  2683.     /* [out] */ IBaseFilter **ppf,
  2684.     /* [out] */ IFileSinkFilter **ppSink);
  2685. void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(
  2686.     IRpcStubBuffer *This,
  2687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2688.     PRPC_MESSAGE _pRpcMessage,
  2689.     DWORD *_pdwStubPhase);
  2690. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy( 
  2691.     ICaptureGraphBuilder * This,
  2692.     /* [unique][in] */ const GUID *pCategory,
  2693.     /* [in] */ IBaseFilter *pf,
  2694.     /* [in] */ REFIID riid,
  2695.     /* [out] */ IUnknown **ppint);
  2696. void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
  2697.     IRpcStubBuffer *This,
  2698.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2699.     PRPC_MESSAGE _pRpcMessage,
  2700.     DWORD *_pdwStubPhase);
  2701. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RenderStream_Proxy( 
  2702.     ICaptureGraphBuilder * This,
  2703.     /* [in] */ const GUID *pCategory,
  2704.     /* [in] */ IUnknown *pSource,
  2705.     /* [in] */ IBaseFilter *pfCompressor,
  2706.     /* [in] */ IBaseFilter *pfRenderer);
  2707. void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(
  2708.     IRpcStubBuffer *This,
  2709.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2710.     PRPC_MESSAGE _pRpcMessage,
  2711.     DWORD *_pdwStubPhase);
  2712. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_ControlStream_Proxy( 
  2713.     ICaptureGraphBuilder * This,
  2714.     /* [in] */ const GUID *pCategory,
  2715.     /* [in] */ IBaseFilter *pFilter,
  2716.     /* [in] */ REFERENCE_TIME *pstart,
  2717.     /* [in] */ REFERENCE_TIME *pstop,
  2718.     /* [in] */ WORD wStartCookie,
  2719.     /* [in] */ WORD wStopCookie);
  2720. void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(
  2721.     IRpcStubBuffer *This,
  2722.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2723.     PRPC_MESSAGE _pRpcMessage,
  2724.     DWORD *_pdwStubPhase);
  2725. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_AllocCapFile_Proxy( 
  2726.     ICaptureGraphBuilder * This,
  2727.     /* [in] */ LPCOLESTR lpstr,
  2728.     /* [in] */ DWORDLONG dwlSize);
  2729. void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(
  2730.     IRpcStubBuffer *This,
  2731.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2732.     PRPC_MESSAGE _pRpcMessage,
  2733.     DWORD *_pdwStubPhase);
  2734. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_CopyCaptureFile_Proxy( 
  2735.     ICaptureGraphBuilder * This,
  2736.     /* [in] */ LPOLESTR lpwstrOld,
  2737.     /* [in] */ LPOLESTR lpwstrNew,
  2738.     /* [in] */ int fAllowEscAbort,
  2739.     /* [in] */ IAMCopyCaptureFileProgress *pCallback);
  2740. void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(
  2741.     IRpcStubBuffer *This,
  2742.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2743.     PRPC_MESSAGE _pRpcMessage,
  2744.     DWORD *_pdwStubPhase);
  2745. #endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
  2746. #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
  2747. #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
  2748. /* interface IAMCopyCaptureFileProgress */
  2749. /* [unique][uuid][object] */ 
  2750. EXTERN_C const IID IID_IAMCopyCaptureFileProgress;
  2751. #if defined(__cplusplus) && !defined(CINTERFACE)
  2752.     
  2753.     MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
  2754.     IAMCopyCaptureFileProgress : public IUnknown
  2755.     {
  2756.     public:
  2757.         virtual HRESULT STDMETHODCALLTYPE Progress( 
  2758.             /* [in] */ int iProgress) = 0;
  2759.         
  2760.     };
  2761.     
  2762. #else  /* C style interface */
  2763.     typedef struct IAMCopyCaptureFileProgressVtbl
  2764.     {
  2765.         BEGIN_INTERFACE
  2766.         
  2767.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2768.             IAMCopyCaptureFileProgress * This,
  2769.             /* [in] */ REFIID riid,
  2770.             /* [iid_is][out] */ void **ppvObject);
  2771.         
  2772.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2773.             IAMCopyCaptureFileProgress * This);
  2774.         
  2775.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2776.             IAMCopyCaptureFileProgress * This);
  2777.         
  2778.         HRESULT ( STDMETHODCALLTYPE *Progress )( 
  2779.             IAMCopyCaptureFileProgress * This,
  2780.             /* [in] */ int iProgress);
  2781.         
  2782.         END_INTERFACE
  2783.     } IAMCopyCaptureFileProgressVtbl;
  2784.     interface IAMCopyCaptureFileProgress
  2785.     {
  2786.         CONST_VTBL struct IAMCopyCaptureFileProgressVtbl *lpVtbl;
  2787.     };
  2788.     
  2789. #ifdef COBJMACROS
  2790. #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject)
  2791.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2792. #define IAMCopyCaptureFileProgress_AddRef(This)
  2793.     (This)->lpVtbl -> AddRef(This)
  2794. #define IAMCopyCaptureFileProgress_Release(This)
  2795.     (This)->lpVtbl -> Release(This)
  2796. #define IAMCopyCaptureFileProgress_Progress(This,iProgress)
  2797.     (This)->lpVtbl -> Progress(This,iProgress)
  2798. #endif /* COBJMACROS */
  2799. #endif  /* C style interface */
  2800. HRESULT STDMETHODCALLTYPE IAMCopyCaptureFileProgress_Progress_Proxy( 
  2801.     IAMCopyCaptureFileProgress * This,
  2802.     /* [in] */ int iProgress);
  2803. void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(
  2804.     IRpcStubBuffer *This,
  2805.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2806.     PRPC_MESSAGE _pRpcMessage,
  2807.     DWORD *_pdwStubPhase);
  2808. #endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
  2809. #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
  2810. #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
  2811. /* interface ICaptureGraphBuilder2 */
  2812. /* [unique][uuid][object] */ 
  2813. EXTERN_C const IID IID_ICaptureGraphBuilder2;
  2814. #if defined(__cplusplus) && !defined(CINTERFACE)
  2815.     
  2816.     MIDL_INTERFACE("93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D")
  2817.     ICaptureGraphBuilder2 : public IUnknown
  2818.     {
  2819.     public:
  2820.         virtual HRESULT STDMETHODCALLTYPE SetFiltergraph( 
  2821.             /* [in] */ IGraphBuilder *pfg) = 0;
  2822.         
  2823.         virtual HRESULT STDMETHODCALLTYPE GetFiltergraph( 
  2824.             /* [out] */ IGraphBuilder **ppfg) = 0;
  2825.         
  2826.         virtual HRESULT STDMETHODCALLTYPE SetOutputFileName( 
  2827.             /* [in] */ const GUID *pType,
  2828.             /* [in] */ LPCOLESTR lpstrFile,
  2829.             /* [out] */ IBaseFilter **ppf,
  2830.             /* [out] */ IFileSinkFilter **ppSink) = 0;
  2831.         
  2832.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE FindInterface( 
  2833.             /* [in] */ const GUID *pCategory,
  2834.             /* [in] */ const GUID *pType,
  2835.             /* [in] */ IBaseFilter *pf,
  2836.             /* [in] */ REFIID riid,
  2837.             /* [out] */ void **ppint) = 0;
  2838.         
  2839.         virtual HRESULT STDMETHODCALLTYPE RenderStream( 
  2840.             /* [in] */ const GUID *pCategory,
  2841.             /* [in] */ const GUID *pType,
  2842.             /* [in] */ IUnknown *pSource,
  2843.             /* [in] */ IBaseFilter *pfCompressor,
  2844.             /* [in] */ IBaseFilter *pfRenderer) = 0;
  2845.         
  2846.         virtual HRESULT STDMETHODCALLTYPE ControlStream( 
  2847.             /* [in] */ const GUID *pCategory,
  2848.             /* [in] */ const GUID *pType,
  2849.             /* [in] */ IBaseFilter *pFilter,
  2850.             /* [in] */ REFERENCE_TIME *pstart,
  2851.             /* [in] */ REFERENCE_TIME *pstop,
  2852.             /* [in] */ WORD wStartCookie,
  2853.             /* [in] */ WORD wStopCookie) = 0;
  2854.         
  2855.         virtual HRESULT STDMETHODCALLTYPE AllocCapFile( 
  2856.             /* [in] */ LPCOLESTR lpstr,
  2857.             /* [in] */ DWORDLONG dwlSize) = 0;
  2858.         
  2859.         virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile( 
  2860.             /* [in] */ LPOLESTR lpwstrOld,
  2861.             /* [in] */ LPOLESTR lpwstrNew,
  2862.             /* [in] */ int fAllowEscAbort,
  2863.             /* [in] */ IAMCopyCaptureFileProgress *pCallback) = 0;
  2864.         
  2865.         virtual HRESULT STDMETHODCALLTYPE FindPin( 
  2866.             /* [in] */ IUnknown *pSource,
  2867.             /* [in] */ PIN_DIRECTION pindir,
  2868.             /* [in] */ const GUID *pCategory,
  2869.             /* [in] */ const GUID *pType,
  2870.             /* [in] */ BOOL fUnconnected,
  2871.             /* [in] */ int num,
  2872.             /* [out] */ IPin **ppPin) = 0;
  2873.         
  2874.     };
  2875.     
  2876. #else  /* C style interface */
  2877.     typedef struct ICaptureGraphBuilder2Vtbl
  2878.     {
  2879.         BEGIN_INTERFACE
  2880.         
  2881.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2882.             ICaptureGraphBuilder2 * This,
  2883.             /* [in] */ REFIID riid,
  2884.             /* [iid_is][out] */ void **ppvObject);
  2885.         
  2886.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2887.             ICaptureGraphBuilder2 * This);
  2888.         
  2889.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2890.             ICaptureGraphBuilder2 * This);
  2891.         
  2892.         HRESULT ( STDMETHODCALLTYPE *SetFiltergraph )( 
  2893.             ICaptureGraphBuilder2 * This,
  2894.             /* [in] */ IGraphBuilder *pfg);
  2895.         
  2896.         HRESULT ( STDMETHODCALLTYPE *GetFiltergraph )( 
  2897.             ICaptureGraphBuilder2 * This,
  2898.             /* [out] */ IGraphBuilder **ppfg);
  2899.         
  2900.         HRESULT ( STDMETHODCALLTYPE *SetOutputFileName )( 
  2901.             ICaptureGraphBuilder2 * This,
  2902.             /* [in] */ const GUID *pType,
  2903.             /* [in] */ LPCOLESTR lpstrFile,
  2904.             /* [out] */ IBaseFilter **ppf,
  2905.             /* [out] */ IFileSinkFilter **ppSink);
  2906.         
  2907.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *FindInterface )( 
  2908.             ICaptureGraphBuilder2 * This,
  2909.             /* [in] */ const GUID *pCategory,
  2910.             /* [in] */ const GUID *pType,
  2911.             /* [in] */ IBaseFilter *pf,
  2912.             /* [in] */ REFIID riid,
  2913.             /* [out] */ void **ppint);
  2914.         
  2915.         HRESULT ( STDMETHODCALLTYPE *RenderStream )( 
  2916.             ICaptureGraphBuilder2 * This,
  2917.             /* [in] */ const GUID *pCategory,
  2918.             /* [in] */ const GUID *pType,
  2919.             /* [in] */ IUnknown *pSource,
  2920.             /* [in] */ IBaseFilter *pfCompressor,
  2921.             /* [in] */ IBaseFilter *pfRenderer);
  2922.         
  2923.         HRESULT ( STDMETHODCALLTYPE *ControlStream )( 
  2924.             ICaptureGraphBuilder2 * This,
  2925.             /* [in] */ const GUID *pCategory,
  2926.             /* [in] */ const GUID *pType,
  2927.             /* [in] */ IBaseFilter *pFilter,
  2928.             /* [in] */ REFERENCE_TIME *pstart,
  2929.             /* [in] */ REFERENCE_TIME *pstop,
  2930.             /* [in] */ WORD wStartCookie,
  2931.             /* [in] */ WORD wStopCookie);
  2932.         
  2933.         HRESULT ( STDMETHODCALLTYPE *AllocCapFile )( 
  2934.             ICaptureGraphBuilder2 * This,
  2935.             /* [in] */ LPCOLESTR lpstr,
  2936.             /* [in] */ DWORDLONG dwlSize);
  2937.         
  2938.         HRESULT ( STDMETHODCALLTYPE *CopyCaptureFile )( 
  2939.             ICaptureGraphBuilder2 * This,
  2940.             /* [in] */ LPOLESTR lpwstrOld,
  2941.             /* [in] */ LPOLESTR lpwstrNew,
  2942.             /* [in] */ int fAllowEscAbort,
  2943.             /* [in] */ IAMCopyCaptureFileProgress *pCallback);
  2944.         
  2945.         HRESULT ( STDMETHODCALLTYPE *FindPin )( 
  2946.             ICaptureGraphBuilder2 * This,
  2947.             /* [in] */ IUnknown *pSource,
  2948.             /* [in] */ PIN_DIRECTION pindir,
  2949.             /* [in] */ const GUID *pCategory,
  2950.             /* [in] */ const GUID *pType,
  2951.             /* [in] */ BOOL fUnconnected,
  2952.             /* [in] */ int num,
  2953.             /* [out] */ IPin **ppPin);
  2954.         
  2955.         END_INTERFACE
  2956.     } ICaptureGraphBuilder2Vtbl;
  2957.     interface ICaptureGraphBuilder2
  2958.     {
  2959.         CONST_VTBL struct ICaptureGraphBuilder2Vtbl *lpVtbl;
  2960.     };
  2961.     
  2962. #ifdef COBJMACROS
  2963. #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject)
  2964.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2965. #define ICaptureGraphBuilder2_AddRef(This)
  2966.     (This)->lpVtbl -> AddRef(This)
  2967. #define ICaptureGraphBuilder2_Release(This)
  2968.     (This)->lpVtbl -> Release(This)
  2969. #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg)
  2970.     (This)->lpVtbl -> SetFiltergraph(This,pfg)
  2971. #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg)
  2972.     (This)->lpVtbl -> GetFiltergraph(This,ppfg)
  2973. #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
  2974.     (This)->lpVtbl -> SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
  2975. #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint)
  2976.     (This)->lpVtbl -> FindInterface(This,pCategory,pType,pf,riid,ppint)
  2977. #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
  2978.     (This)->lpVtbl -> RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
  2979. #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
  2980.     (This)->lpVtbl -> ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
  2981. #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize)
  2982.     (This)->lpVtbl -> AllocCapFile(This,lpstr,dwlSize)
  2983. #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
  2984.     (This)->lpVtbl -> CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
  2985. #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
  2986.     (This)->lpVtbl -> FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
  2987. #endif /* COBJMACROS */
  2988. #endif  /* C style interface */
  2989. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetFiltergraph_Proxy( 
  2990.     ICaptureGraphBuilder2 * This,
  2991.     /* [in] */ IGraphBuilder *pfg);
  2992. void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(
  2993.     IRpcStubBuffer *This,
  2994.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2995.     PRPC_MESSAGE _pRpcMessage,
  2996.     DWORD *_pdwStubPhase);
  2997. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_GetFiltergraph_Proxy( 
  2998.     ICaptureGraphBuilder2 * This,
  2999.     /* [out] */ IGraphBuilder **ppfg);
  3000. void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(
  3001.     IRpcStubBuffer *This,
  3002.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3003.     PRPC_MESSAGE _pRpcMessage,
  3004.     DWORD *_pdwStubPhase);
  3005. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetOutputFileName_Proxy( 
  3006.     ICaptureGraphBuilder2 * This,
  3007.     /* [in] */ const GUID *pType,
  3008.     /* [in] */ LPCOLESTR lpstrFile,
  3009.     /* [out] */ IBaseFilter **ppf,
  3010.     /* [out] */ IFileSinkFilter **ppSink);
  3011. void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(
  3012.     IRpcStubBuffer *This,
  3013.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3014.     PRPC_MESSAGE _pRpcMessage,
  3015.     DWORD *_pdwStubPhase);
  3016. /* [call_as] */ HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy( 
  3017.     ICaptureGraphBuilder2 * This,
  3018.     /* [in] */ const GUID *pCategory,
  3019.     /* [in] */ const GUID *pType,
  3020.     /* [in] */ IBaseFilter *pf,
  3021.     /* [in] */ REFIID riid,
  3022.     /* [out] */ IUnknown **ppint);
  3023. void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
  3024.     IRpcStubBuffer *This,
  3025.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3026.     PRPC_MESSAGE _pRpcMessage,
  3027.     DWORD *_pdwStubPhase);
  3028. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RenderStream_Proxy( 
  3029.     ICaptureGraphBuilder2 * This,
  3030.     /* [in] */ const GUID *pCategory,
  3031.     /* [in] */ const GUID *pType,
  3032.     /* [in] */ IUnknown *pSource,
  3033.     /* [in] */ IBaseFilter *pfCompressor,
  3034.     /* [in] */ IBaseFilter *pfRenderer);
  3035. void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(
  3036.     IRpcStubBuffer *This,
  3037.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3038.     PRPC_MESSAGE _pRpcMessage,
  3039.     DWORD *_pdwStubPhase);
  3040. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_ControlStream_Proxy( 
  3041.     ICaptureGraphBuilder2 * This,
  3042.     /* [in] */ const GUID *pCategory,
  3043.     /* [in] */ const GUID *pType,
  3044.     /* [in] */ IBaseFilter *pFilter,
  3045.     /* [in] */ REFERENCE_TIME *pstart,
  3046.     /* [in] */ REFERENCE_TIME *pstop,
  3047.     /* [in] */ WORD wStartCookie,
  3048.     /* [in] */ WORD wStopCookie);
  3049. void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(
  3050.     IRpcStubBuffer *This,
  3051.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3052.     PRPC_MESSAGE _pRpcMessage,
  3053.     DWORD *_pdwStubPhase);
  3054. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_AllocCapFile_Proxy( 
  3055.     ICaptureGraphBuilder2 * This,
  3056.     /* [in] */ LPCOLESTR lpstr,
  3057.     /* [in] */ DWORDLONG dwlSize);
  3058. void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(
  3059.     IRpcStubBuffer *This,
  3060.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3061.     PRPC_MESSAGE _pRpcMessage,
  3062.     DWORD *_pdwStubPhase);
  3063. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_CopyCaptureFile_Proxy( 
  3064.     ICaptureGraphBuilder2 * This,
  3065.     /* [in] */ LPOLESTR lpwstrOld,
  3066.     /* [in] */ LPOLESTR lpwstrNew,
  3067.     /* [in] */ int fAllowEscAbort,
  3068.     /* [in] */ IAMCopyCaptureFileProgress *pCallback);
  3069. void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(
  3070.     IRpcStubBuffer *This,
  3071.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3072.     PRPC_MESSAGE _pRpcMessage,
  3073.     DWORD *_pdwStubPhase);
  3074. HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_FindPin_Proxy( 
  3075.     ICaptureGraphBuilder2 * This,
  3076.     /* [in] */ IUnknown *pSource,
  3077.     /* [in] */ PIN_DIRECTION pindir,
  3078.     /* [in] */ const GUID *pCategory,
  3079.     /* [in] */ const GUID *pType,
  3080.     /* [in] */ BOOL fUnconnected,
  3081.     /* [in] */ int num,
  3082.     /* [out] */ IPin **ppPin);
  3083. void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(
  3084.     IRpcStubBuffer *This,
  3085.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3086.     PRPC_MESSAGE _pRpcMessage,
  3087.     DWORD *_pdwStubPhase);
  3088. #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
  3089. /* interface __MIDL_itf_strmif_0147 */
  3090. /* [local] */ 
  3091. enum _AM_RENSDEREXFLAGS
  3092.     { AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
  3093.     } ;
  3094. extern RPC_IF_HANDLE __MIDL_itf_strmif_0147_v0_0_c_ifspec;
  3095. extern RPC_IF_HANDLE __MIDL_itf_strmif_0147_v0_0_s_ifspec;
  3096. #ifndef __IFilterGraph2_INTERFACE_DEFINED__
  3097. #define __IFilterGraph2_INTERFACE_DEFINED__
  3098. /* interface IFilterGraph2 */
  3099. /* [unique][uuid][object] */ 
  3100. EXTERN_C const IID IID_IFilterGraph2;
  3101. #if defined(__cplusplus) && !defined(CINTERFACE)
  3102.     
  3103.     MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
  3104.     IFilterGraph2 : public IGraphBuilder
  3105.     {
  3106.     public:
  3107.         virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker( 
  3108.             /* [in] */ IMoniker *pMoniker,
  3109.             /* [in] */ IBindCtx *pCtx,
  3110.             /* [unique][in] */ LPCWSTR lpcwstrFilterName,
  3111.             /* [out] */ IBaseFilter **ppFilter) = 0;
  3112.         
  3113.         virtual HRESULT STDMETHODCALLTYPE ReconnectEx( 
  3114.             /* [in] */ IPin *ppin,
  3115.             /* [unique][in] */ const AM_MEDIA_TYPE *pmt) = 0;
  3116.         
  3117.         virtual HRESULT STDMETHODCALLTYPE RenderEx( 
  3118.             /* [in] */ IPin *pPinOut,
  3119.             /* [in] */ DWORD dwFlags,
  3120.             /* [out][in] */ DWORD *pvContext) = 0;
  3121.         
  3122.     };
  3123.     
  3124. #else  /* C style interface */
  3125.     typedef struct IFilterGraph2Vtbl
  3126.     {
  3127.         BEGIN_INTERFACE
  3128.         
  3129.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  3130.             IFilterGraph2 * This,