wmsdkidl.h
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:644k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. #endif  /* __IWMBandwidthSharing_INTERFACE_DEFINED__ */
  2. #ifndef __IWMStreamPrioritization_INTERFACE_DEFINED__
  3. #define __IWMStreamPrioritization_INTERFACE_DEFINED__
  4. /* interface IWMStreamPrioritization */
  5. /* [local][unique][helpstring][uuid][object] */ 
  6. EXTERN_C const IID IID_IWMStreamPrioritization;
  7. #if defined(__cplusplus) && !defined(CINTERFACE)
  8.     
  9.     MIDL_INTERFACE("8C1C6090-F9A8-4748-8EC3-DD1108BA1E77")
  10.     IWMStreamPrioritization : public IUnknown
  11.     {
  12.     public:
  13.         virtual HRESULT STDMETHODCALLTYPE GetPriorityRecords( 
  14.             /* [size_is][out] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  15.             /* [out][in] */ WORD *pcRecords) = 0;
  16.         
  17.         virtual HRESULT STDMETHODCALLTYPE SetPriorityRecords( 
  18.             /* [in] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  19.             /* [in] */ WORD cRecords) = 0;
  20.         
  21.     };
  22.     
  23. #else  /* C style interface */
  24.     typedef struct IWMStreamPrioritizationVtbl
  25.     {
  26.         BEGIN_INTERFACE
  27.         
  28.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  29.             IWMStreamPrioritization * This,
  30.             /* [in] */ REFIID riid,
  31.             /* [iid_is][out] */ void **ppvObject);
  32.         
  33.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  34.             IWMStreamPrioritization * This);
  35.         
  36.         ULONG ( STDMETHODCALLTYPE *Release )( 
  37.             IWMStreamPrioritization * This);
  38.         
  39.         HRESULT ( STDMETHODCALLTYPE *GetPriorityRecords )( 
  40.             IWMStreamPrioritization * This,
  41.             /* [size_is][out] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  42.             /* [out][in] */ WORD *pcRecords);
  43.         
  44.         HRESULT ( STDMETHODCALLTYPE *SetPriorityRecords )( 
  45.             IWMStreamPrioritization * This,
  46.             /* [in] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  47.             /* [in] */ WORD cRecords);
  48.         
  49.         END_INTERFACE
  50.     } IWMStreamPrioritizationVtbl;
  51.     interface IWMStreamPrioritization
  52.     {
  53.         CONST_VTBL struct IWMStreamPrioritizationVtbl *lpVtbl;
  54.     };
  55.     
  56. #ifdef COBJMACROS
  57. #define IWMStreamPrioritization_QueryInterface(This,riid,ppvObject)
  58.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  59. #define IWMStreamPrioritization_AddRef(This)
  60.     (This)->lpVtbl -> AddRef(This)
  61. #define IWMStreamPrioritization_Release(This)
  62.     (This)->lpVtbl -> Release(This)
  63. #define IWMStreamPrioritization_GetPriorityRecords(This,pRecordArray,pcRecords)
  64.     (This)->lpVtbl -> GetPriorityRecords(This,pRecordArray,pcRecords)
  65. #define IWMStreamPrioritization_SetPriorityRecords(This,pRecordArray,cRecords)
  66.     (This)->lpVtbl -> SetPriorityRecords(This,pRecordArray,cRecords)
  67. #endif /* COBJMACROS */
  68. #endif  /* C style interface */
  69. HRESULT STDMETHODCALLTYPE IWMStreamPrioritization_GetPriorityRecords_Proxy( 
  70.     IWMStreamPrioritization * This,
  71.     /* [size_is][out] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  72.     /* [out][in] */ WORD *pcRecords);
  73. void __RPC_STUB IWMStreamPrioritization_GetPriorityRecords_Stub(
  74.     IRpcStubBuffer *This,
  75.     IRpcChannelBuffer *_pRpcChannelBuffer,
  76.     PRPC_MESSAGE _pRpcMessage,
  77.     DWORD *_pdwStubPhase);
  78. HRESULT STDMETHODCALLTYPE IWMStreamPrioritization_SetPriorityRecords_Proxy( 
  79.     IWMStreamPrioritization * This,
  80.     /* [in] */ WM_STREAM_PRIORITY_RECORD *pRecordArray,
  81.     /* [in] */ WORD cRecords);
  82. void __RPC_STUB IWMStreamPrioritization_SetPriorityRecords_Stub(
  83.     IRpcStubBuffer *This,
  84.     IRpcChannelBuffer *_pRpcChannelBuffer,
  85.     PRPC_MESSAGE _pRpcMessage,
  86.     DWORD *_pdwStubPhase);
  87. #endif  /* __IWMStreamPrioritization_INTERFACE_DEFINED__ */
  88. #ifndef __IWMWriterAdvanced_INTERFACE_DEFINED__
  89. #define __IWMWriterAdvanced_INTERFACE_DEFINED__
  90. /* interface IWMWriterAdvanced */
  91. /* [local][unique][helpstring][uuid][object] */ 
  92. EXTERN_C const IID IID_IWMWriterAdvanced;
  93. #if defined(__cplusplus) && !defined(CINTERFACE)
  94.     
  95.     MIDL_INTERFACE("96406BE3-2B2B-11d3-B36B-00C04F6108FF")
  96.     IWMWriterAdvanced : public IUnknown
  97.     {
  98.     public:
  99.         virtual HRESULT STDMETHODCALLTYPE GetSinkCount( 
  100.             /* [out] */ DWORD *pcSinks) = 0;
  101.         
  102.         virtual HRESULT STDMETHODCALLTYPE GetSink( 
  103.             /* [in] */ DWORD dwSinkNum,
  104.             /* [out] */ IWMWriterSink **ppSink) = 0;
  105.         
  106.         virtual HRESULT STDMETHODCALLTYPE AddSink( 
  107.             /* [in] */ IWMWriterSink *pSink) = 0;
  108.         
  109.         virtual HRESULT STDMETHODCALLTYPE RemoveSink( 
  110.             /* [in] */ IWMWriterSink *pSink) = 0;
  111.         
  112.         virtual HRESULT STDMETHODCALLTYPE WriteStreamSample( 
  113.             /* [in] */ WORD wStreamNum,
  114.             /* [in] */ QWORD cnsSampleTime,
  115.             /* [in] */ DWORD msSampleSendTime,
  116.             /* [in] */ QWORD cnsSampleDuration,
  117.             /* [in] */ DWORD dwFlags,
  118.             /* [in] */ INSSBuffer *pSample) = 0;
  119.         
  120.         virtual HRESULT STDMETHODCALLTYPE SetLiveSource( 
  121.             BOOL fIsLiveSource) = 0;
  122.         
  123.         virtual HRESULT STDMETHODCALLTYPE IsRealTime( 
  124.             /* [out] */ BOOL *pfRealTime) = 0;
  125.         
  126.         virtual HRESULT STDMETHODCALLTYPE GetWriterTime( 
  127.             /* [out] */ QWORD *pcnsCurrentTime) = 0;
  128.         
  129.         virtual HRESULT STDMETHODCALLTYPE GetStatistics( 
  130.             /* [in] */ WORD wStreamNum,
  131.             /* [out] */ WM_WRITER_STATISTICS *pStats) = 0;
  132.         
  133.         virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance( 
  134.             /* [in] */ DWORD msWindow) = 0;
  135.         
  136.         virtual HRESULT STDMETHODCALLTYPE GetSyncTolerance( 
  137.             /* [out] */ DWORD *pmsWindow) = 0;
  138.         
  139.     };
  140.     
  141. #else  /* C style interface */
  142.     typedef struct IWMWriterAdvancedVtbl
  143.     {
  144.         BEGIN_INTERFACE
  145.         
  146.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  147.             IWMWriterAdvanced * This,
  148.             /* [in] */ REFIID riid,
  149.             /* [iid_is][out] */ void **ppvObject);
  150.         
  151.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  152.             IWMWriterAdvanced * This);
  153.         
  154.         ULONG ( STDMETHODCALLTYPE *Release )( 
  155.             IWMWriterAdvanced * This);
  156.         
  157.         HRESULT ( STDMETHODCALLTYPE *GetSinkCount )( 
  158.             IWMWriterAdvanced * This,
  159.             /* [out] */ DWORD *pcSinks);
  160.         
  161.         HRESULT ( STDMETHODCALLTYPE *GetSink )( 
  162.             IWMWriterAdvanced * This,
  163.             /* [in] */ DWORD dwSinkNum,
  164.             /* [out] */ IWMWriterSink **ppSink);
  165.         
  166.         HRESULT ( STDMETHODCALLTYPE *AddSink )( 
  167.             IWMWriterAdvanced * This,
  168.             /* [in] */ IWMWriterSink *pSink);
  169.         
  170.         HRESULT ( STDMETHODCALLTYPE *RemoveSink )( 
  171.             IWMWriterAdvanced * This,
  172.             /* [in] */ IWMWriterSink *pSink);
  173.         
  174.         HRESULT ( STDMETHODCALLTYPE *WriteStreamSample )( 
  175.             IWMWriterAdvanced * This,
  176.             /* [in] */ WORD wStreamNum,
  177.             /* [in] */ QWORD cnsSampleTime,
  178.             /* [in] */ DWORD msSampleSendTime,
  179.             /* [in] */ QWORD cnsSampleDuration,
  180.             /* [in] */ DWORD dwFlags,
  181.             /* [in] */ INSSBuffer *pSample);
  182.         
  183.         HRESULT ( STDMETHODCALLTYPE *SetLiveSource )( 
  184.             IWMWriterAdvanced * This,
  185.             BOOL fIsLiveSource);
  186.         
  187.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  188.             IWMWriterAdvanced * This,
  189.             /* [out] */ BOOL *pfRealTime);
  190.         
  191.         HRESULT ( STDMETHODCALLTYPE *GetWriterTime )( 
  192.             IWMWriterAdvanced * This,
  193.             /* [out] */ QWORD *pcnsCurrentTime);
  194.         
  195.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  196.             IWMWriterAdvanced * This,
  197.             /* [in] */ WORD wStreamNum,
  198.             /* [out] */ WM_WRITER_STATISTICS *pStats);
  199.         
  200.         HRESULT ( STDMETHODCALLTYPE *SetSyncTolerance )( 
  201.             IWMWriterAdvanced * This,
  202.             /* [in] */ DWORD msWindow);
  203.         
  204.         HRESULT ( STDMETHODCALLTYPE *GetSyncTolerance )( 
  205.             IWMWriterAdvanced * This,
  206.             /* [out] */ DWORD *pmsWindow);
  207.         
  208.         END_INTERFACE
  209.     } IWMWriterAdvancedVtbl;
  210.     interface IWMWriterAdvanced
  211.     {
  212.         CONST_VTBL struct IWMWriterAdvancedVtbl *lpVtbl;
  213.     };
  214.     
  215. #ifdef COBJMACROS
  216. #define IWMWriterAdvanced_QueryInterface(This,riid,ppvObject)
  217.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  218. #define IWMWriterAdvanced_AddRef(This)
  219.     (This)->lpVtbl -> AddRef(This)
  220. #define IWMWriterAdvanced_Release(This)
  221.     (This)->lpVtbl -> Release(This)
  222. #define IWMWriterAdvanced_GetSinkCount(This,pcSinks)
  223.     (This)->lpVtbl -> GetSinkCount(This,pcSinks)
  224. #define IWMWriterAdvanced_GetSink(This,dwSinkNum,ppSink)
  225.     (This)->lpVtbl -> GetSink(This,dwSinkNum,ppSink)
  226. #define IWMWriterAdvanced_AddSink(This,pSink)
  227.     (This)->lpVtbl -> AddSink(This,pSink)
  228. #define IWMWriterAdvanced_RemoveSink(This,pSink)
  229.     (This)->lpVtbl -> RemoveSink(This,pSink)
  230. #define IWMWriterAdvanced_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  231.     (This)->lpVtbl -> WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  232. #define IWMWriterAdvanced_SetLiveSource(This,fIsLiveSource)
  233.     (This)->lpVtbl -> SetLiveSource(This,fIsLiveSource)
  234. #define IWMWriterAdvanced_IsRealTime(This,pfRealTime)
  235.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  236. #define IWMWriterAdvanced_GetWriterTime(This,pcnsCurrentTime)
  237.     (This)->lpVtbl -> GetWriterTime(This,pcnsCurrentTime)
  238. #define IWMWriterAdvanced_GetStatistics(This,wStreamNum,pStats)
  239.     (This)->lpVtbl -> GetStatistics(This,wStreamNum,pStats)
  240. #define IWMWriterAdvanced_SetSyncTolerance(This,msWindow)
  241.     (This)->lpVtbl -> SetSyncTolerance(This,msWindow)
  242. #define IWMWriterAdvanced_GetSyncTolerance(This,pmsWindow)
  243.     (This)->lpVtbl -> GetSyncTolerance(This,pmsWindow)
  244. #endif /* COBJMACROS */
  245. #endif  /* C style interface */
  246. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSinkCount_Proxy( 
  247.     IWMWriterAdvanced * This,
  248.     /* [out] */ DWORD *pcSinks);
  249. void __RPC_STUB IWMWriterAdvanced_GetSinkCount_Stub(
  250.     IRpcStubBuffer *This,
  251.     IRpcChannelBuffer *_pRpcChannelBuffer,
  252.     PRPC_MESSAGE _pRpcMessage,
  253.     DWORD *_pdwStubPhase);
  254. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSink_Proxy( 
  255.     IWMWriterAdvanced * This,
  256.     /* [in] */ DWORD dwSinkNum,
  257.     /* [out] */ IWMWriterSink **ppSink);
  258. void __RPC_STUB IWMWriterAdvanced_GetSink_Stub(
  259.     IRpcStubBuffer *This,
  260.     IRpcChannelBuffer *_pRpcChannelBuffer,
  261.     PRPC_MESSAGE _pRpcMessage,
  262.     DWORD *_pdwStubPhase);
  263. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_AddSink_Proxy( 
  264.     IWMWriterAdvanced * This,
  265.     /* [in] */ IWMWriterSink *pSink);
  266. void __RPC_STUB IWMWriterAdvanced_AddSink_Stub(
  267.     IRpcStubBuffer *This,
  268.     IRpcChannelBuffer *_pRpcChannelBuffer,
  269.     PRPC_MESSAGE _pRpcMessage,
  270.     DWORD *_pdwStubPhase);
  271. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_RemoveSink_Proxy( 
  272.     IWMWriterAdvanced * This,
  273.     /* [in] */ IWMWriterSink *pSink);
  274. void __RPC_STUB IWMWriterAdvanced_RemoveSink_Stub(
  275.     IRpcStubBuffer *This,
  276.     IRpcChannelBuffer *_pRpcChannelBuffer,
  277.     PRPC_MESSAGE _pRpcMessage,
  278.     DWORD *_pdwStubPhase);
  279. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_WriteStreamSample_Proxy( 
  280.     IWMWriterAdvanced * This,
  281.     /* [in] */ WORD wStreamNum,
  282.     /* [in] */ QWORD cnsSampleTime,
  283.     /* [in] */ DWORD msSampleSendTime,
  284.     /* [in] */ QWORD cnsSampleDuration,
  285.     /* [in] */ DWORD dwFlags,
  286.     /* [in] */ INSSBuffer *pSample);
  287. void __RPC_STUB IWMWriterAdvanced_WriteStreamSample_Stub(
  288.     IRpcStubBuffer *This,
  289.     IRpcChannelBuffer *_pRpcChannelBuffer,
  290.     PRPC_MESSAGE _pRpcMessage,
  291.     DWORD *_pdwStubPhase);
  292. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_SetLiveSource_Proxy( 
  293.     IWMWriterAdvanced * This,
  294.     BOOL fIsLiveSource);
  295. void __RPC_STUB IWMWriterAdvanced_SetLiveSource_Stub(
  296.     IRpcStubBuffer *This,
  297.     IRpcChannelBuffer *_pRpcChannelBuffer,
  298.     PRPC_MESSAGE _pRpcMessage,
  299.     DWORD *_pdwStubPhase);
  300. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_IsRealTime_Proxy( 
  301.     IWMWriterAdvanced * This,
  302.     /* [out] */ BOOL *pfRealTime);
  303. void __RPC_STUB IWMWriterAdvanced_IsRealTime_Stub(
  304.     IRpcStubBuffer *This,
  305.     IRpcChannelBuffer *_pRpcChannelBuffer,
  306.     PRPC_MESSAGE _pRpcMessage,
  307.     DWORD *_pdwStubPhase);
  308. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetWriterTime_Proxy( 
  309.     IWMWriterAdvanced * This,
  310.     /* [out] */ QWORD *pcnsCurrentTime);
  311. void __RPC_STUB IWMWriterAdvanced_GetWriterTime_Stub(
  312.     IRpcStubBuffer *This,
  313.     IRpcChannelBuffer *_pRpcChannelBuffer,
  314.     PRPC_MESSAGE _pRpcMessage,
  315.     DWORD *_pdwStubPhase);
  316. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetStatistics_Proxy( 
  317.     IWMWriterAdvanced * This,
  318.     /* [in] */ WORD wStreamNum,
  319.     /* [out] */ WM_WRITER_STATISTICS *pStats);
  320. void __RPC_STUB IWMWriterAdvanced_GetStatistics_Stub(
  321.     IRpcStubBuffer *This,
  322.     IRpcChannelBuffer *_pRpcChannelBuffer,
  323.     PRPC_MESSAGE _pRpcMessage,
  324.     DWORD *_pdwStubPhase);
  325. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_SetSyncTolerance_Proxy( 
  326.     IWMWriterAdvanced * This,
  327.     /* [in] */ DWORD msWindow);
  328. void __RPC_STUB IWMWriterAdvanced_SetSyncTolerance_Stub(
  329.     IRpcStubBuffer *This,
  330.     IRpcChannelBuffer *_pRpcChannelBuffer,
  331.     PRPC_MESSAGE _pRpcMessage,
  332.     DWORD *_pdwStubPhase);
  333. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced_GetSyncTolerance_Proxy( 
  334.     IWMWriterAdvanced * This,
  335.     /* [out] */ DWORD *pmsWindow);
  336. void __RPC_STUB IWMWriterAdvanced_GetSyncTolerance_Stub(
  337.     IRpcStubBuffer *This,
  338.     IRpcChannelBuffer *_pRpcChannelBuffer,
  339.     PRPC_MESSAGE _pRpcMessage,
  340.     DWORD *_pdwStubPhase);
  341. #endif  /* __IWMWriterAdvanced_INTERFACE_DEFINED__ */
  342. #ifndef __IWMWriterAdvanced2_INTERFACE_DEFINED__
  343. #define __IWMWriterAdvanced2_INTERFACE_DEFINED__
  344. /* interface IWMWriterAdvanced2 */
  345. /* [local][unique][helpstring][uuid][object] */ 
  346. EXTERN_C const IID IID_IWMWriterAdvanced2;
  347. #if defined(__cplusplus) && !defined(CINTERFACE)
  348.     
  349.     MIDL_INTERFACE("962dc1ec-c046-4db8-9cc7-26ceae500817")
  350.     IWMWriterAdvanced2 : public IWMWriterAdvanced
  351.     {
  352.     public:
  353.         virtual HRESULT STDMETHODCALLTYPE GetInputSetting( 
  354.             /* [in] */ DWORD dwInputNum,
  355.             /* [in] */ LPCWSTR pszName,
  356.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  357.             /* [size_is][out] */ BYTE *pValue,
  358.             /* [out][in] */ WORD *pcbLength) = 0;
  359.         
  360.         virtual HRESULT STDMETHODCALLTYPE SetInputSetting( 
  361.             /* [in] */ DWORD dwInputNum,
  362.             /* [in] */ LPCWSTR pszName,
  363.             /* [in] */ WMT_ATTR_DATATYPE Type,
  364.             /* [size_is][in] */ const BYTE *pValue,
  365.             /* [in] */ WORD cbLength) = 0;
  366.         
  367.     };
  368.     
  369. #else  /* C style interface */
  370.     typedef struct IWMWriterAdvanced2Vtbl
  371.     {
  372.         BEGIN_INTERFACE
  373.         
  374.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  375.             IWMWriterAdvanced2 * This,
  376.             /* [in] */ REFIID riid,
  377.             /* [iid_is][out] */ void **ppvObject);
  378.         
  379.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  380.             IWMWriterAdvanced2 * This);
  381.         
  382.         ULONG ( STDMETHODCALLTYPE *Release )( 
  383.             IWMWriterAdvanced2 * This);
  384.         
  385.         HRESULT ( STDMETHODCALLTYPE *GetSinkCount )( 
  386.             IWMWriterAdvanced2 * This,
  387.             /* [out] */ DWORD *pcSinks);
  388.         
  389.         HRESULT ( STDMETHODCALLTYPE *GetSink )( 
  390.             IWMWriterAdvanced2 * This,
  391.             /* [in] */ DWORD dwSinkNum,
  392.             /* [out] */ IWMWriterSink **ppSink);
  393.         
  394.         HRESULT ( STDMETHODCALLTYPE *AddSink )( 
  395.             IWMWriterAdvanced2 * This,
  396.             /* [in] */ IWMWriterSink *pSink);
  397.         
  398.         HRESULT ( STDMETHODCALLTYPE *RemoveSink )( 
  399.             IWMWriterAdvanced2 * This,
  400.             /* [in] */ IWMWriterSink *pSink);
  401.         
  402.         HRESULT ( STDMETHODCALLTYPE *WriteStreamSample )( 
  403.             IWMWriterAdvanced2 * This,
  404.             /* [in] */ WORD wStreamNum,
  405.             /* [in] */ QWORD cnsSampleTime,
  406.             /* [in] */ DWORD msSampleSendTime,
  407.             /* [in] */ QWORD cnsSampleDuration,
  408.             /* [in] */ DWORD dwFlags,
  409.             /* [in] */ INSSBuffer *pSample);
  410.         
  411.         HRESULT ( STDMETHODCALLTYPE *SetLiveSource )( 
  412.             IWMWriterAdvanced2 * This,
  413.             BOOL fIsLiveSource);
  414.         
  415.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  416.             IWMWriterAdvanced2 * This,
  417.             /* [out] */ BOOL *pfRealTime);
  418.         
  419.         HRESULT ( STDMETHODCALLTYPE *GetWriterTime )( 
  420.             IWMWriterAdvanced2 * This,
  421.             /* [out] */ QWORD *pcnsCurrentTime);
  422.         
  423.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  424.             IWMWriterAdvanced2 * This,
  425.             /* [in] */ WORD wStreamNum,
  426.             /* [out] */ WM_WRITER_STATISTICS *pStats);
  427.         
  428.         HRESULT ( STDMETHODCALLTYPE *SetSyncTolerance )( 
  429.             IWMWriterAdvanced2 * This,
  430.             /* [in] */ DWORD msWindow);
  431.         
  432.         HRESULT ( STDMETHODCALLTYPE *GetSyncTolerance )( 
  433.             IWMWriterAdvanced2 * This,
  434.             /* [out] */ DWORD *pmsWindow);
  435.         
  436.         HRESULT ( STDMETHODCALLTYPE *GetInputSetting )( 
  437.             IWMWriterAdvanced2 * This,
  438.             /* [in] */ DWORD dwInputNum,
  439.             /* [in] */ LPCWSTR pszName,
  440.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  441.             /* [size_is][out] */ BYTE *pValue,
  442.             /* [out][in] */ WORD *pcbLength);
  443.         
  444.         HRESULT ( STDMETHODCALLTYPE *SetInputSetting )( 
  445.             IWMWriterAdvanced2 * This,
  446.             /* [in] */ DWORD dwInputNum,
  447.             /* [in] */ LPCWSTR pszName,
  448.             /* [in] */ WMT_ATTR_DATATYPE Type,
  449.             /* [size_is][in] */ const BYTE *pValue,
  450.             /* [in] */ WORD cbLength);
  451.         
  452.         END_INTERFACE
  453.     } IWMWriterAdvanced2Vtbl;
  454.     interface IWMWriterAdvanced2
  455.     {
  456.         CONST_VTBL struct IWMWriterAdvanced2Vtbl *lpVtbl;
  457.     };
  458.     
  459. #ifdef COBJMACROS
  460. #define IWMWriterAdvanced2_QueryInterface(This,riid,ppvObject)
  461.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  462. #define IWMWriterAdvanced2_AddRef(This)
  463.     (This)->lpVtbl -> AddRef(This)
  464. #define IWMWriterAdvanced2_Release(This)
  465.     (This)->lpVtbl -> Release(This)
  466. #define IWMWriterAdvanced2_GetSinkCount(This,pcSinks)
  467.     (This)->lpVtbl -> GetSinkCount(This,pcSinks)
  468. #define IWMWriterAdvanced2_GetSink(This,dwSinkNum,ppSink)
  469.     (This)->lpVtbl -> GetSink(This,dwSinkNum,ppSink)
  470. #define IWMWriterAdvanced2_AddSink(This,pSink)
  471.     (This)->lpVtbl -> AddSink(This,pSink)
  472. #define IWMWriterAdvanced2_RemoveSink(This,pSink)
  473.     (This)->lpVtbl -> RemoveSink(This,pSink)
  474. #define IWMWriterAdvanced2_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  475.     (This)->lpVtbl -> WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  476. #define IWMWriterAdvanced2_SetLiveSource(This,fIsLiveSource)
  477.     (This)->lpVtbl -> SetLiveSource(This,fIsLiveSource)
  478. #define IWMWriterAdvanced2_IsRealTime(This,pfRealTime)
  479.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  480. #define IWMWriterAdvanced2_GetWriterTime(This,pcnsCurrentTime)
  481.     (This)->lpVtbl -> GetWriterTime(This,pcnsCurrentTime)
  482. #define IWMWriterAdvanced2_GetStatistics(This,wStreamNum,pStats)
  483.     (This)->lpVtbl -> GetStatistics(This,wStreamNum,pStats)
  484. #define IWMWriterAdvanced2_SetSyncTolerance(This,msWindow)
  485.     (This)->lpVtbl -> SetSyncTolerance(This,msWindow)
  486. #define IWMWriterAdvanced2_GetSyncTolerance(This,pmsWindow)
  487.     (This)->lpVtbl -> GetSyncTolerance(This,pmsWindow)
  488. #define IWMWriterAdvanced2_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
  489.     (This)->lpVtbl -> GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
  490. #define IWMWriterAdvanced2_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
  491.     (This)->lpVtbl -> SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
  492. #endif /* COBJMACROS */
  493. #endif  /* C style interface */
  494. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced2_GetInputSetting_Proxy( 
  495.     IWMWriterAdvanced2 * This,
  496.     /* [in] */ DWORD dwInputNum,
  497.     /* [in] */ LPCWSTR pszName,
  498.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  499.     /* [size_is][out] */ BYTE *pValue,
  500.     /* [out][in] */ WORD *pcbLength);
  501. void __RPC_STUB IWMWriterAdvanced2_GetInputSetting_Stub(
  502.     IRpcStubBuffer *This,
  503.     IRpcChannelBuffer *_pRpcChannelBuffer,
  504.     PRPC_MESSAGE _pRpcMessage,
  505.     DWORD *_pdwStubPhase);
  506. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced2_SetInputSetting_Proxy( 
  507.     IWMWriterAdvanced2 * This,
  508.     /* [in] */ DWORD dwInputNum,
  509.     /* [in] */ LPCWSTR pszName,
  510.     /* [in] */ WMT_ATTR_DATATYPE Type,
  511.     /* [size_is][in] */ const BYTE *pValue,
  512.     /* [in] */ WORD cbLength);
  513. void __RPC_STUB IWMWriterAdvanced2_SetInputSetting_Stub(
  514.     IRpcStubBuffer *This,
  515.     IRpcChannelBuffer *_pRpcChannelBuffer,
  516.     PRPC_MESSAGE _pRpcMessage,
  517.     DWORD *_pdwStubPhase);
  518. #endif  /* __IWMWriterAdvanced2_INTERFACE_DEFINED__ */
  519. #ifndef __IWMWriterAdvanced3_INTERFACE_DEFINED__
  520. #define __IWMWriterAdvanced3_INTERFACE_DEFINED__
  521. /* interface IWMWriterAdvanced3 */
  522. /* [local][unique][helpstring][uuid][object] */ 
  523. EXTERN_C const IID IID_IWMWriterAdvanced3;
  524. #if defined(__cplusplus) && !defined(CINTERFACE)
  525.     
  526.     MIDL_INTERFACE("2cd6492d-7c37-4e76-9d3b-59261183a22e")
  527.     IWMWriterAdvanced3 : public IWMWriterAdvanced2
  528.     {
  529.     public:
  530.         virtual HRESULT STDMETHODCALLTYPE GetStatisticsEx( 
  531.             /* [in] */ WORD wStreamNum,
  532.             /* [out] */ WM_WRITER_STATISTICS_EX *pStats) = 0;
  533.         
  534.         virtual HRESULT STDMETHODCALLTYPE SetNonBlocking( void) = 0;
  535.         
  536.     };
  537.     
  538. #else  /* C style interface */
  539.     typedef struct IWMWriterAdvanced3Vtbl
  540.     {
  541.         BEGIN_INTERFACE
  542.         
  543.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  544.             IWMWriterAdvanced3 * This,
  545.             /* [in] */ REFIID riid,
  546.             /* [iid_is][out] */ void **ppvObject);
  547.         
  548.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  549.             IWMWriterAdvanced3 * This);
  550.         
  551.         ULONG ( STDMETHODCALLTYPE *Release )( 
  552.             IWMWriterAdvanced3 * This);
  553.         
  554.         HRESULT ( STDMETHODCALLTYPE *GetSinkCount )( 
  555.             IWMWriterAdvanced3 * This,
  556.             /* [out] */ DWORD *pcSinks);
  557.         
  558.         HRESULT ( STDMETHODCALLTYPE *GetSink )( 
  559.             IWMWriterAdvanced3 * This,
  560.             /* [in] */ DWORD dwSinkNum,
  561.             /* [out] */ IWMWriterSink **ppSink);
  562.         
  563.         HRESULT ( STDMETHODCALLTYPE *AddSink )( 
  564.             IWMWriterAdvanced3 * This,
  565.             /* [in] */ IWMWriterSink *pSink);
  566.         
  567.         HRESULT ( STDMETHODCALLTYPE *RemoveSink )( 
  568.             IWMWriterAdvanced3 * This,
  569.             /* [in] */ IWMWriterSink *pSink);
  570.         
  571.         HRESULT ( STDMETHODCALLTYPE *WriteStreamSample )( 
  572.             IWMWriterAdvanced3 * This,
  573.             /* [in] */ WORD wStreamNum,
  574.             /* [in] */ QWORD cnsSampleTime,
  575.             /* [in] */ DWORD msSampleSendTime,
  576.             /* [in] */ QWORD cnsSampleDuration,
  577.             /* [in] */ DWORD dwFlags,
  578.             /* [in] */ INSSBuffer *pSample);
  579.         
  580.         HRESULT ( STDMETHODCALLTYPE *SetLiveSource )( 
  581.             IWMWriterAdvanced3 * This,
  582.             BOOL fIsLiveSource);
  583.         
  584.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  585.             IWMWriterAdvanced3 * This,
  586.             /* [out] */ BOOL *pfRealTime);
  587.         
  588.         HRESULT ( STDMETHODCALLTYPE *GetWriterTime )( 
  589.             IWMWriterAdvanced3 * This,
  590.             /* [out] */ QWORD *pcnsCurrentTime);
  591.         
  592.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  593.             IWMWriterAdvanced3 * This,
  594.             /* [in] */ WORD wStreamNum,
  595.             /* [out] */ WM_WRITER_STATISTICS *pStats);
  596.         
  597.         HRESULT ( STDMETHODCALLTYPE *SetSyncTolerance )( 
  598.             IWMWriterAdvanced3 * This,
  599.             /* [in] */ DWORD msWindow);
  600.         
  601.         HRESULT ( STDMETHODCALLTYPE *GetSyncTolerance )( 
  602.             IWMWriterAdvanced3 * This,
  603.             /* [out] */ DWORD *pmsWindow);
  604.         
  605.         HRESULT ( STDMETHODCALLTYPE *GetInputSetting )( 
  606.             IWMWriterAdvanced3 * This,
  607.             /* [in] */ DWORD dwInputNum,
  608.             /* [in] */ LPCWSTR pszName,
  609.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  610.             /* [size_is][out] */ BYTE *pValue,
  611.             /* [out][in] */ WORD *pcbLength);
  612.         
  613.         HRESULT ( STDMETHODCALLTYPE *SetInputSetting )( 
  614.             IWMWriterAdvanced3 * This,
  615.             /* [in] */ DWORD dwInputNum,
  616.             /* [in] */ LPCWSTR pszName,
  617.             /* [in] */ WMT_ATTR_DATATYPE Type,
  618.             /* [size_is][in] */ const BYTE *pValue,
  619.             /* [in] */ WORD cbLength);
  620.         
  621.         HRESULT ( STDMETHODCALLTYPE *GetStatisticsEx )( 
  622.             IWMWriterAdvanced3 * This,
  623.             /* [in] */ WORD wStreamNum,
  624.             /* [out] */ WM_WRITER_STATISTICS_EX *pStats);
  625.         
  626.         HRESULT ( STDMETHODCALLTYPE *SetNonBlocking )( 
  627.             IWMWriterAdvanced3 * This);
  628.         
  629.         END_INTERFACE
  630.     } IWMWriterAdvanced3Vtbl;
  631.     interface IWMWriterAdvanced3
  632.     {
  633.         CONST_VTBL struct IWMWriterAdvanced3Vtbl *lpVtbl;
  634.     };
  635.     
  636. #ifdef COBJMACROS
  637. #define IWMWriterAdvanced3_QueryInterface(This,riid,ppvObject)
  638.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  639. #define IWMWriterAdvanced3_AddRef(This)
  640.     (This)->lpVtbl -> AddRef(This)
  641. #define IWMWriterAdvanced3_Release(This)
  642.     (This)->lpVtbl -> Release(This)
  643. #define IWMWriterAdvanced3_GetSinkCount(This,pcSinks)
  644.     (This)->lpVtbl -> GetSinkCount(This,pcSinks)
  645. #define IWMWriterAdvanced3_GetSink(This,dwSinkNum,ppSink)
  646.     (This)->lpVtbl -> GetSink(This,dwSinkNum,ppSink)
  647. #define IWMWriterAdvanced3_AddSink(This,pSink)
  648.     (This)->lpVtbl -> AddSink(This,pSink)
  649. #define IWMWriterAdvanced3_RemoveSink(This,pSink)
  650.     (This)->lpVtbl -> RemoveSink(This,pSink)
  651. #define IWMWriterAdvanced3_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  652.     (This)->lpVtbl -> WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
  653. #define IWMWriterAdvanced3_SetLiveSource(This,fIsLiveSource)
  654.     (This)->lpVtbl -> SetLiveSource(This,fIsLiveSource)
  655. #define IWMWriterAdvanced3_IsRealTime(This,pfRealTime)
  656.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  657. #define IWMWriterAdvanced3_GetWriterTime(This,pcnsCurrentTime)
  658.     (This)->lpVtbl -> GetWriterTime(This,pcnsCurrentTime)
  659. #define IWMWriterAdvanced3_GetStatistics(This,wStreamNum,pStats)
  660.     (This)->lpVtbl -> GetStatistics(This,wStreamNum,pStats)
  661. #define IWMWriterAdvanced3_SetSyncTolerance(This,msWindow)
  662.     (This)->lpVtbl -> SetSyncTolerance(This,msWindow)
  663. #define IWMWriterAdvanced3_GetSyncTolerance(This,pmsWindow)
  664.     (This)->lpVtbl -> GetSyncTolerance(This,pmsWindow)
  665. #define IWMWriterAdvanced3_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
  666.     (This)->lpVtbl -> GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
  667. #define IWMWriterAdvanced3_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
  668.     (This)->lpVtbl -> SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
  669. #define IWMWriterAdvanced3_GetStatisticsEx(This,wStreamNum,pStats)
  670.     (This)->lpVtbl -> GetStatisticsEx(This,wStreamNum,pStats)
  671. #define IWMWriterAdvanced3_SetNonBlocking(This)
  672.     (This)->lpVtbl -> SetNonBlocking(This)
  673. #endif /* COBJMACROS */
  674. #endif  /* C style interface */
  675. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced3_GetStatisticsEx_Proxy( 
  676.     IWMWriterAdvanced3 * This,
  677.     /* [in] */ WORD wStreamNum,
  678.     /* [out] */ WM_WRITER_STATISTICS_EX *pStats);
  679. void __RPC_STUB IWMWriterAdvanced3_GetStatisticsEx_Stub(
  680.     IRpcStubBuffer *This,
  681.     IRpcChannelBuffer *_pRpcChannelBuffer,
  682.     PRPC_MESSAGE _pRpcMessage,
  683.     DWORD *_pdwStubPhase);
  684. HRESULT STDMETHODCALLTYPE IWMWriterAdvanced3_SetNonBlocking_Proxy( 
  685.     IWMWriterAdvanced3 * This);
  686. void __RPC_STUB IWMWriterAdvanced3_SetNonBlocking_Stub(
  687.     IRpcStubBuffer *This,
  688.     IRpcChannelBuffer *_pRpcChannelBuffer,
  689.     PRPC_MESSAGE _pRpcMessage,
  690.     DWORD *_pdwStubPhase);
  691. #endif  /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */
  692. #ifndef __IWMWriterPreprocess_INTERFACE_DEFINED__
  693. #define __IWMWriterPreprocess_INTERFACE_DEFINED__
  694. /* interface IWMWriterPreprocess */
  695. /* [local][unique][helpstring][uuid][object] */ 
  696. EXTERN_C const IID IID_IWMWriterPreprocess;
  697. #if defined(__cplusplus) && !defined(CINTERFACE)
  698.     
  699.     MIDL_INTERFACE("fc54a285-38c4-45b5-aa23-85b9f7cb424b")
  700.     IWMWriterPreprocess : public IUnknown
  701.     {
  702.     public:
  703.         virtual HRESULT STDMETHODCALLTYPE GetMaxPreprocessingPasses( 
  704.             /* [in] */ DWORD dwInputNum,
  705.             /* [in] */ DWORD dwFlags,
  706.             /* [out] */ DWORD *pdwMaxNumPasses) = 0;
  707.         
  708.         virtual HRESULT STDMETHODCALLTYPE SetNumPreprocessingPasses( 
  709.             /* [in] */ DWORD dwInputNum,
  710.             /* [in] */ DWORD dwFlags,
  711.             /* [in] */ DWORD dwNumPasses) = 0;
  712.         
  713.         virtual HRESULT STDMETHODCALLTYPE BeginPreprocessingPass( 
  714.             /* [in] */ DWORD dwInputNum,
  715.             /* [in] */ DWORD dwFlags) = 0;
  716.         
  717.         virtual HRESULT STDMETHODCALLTYPE PreprocessSample( 
  718.             /* [in] */ DWORD dwInputNum,
  719.             /* [in] */ QWORD cnsSampleTime,
  720.             /* [in] */ DWORD dwFlags,
  721.             /* [in] */ INSSBuffer *pSample) = 0;
  722.         
  723.         virtual HRESULT STDMETHODCALLTYPE EndPreprocessingPass( 
  724.             /* [in] */ DWORD dwInputNum,
  725.             /* [in] */ DWORD dwFlags) = 0;
  726.         
  727.     };
  728.     
  729. #else  /* C style interface */
  730.     typedef struct IWMWriterPreprocessVtbl
  731.     {
  732.         BEGIN_INTERFACE
  733.         
  734.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  735.             IWMWriterPreprocess * This,
  736.             /* [in] */ REFIID riid,
  737.             /* [iid_is][out] */ void **ppvObject);
  738.         
  739.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  740.             IWMWriterPreprocess * This);
  741.         
  742.         ULONG ( STDMETHODCALLTYPE *Release )( 
  743.             IWMWriterPreprocess * This);
  744.         
  745.         HRESULT ( STDMETHODCALLTYPE *GetMaxPreprocessingPasses )( 
  746.             IWMWriterPreprocess * This,
  747.             /* [in] */ DWORD dwInputNum,
  748.             /* [in] */ DWORD dwFlags,
  749.             /* [out] */ DWORD *pdwMaxNumPasses);
  750.         
  751.         HRESULT ( STDMETHODCALLTYPE *SetNumPreprocessingPasses )( 
  752.             IWMWriterPreprocess * This,
  753.             /* [in] */ DWORD dwInputNum,
  754.             /* [in] */ DWORD dwFlags,
  755.             /* [in] */ DWORD dwNumPasses);
  756.         
  757.         HRESULT ( STDMETHODCALLTYPE *BeginPreprocessingPass )( 
  758.             IWMWriterPreprocess * This,
  759.             /* [in] */ DWORD dwInputNum,
  760.             /* [in] */ DWORD dwFlags);
  761.         
  762.         HRESULT ( STDMETHODCALLTYPE *PreprocessSample )( 
  763.             IWMWriterPreprocess * This,
  764.             /* [in] */ DWORD dwInputNum,
  765.             /* [in] */ QWORD cnsSampleTime,
  766.             /* [in] */ DWORD dwFlags,
  767.             /* [in] */ INSSBuffer *pSample);
  768.         
  769.         HRESULT ( STDMETHODCALLTYPE *EndPreprocessingPass )( 
  770.             IWMWriterPreprocess * This,
  771.             /* [in] */ DWORD dwInputNum,
  772.             /* [in] */ DWORD dwFlags);
  773.         
  774.         END_INTERFACE
  775.     } IWMWriterPreprocessVtbl;
  776.     interface IWMWriterPreprocess
  777.     {
  778.         CONST_VTBL struct IWMWriterPreprocessVtbl *lpVtbl;
  779.     };
  780.     
  781. #ifdef COBJMACROS
  782. #define IWMWriterPreprocess_QueryInterface(This,riid,ppvObject)
  783.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  784. #define IWMWriterPreprocess_AddRef(This)
  785.     (This)->lpVtbl -> AddRef(This)
  786. #define IWMWriterPreprocess_Release(This)
  787.     (This)->lpVtbl -> Release(This)
  788. #define IWMWriterPreprocess_GetMaxPreprocessingPasses(This,dwInputNum,dwFlags,pdwMaxNumPasses)
  789.     (This)->lpVtbl -> GetMaxPreprocessingPasses(This,dwInputNum,dwFlags,pdwMaxNumPasses)
  790. #define IWMWriterPreprocess_SetNumPreprocessingPasses(This,dwInputNum,dwFlags,dwNumPasses)
  791.     (This)->lpVtbl -> SetNumPreprocessingPasses(This,dwInputNum,dwFlags,dwNumPasses)
  792. #define IWMWriterPreprocess_BeginPreprocessingPass(This,dwInputNum,dwFlags)
  793.     (This)->lpVtbl -> BeginPreprocessingPass(This,dwInputNum,dwFlags)
  794. #define IWMWriterPreprocess_PreprocessSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)
  795.     (This)->lpVtbl -> PreprocessSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)
  796. #define IWMWriterPreprocess_EndPreprocessingPass(This,dwInputNum,dwFlags)
  797.     (This)->lpVtbl -> EndPreprocessingPass(This,dwInputNum,dwFlags)
  798. #endif /* COBJMACROS */
  799. #endif  /* C style interface */
  800. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_GetMaxPreprocessingPasses_Proxy( 
  801.     IWMWriterPreprocess * This,
  802.     /* [in] */ DWORD dwInputNum,
  803.     /* [in] */ DWORD dwFlags,
  804.     /* [out] */ DWORD *pdwMaxNumPasses);
  805. void __RPC_STUB IWMWriterPreprocess_GetMaxPreprocessingPasses_Stub(
  806.     IRpcStubBuffer *This,
  807.     IRpcChannelBuffer *_pRpcChannelBuffer,
  808.     PRPC_MESSAGE _pRpcMessage,
  809.     DWORD *_pdwStubPhase);
  810. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_SetNumPreprocessingPasses_Proxy( 
  811.     IWMWriterPreprocess * This,
  812.     /* [in] */ DWORD dwInputNum,
  813.     /* [in] */ DWORD dwFlags,
  814.     /* [in] */ DWORD dwNumPasses);
  815. void __RPC_STUB IWMWriterPreprocess_SetNumPreprocessingPasses_Stub(
  816.     IRpcStubBuffer *This,
  817.     IRpcChannelBuffer *_pRpcChannelBuffer,
  818.     PRPC_MESSAGE _pRpcMessage,
  819.     DWORD *_pdwStubPhase);
  820. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_BeginPreprocessingPass_Proxy( 
  821.     IWMWriterPreprocess * This,
  822.     /* [in] */ DWORD dwInputNum,
  823.     /* [in] */ DWORD dwFlags);
  824. void __RPC_STUB IWMWriterPreprocess_BeginPreprocessingPass_Stub(
  825.     IRpcStubBuffer *This,
  826.     IRpcChannelBuffer *_pRpcChannelBuffer,
  827.     PRPC_MESSAGE _pRpcMessage,
  828.     DWORD *_pdwStubPhase);
  829. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_PreprocessSample_Proxy( 
  830.     IWMWriterPreprocess * This,
  831.     /* [in] */ DWORD dwInputNum,
  832.     /* [in] */ QWORD cnsSampleTime,
  833.     /* [in] */ DWORD dwFlags,
  834.     /* [in] */ INSSBuffer *pSample);
  835. void __RPC_STUB IWMWriterPreprocess_PreprocessSample_Stub(
  836.     IRpcStubBuffer *This,
  837.     IRpcChannelBuffer *_pRpcChannelBuffer,
  838.     PRPC_MESSAGE _pRpcMessage,
  839.     DWORD *_pdwStubPhase);
  840. HRESULT STDMETHODCALLTYPE IWMWriterPreprocess_EndPreprocessingPass_Proxy( 
  841.     IWMWriterPreprocess * This,
  842.     /* [in] */ DWORD dwInputNum,
  843.     /* [in] */ DWORD dwFlags);
  844. void __RPC_STUB IWMWriterPreprocess_EndPreprocessingPass_Stub(
  845.     IRpcStubBuffer *This,
  846.     IRpcChannelBuffer *_pRpcChannelBuffer,
  847.     PRPC_MESSAGE _pRpcMessage,
  848.     DWORD *_pdwStubPhase);
  849. #endif  /* __IWMWriterPreprocess_INTERFACE_DEFINED__ */
  850. #ifndef __IWMWriterPostViewCallback_INTERFACE_DEFINED__
  851. #define __IWMWriterPostViewCallback_INTERFACE_DEFINED__
  852. /* interface IWMWriterPostViewCallback */
  853. /* [local][unique][helpstring][uuid][object] */ 
  854. EXTERN_C const IID IID_IWMWriterPostViewCallback;
  855. #if defined(__cplusplus) && !defined(CINTERFACE)
  856.     
  857.     MIDL_INTERFACE("D9D6549D-A193-4f24-B308-03123D9B7F8D")
  858.     IWMWriterPostViewCallback : public IWMStatusCallback
  859.     {
  860.     public:
  861.         virtual HRESULT STDMETHODCALLTYPE OnPostViewSample( 
  862.             /* [in] */ WORD wStreamNumber,
  863.             /* [in] */ QWORD cnsSampleTime,
  864.             /* [in] */ QWORD cnsSampleDuration,
  865.             /* [in] */ DWORD dwFlags,
  866.             /* [in] */ INSSBuffer *pSample,
  867.             /* [in] */ void *pvContext) = 0;
  868.         
  869.         virtual HRESULT STDMETHODCALLTYPE AllocateForPostView( 
  870.             /* [in] */ WORD wStreamNum,
  871.             /* [in] */ DWORD cbBuffer,
  872.             /* [out] */ INSSBuffer **ppBuffer,
  873.             /* [in] */ void *pvContext) = 0;
  874.         
  875.     };
  876.     
  877. #else  /* C style interface */
  878.     typedef struct IWMWriterPostViewCallbackVtbl
  879.     {
  880.         BEGIN_INTERFACE
  881.         
  882.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  883.             IWMWriterPostViewCallback * This,
  884.             /* [in] */ REFIID riid,
  885.             /* [iid_is][out] */ void **ppvObject);
  886.         
  887.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  888.             IWMWriterPostViewCallback * This);
  889.         
  890.         ULONG ( STDMETHODCALLTYPE *Release )( 
  891.             IWMWriterPostViewCallback * This);
  892.         
  893.         HRESULT ( STDMETHODCALLTYPE *OnStatus )( 
  894.             IWMWriterPostViewCallback * This,
  895.             /* [in] */ WMT_STATUS Status,
  896.             /* [in] */ HRESULT hr,
  897.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  898.             /* [in] */ BYTE *pValue,
  899.             /* [in] */ void *pvContext);
  900.         
  901.         HRESULT ( STDMETHODCALLTYPE *OnPostViewSample )( 
  902.             IWMWriterPostViewCallback * This,
  903.             /* [in] */ WORD wStreamNumber,
  904.             /* [in] */ QWORD cnsSampleTime,
  905.             /* [in] */ QWORD cnsSampleDuration,
  906.             /* [in] */ DWORD dwFlags,
  907.             /* [in] */ INSSBuffer *pSample,
  908.             /* [in] */ void *pvContext);
  909.         
  910.         HRESULT ( STDMETHODCALLTYPE *AllocateForPostView )( 
  911.             IWMWriterPostViewCallback * This,
  912.             /* [in] */ WORD wStreamNum,
  913.             /* [in] */ DWORD cbBuffer,
  914.             /* [out] */ INSSBuffer **ppBuffer,
  915.             /* [in] */ void *pvContext);
  916.         
  917.         END_INTERFACE
  918.     } IWMWriterPostViewCallbackVtbl;
  919.     interface IWMWriterPostViewCallback
  920.     {
  921.         CONST_VTBL struct IWMWriterPostViewCallbackVtbl *lpVtbl;
  922.     };
  923.     
  924. #ifdef COBJMACROS
  925. #define IWMWriterPostViewCallback_QueryInterface(This,riid,ppvObject)
  926.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  927. #define IWMWriterPostViewCallback_AddRef(This)
  928.     (This)->lpVtbl -> AddRef(This)
  929. #define IWMWriterPostViewCallback_Release(This)
  930.     (This)->lpVtbl -> Release(This)
  931. #define IWMWriterPostViewCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext)
  932.     (This)->lpVtbl -> OnStatus(This,Status,hr,dwType,pValue,pvContext)
  933. #define IWMWriterPostViewCallback_OnPostViewSample(This,wStreamNumber,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  934.     (This)->lpVtbl -> OnPostViewSample(This,wStreamNumber,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  935. #define IWMWriterPostViewCallback_AllocateForPostView(This,wStreamNum,cbBuffer,ppBuffer,pvContext)
  936.     (This)->lpVtbl -> AllocateForPostView(This,wStreamNum,cbBuffer,ppBuffer,pvContext)
  937. #endif /* COBJMACROS */
  938. #endif  /* C style interface */
  939. HRESULT STDMETHODCALLTYPE IWMWriterPostViewCallback_OnPostViewSample_Proxy( 
  940.     IWMWriterPostViewCallback * This,
  941.     /* [in] */ WORD wStreamNumber,
  942.     /* [in] */ QWORD cnsSampleTime,
  943.     /* [in] */ QWORD cnsSampleDuration,
  944.     /* [in] */ DWORD dwFlags,
  945.     /* [in] */ INSSBuffer *pSample,
  946.     /* [in] */ void *pvContext);
  947. void __RPC_STUB IWMWriterPostViewCallback_OnPostViewSample_Stub(
  948.     IRpcStubBuffer *This,
  949.     IRpcChannelBuffer *_pRpcChannelBuffer,
  950.     PRPC_MESSAGE _pRpcMessage,
  951.     DWORD *_pdwStubPhase);
  952. HRESULT STDMETHODCALLTYPE IWMWriterPostViewCallback_AllocateForPostView_Proxy( 
  953.     IWMWriterPostViewCallback * This,
  954.     /* [in] */ WORD wStreamNum,
  955.     /* [in] */ DWORD cbBuffer,
  956.     /* [out] */ INSSBuffer **ppBuffer,
  957.     /* [in] */ void *pvContext);
  958. void __RPC_STUB IWMWriterPostViewCallback_AllocateForPostView_Stub(
  959.     IRpcStubBuffer *This,
  960.     IRpcChannelBuffer *_pRpcChannelBuffer,
  961.     PRPC_MESSAGE _pRpcMessage,
  962.     DWORD *_pdwStubPhase);
  963. #endif  /* __IWMWriterPostViewCallback_INTERFACE_DEFINED__ */
  964. #ifndef __IWMWriterPostView_INTERFACE_DEFINED__
  965. #define __IWMWriterPostView_INTERFACE_DEFINED__
  966. /* interface IWMWriterPostView */
  967. /* [local][unique][helpstring][uuid][object] */ 
  968. EXTERN_C const IID IID_IWMWriterPostView;
  969. #if defined(__cplusplus) && !defined(CINTERFACE)
  970.     
  971.     MIDL_INTERFACE("81E20CE4-75EF-491a-8004-FC53C45BDC3E")
  972.     IWMWriterPostView : public IUnknown
  973.     {
  974.     public:
  975.         virtual HRESULT STDMETHODCALLTYPE SetPostViewCallback( 
  976.             IWMWriterPostViewCallback *pCallback,
  977.             void *pvContext) = 0;
  978.         
  979.         virtual HRESULT STDMETHODCALLTYPE SetReceivePostViewSamples( 
  980.             /* [in] */ WORD wStreamNum,
  981.             /* [in] */ BOOL fReceivePostViewSamples) = 0;
  982.         
  983.         virtual HRESULT STDMETHODCALLTYPE GetReceivePostViewSamples( 
  984.             /* [in] */ WORD wStreamNum,
  985.             /* [out] */ BOOL *pfReceivePostViewSamples) = 0;
  986.         
  987.         virtual HRESULT STDMETHODCALLTYPE GetPostViewProps( 
  988.             /* [in] */ WORD wStreamNumber,
  989.             /* [out] */ IWMMediaProps **ppOutput) = 0;
  990.         
  991.         virtual HRESULT STDMETHODCALLTYPE SetPostViewProps( 
  992.             /* [in] */ WORD wStreamNumber,
  993.             /* [in] */ IWMMediaProps *pOutput) = 0;
  994.         
  995.         virtual HRESULT STDMETHODCALLTYPE GetPostViewFormatCount( 
  996.             /* [in] */ WORD wStreamNumber,
  997.             /* [out] */ DWORD *pcFormats) = 0;
  998.         
  999.         virtual HRESULT STDMETHODCALLTYPE GetPostViewFormat( 
  1000.             /* [in] */ WORD wStreamNumber,
  1001.             /* [in] */ DWORD dwFormatNumber,
  1002.             /* [out] */ IWMMediaProps **ppProps) = 0;
  1003.         
  1004.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForPostView( 
  1005.             /* [in] */ WORD wStreamNumber,
  1006.             /* [in] */ BOOL fAllocate) = 0;
  1007.         
  1008.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForPostView( 
  1009.             /* [in] */ WORD wStreamNumber,
  1010.             /* [out] */ BOOL *pfAllocate) = 0;
  1011.         
  1012.     };
  1013.     
  1014. #else  /* C style interface */
  1015.     typedef struct IWMWriterPostViewVtbl
  1016.     {
  1017.         BEGIN_INTERFACE
  1018.         
  1019.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1020.             IWMWriterPostView * This,
  1021.             /* [in] */ REFIID riid,
  1022.             /* [iid_is][out] */ void **ppvObject);
  1023.         
  1024.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1025.             IWMWriterPostView * This);
  1026.         
  1027.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1028.             IWMWriterPostView * This);
  1029.         
  1030.         HRESULT ( STDMETHODCALLTYPE *SetPostViewCallback )( 
  1031.             IWMWriterPostView * This,
  1032.             IWMWriterPostViewCallback *pCallback,
  1033.             void *pvContext);
  1034.         
  1035.         HRESULT ( STDMETHODCALLTYPE *SetReceivePostViewSamples )( 
  1036.             IWMWriterPostView * This,
  1037.             /* [in] */ WORD wStreamNum,
  1038.             /* [in] */ BOOL fReceivePostViewSamples);
  1039.         
  1040.         HRESULT ( STDMETHODCALLTYPE *GetReceivePostViewSamples )( 
  1041.             IWMWriterPostView * This,
  1042.             /* [in] */ WORD wStreamNum,
  1043.             /* [out] */ BOOL *pfReceivePostViewSamples);
  1044.         
  1045.         HRESULT ( STDMETHODCALLTYPE *GetPostViewProps )( 
  1046.             IWMWriterPostView * This,
  1047.             /* [in] */ WORD wStreamNumber,
  1048.             /* [out] */ IWMMediaProps **ppOutput);
  1049.         
  1050.         HRESULT ( STDMETHODCALLTYPE *SetPostViewProps )( 
  1051.             IWMWriterPostView * This,
  1052.             /* [in] */ WORD wStreamNumber,
  1053.             /* [in] */ IWMMediaProps *pOutput);
  1054.         
  1055.         HRESULT ( STDMETHODCALLTYPE *GetPostViewFormatCount )( 
  1056.             IWMWriterPostView * This,
  1057.             /* [in] */ WORD wStreamNumber,
  1058.             /* [out] */ DWORD *pcFormats);
  1059.         
  1060.         HRESULT ( STDMETHODCALLTYPE *GetPostViewFormat )( 
  1061.             IWMWriterPostView * This,
  1062.             /* [in] */ WORD wStreamNumber,
  1063.             /* [in] */ DWORD dwFormatNumber,
  1064.             /* [out] */ IWMMediaProps **ppProps);
  1065.         
  1066.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForPostView )( 
  1067.             IWMWriterPostView * This,
  1068.             /* [in] */ WORD wStreamNumber,
  1069.             /* [in] */ BOOL fAllocate);
  1070.         
  1071.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForPostView )( 
  1072.             IWMWriterPostView * This,
  1073.             /* [in] */ WORD wStreamNumber,
  1074.             /* [out] */ BOOL *pfAllocate);
  1075.         
  1076.         END_INTERFACE
  1077.     } IWMWriterPostViewVtbl;
  1078.     interface IWMWriterPostView
  1079.     {
  1080.         CONST_VTBL struct IWMWriterPostViewVtbl *lpVtbl;
  1081.     };
  1082.     
  1083. #ifdef COBJMACROS
  1084. #define IWMWriterPostView_QueryInterface(This,riid,ppvObject)
  1085.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1086. #define IWMWriterPostView_AddRef(This)
  1087.     (This)->lpVtbl -> AddRef(This)
  1088. #define IWMWriterPostView_Release(This)
  1089.     (This)->lpVtbl -> Release(This)
  1090. #define IWMWriterPostView_SetPostViewCallback(This,pCallback,pvContext)
  1091.     (This)->lpVtbl -> SetPostViewCallback(This,pCallback,pvContext)
  1092. #define IWMWriterPostView_SetReceivePostViewSamples(This,wStreamNum,fReceivePostViewSamples)
  1093.     (This)->lpVtbl -> SetReceivePostViewSamples(This,wStreamNum,fReceivePostViewSamples)
  1094. #define IWMWriterPostView_GetReceivePostViewSamples(This,wStreamNum,pfReceivePostViewSamples)
  1095.     (This)->lpVtbl -> GetReceivePostViewSamples(This,wStreamNum,pfReceivePostViewSamples)
  1096. #define IWMWriterPostView_GetPostViewProps(This,wStreamNumber,ppOutput)
  1097.     (This)->lpVtbl -> GetPostViewProps(This,wStreamNumber,ppOutput)
  1098. #define IWMWriterPostView_SetPostViewProps(This,wStreamNumber,pOutput)
  1099.     (This)->lpVtbl -> SetPostViewProps(This,wStreamNumber,pOutput)
  1100. #define IWMWriterPostView_GetPostViewFormatCount(This,wStreamNumber,pcFormats)
  1101.     (This)->lpVtbl -> GetPostViewFormatCount(This,wStreamNumber,pcFormats)
  1102. #define IWMWriterPostView_GetPostViewFormat(This,wStreamNumber,dwFormatNumber,ppProps)
  1103.     (This)->lpVtbl -> GetPostViewFormat(This,wStreamNumber,dwFormatNumber,ppProps)
  1104. #define IWMWriterPostView_SetAllocateForPostView(This,wStreamNumber,fAllocate)
  1105.     (This)->lpVtbl -> SetAllocateForPostView(This,wStreamNumber,fAllocate)
  1106. #define IWMWriterPostView_GetAllocateForPostView(This,wStreamNumber,pfAllocate)
  1107.     (This)->lpVtbl -> GetAllocateForPostView(This,wStreamNumber,pfAllocate)
  1108. #endif /* COBJMACROS */
  1109. #endif  /* C style interface */
  1110. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetPostViewCallback_Proxy( 
  1111.     IWMWriterPostView * This,
  1112.     IWMWriterPostViewCallback *pCallback,
  1113.     void *pvContext);
  1114. void __RPC_STUB IWMWriterPostView_SetPostViewCallback_Stub(
  1115.     IRpcStubBuffer *This,
  1116.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1117.     PRPC_MESSAGE _pRpcMessage,
  1118.     DWORD *_pdwStubPhase);
  1119. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetReceivePostViewSamples_Proxy( 
  1120.     IWMWriterPostView * This,
  1121.     /* [in] */ WORD wStreamNum,
  1122.     /* [in] */ BOOL fReceivePostViewSamples);
  1123. void __RPC_STUB IWMWriterPostView_SetReceivePostViewSamples_Stub(
  1124.     IRpcStubBuffer *This,
  1125.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1126.     PRPC_MESSAGE _pRpcMessage,
  1127.     DWORD *_pdwStubPhase);
  1128. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetReceivePostViewSamples_Proxy( 
  1129.     IWMWriterPostView * This,
  1130.     /* [in] */ WORD wStreamNum,
  1131.     /* [out] */ BOOL *pfReceivePostViewSamples);
  1132. void __RPC_STUB IWMWriterPostView_GetReceivePostViewSamples_Stub(
  1133.     IRpcStubBuffer *This,
  1134.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1135.     PRPC_MESSAGE _pRpcMessage,
  1136.     DWORD *_pdwStubPhase);
  1137. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetPostViewProps_Proxy( 
  1138.     IWMWriterPostView * This,
  1139.     /* [in] */ WORD wStreamNumber,
  1140.     /* [out] */ IWMMediaProps **ppOutput);
  1141. void __RPC_STUB IWMWriterPostView_GetPostViewProps_Stub(
  1142.     IRpcStubBuffer *This,
  1143.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1144.     PRPC_MESSAGE _pRpcMessage,
  1145.     DWORD *_pdwStubPhase);
  1146. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetPostViewProps_Proxy( 
  1147.     IWMWriterPostView * This,
  1148.     /* [in] */ WORD wStreamNumber,
  1149.     /* [in] */ IWMMediaProps *pOutput);
  1150. void __RPC_STUB IWMWriterPostView_SetPostViewProps_Stub(
  1151.     IRpcStubBuffer *This,
  1152.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1153.     PRPC_MESSAGE _pRpcMessage,
  1154.     DWORD *_pdwStubPhase);
  1155. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetPostViewFormatCount_Proxy( 
  1156.     IWMWriterPostView * This,
  1157.     /* [in] */ WORD wStreamNumber,
  1158.     /* [out] */ DWORD *pcFormats);
  1159. void __RPC_STUB IWMWriterPostView_GetPostViewFormatCount_Stub(
  1160.     IRpcStubBuffer *This,
  1161.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1162.     PRPC_MESSAGE _pRpcMessage,
  1163.     DWORD *_pdwStubPhase);
  1164. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetPostViewFormat_Proxy( 
  1165.     IWMWriterPostView * This,
  1166.     /* [in] */ WORD wStreamNumber,
  1167.     /* [in] */ DWORD dwFormatNumber,
  1168.     /* [out] */ IWMMediaProps **ppProps);
  1169. void __RPC_STUB IWMWriterPostView_GetPostViewFormat_Stub(
  1170.     IRpcStubBuffer *This,
  1171.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1172.     PRPC_MESSAGE _pRpcMessage,
  1173.     DWORD *_pdwStubPhase);
  1174. HRESULT STDMETHODCALLTYPE IWMWriterPostView_SetAllocateForPostView_Proxy( 
  1175.     IWMWriterPostView * This,
  1176.     /* [in] */ WORD wStreamNumber,
  1177.     /* [in] */ BOOL fAllocate);
  1178. void __RPC_STUB IWMWriterPostView_SetAllocateForPostView_Stub(
  1179.     IRpcStubBuffer *This,
  1180.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1181.     PRPC_MESSAGE _pRpcMessage,
  1182.     DWORD *_pdwStubPhase);
  1183. HRESULT STDMETHODCALLTYPE IWMWriterPostView_GetAllocateForPostView_Proxy( 
  1184.     IWMWriterPostView * This,
  1185.     /* [in] */ WORD wStreamNumber,
  1186.     /* [out] */ BOOL *pfAllocate);
  1187. void __RPC_STUB IWMWriterPostView_GetAllocateForPostView_Stub(
  1188.     IRpcStubBuffer *This,
  1189.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1190.     PRPC_MESSAGE _pRpcMessage,
  1191.     DWORD *_pdwStubPhase);
  1192. #endif  /* __IWMWriterPostView_INTERFACE_DEFINED__ */
  1193. #ifndef __IWMWriterSink_INTERFACE_DEFINED__
  1194. #define __IWMWriterSink_INTERFACE_DEFINED__
  1195. /* interface IWMWriterSink */
  1196. /* [local][unique][helpstring][uuid][object] */ 
  1197. EXTERN_C const IID IID_IWMWriterSink;
  1198. #if defined(__cplusplus) && !defined(CINTERFACE)
  1199.     
  1200.     MIDL_INTERFACE("96406BE4-2B2B-11d3-B36B-00C04F6108FF")
  1201.     IWMWriterSink : public IUnknown
  1202.     {
  1203.     public:
  1204.         virtual HRESULT STDMETHODCALLTYPE OnHeader( 
  1205.             /* [in] */ INSSBuffer *pHeader) = 0;
  1206.         
  1207.         virtual HRESULT STDMETHODCALLTYPE IsRealTime( 
  1208.             /* [out] */ BOOL *pfRealTime) = 0;
  1209.         
  1210.         virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit( 
  1211.             /* [in] */ DWORD cbDataUnit,
  1212.             /* [out] */ INSSBuffer **ppDataUnit) = 0;
  1213.         
  1214.         virtual HRESULT STDMETHODCALLTYPE OnDataUnit( 
  1215.             /* [in] */ INSSBuffer *pDataUnit) = 0;
  1216.         
  1217.         virtual HRESULT STDMETHODCALLTYPE OnEndWriting( void) = 0;
  1218.         
  1219.     };
  1220.     
  1221. #else  /* C style interface */
  1222.     typedef struct IWMWriterSinkVtbl
  1223.     {
  1224.         BEGIN_INTERFACE
  1225.         
  1226.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1227.             IWMWriterSink * This,
  1228.             /* [in] */ REFIID riid,
  1229.             /* [iid_is][out] */ void **ppvObject);
  1230.         
  1231.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1232.             IWMWriterSink * This);
  1233.         
  1234.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1235.             IWMWriterSink * This);
  1236.         
  1237.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  1238.             IWMWriterSink * This,
  1239.             /* [in] */ INSSBuffer *pHeader);
  1240.         
  1241.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  1242.             IWMWriterSink * This,
  1243.             /* [out] */ BOOL *pfRealTime);
  1244.         
  1245.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  1246.             IWMWriterSink * This,
  1247.             /* [in] */ DWORD cbDataUnit,
  1248.             /* [out] */ INSSBuffer **ppDataUnit);
  1249.         
  1250.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  1251.             IWMWriterSink * This,
  1252.             /* [in] */ INSSBuffer *pDataUnit);
  1253.         
  1254.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  1255.             IWMWriterSink * This);
  1256.         
  1257.         END_INTERFACE
  1258.     } IWMWriterSinkVtbl;
  1259.     interface IWMWriterSink
  1260.     {
  1261.         CONST_VTBL struct IWMWriterSinkVtbl *lpVtbl;
  1262.     };
  1263.     
  1264. #ifdef COBJMACROS
  1265. #define IWMWriterSink_QueryInterface(This,riid,ppvObject)
  1266.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1267. #define IWMWriterSink_AddRef(This)
  1268.     (This)->lpVtbl -> AddRef(This)
  1269. #define IWMWriterSink_Release(This)
  1270.     (This)->lpVtbl -> Release(This)
  1271. #define IWMWriterSink_OnHeader(This,pHeader)
  1272.     (This)->lpVtbl -> OnHeader(This,pHeader)
  1273. #define IWMWriterSink_IsRealTime(This,pfRealTime)
  1274.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  1275. #define IWMWriterSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1276.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1277. #define IWMWriterSink_OnDataUnit(This,pDataUnit)
  1278.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  1279. #define IWMWriterSink_OnEndWriting(This)
  1280.     (This)->lpVtbl -> OnEndWriting(This)
  1281. #endif /* COBJMACROS */
  1282. #endif  /* C style interface */
  1283. HRESULT STDMETHODCALLTYPE IWMWriterSink_OnHeader_Proxy( 
  1284.     IWMWriterSink * This,
  1285.     /* [in] */ INSSBuffer *pHeader);
  1286. void __RPC_STUB IWMWriterSink_OnHeader_Stub(
  1287.     IRpcStubBuffer *This,
  1288.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1289.     PRPC_MESSAGE _pRpcMessage,
  1290.     DWORD *_pdwStubPhase);
  1291. HRESULT STDMETHODCALLTYPE IWMWriterSink_IsRealTime_Proxy( 
  1292.     IWMWriterSink * This,
  1293.     /* [out] */ BOOL *pfRealTime);
  1294. void __RPC_STUB IWMWriterSink_IsRealTime_Stub(
  1295.     IRpcStubBuffer *This,
  1296.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1297.     PRPC_MESSAGE _pRpcMessage,
  1298.     DWORD *_pdwStubPhase);
  1299. HRESULT STDMETHODCALLTYPE IWMWriterSink_AllocateDataUnit_Proxy( 
  1300.     IWMWriterSink * This,
  1301.     /* [in] */ DWORD cbDataUnit,
  1302.     /* [out] */ INSSBuffer **ppDataUnit);
  1303. void __RPC_STUB IWMWriterSink_AllocateDataUnit_Stub(
  1304.     IRpcStubBuffer *This,
  1305.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1306.     PRPC_MESSAGE _pRpcMessage,
  1307.     DWORD *_pdwStubPhase);
  1308. HRESULT STDMETHODCALLTYPE IWMWriterSink_OnDataUnit_Proxy( 
  1309.     IWMWriterSink * This,
  1310.     /* [in] */ INSSBuffer *pDataUnit);
  1311. void __RPC_STUB IWMWriterSink_OnDataUnit_Stub(
  1312.     IRpcStubBuffer *This,
  1313.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1314.     PRPC_MESSAGE _pRpcMessage,
  1315.     DWORD *_pdwStubPhase);
  1316. HRESULT STDMETHODCALLTYPE IWMWriterSink_OnEndWriting_Proxy( 
  1317.     IWMWriterSink * This);
  1318. void __RPC_STUB IWMWriterSink_OnEndWriting_Stub(
  1319.     IRpcStubBuffer *This,
  1320.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1321.     PRPC_MESSAGE _pRpcMessage,
  1322.     DWORD *_pdwStubPhase);
  1323. #endif  /* __IWMWriterSink_INTERFACE_DEFINED__ */
  1324. #ifndef __IWMRegisterCallback_INTERFACE_DEFINED__
  1325. #define __IWMRegisterCallback_INTERFACE_DEFINED__
  1326. /* interface IWMRegisterCallback */
  1327. /* [local][unique][helpstring][uuid][object] */ 
  1328. EXTERN_C const IID IID_IWMRegisterCallback;
  1329. #if defined(__cplusplus) && !defined(CINTERFACE)
  1330.     
  1331.     MIDL_INTERFACE("CF4B1F99-4DE2-4e49-A363-252740D99BC1")
  1332.     IWMRegisterCallback : public IUnknown
  1333.     {
  1334.     public:
  1335.         virtual HRESULT STDMETHODCALLTYPE Advise( 
  1336.             /* [in] */ IWMStatusCallback *pCallback,
  1337.             /* [in] */ void *pvContext) = 0;
  1338.         
  1339.         virtual HRESULT STDMETHODCALLTYPE Unadvise( 
  1340.             /* [in] */ IWMStatusCallback *pCallback,
  1341.             /* [in] */ void *pvContext) = 0;
  1342.         
  1343.     };
  1344.     
  1345. #else  /* C style interface */
  1346.     typedef struct IWMRegisterCallbackVtbl
  1347.     {
  1348.         BEGIN_INTERFACE
  1349.         
  1350.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1351.             IWMRegisterCallback * This,
  1352.             /* [in] */ REFIID riid,
  1353.             /* [iid_is][out] */ void **ppvObject);
  1354.         
  1355.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1356.             IWMRegisterCallback * This);
  1357.         
  1358.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1359.             IWMRegisterCallback * This);
  1360.         
  1361.         HRESULT ( STDMETHODCALLTYPE *Advise )( 
  1362.             IWMRegisterCallback * This,
  1363.             /* [in] */ IWMStatusCallback *pCallback,
  1364.             /* [in] */ void *pvContext);
  1365.         
  1366.         HRESULT ( STDMETHODCALLTYPE *Unadvise )( 
  1367.             IWMRegisterCallback * This,
  1368.             /* [in] */ IWMStatusCallback *pCallback,
  1369.             /* [in] */ void *pvContext);
  1370.         
  1371.         END_INTERFACE
  1372.     } IWMRegisterCallbackVtbl;
  1373.     interface IWMRegisterCallback
  1374.     {
  1375.         CONST_VTBL struct IWMRegisterCallbackVtbl *lpVtbl;
  1376.     };
  1377.     
  1378. #ifdef COBJMACROS
  1379. #define IWMRegisterCallback_QueryInterface(This,riid,ppvObject)
  1380.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1381. #define IWMRegisterCallback_AddRef(This)
  1382.     (This)->lpVtbl -> AddRef(This)
  1383. #define IWMRegisterCallback_Release(This)
  1384.     (This)->lpVtbl -> Release(This)
  1385. #define IWMRegisterCallback_Advise(This,pCallback,pvContext)
  1386.     (This)->lpVtbl -> Advise(This,pCallback,pvContext)
  1387. #define IWMRegisterCallback_Unadvise(This,pCallback,pvContext)
  1388.     (This)->lpVtbl -> Unadvise(This,pCallback,pvContext)
  1389. #endif /* COBJMACROS */
  1390. #endif  /* C style interface */
  1391. HRESULT STDMETHODCALLTYPE IWMRegisterCallback_Advise_Proxy( 
  1392.     IWMRegisterCallback * This,
  1393.     /* [in] */ IWMStatusCallback *pCallback,
  1394.     /* [in] */ void *pvContext);
  1395. void __RPC_STUB IWMRegisterCallback_Advise_Stub(
  1396.     IRpcStubBuffer *This,
  1397.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1398.     PRPC_MESSAGE _pRpcMessage,
  1399.     DWORD *_pdwStubPhase);
  1400. HRESULT STDMETHODCALLTYPE IWMRegisterCallback_Unadvise_Proxy( 
  1401.     IWMRegisterCallback * This,
  1402.     /* [in] */ IWMStatusCallback *pCallback,
  1403.     /* [in] */ void *pvContext);
  1404. void __RPC_STUB IWMRegisterCallback_Unadvise_Stub(
  1405.     IRpcStubBuffer *This,
  1406.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1407.     PRPC_MESSAGE _pRpcMessage,
  1408.     DWORD *_pdwStubPhase);
  1409. #endif  /* __IWMRegisterCallback_INTERFACE_DEFINED__ */
  1410. #ifndef __IWMWriterFileSink_INTERFACE_DEFINED__
  1411. #define __IWMWriterFileSink_INTERFACE_DEFINED__
  1412. /* interface IWMWriterFileSink */
  1413. /* [local][unique][helpstring][uuid][object] */ 
  1414. EXTERN_C const IID IID_IWMWriterFileSink;
  1415. #if defined(__cplusplus) && !defined(CINTERFACE)
  1416.     
  1417.     MIDL_INTERFACE("96406BE5-2B2B-11d3-B36B-00C04F6108FF")
  1418.     IWMWriterFileSink : public IWMWriterSink
  1419.     {
  1420.     public:
  1421.         virtual HRESULT STDMETHODCALLTYPE Open( 
  1422.             /* [in] */ const WCHAR *pwszFilename) = 0;
  1423.         
  1424.     };
  1425.     
  1426. #else  /* C style interface */
  1427.     typedef struct IWMWriterFileSinkVtbl
  1428.     {
  1429.         BEGIN_INTERFACE
  1430.         
  1431.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1432.             IWMWriterFileSink * This,
  1433.             /* [in] */ REFIID riid,
  1434.             /* [iid_is][out] */ void **ppvObject);
  1435.         
  1436.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1437.             IWMWriterFileSink * This);
  1438.         
  1439.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1440.             IWMWriterFileSink * This);
  1441.         
  1442.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  1443.             IWMWriterFileSink * This,
  1444.             /* [in] */ INSSBuffer *pHeader);
  1445.         
  1446.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  1447.             IWMWriterFileSink * This,
  1448.             /* [out] */ BOOL *pfRealTime);
  1449.         
  1450.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  1451.             IWMWriterFileSink * This,
  1452.             /* [in] */ DWORD cbDataUnit,
  1453.             /* [out] */ INSSBuffer **ppDataUnit);
  1454.         
  1455.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  1456.             IWMWriterFileSink * This,
  1457.             /* [in] */ INSSBuffer *pDataUnit);
  1458.         
  1459.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  1460.             IWMWriterFileSink * This);
  1461.         
  1462.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  1463.             IWMWriterFileSink * This,
  1464.             /* [in] */ const WCHAR *pwszFilename);
  1465.         
  1466.         END_INTERFACE
  1467.     } IWMWriterFileSinkVtbl;
  1468.     interface IWMWriterFileSink
  1469.     {
  1470.         CONST_VTBL struct IWMWriterFileSinkVtbl *lpVtbl;
  1471.     };
  1472.     
  1473. #ifdef COBJMACROS
  1474. #define IWMWriterFileSink_QueryInterface(This,riid,ppvObject)
  1475.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1476. #define IWMWriterFileSink_AddRef(This)
  1477.     (This)->lpVtbl -> AddRef(This)
  1478. #define IWMWriterFileSink_Release(This)
  1479.     (This)->lpVtbl -> Release(This)
  1480. #define IWMWriterFileSink_OnHeader(This,pHeader)
  1481.     (This)->lpVtbl -> OnHeader(This,pHeader)
  1482. #define IWMWriterFileSink_IsRealTime(This,pfRealTime)
  1483.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  1484. #define IWMWriterFileSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1485.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1486. #define IWMWriterFileSink_OnDataUnit(This,pDataUnit)
  1487.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  1488. #define IWMWriterFileSink_OnEndWriting(This)
  1489.     (This)->lpVtbl -> OnEndWriting(This)
  1490. #define IWMWriterFileSink_Open(This,pwszFilename)
  1491.     (This)->lpVtbl -> Open(This,pwszFilename)
  1492. #endif /* COBJMACROS */
  1493. #endif  /* C style interface */
  1494. HRESULT STDMETHODCALLTYPE IWMWriterFileSink_Open_Proxy( 
  1495.     IWMWriterFileSink * This,
  1496.     /* [in] */ const WCHAR *pwszFilename);
  1497. void __RPC_STUB IWMWriterFileSink_Open_Stub(
  1498.     IRpcStubBuffer *This,
  1499.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1500.     PRPC_MESSAGE _pRpcMessage,
  1501.     DWORD *_pdwStubPhase);
  1502. #endif  /* __IWMWriterFileSink_INTERFACE_DEFINED__ */
  1503. #ifndef __IWMWriterFileSink2_INTERFACE_DEFINED__
  1504. #define __IWMWriterFileSink2_INTERFACE_DEFINED__
  1505. /* interface IWMWriterFileSink2 */
  1506. /* [local][unique][helpstring][uuid][object] */ 
  1507. EXTERN_C const IID IID_IWMWriterFileSink2;
  1508. #if defined(__cplusplus) && !defined(CINTERFACE)
  1509.     
  1510.     MIDL_INTERFACE("14282BA7-4AEF-4205-8CE5-C229035A05BC")
  1511.     IWMWriterFileSink2 : public IWMWriterFileSink
  1512.     {
  1513.     public:
  1514.         virtual HRESULT STDMETHODCALLTYPE Start( 
  1515.             /* [in] */ QWORD cnsStartTime) = 0;
  1516.         
  1517.         virtual HRESULT STDMETHODCALLTYPE Stop( 
  1518.             /* [in] */ QWORD cnsStopTime) = 0;
  1519.         
  1520.         virtual HRESULT STDMETHODCALLTYPE IsStopped( 
  1521.             /* [out] */ BOOL *pfStopped) = 0;
  1522.         
  1523.         virtual HRESULT STDMETHODCALLTYPE GetFileDuration( 
  1524.             /* [out] */ QWORD *pcnsDuration) = 0;
  1525.         
  1526.         virtual HRESULT STDMETHODCALLTYPE GetFileSize( 
  1527.             /* [out] */ QWORD *pcbFile) = 0;
  1528.         
  1529.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  1530.         
  1531.         virtual HRESULT STDMETHODCALLTYPE IsClosed( 
  1532.             /* [out] */ BOOL *pfClosed) = 0;
  1533.         
  1534.     };
  1535.     
  1536. #else  /* C style interface */
  1537.     typedef struct IWMWriterFileSink2Vtbl
  1538.     {
  1539.         BEGIN_INTERFACE
  1540.         
  1541.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1542.             IWMWriterFileSink2 * This,
  1543.             /* [in] */ REFIID riid,
  1544.             /* [iid_is][out] */ void **ppvObject);
  1545.         
  1546.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1547.             IWMWriterFileSink2 * This);
  1548.         
  1549.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1550.             IWMWriterFileSink2 * This);
  1551.         
  1552.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  1553.             IWMWriterFileSink2 * This,
  1554.             /* [in] */ INSSBuffer *pHeader);
  1555.         
  1556.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  1557.             IWMWriterFileSink2 * This,
  1558.             /* [out] */ BOOL *pfRealTime);
  1559.         
  1560.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  1561.             IWMWriterFileSink2 * This,
  1562.             /* [in] */ DWORD cbDataUnit,
  1563.             /* [out] */ INSSBuffer **ppDataUnit);
  1564.         
  1565.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  1566.             IWMWriterFileSink2 * This,
  1567.             /* [in] */ INSSBuffer *pDataUnit);
  1568.         
  1569.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  1570.             IWMWriterFileSink2 * This);
  1571.         
  1572.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  1573.             IWMWriterFileSink2 * This,
  1574.             /* [in] */ const WCHAR *pwszFilename);
  1575.         
  1576.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  1577.             IWMWriterFileSink2 * This,
  1578.             /* [in] */ QWORD cnsStartTime);
  1579.         
  1580.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  1581.             IWMWriterFileSink2 * This,
  1582.             /* [in] */ QWORD cnsStopTime);
  1583.         
  1584.         HRESULT ( STDMETHODCALLTYPE *IsStopped )( 
  1585.             IWMWriterFileSink2 * This,
  1586.             /* [out] */ BOOL *pfStopped);
  1587.         
  1588.         HRESULT ( STDMETHODCALLTYPE *GetFileDuration )( 
  1589.             IWMWriterFileSink2 * This,
  1590.             /* [out] */ QWORD *pcnsDuration);
  1591.         
  1592.         HRESULT ( STDMETHODCALLTYPE *GetFileSize )( 
  1593.             IWMWriterFileSink2 * This,
  1594.             /* [out] */ QWORD *pcbFile);
  1595.         
  1596.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  1597.             IWMWriterFileSink2 * This);
  1598.         
  1599.         HRESULT ( STDMETHODCALLTYPE *IsClosed )( 
  1600.             IWMWriterFileSink2 * This,
  1601.             /* [out] */ BOOL *pfClosed);
  1602.         
  1603.         END_INTERFACE
  1604.     } IWMWriterFileSink2Vtbl;
  1605.     interface IWMWriterFileSink2
  1606.     {
  1607.         CONST_VTBL struct IWMWriterFileSink2Vtbl *lpVtbl;
  1608.     };
  1609.     
  1610. #ifdef COBJMACROS
  1611. #define IWMWriterFileSink2_QueryInterface(This,riid,ppvObject)
  1612.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1613. #define IWMWriterFileSink2_AddRef(This)
  1614.     (This)->lpVtbl -> AddRef(This)
  1615. #define IWMWriterFileSink2_Release(This)
  1616.     (This)->lpVtbl -> Release(This)
  1617. #define IWMWriterFileSink2_OnHeader(This,pHeader)
  1618.     (This)->lpVtbl -> OnHeader(This,pHeader)
  1619. #define IWMWriterFileSink2_IsRealTime(This,pfRealTime)
  1620.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  1621. #define IWMWriterFileSink2_AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1622.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1623. #define IWMWriterFileSink2_OnDataUnit(This,pDataUnit)
  1624.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  1625. #define IWMWriterFileSink2_OnEndWriting(This)
  1626.     (This)->lpVtbl -> OnEndWriting(This)
  1627. #define IWMWriterFileSink2_Open(This,pwszFilename)
  1628.     (This)->lpVtbl -> Open(This,pwszFilename)
  1629. #define IWMWriterFileSink2_Start(This,cnsStartTime)
  1630.     (This)->lpVtbl -> Start(This,cnsStartTime)
  1631. #define IWMWriterFileSink2_Stop(This,cnsStopTime)
  1632.     (This)->lpVtbl -> Stop(This,cnsStopTime)
  1633. #define IWMWriterFileSink2_IsStopped(This,pfStopped)
  1634.     (This)->lpVtbl -> IsStopped(This,pfStopped)
  1635. #define IWMWriterFileSink2_GetFileDuration(This,pcnsDuration)
  1636.     (This)->lpVtbl -> GetFileDuration(This,pcnsDuration)
  1637. #define IWMWriterFileSink2_GetFileSize(This,pcbFile)
  1638.     (This)->lpVtbl -> GetFileSize(This,pcbFile)
  1639. #define IWMWriterFileSink2_Close(This)
  1640.     (This)->lpVtbl -> Close(This)
  1641. #define IWMWriterFileSink2_IsClosed(This,pfClosed)
  1642.     (This)->lpVtbl -> IsClosed(This,pfClosed)
  1643. #endif /* COBJMACROS */
  1644. #endif  /* C style interface */
  1645. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_Start_Proxy( 
  1646.     IWMWriterFileSink2 * This,
  1647.     /* [in] */ QWORD cnsStartTime);
  1648. void __RPC_STUB IWMWriterFileSink2_Start_Stub(
  1649.     IRpcStubBuffer *This,
  1650.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1651.     PRPC_MESSAGE _pRpcMessage,
  1652.     DWORD *_pdwStubPhase);
  1653. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_Stop_Proxy( 
  1654.     IWMWriterFileSink2 * This,
  1655.     /* [in] */ QWORD cnsStopTime);
  1656. void __RPC_STUB IWMWriterFileSink2_Stop_Stub(
  1657.     IRpcStubBuffer *This,
  1658.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1659.     PRPC_MESSAGE _pRpcMessage,
  1660.     DWORD *_pdwStubPhase);
  1661. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_IsStopped_Proxy( 
  1662.     IWMWriterFileSink2 * This,
  1663.     /* [out] */ BOOL *pfStopped);
  1664. void __RPC_STUB IWMWriterFileSink2_IsStopped_Stub(
  1665.     IRpcStubBuffer *This,
  1666.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1667.     PRPC_MESSAGE _pRpcMessage,
  1668.     DWORD *_pdwStubPhase);
  1669. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_GetFileDuration_Proxy( 
  1670.     IWMWriterFileSink2 * This,
  1671.     /* [out] */ QWORD *pcnsDuration);
  1672. void __RPC_STUB IWMWriterFileSink2_GetFileDuration_Stub(
  1673.     IRpcStubBuffer *This,
  1674.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1675.     PRPC_MESSAGE _pRpcMessage,
  1676.     DWORD *_pdwStubPhase);
  1677. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_GetFileSize_Proxy( 
  1678.     IWMWriterFileSink2 * This,
  1679.     /* [out] */ QWORD *pcbFile);
  1680. void __RPC_STUB IWMWriterFileSink2_GetFileSize_Stub(
  1681.     IRpcStubBuffer *This,
  1682.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1683.     PRPC_MESSAGE _pRpcMessage,
  1684.     DWORD *_pdwStubPhase);
  1685. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_Close_Proxy( 
  1686.     IWMWriterFileSink2 * This);
  1687. void __RPC_STUB IWMWriterFileSink2_Close_Stub(
  1688.     IRpcStubBuffer *This,
  1689.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1690.     PRPC_MESSAGE _pRpcMessage,
  1691.     DWORD *_pdwStubPhase);
  1692. HRESULT STDMETHODCALLTYPE IWMWriterFileSink2_IsClosed_Proxy( 
  1693.     IWMWriterFileSink2 * This,
  1694.     /* [out] */ BOOL *pfClosed);
  1695. void __RPC_STUB IWMWriterFileSink2_IsClosed_Stub(
  1696.     IRpcStubBuffer *This,
  1697.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1698.     PRPC_MESSAGE _pRpcMessage,
  1699.     DWORD *_pdwStubPhase);
  1700. #endif  /* __IWMWriterFileSink2_INTERFACE_DEFINED__ */
  1701. #ifndef __IWMWriterFileSink3_INTERFACE_DEFINED__
  1702. #define __IWMWriterFileSink3_INTERFACE_DEFINED__
  1703. /* interface IWMWriterFileSink3 */
  1704. /* [local][unique][helpstring][uuid][object] */ 
  1705. EXTERN_C const IID IID_IWMWriterFileSink3;
  1706. #if defined(__cplusplus) && !defined(CINTERFACE)
  1707.     
  1708.     MIDL_INTERFACE("3FEA4FEB-2945-47A7-A1DD-C53A8FC4C45C")
  1709.     IWMWriterFileSink3 : public IWMWriterFileSink2
  1710.     {
  1711.     public:
  1712.         virtual HRESULT STDMETHODCALLTYPE SetAutoIndexing( 
  1713.             /* [in] */ BOOL fDoAutoIndexing) = 0;
  1714.         
  1715.         virtual HRESULT STDMETHODCALLTYPE GetAutoIndexing( 
  1716.             /* [out] */ BOOL *pfAutoIndexing) = 0;
  1717.         
  1718.         virtual HRESULT STDMETHODCALLTYPE SetControlStream( 
  1719.             /* [in] */ WORD wStreamNumber,
  1720.             /* [in] */ BOOL fShouldControlStartAndStop) = 0;
  1721.         
  1722.         virtual HRESULT STDMETHODCALLTYPE GetMode( 
  1723.             /* [out] */ DWORD *pdwFileSinkMode) = 0;
  1724.         
  1725.         virtual HRESULT STDMETHODCALLTYPE OnDataUnitEx( 
  1726.             /* [in] */ WMT_FILESINK_DATA_UNIT *pFileSinkDataUnit) = 0;
  1727.         
  1728.         virtual HRESULT STDMETHODCALLTYPE SetUnbufferedIO( 
  1729.             /* [in] */ BOOL fUnbufferedIO,
  1730.             /* [in] */ BOOL fRestrictMemUsage) = 0;
  1731.         
  1732.         virtual HRESULT STDMETHODCALLTYPE GetUnbufferedIO( 
  1733.             /* [out] */ BOOL *pfUnbufferedIO) = 0;
  1734.         
  1735.         virtual HRESULT STDMETHODCALLTYPE CompleteOperations( void) = 0;
  1736.         
  1737.     };
  1738.     
  1739. #else  /* C style interface */
  1740.     typedef struct IWMWriterFileSink3Vtbl
  1741.     {
  1742.         BEGIN_INTERFACE
  1743.         
  1744.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1745.             IWMWriterFileSink3 * This,
  1746.             /* [in] */ REFIID riid,
  1747.             /* [iid_is][out] */ void **ppvObject);
  1748.         
  1749.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1750.             IWMWriterFileSink3 * This);
  1751.         
  1752.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1753.             IWMWriterFileSink3 * This);
  1754.         
  1755.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  1756.             IWMWriterFileSink3 * This,
  1757.             /* [in] */ INSSBuffer *pHeader);
  1758.         
  1759.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  1760.             IWMWriterFileSink3 * This,
  1761.             /* [out] */ BOOL *pfRealTime);
  1762.         
  1763.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  1764.             IWMWriterFileSink3 * This,
  1765.             /* [in] */ DWORD cbDataUnit,
  1766.             /* [out] */ INSSBuffer **ppDataUnit);
  1767.         
  1768.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  1769.             IWMWriterFileSink3 * This,
  1770.             /* [in] */ INSSBuffer *pDataUnit);
  1771.         
  1772.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  1773.             IWMWriterFileSink3 * This);
  1774.         
  1775.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  1776.             IWMWriterFileSink3 * This,
  1777.             /* [in] */ const WCHAR *pwszFilename);
  1778.         
  1779.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  1780.             IWMWriterFileSink3 * This,
  1781.             /* [in] */ QWORD cnsStartTime);
  1782.         
  1783.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  1784.             IWMWriterFileSink3 * This,
  1785.             /* [in] */ QWORD cnsStopTime);
  1786.         
  1787.         HRESULT ( STDMETHODCALLTYPE *IsStopped )( 
  1788.             IWMWriterFileSink3 * This,
  1789.             /* [out] */ BOOL *pfStopped);
  1790.         
  1791.         HRESULT ( STDMETHODCALLTYPE *GetFileDuration )( 
  1792.             IWMWriterFileSink3 * This,
  1793.             /* [out] */ QWORD *pcnsDuration);
  1794.         
  1795.         HRESULT ( STDMETHODCALLTYPE *GetFileSize )( 
  1796.             IWMWriterFileSink3 * This,
  1797.             /* [out] */ QWORD *pcbFile);
  1798.         
  1799.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  1800.             IWMWriterFileSink3 * This);
  1801.         
  1802.         HRESULT ( STDMETHODCALLTYPE *IsClosed )( 
  1803.             IWMWriterFileSink3 * This,
  1804.             /* [out] */ BOOL *pfClosed);
  1805.         
  1806.         HRESULT ( STDMETHODCALLTYPE *SetAutoIndexing )( 
  1807.             IWMWriterFileSink3 * This,
  1808.             /* [in] */ BOOL fDoAutoIndexing);
  1809.         
  1810.         HRESULT ( STDMETHODCALLTYPE *GetAutoIndexing )( 
  1811.             IWMWriterFileSink3 * This,
  1812.             /* [out] */ BOOL *pfAutoIndexing);
  1813.         
  1814.         HRESULT ( STDMETHODCALLTYPE *SetControlStream )( 
  1815.             IWMWriterFileSink3 * This,
  1816.             /* [in] */ WORD wStreamNumber,
  1817.             /* [in] */ BOOL fShouldControlStartAndStop);
  1818.         
  1819.         HRESULT ( STDMETHODCALLTYPE *GetMode )( 
  1820.             IWMWriterFileSink3 * This,
  1821.             /* [out] */ DWORD *pdwFileSinkMode);
  1822.         
  1823.         HRESULT ( STDMETHODCALLTYPE *OnDataUnitEx )( 
  1824.             IWMWriterFileSink3 * This,
  1825.             /* [in] */ WMT_FILESINK_DATA_UNIT *pFileSinkDataUnit);
  1826.         
  1827.         HRESULT ( STDMETHODCALLTYPE *SetUnbufferedIO )( 
  1828.             IWMWriterFileSink3 * This,
  1829.             /* [in] */ BOOL fUnbufferedIO,
  1830.             /* [in] */ BOOL fRestrictMemUsage);
  1831.         
  1832.         HRESULT ( STDMETHODCALLTYPE *GetUnbufferedIO )( 
  1833.             IWMWriterFileSink3 * This,
  1834.             /* [out] */ BOOL *pfUnbufferedIO);
  1835.         
  1836.         HRESULT ( STDMETHODCALLTYPE *CompleteOperations )( 
  1837.             IWMWriterFileSink3 * This);
  1838.         
  1839.         END_INTERFACE
  1840.     } IWMWriterFileSink3Vtbl;
  1841.     interface IWMWriterFileSink3
  1842.     {
  1843.         CONST_VTBL struct IWMWriterFileSink3Vtbl *lpVtbl;
  1844.     };
  1845.     
  1846. #ifdef COBJMACROS
  1847. #define IWMWriterFileSink3_QueryInterface(This,riid,ppvObject)
  1848.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1849. #define IWMWriterFileSink3_AddRef(This)
  1850.     (This)->lpVtbl -> AddRef(This)
  1851. #define IWMWriterFileSink3_Release(This)
  1852.     (This)->lpVtbl -> Release(This)
  1853. #define IWMWriterFileSink3_OnHeader(This,pHeader)
  1854.     (This)->lpVtbl -> OnHeader(This,pHeader)
  1855. #define IWMWriterFileSink3_IsRealTime(This,pfRealTime)
  1856.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  1857. #define IWMWriterFileSink3_AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1858.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  1859. #define IWMWriterFileSink3_OnDataUnit(This,pDataUnit)
  1860.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  1861. #define IWMWriterFileSink3_OnEndWriting(This)
  1862.     (This)->lpVtbl -> OnEndWriting(This)
  1863. #define IWMWriterFileSink3_Open(This,pwszFilename)
  1864.     (This)->lpVtbl -> Open(This,pwszFilename)
  1865. #define IWMWriterFileSink3_Start(This,cnsStartTime)
  1866.     (This)->lpVtbl -> Start(This,cnsStartTime)
  1867. #define IWMWriterFileSink3_Stop(This,cnsStopTime)
  1868.     (This)->lpVtbl -> Stop(This,cnsStopTime)
  1869. #define IWMWriterFileSink3_IsStopped(This,pfStopped)
  1870.     (This)->lpVtbl -> IsStopped(This,pfStopped)
  1871. #define IWMWriterFileSink3_GetFileDuration(This,pcnsDuration)
  1872.     (This)->lpVtbl -> GetFileDuration(This,pcnsDuration)
  1873. #define IWMWriterFileSink3_GetFileSize(This,pcbFile)
  1874.     (This)->lpVtbl -> GetFileSize(This,pcbFile)
  1875. #define IWMWriterFileSink3_Close(This)
  1876.     (This)->lpVtbl -> Close(This)
  1877. #define IWMWriterFileSink3_IsClosed(This,pfClosed)
  1878.     (This)->lpVtbl -> IsClosed(This,pfClosed)
  1879. #define IWMWriterFileSink3_SetAutoIndexing(This,fDoAutoIndexing)
  1880.     (This)->lpVtbl -> SetAutoIndexing(This,fDoAutoIndexing)
  1881. #define IWMWriterFileSink3_GetAutoIndexing(This,pfAutoIndexing)
  1882.     (This)->lpVtbl -> GetAutoIndexing(This,pfAutoIndexing)
  1883. #define IWMWriterFileSink3_SetControlStream(This,wStreamNumber,fShouldControlStartAndStop)
  1884.     (This)->lpVtbl -> SetControlStream(This,wStreamNumber,fShouldControlStartAndStop)
  1885. #define IWMWriterFileSink3_GetMode(This,pdwFileSinkMode)
  1886.     (This)->lpVtbl -> GetMode(This,pdwFileSinkMode)
  1887. #define IWMWriterFileSink3_OnDataUnitEx(This,pFileSinkDataUnit)
  1888.     (This)->lpVtbl -> OnDataUnitEx(This,pFileSinkDataUnit)
  1889. #define IWMWriterFileSink3_SetUnbufferedIO(This,fUnbufferedIO,fRestrictMemUsage)
  1890.     (This)->lpVtbl -> SetUnbufferedIO(This,fUnbufferedIO,fRestrictMemUsage)
  1891. #define IWMWriterFileSink3_GetUnbufferedIO(This,pfUnbufferedIO)
  1892.     (This)->lpVtbl -> GetUnbufferedIO(This,pfUnbufferedIO)
  1893. #define IWMWriterFileSink3_CompleteOperations(This)
  1894.     (This)->lpVtbl -> CompleteOperations(This)
  1895. #endif /* COBJMACROS */
  1896. #endif  /* C style interface */
  1897. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_SetAutoIndexing_Proxy( 
  1898.     IWMWriterFileSink3 * This,
  1899.     /* [in] */ BOOL fDoAutoIndexing);
  1900. void __RPC_STUB IWMWriterFileSink3_SetAutoIndexing_Stub(
  1901.     IRpcStubBuffer *This,
  1902.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1903.     PRPC_MESSAGE _pRpcMessage,
  1904.     DWORD *_pdwStubPhase);
  1905. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_GetAutoIndexing_Proxy( 
  1906.     IWMWriterFileSink3 * This,
  1907.     /* [out] */ BOOL *pfAutoIndexing);
  1908. void __RPC_STUB IWMWriterFileSink3_GetAutoIndexing_Stub(
  1909.     IRpcStubBuffer *This,
  1910.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1911.     PRPC_MESSAGE _pRpcMessage,
  1912.     DWORD *_pdwStubPhase);
  1913. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_SetControlStream_Proxy( 
  1914.     IWMWriterFileSink3 * This,
  1915.     /* [in] */ WORD wStreamNumber,
  1916.     /* [in] */ BOOL fShouldControlStartAndStop);
  1917. void __RPC_STUB IWMWriterFileSink3_SetControlStream_Stub(
  1918.     IRpcStubBuffer *This,
  1919.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1920.     PRPC_MESSAGE _pRpcMessage,
  1921.     DWORD *_pdwStubPhase);
  1922. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_GetMode_Proxy( 
  1923.     IWMWriterFileSink3 * This,
  1924.     /* [out] */ DWORD *pdwFileSinkMode);
  1925. void __RPC_STUB IWMWriterFileSink3_GetMode_Stub(
  1926.     IRpcStubBuffer *This,
  1927.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1928.     PRPC_MESSAGE _pRpcMessage,
  1929.     DWORD *_pdwStubPhase);
  1930. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_OnDataUnitEx_Proxy( 
  1931.     IWMWriterFileSink3 * This,
  1932.     /* [in] */ WMT_FILESINK_DATA_UNIT *pFileSinkDataUnit);
  1933. void __RPC_STUB IWMWriterFileSink3_OnDataUnitEx_Stub(
  1934.     IRpcStubBuffer *This,
  1935.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1936.     PRPC_MESSAGE _pRpcMessage,
  1937.     DWORD *_pdwStubPhase);
  1938. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_SetUnbufferedIO_Proxy( 
  1939.     IWMWriterFileSink3 * This,
  1940.     /* [in] */ BOOL fUnbufferedIO,
  1941.     /* [in] */ BOOL fRestrictMemUsage);
  1942. void __RPC_STUB IWMWriterFileSink3_SetUnbufferedIO_Stub(
  1943.     IRpcStubBuffer *This,
  1944.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1945.     PRPC_MESSAGE _pRpcMessage,
  1946.     DWORD *_pdwStubPhase);
  1947. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_GetUnbufferedIO_Proxy( 
  1948.     IWMWriterFileSink3 * This,
  1949.     /* [out] */ BOOL *pfUnbufferedIO);
  1950. void __RPC_STUB IWMWriterFileSink3_GetUnbufferedIO_Stub(
  1951.     IRpcStubBuffer *This,
  1952.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1953.     PRPC_MESSAGE _pRpcMessage,
  1954.     DWORD *_pdwStubPhase);
  1955. HRESULT STDMETHODCALLTYPE IWMWriterFileSink3_CompleteOperations_Proxy( 
  1956.     IWMWriterFileSink3 * This);
  1957. void __RPC_STUB IWMWriterFileSink3_CompleteOperations_Stub(
  1958.     IRpcStubBuffer *This,
  1959.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1960.     PRPC_MESSAGE _pRpcMessage,
  1961.     DWORD *_pdwStubPhase);
  1962. #endif  /* __IWMWriterFileSink3_INTERFACE_DEFINED__ */
  1963. #ifndef __IWMWriterNetworkSink_INTERFACE_DEFINED__
  1964. #define __IWMWriterNetworkSink_INTERFACE_DEFINED__
  1965. /* interface IWMWriterNetworkSink */
  1966. /* [local][unique][helpstring][uuid][object] */ 
  1967. EXTERN_C const IID IID_IWMWriterNetworkSink;
  1968. #if defined(__cplusplus) && !defined(CINTERFACE)
  1969.     
  1970.     MIDL_INTERFACE("96406BE7-2B2B-11d3-B36B-00C04F6108FF")
  1971.     IWMWriterNetworkSink : public IWMWriterSink
  1972.     {
  1973.     public:
  1974.         virtual HRESULT STDMETHODCALLTYPE SetMaximumClients( 
  1975.             /* [in] */ DWORD dwMaxClients) = 0;
  1976.         
  1977.         virtual HRESULT STDMETHODCALLTYPE GetMaximumClients( 
  1978.             /* [out] */ DWORD *pdwMaxClients) = 0;
  1979.         
  1980.         virtual HRESULT STDMETHODCALLTYPE SetNetworkProtocol( 
  1981.             /* [in] */ WMT_NET_PROTOCOL protocol) = 0;
  1982.         
  1983.         virtual HRESULT STDMETHODCALLTYPE GetNetworkProtocol( 
  1984.             /* [out] */ WMT_NET_PROTOCOL *pProtocol) = 0;
  1985.         
  1986.         virtual HRESULT STDMETHODCALLTYPE GetHostURL( 
  1987.             /* [out] */ WCHAR *pwszURL,
  1988.             /* [out][in] */ DWORD *pcchURL) = 0;
  1989.         
  1990.         virtual HRESULT STDMETHODCALLTYPE Open( 
  1991.             /* [out][in] */ DWORD *pdwPortNum) = 0;
  1992.         
  1993.         virtual HRESULT STDMETHODCALLTYPE Disconnect( void) = 0;
  1994.         
  1995.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  1996.         
  1997.     };
  1998.     
  1999. #else  /* C style interface */
  2000.     typedef struct IWMWriterNetworkSinkVtbl
  2001.     {
  2002.         BEGIN_INTERFACE
  2003.         
  2004.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2005.             IWMWriterNetworkSink * This,
  2006.             /* [in] */ REFIID riid,
  2007.             /* [iid_is][out] */ void **ppvObject);
  2008.         
  2009.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2010.             IWMWriterNetworkSink * This);
  2011.         
  2012.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2013.             IWMWriterNetworkSink * This);
  2014.         
  2015.         HRESULT ( STDMETHODCALLTYPE *OnHeader )( 
  2016.             IWMWriterNetworkSink * This,
  2017.             /* [in] */ INSSBuffer *pHeader);
  2018.         
  2019.         HRESULT ( STDMETHODCALLTYPE *IsRealTime )( 
  2020.             IWMWriterNetworkSink * This,
  2021.             /* [out] */ BOOL *pfRealTime);
  2022.         
  2023.         HRESULT ( STDMETHODCALLTYPE *AllocateDataUnit )( 
  2024.             IWMWriterNetworkSink * This,
  2025.             /* [in] */ DWORD cbDataUnit,
  2026.             /* [out] */ INSSBuffer **ppDataUnit);
  2027.         
  2028.         HRESULT ( STDMETHODCALLTYPE *OnDataUnit )( 
  2029.             IWMWriterNetworkSink * This,
  2030.             /* [in] */ INSSBuffer *pDataUnit);
  2031.         
  2032.         HRESULT ( STDMETHODCALLTYPE *OnEndWriting )( 
  2033.             IWMWriterNetworkSink * This);
  2034.         
  2035.         HRESULT ( STDMETHODCALLTYPE *SetMaximumClients )( 
  2036.             IWMWriterNetworkSink * This,
  2037.             /* [in] */ DWORD dwMaxClients);
  2038.         
  2039.         HRESULT ( STDMETHODCALLTYPE *GetMaximumClients )( 
  2040.             IWMWriterNetworkSink * This,
  2041.             /* [out] */ DWORD *pdwMaxClients);
  2042.         
  2043.         HRESULT ( STDMETHODCALLTYPE *SetNetworkProtocol )( 
  2044.             IWMWriterNetworkSink * This,
  2045.             /* [in] */ WMT_NET_PROTOCOL protocol);
  2046.         
  2047.         HRESULT ( STDMETHODCALLTYPE *GetNetworkProtocol )( 
  2048.             IWMWriterNetworkSink * This,
  2049.             /* [out] */ WMT_NET_PROTOCOL *pProtocol);
  2050.         
  2051.         HRESULT ( STDMETHODCALLTYPE *GetHostURL )( 
  2052.             IWMWriterNetworkSink * This,
  2053.             /* [out] */ WCHAR *pwszURL,
  2054.             /* [out][in] */ DWORD *pcchURL);
  2055.         
  2056.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  2057.             IWMWriterNetworkSink * This,
  2058.             /* [out][in] */ DWORD *pdwPortNum);
  2059.         
  2060.         HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
  2061.             IWMWriterNetworkSink * This);
  2062.         
  2063.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  2064.             IWMWriterNetworkSink * This);
  2065.         
  2066.         END_INTERFACE
  2067.     } IWMWriterNetworkSinkVtbl;
  2068.     interface IWMWriterNetworkSink
  2069.     {
  2070.         CONST_VTBL struct IWMWriterNetworkSinkVtbl *lpVtbl;
  2071.     };
  2072.     
  2073. #ifdef COBJMACROS
  2074. #define IWMWriterNetworkSink_QueryInterface(This,riid,ppvObject)
  2075.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2076. #define IWMWriterNetworkSink_AddRef(This)
  2077.     (This)->lpVtbl -> AddRef(This)
  2078. #define IWMWriterNetworkSink_Release(This)
  2079.     (This)->lpVtbl -> Release(This)
  2080. #define IWMWriterNetworkSink_OnHeader(This,pHeader)
  2081.     (This)->lpVtbl -> OnHeader(This,pHeader)
  2082. #define IWMWriterNetworkSink_IsRealTime(This,pfRealTime)
  2083.     (This)->lpVtbl -> IsRealTime(This,pfRealTime)
  2084. #define IWMWriterNetworkSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  2085.     (This)->lpVtbl -> AllocateDataUnit(This,cbDataUnit,ppDataUnit)
  2086. #define IWMWriterNetworkSink_OnDataUnit(This,pDataUnit)
  2087.     (This)->lpVtbl -> OnDataUnit(This,pDataUnit)
  2088. #define IWMWriterNetworkSink_OnEndWriting(This)
  2089.     (This)->lpVtbl -> OnEndWriting(This)
  2090. #define IWMWriterNetworkSink_SetMaximumClients(This,dwMaxClients)
  2091.     (This)->lpVtbl -> SetMaximumClients(This,dwMaxClients)
  2092. #define IWMWriterNetworkSink_GetMaximumClients(This,pdwMaxClients)
  2093.     (This)->lpVtbl -> GetMaximumClients(This,pdwMaxClients)
  2094. #define IWMWriterNetworkSink_SetNetworkProtocol(This,protocol)
  2095.     (This)->lpVtbl -> SetNetworkProtocol(This,protocol)
  2096. #define IWMWriterNetworkSink_GetNetworkProtocol(This,pProtocol)
  2097.     (This)->lpVtbl -> GetNetworkProtocol(This,pProtocol)
  2098. #define IWMWriterNetworkSink_GetHostURL(This,pwszURL,pcchURL)
  2099.     (This)->lpVtbl -> GetHostURL(This,pwszURL,pcchURL)
  2100. #define IWMWriterNetworkSink_Open(This,pdwPortNum)
  2101.     (This)->lpVtbl -> Open(This,pdwPortNum)
  2102. #define IWMWriterNetworkSink_Disconnect(This)
  2103.     (This)->lpVtbl -> Disconnect(This)
  2104. #define IWMWriterNetworkSink_Close(This)
  2105.     (This)->lpVtbl -> Close(This)
  2106. #endif /* COBJMACROS */
  2107. #endif  /* C style interface */
  2108. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_SetMaximumClients_Proxy( 
  2109.     IWMWriterNetworkSink * This,
  2110.     /* [in] */ DWORD dwMaxClients);
  2111. void __RPC_STUB IWMWriterNetworkSink_SetMaximumClients_Stub(
  2112.     IRpcStubBuffer *This,
  2113.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2114.     PRPC_MESSAGE _pRpcMessage,
  2115.     DWORD *_pdwStubPhase);
  2116. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_GetMaximumClients_Proxy( 
  2117.     IWMWriterNetworkSink * This,
  2118.     /* [out] */ DWORD *pdwMaxClients);
  2119. void __RPC_STUB IWMWriterNetworkSink_GetMaximumClients_Stub(
  2120.     IRpcStubBuffer *This,
  2121.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2122.     PRPC_MESSAGE _pRpcMessage,
  2123.     DWORD *_pdwStubPhase);
  2124. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_SetNetworkProtocol_Proxy( 
  2125.     IWMWriterNetworkSink * This,
  2126.     /* [in] */ WMT_NET_PROTOCOL protocol);
  2127. void __RPC_STUB IWMWriterNetworkSink_SetNetworkProtocol_Stub(
  2128.     IRpcStubBuffer *This,
  2129.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2130.     PRPC_MESSAGE _pRpcMessage,
  2131.     DWORD *_pdwStubPhase);
  2132. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_GetNetworkProtocol_Proxy( 
  2133.     IWMWriterNetworkSink * This,
  2134.     /* [out] */ WMT_NET_PROTOCOL *pProtocol);
  2135. void __RPC_STUB IWMWriterNetworkSink_GetNetworkProtocol_Stub(
  2136.     IRpcStubBuffer *This,
  2137.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2138.     PRPC_MESSAGE _pRpcMessage,
  2139.     DWORD *_pdwStubPhase);
  2140. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_GetHostURL_Proxy( 
  2141.     IWMWriterNetworkSink * This,
  2142.     /* [out] */ WCHAR *pwszURL,
  2143.     /* [out][in] */ DWORD *pcchURL);
  2144. void __RPC_STUB IWMWriterNetworkSink_GetHostURL_Stub(
  2145.     IRpcStubBuffer *This,
  2146.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2147.     PRPC_MESSAGE _pRpcMessage,
  2148.     DWORD *_pdwStubPhase);
  2149. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_Open_Proxy( 
  2150.     IWMWriterNetworkSink * This,
  2151.     /* [out][in] */ DWORD *pdwPortNum);
  2152. void __RPC_STUB IWMWriterNetworkSink_Open_Stub(
  2153.     IRpcStubBuffer *This,
  2154.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2155.     PRPC_MESSAGE _pRpcMessage,
  2156.     DWORD *_pdwStubPhase);
  2157. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_Disconnect_Proxy( 
  2158.     IWMWriterNetworkSink * This);
  2159. void __RPC_STUB IWMWriterNetworkSink_Disconnect_Stub(
  2160.     IRpcStubBuffer *This,
  2161.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2162.     PRPC_MESSAGE _pRpcMessage,
  2163.     DWORD *_pdwStubPhase);
  2164. HRESULT STDMETHODCALLTYPE IWMWriterNetworkSink_Close_Proxy( 
  2165.     IWMWriterNetworkSink * This);
  2166. void __RPC_STUB IWMWriterNetworkSink_Close_Stub(
  2167.     IRpcStubBuffer *This,
  2168.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2169.     PRPC_MESSAGE _pRpcMessage,
  2170.     DWORD *_pdwStubPhase);
  2171. #endif  /* __IWMWriterNetworkSink_INTERFACE_DEFINED__ */
  2172. #ifndef __IWMClientConnections_INTERFACE_DEFINED__
  2173. #define __IWMClientConnections_INTERFACE_DEFINED__
  2174. /* interface IWMClientConnections */
  2175. /* [local][unique][helpstring][uuid][object] */ 
  2176. EXTERN_C const IID IID_IWMClientConnections;
  2177. #if defined(__cplusplus) && !defined(CINTERFACE)
  2178.     
  2179.     MIDL_INTERFACE("73C66010-A299-41df-B1F0-CCF03B09C1C6")
  2180.     IWMClientConnections : public IUnknown
  2181.     {
  2182.     public:
  2183.         virtual HRESULT STDMETHODCALLTYPE GetClientCount( 
  2184.             /* [out] */ DWORD *pcClients) = 0;
  2185.         
  2186.         virtual HRESULT STDMETHODCALLTYPE GetClientProperties( 
  2187.             /* [in] */ DWORD dwClientNum,
  2188.             /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties) = 0;
  2189.         
  2190.     };
  2191.     
  2192. #else  /* C style interface */
  2193.     typedef struct IWMClientConnectionsVtbl
  2194.     {
  2195.         BEGIN_INTERFACE
  2196.         
  2197.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2198.             IWMClientConnections * This,
  2199.             /* [in] */ REFIID riid,
  2200.             /* [iid_is][out] */ void **ppvObject);
  2201.         
  2202.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2203.             IWMClientConnections * This);
  2204.         
  2205.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2206.             IWMClientConnections * This);
  2207.         
  2208.         HRESULT ( STDMETHODCALLTYPE *GetClientCount )( 
  2209.             IWMClientConnections * This,
  2210.             /* [out] */ DWORD *pcClients);
  2211.         
  2212.         HRESULT ( STDMETHODCALLTYPE *GetClientProperties )( 
  2213.             IWMClientConnections * This,
  2214.             /* [in] */ DWORD dwClientNum,
  2215.             /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties);
  2216.         
  2217.         END_INTERFACE
  2218.     } IWMClientConnectionsVtbl;
  2219.     interface IWMClientConnections
  2220.     {
  2221.         CONST_VTBL struct IWMClientConnectionsVtbl *lpVtbl;
  2222.     };
  2223.     
  2224. #ifdef COBJMACROS
  2225. #define IWMClientConnections_QueryInterface(This,riid,ppvObject)
  2226.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2227. #define IWMClientConnections_AddRef(This)
  2228.     (This)->lpVtbl -> AddRef(This)
  2229. #define IWMClientConnections_Release(This)
  2230.     (This)->lpVtbl -> Release(This)
  2231. #define IWMClientConnections_GetClientCount(This,pcClients)
  2232.     (This)->lpVtbl -> GetClientCount(This,pcClients)
  2233. #define IWMClientConnections_GetClientProperties(This,dwClientNum,pClientProperties)
  2234.     (This)->lpVtbl -> GetClientProperties(This,dwClientNum,pClientProperties)
  2235. #endif /* COBJMACROS */
  2236. #endif  /* C style interface */
  2237. HRESULT STDMETHODCALLTYPE IWMClientConnections_GetClientCount_Proxy( 
  2238.     IWMClientConnections * This,
  2239.     /* [out] */ DWORD *pcClients);
  2240. void __RPC_STUB IWMClientConnections_GetClientCount_Stub(
  2241.     IRpcStubBuffer *This,
  2242.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2243.     PRPC_MESSAGE _pRpcMessage,
  2244.     DWORD *_pdwStubPhase);
  2245. HRESULT STDMETHODCALLTYPE IWMClientConnections_GetClientProperties_Proxy( 
  2246.     IWMClientConnections * This,
  2247.     /* [in] */ DWORD dwClientNum,
  2248.     /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties);
  2249. void __RPC_STUB IWMClientConnections_GetClientProperties_Stub(
  2250.     IRpcStubBuffer *This,
  2251.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2252.     PRPC_MESSAGE _pRpcMessage,
  2253.     DWORD *_pdwStubPhase);
  2254. #endif  /* __IWMClientConnections_INTERFACE_DEFINED__ */
  2255. #ifndef __IWMClientConnections2_INTERFACE_DEFINED__
  2256. #define __IWMClientConnections2_INTERFACE_DEFINED__
  2257. /* interface IWMClientConnections2 */
  2258. /* [local][unique][helpstring][uuid][object] */ 
  2259. EXTERN_C const IID IID_IWMClientConnections2;
  2260. #if defined(__cplusplus) && !defined(CINTERFACE)
  2261.     
  2262.     MIDL_INTERFACE("4091571e-4701-4593-bb3d-d5f5f0c74246")
  2263.     IWMClientConnections2 : public IWMClientConnections
  2264.     {
  2265.     public:
  2266.         virtual HRESULT STDMETHODCALLTYPE GetClientInfo( 
  2267.             /* [in] */ DWORD dwClientNum,
  2268.             /* [size_is][out] */ WCHAR *pwszNetworkAddress,
  2269.             /* [out][in] */ DWORD *pcchNetworkAddress,
  2270.             /* [size_is][out] */ WCHAR *pwszPort,
  2271.             /* [out][in] */ DWORD *pcchPort,
  2272.             /* [size_is][out] */ WCHAR *pwszDNSName,
  2273.             /* [out][in] */ DWORD *pcchDNSName) = 0;
  2274.         
  2275.     };
  2276.     
  2277. #else  /* C style interface */
  2278.     typedef struct IWMClientConnections2Vtbl
  2279.     {
  2280.         BEGIN_INTERFACE
  2281.         
  2282.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2283.             IWMClientConnections2 * This,
  2284.             /* [in] */ REFIID riid,
  2285.             /* [iid_is][out] */ void **ppvObject);
  2286.         
  2287.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2288.             IWMClientConnections2 * This);
  2289.         
  2290.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2291.             IWMClientConnections2 * This);
  2292.         
  2293.         HRESULT ( STDMETHODCALLTYPE *GetClientCount )( 
  2294.             IWMClientConnections2 * This,
  2295.             /* [out] */ DWORD *pcClients);
  2296.         
  2297.         HRESULT ( STDMETHODCALLTYPE *GetClientProperties )( 
  2298.             IWMClientConnections2 * This,
  2299.             /* [in] */ DWORD dwClientNum,
  2300.             /* [out] */ WM_CLIENT_PROPERTIES *pClientProperties);
  2301.         
  2302.         HRESULT ( STDMETHODCALLTYPE *GetClientInfo )( 
  2303.             IWMClientConnections2 * This,
  2304.             /* [in] */ DWORD dwClientNum,
  2305.             /* [size_is][out] */ WCHAR *pwszNetworkAddress,
  2306.             /* [out][in] */ DWORD *pcchNetworkAddress,
  2307.             /* [size_is][out] */ WCHAR *pwszPort,
  2308.             /* [out][in] */ DWORD *pcchPort,
  2309.             /* [size_is][out] */ WCHAR *pwszDNSName,
  2310.             /* [out][in] */ DWORD *pcchDNSName);
  2311.         
  2312.         END_INTERFACE
  2313.     } IWMClientConnections2Vtbl;
  2314.     interface IWMClientConnections2
  2315.     {
  2316.         CONST_VTBL struct IWMClientConnections2Vtbl *lpVtbl;
  2317.     };
  2318.     
  2319. #ifdef COBJMACROS
  2320. #define IWMClientConnections2_QueryInterface(This,riid,ppvObject)
  2321.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2322. #define IWMClientConnections2_AddRef(This)
  2323.     (This)->lpVtbl -> AddRef(This)
  2324. #define IWMClientConnections2_Release(This)
  2325.     (This)->lpVtbl -> Release(This)
  2326. #define IWMClientConnections2_GetClientCount(This,pcClients)
  2327.     (This)->lpVtbl -> GetClientCount(This,pcClients)
  2328. #define IWMClientConnections2_GetClientProperties(This,dwClientNum,pClientProperties)
  2329.     (This)->lpVtbl -> GetClientProperties(This,dwClientNum,pClientProperties)
  2330. #define IWMClientConnections2_GetClientInfo(This,dwClientNum,pwszNetworkAddress,pcchNetworkAddress,pwszPort,pcchPort,pwszDNSName,pcchDNSName)
  2331.     (This)->lpVtbl -> GetClientInfo(This,dwClientNum,pwszNetworkAddress,pcchNetworkAddress,pwszPort,pcchPort,pwszDNSName,pcchDNSName)
  2332. #endif /* COBJMACROS */
  2333. #endif  /* C style interface */
  2334. HRESULT STDMETHODCALLTYPE IWMClientConnections2_GetClientInfo_Proxy( 
  2335.     IWMClientConnections2 * This,
  2336.     /* [in] */ DWORD dwClientNum,
  2337.     /* [size_is][out] */ WCHAR *pwszNetworkAddress,
  2338.     /* [out][in] */ DWORD *pcchNetworkAddress,
  2339.     /* [size_is][out] */ WCHAR *pwszPort,
  2340.     /* [out][in] */ DWORD *pcchPort,
  2341.     /* [size_is][out] */ WCHAR *pwszDNSName,
  2342.     /* [out][in] */ DWORD *pcchDNSName);
  2343. void __RPC_STUB IWMClientConnections2_GetClientInfo_Stub(
  2344.     IRpcStubBuffer *This,
  2345.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2346.     PRPC_MESSAGE _pRpcMessage,
  2347.     DWORD *_pdwStubPhase);
  2348. #endif  /* __IWMClientConnections2_INTERFACE_DEFINED__ */
  2349. #ifndef __IWMReaderAdvanced_INTERFACE_DEFINED__
  2350. #define __IWMReaderAdvanced_INTERFACE_DEFINED__
  2351. /* interface IWMReaderAdvanced */
  2352. /* [local][unique][helpstring][uuid][object] */ 
  2353. EXTERN_C const IID IID_IWMReaderAdvanced;
  2354. #if defined(__cplusplus) && !defined(CINTERFACE)
  2355.     
  2356.     MIDL_INTERFACE("96406BEA-2B2B-11d3-B36B-00C04F6108FF")
  2357.     IWMReaderAdvanced : public IUnknown
  2358.     {
  2359.     public:
  2360.         virtual HRESULT STDMETHODCALLTYPE SetUserProvidedClock( 
  2361.             /* [in] */ BOOL fUserClock) = 0;
  2362.         
  2363.         virtual HRESULT STDMETHODCALLTYPE GetUserProvidedClock( 
  2364.             /* [out] */ BOOL *pfUserClock) = 0;
  2365.         
  2366.         virtual HRESULT STDMETHODCALLTYPE DeliverTime( 
  2367.             /* [in] */ QWORD cnsTime) = 0;
  2368.         
  2369.         virtual HRESULT STDMETHODCALLTYPE SetManualStreamSelection( 
  2370.             /* [in] */ BOOL fSelection) = 0;
  2371.         
  2372.         virtual HRESULT STDMETHODCALLTYPE GetManualStreamSelection( 
  2373.             /* [out] */ BOOL *pfSelection) = 0;
  2374.         
  2375.         virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( 
  2376.             /* [in] */ WORD cStreamCount,
  2377.             /* [in] */ WORD *pwStreamNumbers,
  2378.             /* [in] */ WMT_STREAM_SELECTION *pSelections) = 0;
  2379.         
  2380.         virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( 
  2381.             /* [in] */ WORD wStreamNum,
  2382.             /* [out] */ WMT_STREAM_SELECTION *pSelection) = 0;
  2383.         
  2384.         virtual HRESULT STDMETHODCALLTYPE SetReceiveSelectionCallbacks( 
  2385.             /* [in] */ BOOL fGetCallbacks) = 0;
  2386.         
  2387.         virtual HRESULT STDMETHODCALLTYPE GetReceiveSelectionCallbacks( 
  2388.             /* [out] */ BOOL *pfGetCallbacks) = 0;
  2389.         
  2390.         virtual HRESULT STDMETHODCALLTYPE SetReceiveStreamSamples( 
  2391.             /* [in] */ WORD wStreamNum,
  2392.             /* [in] */ BOOL fReceiveStreamSamples) = 0;
  2393.         
  2394.         virtual HRESULT STDMETHODCALLTYPE GetReceiveStreamSamples( 
  2395.             /* [in] */ WORD wStreamNum,
  2396.             /* [out] */ BOOL *pfReceiveStreamSamples) = 0;
  2397.         
  2398.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput( 
  2399.             /* [in] */ DWORD dwOutputNum,
  2400.             /* [in] */ BOOL fAllocate) = 0;
  2401.         
  2402.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput( 
  2403.             /* [in] */ DWORD dwOutputNum,
  2404.             /* [out] */ BOOL *pfAllocate) = 0;
  2405.         
  2406.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream( 
  2407.             /* [in] */ WORD wStreamNum,
  2408.             /* [in] */ BOOL fAllocate) = 0;
  2409.         
  2410.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream( 
  2411.             /* [in] */ WORD dwSreamNum,
  2412.             /* [out] */ BOOL *pfAllocate) = 0;
  2413.         
  2414.         virtual HRESULT STDMETHODCALLTYPE GetStatistics( 
  2415.             /* [out][in] */ WM_READER_STATISTICS *pStatistics) = 0;
  2416.         
  2417.         virtual HRESULT STDMETHODCALLTYPE SetClientInfo( 
  2418.             /* [in] */ WM_READER_CLIENTINFO *pClientInfo) = 0;
  2419.         
  2420.         virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( 
  2421.             /* [in] */ DWORD dwOutput,
  2422.             /* [out] */ DWORD *pcbMax) = 0;
  2423.         
  2424.         virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( 
  2425.             /* [in] */ WORD wStream,
  2426.             /* [out] */ DWORD *pcbMax) = 0;
  2427.         
  2428.         virtual HRESULT STDMETHODCALLTYPE NotifyLateDelivery( 
  2429.             QWORD cnsLateness) = 0;
  2430.         
  2431.     };
  2432.     
  2433. #else  /* C style interface */
  2434.     typedef struct IWMReaderAdvancedVtbl
  2435.     {
  2436.         BEGIN_INTERFACE
  2437.         
  2438.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2439.             IWMReaderAdvanced * This,
  2440.             /* [in] */ REFIID riid,
  2441.             /* [iid_is][out] */ void **ppvObject);
  2442.         
  2443.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2444.             IWMReaderAdvanced * This);
  2445.         
  2446.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2447.             IWMReaderAdvanced * This);
  2448.         
  2449.         HRESULT ( STDMETHODCALLTYPE *SetUserProvidedClock )( 
  2450.             IWMReaderAdvanced * This,
  2451.             /* [in] */ BOOL fUserClock);
  2452.         
  2453.         HRESULT ( STDMETHODCALLTYPE *GetUserProvidedClock )( 
  2454.             IWMReaderAdvanced * This,
  2455.             /* [out] */ BOOL *pfUserClock);
  2456.         
  2457.         HRESULT ( STDMETHODCALLTYPE *DeliverTime )( 
  2458.             IWMReaderAdvanced * This,
  2459.             /* [in] */ QWORD cnsTime);
  2460.         
  2461.         HRESULT ( STDMETHODCALLTYPE *SetManualStreamSelection )( 
  2462.             IWMReaderAdvanced * This,
  2463.             /* [in] */ BOOL fSelection);
  2464.         
  2465.         HRESULT ( STDMETHODCALLTYPE *GetManualStreamSelection )( 
  2466.             IWMReaderAdvanced * This,
  2467.             /* [out] */ BOOL *pfSelection);
  2468.         
  2469.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  2470.             IWMReaderAdvanced * This,
  2471.             /* [in] */ WORD cStreamCount,
  2472.             /* [in] */ WORD *pwStreamNumbers,
  2473.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  2474.         
  2475.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  2476.             IWMReaderAdvanced * This,
  2477.             /* [in] */ WORD wStreamNum,
  2478.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  2479.         
  2480.         HRESULT ( STDMETHODCALLTYPE *SetReceiveSelectionCallbacks )( 
  2481.             IWMReaderAdvanced * This,
  2482.             /* [in] */ BOOL fGetCallbacks);
  2483.         
  2484.         HRESULT ( STDMETHODCALLTYPE *GetReceiveSelectionCallbacks )( 
  2485.             IWMReaderAdvanced * This,
  2486.             /* [out] */ BOOL *pfGetCallbacks);
  2487.         
  2488.         HRESULT ( STDMETHODCALLTYPE *SetReceiveStreamSamples )( 
  2489.             IWMReaderAdvanced * This,
  2490.             /* [in] */ WORD wStreamNum,
  2491.             /* [in] */ BOOL fReceiveStreamSamples);
  2492.         
  2493.         HRESULT ( STDMETHODCALLTYPE *GetReceiveStreamSamples )( 
  2494.             IWMReaderAdvanced * This,
  2495.             /* [in] */ WORD wStreamNum,
  2496.             /* [out] */ BOOL *pfReceiveStreamSamples);
  2497.         
  2498.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForOutput )( 
  2499.             IWMReaderAdvanced * This,
  2500.             /* [in] */ DWORD dwOutputNum,
  2501.             /* [in] */ BOOL fAllocate);
  2502.         
  2503.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForOutput )( 
  2504.             IWMReaderAdvanced * This,
  2505.             /* [in] */ DWORD dwOutputNum,
  2506.             /* [out] */ BOOL *pfAllocate);
  2507.         
  2508.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForStream )( 
  2509.             IWMReaderAdvanced * This,
  2510.             /* [in] */ WORD wStreamNum,
  2511.             /* [in] */ BOOL fAllocate);
  2512.         
  2513.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForStream )( 
  2514.             IWMReaderAdvanced * This,
  2515.             /* [in] */ WORD dwSreamNum,
  2516.             /* [out] */ BOOL *pfAllocate);
  2517.         
  2518.         HRESULT ( STDMETHODCALLTYPE *GetStatistics )( 
  2519.             IWMReaderAdvanced * This,
  2520.             /* [out][in] */ WM_READER_STATISTICS *pStatistics);
  2521.         
  2522.         HRESULT ( STDMETHODCALLTYPE *SetClientInfo )( 
  2523.             IWMReaderAdvanced * This,
  2524.             /* [in] */ WM_READER_CLIENTINFO *pClientInfo);
  2525.         
  2526.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  2527.             IWMReaderAdvanced * This,
  2528.             /* [in] */ DWORD dwOutput,
  2529.             /* [out] */ DWORD *pcbMax);
  2530.         
  2531.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  2532.             IWMReaderAdvanced * This,
  2533.             /* [in] */ WORD wStream,
  2534.             /* [out] */ DWORD *pcbMax);
  2535.         
  2536.         HRESULT ( STDMETHODCALLTYPE *NotifyLateDelivery )( 
  2537.             IWMReaderAdvanced * This,
  2538.             QWORD cnsLateness);
  2539.         
  2540.         END_INTERFACE
  2541.     } IWMReaderAdvancedVtbl;
  2542.     interface IWMReaderAdvanced
  2543.     {
  2544.         CONST_VTBL struct IWMReaderAdvancedVtbl *lpVtbl;
  2545.     };
  2546.     
  2547. #ifdef COBJMACROS
  2548. #define IWMReaderAdvanced_QueryInterface(This,riid,ppvObject)
  2549.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2550. #define IWMReaderAdvanced_AddRef(This)
  2551.     (This)->lpVtbl -> AddRef(This)
  2552. #define IWMReaderAdvanced_Release(This)
  2553.     (This)->lpVtbl -> Release(This)
  2554. #define IWMReaderAdvanced_SetUserProvidedClock(This,fUserClock)
  2555.     (This)->lpVtbl -> SetUserProvidedClock(This,fUserClock)
  2556. #define IWMReaderAdvanced_GetUserProvidedClock(This,pfUserClock)
  2557.     (This)->lpVtbl -> GetUserProvidedClock(This,pfUserClock)
  2558. #define IWMReaderAdvanced_DeliverTime(This,cnsTime)
  2559.     (This)->lpVtbl -> DeliverTime(This,cnsTime)
  2560. #define IWMReaderAdvanced_SetManualStreamSelection(This,fSelection)
  2561.     (This)->lpVtbl -> SetManualStreamSelection(This,fSelection)
  2562. #define IWMReaderAdvanced_GetManualStreamSelection(This,pfSelection)
  2563.     (This)->lpVtbl -> GetManualStreamSelection(This,pfSelection)
  2564. #define IWMReaderAdvanced_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  2565.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)