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

Delphi控件源码

开发平台:

Delphi

  1.     /* [in] */ IWMReaderCallback *pCallback,
  2.     /* [in] */ void *pvContext);
  3. void __RPC_STUB IWMReader_Open_Stub(
  4.     IRpcStubBuffer *This,
  5.     IRpcChannelBuffer *_pRpcChannelBuffer,
  6.     PRPC_MESSAGE _pRpcMessage,
  7.     DWORD *_pdwStubPhase);
  8. HRESULT STDMETHODCALLTYPE IWMReader_Close_Proxy( 
  9.     IWMReader * This);
  10. void __RPC_STUB IWMReader_Close_Stub(
  11.     IRpcStubBuffer *This,
  12.     IRpcChannelBuffer *_pRpcChannelBuffer,
  13.     PRPC_MESSAGE _pRpcMessage,
  14.     DWORD *_pdwStubPhase);
  15. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputCount_Proxy( 
  16.     IWMReader * This,
  17.     /* [out] */ DWORD *pcOutputs);
  18. void __RPC_STUB IWMReader_GetOutputCount_Stub(
  19.     IRpcStubBuffer *This,
  20.     IRpcChannelBuffer *_pRpcChannelBuffer,
  21.     PRPC_MESSAGE _pRpcMessage,
  22.     DWORD *_pdwStubPhase);
  23. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputProps_Proxy( 
  24.     IWMReader * This,
  25.     /* [in] */ DWORD dwOutputNum,
  26.     /* [out] */ IWMOutputMediaProps **ppOutput);
  27. void __RPC_STUB IWMReader_GetOutputProps_Stub(
  28.     IRpcStubBuffer *This,
  29.     IRpcChannelBuffer *_pRpcChannelBuffer,
  30.     PRPC_MESSAGE _pRpcMessage,
  31.     DWORD *_pdwStubPhase);
  32. HRESULT STDMETHODCALLTYPE IWMReader_SetOutputProps_Proxy( 
  33.     IWMReader * This,
  34.     /* [in] */ DWORD dwOutputNum,
  35.     /* [in] */ IWMOutputMediaProps *pOutput);
  36. void __RPC_STUB IWMReader_SetOutputProps_Stub(
  37.     IRpcStubBuffer *This,
  38.     IRpcChannelBuffer *_pRpcChannelBuffer,
  39.     PRPC_MESSAGE _pRpcMessage,
  40.     DWORD *_pdwStubPhase);
  41. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputFormatCount_Proxy( 
  42.     IWMReader * This,
  43.     /* [in] */ DWORD dwOutputNumber,
  44.     /* [out] */ DWORD *pcFormats);
  45. void __RPC_STUB IWMReader_GetOutputFormatCount_Stub(
  46.     IRpcStubBuffer *This,
  47.     IRpcChannelBuffer *_pRpcChannelBuffer,
  48.     PRPC_MESSAGE _pRpcMessage,
  49.     DWORD *_pdwStubPhase);
  50. HRESULT STDMETHODCALLTYPE IWMReader_GetOutputFormat_Proxy( 
  51.     IWMReader * This,
  52.     /* [in] */ DWORD dwOutputNumber,
  53.     /* [in] */ DWORD dwFormatNumber,
  54.     /* [out] */ IWMOutputMediaProps **ppProps);
  55. void __RPC_STUB IWMReader_GetOutputFormat_Stub(
  56.     IRpcStubBuffer *This,
  57.     IRpcChannelBuffer *_pRpcChannelBuffer,
  58.     PRPC_MESSAGE _pRpcMessage,
  59.     DWORD *_pdwStubPhase);
  60. HRESULT STDMETHODCALLTYPE IWMReader_Start_Proxy( 
  61.     IWMReader * This,
  62.     /* [in] */ QWORD cnsStart,
  63.     /* [in] */ QWORD cnsDuration,
  64.     /* [in] */ float fRate,
  65.     /* [in] */ void *pvContext);
  66. void __RPC_STUB IWMReader_Start_Stub(
  67.     IRpcStubBuffer *This,
  68.     IRpcChannelBuffer *_pRpcChannelBuffer,
  69.     PRPC_MESSAGE _pRpcMessage,
  70.     DWORD *_pdwStubPhase);
  71. HRESULT STDMETHODCALLTYPE IWMReader_Stop_Proxy( 
  72.     IWMReader * This);
  73. void __RPC_STUB IWMReader_Stop_Stub(
  74.     IRpcStubBuffer *This,
  75.     IRpcChannelBuffer *_pRpcChannelBuffer,
  76.     PRPC_MESSAGE _pRpcMessage,
  77.     DWORD *_pdwStubPhase);
  78. HRESULT STDMETHODCALLTYPE IWMReader_Pause_Proxy( 
  79.     IWMReader * This);
  80. void __RPC_STUB IWMReader_Pause_Stub(
  81.     IRpcStubBuffer *This,
  82.     IRpcChannelBuffer *_pRpcChannelBuffer,
  83.     PRPC_MESSAGE _pRpcMessage,
  84.     DWORD *_pdwStubPhase);
  85. HRESULT STDMETHODCALLTYPE IWMReader_Resume_Proxy( 
  86.     IWMReader * This);
  87. void __RPC_STUB IWMReader_Resume_Stub(
  88.     IRpcStubBuffer *This,
  89.     IRpcChannelBuffer *_pRpcChannelBuffer,
  90.     PRPC_MESSAGE _pRpcMessage,
  91.     DWORD *_pdwStubPhase);
  92. #endif  /* __IWMReader_INTERFACE_DEFINED__ */
  93. #ifndef __IWMSyncReader_INTERFACE_DEFINED__
  94. #define __IWMSyncReader_INTERFACE_DEFINED__
  95. /* interface IWMSyncReader */
  96. /* [local][unique][helpstring][uuid][object] */ 
  97. EXTERN_C const IID IID_IWMSyncReader;
  98. #if defined(__cplusplus) && !defined(CINTERFACE)
  99.     
  100.     MIDL_INTERFACE("9397F121-7705-4dc9-B049-98B698188414")
  101.     IWMSyncReader : public IUnknown
  102.     {
  103.     public:
  104.         virtual HRESULT STDMETHODCALLTYPE Open( 
  105.             /* [in] */ const WCHAR *pwszFilename) = 0;
  106.         
  107.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  108.         
  109.         virtual HRESULT STDMETHODCALLTYPE SetRange( 
  110.             /* [in] */ QWORD cnsStartTime,
  111.             /* [in] */ LONGLONG cnsDuration) = 0;
  112.         
  113.         virtual HRESULT STDMETHODCALLTYPE SetRangeByFrame( 
  114.             /* [in] */ WORD wStreamNum,
  115.             /* [in] */ QWORD qwFrameNumber,
  116.             /* [in] */ LONGLONG cFramesToRead) = 0;
  117.         
  118.         virtual HRESULT STDMETHODCALLTYPE GetNextSample( 
  119.             /* [in] */ WORD wStreamNum,
  120.             /* [out] */ INSSBuffer **ppSample,
  121.             /* [out] */ QWORD *pcnsSampleTime,
  122.             /* [out] */ QWORD *pcnsDuration,
  123.             /* [out] */ DWORD *pdwFlags,
  124.             /* [out] */ DWORD *pdwOutputNum,
  125.             /* [out] */ WORD *pwStreamNum) = 0;
  126.         
  127.         virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( 
  128.             /* [in] */ WORD cStreamCount,
  129.             /* [in] */ WORD *pwStreamNumbers,
  130.             /* [in] */ WMT_STREAM_SELECTION *pSelections) = 0;
  131.         
  132.         virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( 
  133.             /* [in] */ WORD wStreamNum,
  134.             /* [out] */ WMT_STREAM_SELECTION *pSelection) = 0;
  135.         
  136.         virtual HRESULT STDMETHODCALLTYPE SetReadStreamSamples( 
  137.             /* [in] */ WORD wStreamNum,
  138.             /* [in] */ BOOL fCompressed) = 0;
  139.         
  140.         virtual HRESULT STDMETHODCALLTYPE GetReadStreamSamples( 
  141.             /* [in] */ WORD wStreamNum,
  142.             /* [out] */ BOOL *pfCompressed) = 0;
  143.         
  144.         virtual HRESULT STDMETHODCALLTYPE GetOutputSetting( 
  145.             /* [in] */ DWORD dwOutputNum,
  146.             /* [in] */ LPCWSTR pszName,
  147.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  148.             /* [size_is][out] */ BYTE *pValue,
  149.             /* [out][in] */ WORD *pcbLength) = 0;
  150.         
  151.         virtual HRESULT STDMETHODCALLTYPE SetOutputSetting( 
  152.             /* [in] */ DWORD dwOutputNum,
  153.             /* [in] */ LPCWSTR pszName,
  154.             /* [in] */ WMT_ATTR_DATATYPE Type,
  155.             /* [size_is][in] */ const BYTE *pValue,
  156.             /* [in] */ WORD cbLength) = 0;
  157.         
  158.         virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 
  159.             /* [out] */ DWORD *pcOutputs) = 0;
  160.         
  161.         virtual HRESULT STDMETHODCALLTYPE GetOutputProps( 
  162.             /* [in] */ DWORD dwOutputNum,
  163.             /* [out] */ IWMOutputMediaProps **ppOutput) = 0;
  164.         
  165.         virtual HRESULT STDMETHODCALLTYPE SetOutputProps( 
  166.             /* [in] */ DWORD dwOutputNum,
  167.             /* [in] */ IWMOutputMediaProps *pOutput) = 0;
  168.         
  169.         virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount( 
  170.             /* [in] */ DWORD dwOutputNum,
  171.             /* [out] */ DWORD *pcFormats) = 0;
  172.         
  173.         virtual HRESULT STDMETHODCALLTYPE GetOutputFormat( 
  174.             /* [in] */ DWORD dwOutputNum,
  175.             /* [in] */ DWORD dwFormatNum,
  176.             /* [out] */ IWMOutputMediaProps **ppProps) = 0;
  177.         
  178.         virtual HRESULT STDMETHODCALLTYPE GetOutputNumberForStream( 
  179.             /* [in] */ WORD wStreamNum,
  180.             /* [out] */ DWORD *pdwOutputNum) = 0;
  181.         
  182.         virtual HRESULT STDMETHODCALLTYPE GetStreamNumberForOutput( 
  183.             /* [in] */ DWORD dwOutputNum,
  184.             /* [out] */ WORD *pwStreamNum) = 0;
  185.         
  186.         virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( 
  187.             /* [in] */ DWORD dwOutput,
  188.             /* [out] */ DWORD *pcbMax) = 0;
  189.         
  190.         virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( 
  191.             /* [in] */ WORD wStream,
  192.             /* [out] */ DWORD *pcbMax) = 0;
  193.         
  194.         virtual HRESULT STDMETHODCALLTYPE OpenStream( 
  195.             /* [in] */ IStream *pStream) = 0;
  196.         
  197.     };
  198.     
  199. #else  /* C style interface */
  200.     typedef struct IWMSyncReaderVtbl
  201.     {
  202.         BEGIN_INTERFACE
  203.         
  204.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  205.             IWMSyncReader * This,
  206.             /* [in] */ REFIID riid,
  207.             /* [iid_is][out] */ void **ppvObject);
  208.         
  209.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  210.             IWMSyncReader * This);
  211.         
  212.         ULONG ( STDMETHODCALLTYPE *Release )( 
  213.             IWMSyncReader * This);
  214.         
  215.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  216.             IWMSyncReader * This,
  217.             /* [in] */ const WCHAR *pwszFilename);
  218.         
  219.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  220.             IWMSyncReader * This);
  221.         
  222.         HRESULT ( STDMETHODCALLTYPE *SetRange )( 
  223.             IWMSyncReader * This,
  224.             /* [in] */ QWORD cnsStartTime,
  225.             /* [in] */ LONGLONG cnsDuration);
  226.         
  227.         HRESULT ( STDMETHODCALLTYPE *SetRangeByFrame )( 
  228.             IWMSyncReader * This,
  229.             /* [in] */ WORD wStreamNum,
  230.             /* [in] */ QWORD qwFrameNumber,
  231.             /* [in] */ LONGLONG cFramesToRead);
  232.         
  233.         HRESULT ( STDMETHODCALLTYPE *GetNextSample )( 
  234.             IWMSyncReader * This,
  235.             /* [in] */ WORD wStreamNum,
  236.             /* [out] */ INSSBuffer **ppSample,
  237.             /* [out] */ QWORD *pcnsSampleTime,
  238.             /* [out] */ QWORD *pcnsDuration,
  239.             /* [out] */ DWORD *pdwFlags,
  240.             /* [out] */ DWORD *pdwOutputNum,
  241.             /* [out] */ WORD *pwStreamNum);
  242.         
  243.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  244.             IWMSyncReader * This,
  245.             /* [in] */ WORD cStreamCount,
  246.             /* [in] */ WORD *pwStreamNumbers,
  247.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  248.         
  249.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  250.             IWMSyncReader * This,
  251.             /* [in] */ WORD wStreamNum,
  252.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  253.         
  254.         HRESULT ( STDMETHODCALLTYPE *SetReadStreamSamples )( 
  255.             IWMSyncReader * This,
  256.             /* [in] */ WORD wStreamNum,
  257.             /* [in] */ BOOL fCompressed);
  258.         
  259.         HRESULT ( STDMETHODCALLTYPE *GetReadStreamSamples )( 
  260.             IWMSyncReader * This,
  261.             /* [in] */ WORD wStreamNum,
  262.             /* [out] */ BOOL *pfCompressed);
  263.         
  264.         HRESULT ( STDMETHODCALLTYPE *GetOutputSetting )( 
  265.             IWMSyncReader * This,
  266.             /* [in] */ DWORD dwOutputNum,
  267.             /* [in] */ LPCWSTR pszName,
  268.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  269.             /* [size_is][out] */ BYTE *pValue,
  270.             /* [out][in] */ WORD *pcbLength);
  271.         
  272.         HRESULT ( STDMETHODCALLTYPE *SetOutputSetting )( 
  273.             IWMSyncReader * This,
  274.             /* [in] */ DWORD dwOutputNum,
  275.             /* [in] */ LPCWSTR pszName,
  276.             /* [in] */ WMT_ATTR_DATATYPE Type,
  277.             /* [size_is][in] */ const BYTE *pValue,
  278.             /* [in] */ WORD cbLength);
  279.         
  280.         HRESULT ( STDMETHODCALLTYPE *GetOutputCount )( 
  281.             IWMSyncReader * This,
  282.             /* [out] */ DWORD *pcOutputs);
  283.         
  284.         HRESULT ( STDMETHODCALLTYPE *GetOutputProps )( 
  285.             IWMSyncReader * This,
  286.             /* [in] */ DWORD dwOutputNum,
  287.             /* [out] */ IWMOutputMediaProps **ppOutput);
  288.         
  289.         HRESULT ( STDMETHODCALLTYPE *SetOutputProps )( 
  290.             IWMSyncReader * This,
  291.             /* [in] */ DWORD dwOutputNum,
  292.             /* [in] */ IWMOutputMediaProps *pOutput);
  293.         
  294.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormatCount )( 
  295.             IWMSyncReader * This,
  296.             /* [in] */ DWORD dwOutputNum,
  297.             /* [out] */ DWORD *pcFormats);
  298.         
  299.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )( 
  300.             IWMSyncReader * This,
  301.             /* [in] */ DWORD dwOutputNum,
  302.             /* [in] */ DWORD dwFormatNum,
  303.             /* [out] */ IWMOutputMediaProps **ppProps);
  304.         
  305.         HRESULT ( STDMETHODCALLTYPE *GetOutputNumberForStream )( 
  306.             IWMSyncReader * This,
  307.             /* [in] */ WORD wStreamNum,
  308.             /* [out] */ DWORD *pdwOutputNum);
  309.         
  310.         HRESULT ( STDMETHODCALLTYPE *GetStreamNumberForOutput )( 
  311.             IWMSyncReader * This,
  312.             /* [in] */ DWORD dwOutputNum,
  313.             /* [out] */ WORD *pwStreamNum);
  314.         
  315.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  316.             IWMSyncReader * This,
  317.             /* [in] */ DWORD dwOutput,
  318.             /* [out] */ DWORD *pcbMax);
  319.         
  320.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  321.             IWMSyncReader * This,
  322.             /* [in] */ WORD wStream,
  323.             /* [out] */ DWORD *pcbMax);
  324.         
  325.         HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  326.             IWMSyncReader * This,
  327.             /* [in] */ IStream *pStream);
  328.         
  329.         END_INTERFACE
  330.     } IWMSyncReaderVtbl;
  331.     interface IWMSyncReader
  332.     {
  333.         CONST_VTBL struct IWMSyncReaderVtbl *lpVtbl;
  334.     };
  335.     
  336. #ifdef COBJMACROS
  337. #define IWMSyncReader_QueryInterface(This,riid,ppvObject)
  338.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  339. #define IWMSyncReader_AddRef(This)
  340.     (This)->lpVtbl -> AddRef(This)
  341. #define IWMSyncReader_Release(This)
  342.     (This)->lpVtbl -> Release(This)
  343. #define IWMSyncReader_Open(This,pwszFilename)
  344.     (This)->lpVtbl -> Open(This,pwszFilename)
  345. #define IWMSyncReader_Close(This)
  346.     (This)->lpVtbl -> Close(This)
  347. #define IWMSyncReader_SetRange(This,cnsStartTime,cnsDuration)
  348.     (This)->lpVtbl -> SetRange(This,cnsStartTime,cnsDuration)
  349. #define IWMSyncReader_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
  350.     (This)->lpVtbl -> SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
  351. #define IWMSyncReader_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
  352.     (This)->lpVtbl -> GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
  353. #define IWMSyncReader_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  354.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  355. #define IWMSyncReader_GetStreamSelected(This,wStreamNum,pSelection)
  356.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  357. #define IWMSyncReader_SetReadStreamSamples(This,wStreamNum,fCompressed)
  358.     (This)->lpVtbl -> SetReadStreamSamples(This,wStreamNum,fCompressed)
  359. #define IWMSyncReader_GetReadStreamSamples(This,wStreamNum,pfCompressed)
  360.     (This)->lpVtbl -> GetReadStreamSamples(This,wStreamNum,pfCompressed)
  361. #define IWMSyncReader_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  362.     (This)->lpVtbl -> GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  363. #define IWMSyncReader_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  364.     (This)->lpVtbl -> SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  365. #define IWMSyncReader_GetOutputCount(This,pcOutputs)
  366.     (This)->lpVtbl -> GetOutputCount(This,pcOutputs)
  367. #define IWMSyncReader_GetOutputProps(This,dwOutputNum,ppOutput)
  368.     (This)->lpVtbl -> GetOutputProps(This,dwOutputNum,ppOutput)
  369. #define IWMSyncReader_SetOutputProps(This,dwOutputNum,pOutput)
  370.     (This)->lpVtbl -> SetOutputProps(This,dwOutputNum,pOutput)
  371. #define IWMSyncReader_GetOutputFormatCount(This,dwOutputNum,pcFormats)
  372.     (This)->lpVtbl -> GetOutputFormatCount(This,dwOutputNum,pcFormats)
  373. #define IWMSyncReader_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
  374.     (This)->lpVtbl -> GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
  375. #define IWMSyncReader_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
  376.     (This)->lpVtbl -> GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
  377. #define IWMSyncReader_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
  378.     (This)->lpVtbl -> GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
  379. #define IWMSyncReader_GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  380.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  381. #define IWMSyncReader_GetMaxStreamSampleSize(This,wStream,pcbMax)
  382.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  383. #define IWMSyncReader_OpenStream(This,pStream)
  384.     (This)->lpVtbl -> OpenStream(This,pStream)
  385. #endif /* COBJMACROS */
  386. #endif  /* C style interface */
  387. HRESULT STDMETHODCALLTYPE IWMSyncReader_Open_Proxy( 
  388.     IWMSyncReader * This,
  389.     /* [in] */ const WCHAR *pwszFilename);
  390. void __RPC_STUB IWMSyncReader_Open_Stub(
  391.     IRpcStubBuffer *This,
  392.     IRpcChannelBuffer *_pRpcChannelBuffer,
  393.     PRPC_MESSAGE _pRpcMessage,
  394.     DWORD *_pdwStubPhase);
  395. HRESULT STDMETHODCALLTYPE IWMSyncReader_Close_Proxy( 
  396.     IWMSyncReader * This);
  397. void __RPC_STUB IWMSyncReader_Close_Stub(
  398.     IRpcStubBuffer *This,
  399.     IRpcChannelBuffer *_pRpcChannelBuffer,
  400.     PRPC_MESSAGE _pRpcMessage,
  401.     DWORD *_pdwStubPhase);
  402. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetRange_Proxy( 
  403.     IWMSyncReader * This,
  404.     /* [in] */ QWORD cnsStartTime,
  405.     /* [in] */ LONGLONG cnsDuration);
  406. void __RPC_STUB IWMSyncReader_SetRange_Stub(
  407.     IRpcStubBuffer *This,
  408.     IRpcChannelBuffer *_pRpcChannelBuffer,
  409.     PRPC_MESSAGE _pRpcMessage,
  410.     DWORD *_pdwStubPhase);
  411. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetRangeByFrame_Proxy( 
  412.     IWMSyncReader * This,
  413.     /* [in] */ WORD wStreamNum,
  414.     /* [in] */ QWORD qwFrameNumber,
  415.     /* [in] */ LONGLONG cFramesToRead);
  416. void __RPC_STUB IWMSyncReader_SetRangeByFrame_Stub(
  417.     IRpcStubBuffer *This,
  418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  419.     PRPC_MESSAGE _pRpcMessage,
  420.     DWORD *_pdwStubPhase);
  421. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetNextSample_Proxy( 
  422.     IWMSyncReader * This,
  423.     /* [in] */ WORD wStreamNum,
  424.     /* [out] */ INSSBuffer **ppSample,
  425.     /* [out] */ QWORD *pcnsSampleTime,
  426.     /* [out] */ QWORD *pcnsDuration,
  427.     /* [out] */ DWORD *pdwFlags,
  428.     /* [out] */ DWORD *pdwOutputNum,
  429.     /* [out] */ WORD *pwStreamNum);
  430. void __RPC_STUB IWMSyncReader_GetNextSample_Stub(
  431.     IRpcStubBuffer *This,
  432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  433.     PRPC_MESSAGE _pRpcMessage,
  434.     DWORD *_pdwStubPhase);
  435. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetStreamsSelected_Proxy( 
  436.     IWMSyncReader * This,
  437.     /* [in] */ WORD cStreamCount,
  438.     /* [in] */ WORD *pwStreamNumbers,
  439.     /* [in] */ WMT_STREAM_SELECTION *pSelections);
  440. void __RPC_STUB IWMSyncReader_SetStreamsSelected_Stub(
  441.     IRpcStubBuffer *This,
  442.     IRpcChannelBuffer *_pRpcChannelBuffer,
  443.     PRPC_MESSAGE _pRpcMessage,
  444.     DWORD *_pdwStubPhase);
  445. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetStreamSelected_Proxy( 
  446.     IWMSyncReader * This,
  447.     /* [in] */ WORD wStreamNum,
  448.     /* [out] */ WMT_STREAM_SELECTION *pSelection);
  449. void __RPC_STUB IWMSyncReader_GetStreamSelected_Stub(
  450.     IRpcStubBuffer *This,
  451.     IRpcChannelBuffer *_pRpcChannelBuffer,
  452.     PRPC_MESSAGE _pRpcMessage,
  453.     DWORD *_pdwStubPhase);
  454. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetReadStreamSamples_Proxy( 
  455.     IWMSyncReader * This,
  456.     /* [in] */ WORD wStreamNum,
  457.     /* [in] */ BOOL fCompressed);
  458. void __RPC_STUB IWMSyncReader_SetReadStreamSamples_Stub(
  459.     IRpcStubBuffer *This,
  460.     IRpcChannelBuffer *_pRpcChannelBuffer,
  461.     PRPC_MESSAGE _pRpcMessage,
  462.     DWORD *_pdwStubPhase);
  463. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetReadStreamSamples_Proxy( 
  464.     IWMSyncReader * This,
  465.     /* [in] */ WORD wStreamNum,
  466.     /* [out] */ BOOL *pfCompressed);
  467. void __RPC_STUB IWMSyncReader_GetReadStreamSamples_Stub(
  468.     IRpcStubBuffer *This,
  469.     IRpcChannelBuffer *_pRpcChannelBuffer,
  470.     PRPC_MESSAGE _pRpcMessage,
  471.     DWORD *_pdwStubPhase);
  472. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputSetting_Proxy( 
  473.     IWMSyncReader * This,
  474.     /* [in] */ DWORD dwOutputNum,
  475.     /* [in] */ LPCWSTR pszName,
  476.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  477.     /* [size_is][out] */ BYTE *pValue,
  478.     /* [out][in] */ WORD *pcbLength);
  479. void __RPC_STUB IWMSyncReader_GetOutputSetting_Stub(
  480.     IRpcStubBuffer *This,
  481.     IRpcChannelBuffer *_pRpcChannelBuffer,
  482.     PRPC_MESSAGE _pRpcMessage,
  483.     DWORD *_pdwStubPhase);
  484. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetOutputSetting_Proxy( 
  485.     IWMSyncReader * This,
  486.     /* [in] */ DWORD dwOutputNum,
  487.     /* [in] */ LPCWSTR pszName,
  488.     /* [in] */ WMT_ATTR_DATATYPE Type,
  489.     /* [size_is][in] */ const BYTE *pValue,
  490.     /* [in] */ WORD cbLength);
  491. void __RPC_STUB IWMSyncReader_SetOutputSetting_Stub(
  492.     IRpcStubBuffer *This,
  493.     IRpcChannelBuffer *_pRpcChannelBuffer,
  494.     PRPC_MESSAGE _pRpcMessage,
  495.     DWORD *_pdwStubPhase);
  496. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputCount_Proxy( 
  497.     IWMSyncReader * This,
  498.     /* [out] */ DWORD *pcOutputs);
  499. void __RPC_STUB IWMSyncReader_GetOutputCount_Stub(
  500.     IRpcStubBuffer *This,
  501.     IRpcChannelBuffer *_pRpcChannelBuffer,
  502.     PRPC_MESSAGE _pRpcMessage,
  503.     DWORD *_pdwStubPhase);
  504. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputProps_Proxy( 
  505.     IWMSyncReader * This,
  506.     /* [in] */ DWORD dwOutputNum,
  507.     /* [out] */ IWMOutputMediaProps **ppOutput);
  508. void __RPC_STUB IWMSyncReader_GetOutputProps_Stub(
  509.     IRpcStubBuffer *This,
  510.     IRpcChannelBuffer *_pRpcChannelBuffer,
  511.     PRPC_MESSAGE _pRpcMessage,
  512.     DWORD *_pdwStubPhase);
  513. HRESULT STDMETHODCALLTYPE IWMSyncReader_SetOutputProps_Proxy( 
  514.     IWMSyncReader * This,
  515.     /* [in] */ DWORD dwOutputNum,
  516.     /* [in] */ IWMOutputMediaProps *pOutput);
  517. void __RPC_STUB IWMSyncReader_SetOutputProps_Stub(
  518.     IRpcStubBuffer *This,
  519.     IRpcChannelBuffer *_pRpcChannelBuffer,
  520.     PRPC_MESSAGE _pRpcMessage,
  521.     DWORD *_pdwStubPhase);
  522. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputFormatCount_Proxy( 
  523.     IWMSyncReader * This,
  524.     /* [in] */ DWORD dwOutputNum,
  525.     /* [out] */ DWORD *pcFormats);
  526. void __RPC_STUB IWMSyncReader_GetOutputFormatCount_Stub(
  527.     IRpcStubBuffer *This,
  528.     IRpcChannelBuffer *_pRpcChannelBuffer,
  529.     PRPC_MESSAGE _pRpcMessage,
  530.     DWORD *_pdwStubPhase);
  531. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputFormat_Proxy( 
  532.     IWMSyncReader * This,
  533.     /* [in] */ DWORD dwOutputNum,
  534.     /* [in] */ DWORD dwFormatNum,
  535.     /* [out] */ IWMOutputMediaProps **ppProps);
  536. void __RPC_STUB IWMSyncReader_GetOutputFormat_Stub(
  537.     IRpcStubBuffer *This,
  538.     IRpcChannelBuffer *_pRpcChannelBuffer,
  539.     PRPC_MESSAGE _pRpcMessage,
  540.     DWORD *_pdwStubPhase);
  541. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetOutputNumberForStream_Proxy( 
  542.     IWMSyncReader * This,
  543.     /* [in] */ WORD wStreamNum,
  544.     /* [out] */ DWORD *pdwOutputNum);
  545. void __RPC_STUB IWMSyncReader_GetOutputNumberForStream_Stub(
  546.     IRpcStubBuffer *This,
  547.     IRpcChannelBuffer *_pRpcChannelBuffer,
  548.     PRPC_MESSAGE _pRpcMessage,
  549.     DWORD *_pdwStubPhase);
  550. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetStreamNumberForOutput_Proxy( 
  551.     IWMSyncReader * This,
  552.     /* [in] */ DWORD dwOutputNum,
  553.     /* [out] */ WORD *pwStreamNum);
  554. void __RPC_STUB IWMSyncReader_GetStreamNumberForOutput_Stub(
  555.     IRpcStubBuffer *This,
  556.     IRpcChannelBuffer *_pRpcChannelBuffer,
  557.     PRPC_MESSAGE _pRpcMessage,
  558.     DWORD *_pdwStubPhase);
  559. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetMaxOutputSampleSize_Proxy( 
  560.     IWMSyncReader * This,
  561.     /* [in] */ DWORD dwOutput,
  562.     /* [out] */ DWORD *pcbMax);
  563. void __RPC_STUB IWMSyncReader_GetMaxOutputSampleSize_Stub(
  564.     IRpcStubBuffer *This,
  565.     IRpcChannelBuffer *_pRpcChannelBuffer,
  566.     PRPC_MESSAGE _pRpcMessage,
  567.     DWORD *_pdwStubPhase);
  568. HRESULT STDMETHODCALLTYPE IWMSyncReader_GetMaxStreamSampleSize_Proxy( 
  569.     IWMSyncReader * This,
  570.     /* [in] */ WORD wStream,
  571.     /* [out] */ DWORD *pcbMax);
  572. void __RPC_STUB IWMSyncReader_GetMaxStreamSampleSize_Stub(
  573.     IRpcStubBuffer *This,
  574.     IRpcChannelBuffer *_pRpcChannelBuffer,
  575.     PRPC_MESSAGE _pRpcMessage,
  576.     DWORD *_pdwStubPhase);
  577. HRESULT STDMETHODCALLTYPE IWMSyncReader_OpenStream_Proxy( 
  578.     IWMSyncReader * This,
  579.     /* [in] */ IStream *pStream);
  580. void __RPC_STUB IWMSyncReader_OpenStream_Stub(
  581.     IRpcStubBuffer *This,
  582.     IRpcChannelBuffer *_pRpcChannelBuffer,
  583.     PRPC_MESSAGE _pRpcMessage,
  584.     DWORD *_pdwStubPhase);
  585. #endif  /* __IWMSyncReader_INTERFACE_DEFINED__ */
  586. #ifndef __IWMSyncReader2_INTERFACE_DEFINED__
  587. #define __IWMSyncReader2_INTERFACE_DEFINED__
  588. /* interface IWMSyncReader2 */
  589. /* [local][unique][helpstring][uuid][object] */ 
  590. EXTERN_C const IID IID_IWMSyncReader2;
  591. #if defined(__cplusplus) && !defined(CINTERFACE)
  592.     
  593.     MIDL_INTERFACE("faed3d21-1b6b-4af7-8cb6-3e189bbc187b")
  594.     IWMSyncReader2 : public IWMSyncReader
  595.     {
  596.     public:
  597.         virtual HRESULT STDMETHODCALLTYPE SetRangeByTimecode( 
  598.             /* [in] */ WORD wStreamNum,
  599.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pStart,
  600.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pEnd) = 0;
  601.         
  602.         virtual HRESULT STDMETHODCALLTYPE SetRangeByFrameEx( 
  603.             /* [in] */ WORD wStreamNum,
  604.             /* [in] */ QWORD qwFrameNumber,
  605.             /* [in] */ LONGLONG cFramesToRead,
  606.             /* [out] */ QWORD *pcnsStartTime) = 0;
  607.         
  608.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput( 
  609.             /* [in] */ DWORD dwOutputNum,
  610.             /* [in] */ IWMReaderAllocatorEx *pAllocator) = 0;
  611.         
  612.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput( 
  613.             /* [in] */ DWORD dwOutputNum,
  614.             /* [out] */ IWMReaderAllocatorEx **ppAllocator) = 0;
  615.         
  616.         virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream( 
  617.             /* [in] */ WORD wStreamNum,
  618.             /* [in] */ IWMReaderAllocatorEx *pAllocator) = 0;
  619.         
  620.         virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream( 
  621.             /* [in] */ WORD dwSreamNum,
  622.             /* [out] */ IWMReaderAllocatorEx **ppAllocator) = 0;
  623.         
  624.     };
  625.     
  626. #else  /* C style interface */
  627.     typedef struct IWMSyncReader2Vtbl
  628.     {
  629.         BEGIN_INTERFACE
  630.         
  631.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  632.             IWMSyncReader2 * This,
  633.             /* [in] */ REFIID riid,
  634.             /* [iid_is][out] */ void **ppvObject);
  635.         
  636.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  637.             IWMSyncReader2 * This);
  638.         
  639.         ULONG ( STDMETHODCALLTYPE *Release )( 
  640.             IWMSyncReader2 * This);
  641.         
  642.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  643.             IWMSyncReader2 * This,
  644.             /* [in] */ const WCHAR *pwszFilename);
  645.         
  646.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  647.             IWMSyncReader2 * This);
  648.         
  649.         HRESULT ( STDMETHODCALLTYPE *SetRange )( 
  650.             IWMSyncReader2 * This,
  651.             /* [in] */ QWORD cnsStartTime,
  652.             /* [in] */ LONGLONG cnsDuration);
  653.         
  654.         HRESULT ( STDMETHODCALLTYPE *SetRangeByFrame )( 
  655.             IWMSyncReader2 * This,
  656.             /* [in] */ WORD wStreamNum,
  657.             /* [in] */ QWORD qwFrameNumber,
  658.             /* [in] */ LONGLONG cFramesToRead);
  659.         
  660.         HRESULT ( STDMETHODCALLTYPE *GetNextSample )( 
  661.             IWMSyncReader2 * This,
  662.             /* [in] */ WORD wStreamNum,
  663.             /* [out] */ INSSBuffer **ppSample,
  664.             /* [out] */ QWORD *pcnsSampleTime,
  665.             /* [out] */ QWORD *pcnsDuration,
  666.             /* [out] */ DWORD *pdwFlags,
  667.             /* [out] */ DWORD *pdwOutputNum,
  668.             /* [out] */ WORD *pwStreamNum);
  669.         
  670.         HRESULT ( STDMETHODCALLTYPE *SetStreamsSelected )( 
  671.             IWMSyncReader2 * This,
  672.             /* [in] */ WORD cStreamCount,
  673.             /* [in] */ WORD *pwStreamNumbers,
  674.             /* [in] */ WMT_STREAM_SELECTION *pSelections);
  675.         
  676.         HRESULT ( STDMETHODCALLTYPE *GetStreamSelected )( 
  677.             IWMSyncReader2 * This,
  678.             /* [in] */ WORD wStreamNum,
  679.             /* [out] */ WMT_STREAM_SELECTION *pSelection);
  680.         
  681.         HRESULT ( STDMETHODCALLTYPE *SetReadStreamSamples )( 
  682.             IWMSyncReader2 * This,
  683.             /* [in] */ WORD wStreamNum,
  684.             /* [in] */ BOOL fCompressed);
  685.         
  686.         HRESULT ( STDMETHODCALLTYPE *GetReadStreamSamples )( 
  687.             IWMSyncReader2 * This,
  688.             /* [in] */ WORD wStreamNum,
  689.             /* [out] */ BOOL *pfCompressed);
  690.         
  691.         HRESULT ( STDMETHODCALLTYPE *GetOutputSetting )( 
  692.             IWMSyncReader2 * This,
  693.             /* [in] */ DWORD dwOutputNum,
  694.             /* [in] */ LPCWSTR pszName,
  695.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  696.             /* [size_is][out] */ BYTE *pValue,
  697.             /* [out][in] */ WORD *pcbLength);
  698.         
  699.         HRESULT ( STDMETHODCALLTYPE *SetOutputSetting )( 
  700.             IWMSyncReader2 * This,
  701.             /* [in] */ DWORD dwOutputNum,
  702.             /* [in] */ LPCWSTR pszName,
  703.             /* [in] */ WMT_ATTR_DATATYPE Type,
  704.             /* [size_is][in] */ const BYTE *pValue,
  705.             /* [in] */ WORD cbLength);
  706.         
  707.         HRESULT ( STDMETHODCALLTYPE *GetOutputCount )( 
  708.             IWMSyncReader2 * This,
  709.             /* [out] */ DWORD *pcOutputs);
  710.         
  711.         HRESULT ( STDMETHODCALLTYPE *GetOutputProps )( 
  712.             IWMSyncReader2 * This,
  713.             /* [in] */ DWORD dwOutputNum,
  714.             /* [out] */ IWMOutputMediaProps **ppOutput);
  715.         
  716.         HRESULT ( STDMETHODCALLTYPE *SetOutputProps )( 
  717.             IWMSyncReader2 * This,
  718.             /* [in] */ DWORD dwOutputNum,
  719.             /* [in] */ IWMOutputMediaProps *pOutput);
  720.         
  721.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormatCount )( 
  722.             IWMSyncReader2 * This,
  723.             /* [in] */ DWORD dwOutputNum,
  724.             /* [out] */ DWORD *pcFormats);
  725.         
  726.         HRESULT ( STDMETHODCALLTYPE *GetOutputFormat )( 
  727.             IWMSyncReader2 * This,
  728.             /* [in] */ DWORD dwOutputNum,
  729.             /* [in] */ DWORD dwFormatNum,
  730.             /* [out] */ IWMOutputMediaProps **ppProps);
  731.         
  732.         HRESULT ( STDMETHODCALLTYPE *GetOutputNumberForStream )( 
  733.             IWMSyncReader2 * This,
  734.             /* [in] */ WORD wStreamNum,
  735.             /* [out] */ DWORD *pdwOutputNum);
  736.         
  737.         HRESULT ( STDMETHODCALLTYPE *GetStreamNumberForOutput )( 
  738.             IWMSyncReader2 * This,
  739.             /* [in] */ DWORD dwOutputNum,
  740.             /* [out] */ WORD *pwStreamNum);
  741.         
  742.         HRESULT ( STDMETHODCALLTYPE *GetMaxOutputSampleSize )( 
  743.             IWMSyncReader2 * This,
  744.             /* [in] */ DWORD dwOutput,
  745.             /* [out] */ DWORD *pcbMax);
  746.         
  747.         HRESULT ( STDMETHODCALLTYPE *GetMaxStreamSampleSize )( 
  748.             IWMSyncReader2 * This,
  749.             /* [in] */ WORD wStream,
  750.             /* [out] */ DWORD *pcbMax);
  751.         
  752.         HRESULT ( STDMETHODCALLTYPE *OpenStream )( 
  753.             IWMSyncReader2 * This,
  754.             /* [in] */ IStream *pStream);
  755.         
  756.         HRESULT ( STDMETHODCALLTYPE *SetRangeByTimecode )( 
  757.             IWMSyncReader2 * This,
  758.             /* [in] */ WORD wStreamNum,
  759.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pStart,
  760.             /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pEnd);
  761.         
  762.         HRESULT ( STDMETHODCALLTYPE *SetRangeByFrameEx )( 
  763.             IWMSyncReader2 * This,
  764.             /* [in] */ WORD wStreamNum,
  765.             /* [in] */ QWORD qwFrameNumber,
  766.             /* [in] */ LONGLONG cFramesToRead,
  767.             /* [out] */ QWORD *pcnsStartTime);
  768.         
  769.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForOutput )( 
  770.             IWMSyncReader2 * This,
  771.             /* [in] */ DWORD dwOutputNum,
  772.             /* [in] */ IWMReaderAllocatorEx *pAllocator);
  773.         
  774.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForOutput )( 
  775.             IWMSyncReader2 * This,
  776.             /* [in] */ DWORD dwOutputNum,
  777.             /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  778.         
  779.         HRESULT ( STDMETHODCALLTYPE *SetAllocateForStream )( 
  780.             IWMSyncReader2 * This,
  781.             /* [in] */ WORD wStreamNum,
  782.             /* [in] */ IWMReaderAllocatorEx *pAllocator);
  783.         
  784.         HRESULT ( STDMETHODCALLTYPE *GetAllocateForStream )( 
  785.             IWMSyncReader2 * This,
  786.             /* [in] */ WORD dwSreamNum,
  787.             /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  788.         
  789.         END_INTERFACE
  790.     } IWMSyncReader2Vtbl;
  791.     interface IWMSyncReader2
  792.     {
  793.         CONST_VTBL struct IWMSyncReader2Vtbl *lpVtbl;
  794.     };
  795.     
  796. #ifdef COBJMACROS
  797. #define IWMSyncReader2_QueryInterface(This,riid,ppvObject)
  798.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  799. #define IWMSyncReader2_AddRef(This)
  800.     (This)->lpVtbl -> AddRef(This)
  801. #define IWMSyncReader2_Release(This)
  802.     (This)->lpVtbl -> Release(This)
  803. #define IWMSyncReader2_Open(This,pwszFilename)
  804.     (This)->lpVtbl -> Open(This,pwszFilename)
  805. #define IWMSyncReader2_Close(This)
  806.     (This)->lpVtbl -> Close(This)
  807. #define IWMSyncReader2_SetRange(This,cnsStartTime,cnsDuration)
  808.     (This)->lpVtbl -> SetRange(This,cnsStartTime,cnsDuration)
  809. #define IWMSyncReader2_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
  810.     (This)->lpVtbl -> SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
  811. #define IWMSyncReader2_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
  812.     (This)->lpVtbl -> GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
  813. #define IWMSyncReader2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  814.     (This)->lpVtbl -> SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
  815. #define IWMSyncReader2_GetStreamSelected(This,wStreamNum,pSelection)
  816.     (This)->lpVtbl -> GetStreamSelected(This,wStreamNum,pSelection)
  817. #define IWMSyncReader2_SetReadStreamSamples(This,wStreamNum,fCompressed)
  818.     (This)->lpVtbl -> SetReadStreamSamples(This,wStreamNum,fCompressed)
  819. #define IWMSyncReader2_GetReadStreamSamples(This,wStreamNum,pfCompressed)
  820.     (This)->lpVtbl -> GetReadStreamSamples(This,wStreamNum,pfCompressed)
  821. #define IWMSyncReader2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  822.     (This)->lpVtbl -> GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
  823. #define IWMSyncReader2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  824.     (This)->lpVtbl -> SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
  825. #define IWMSyncReader2_GetOutputCount(This,pcOutputs)
  826.     (This)->lpVtbl -> GetOutputCount(This,pcOutputs)
  827. #define IWMSyncReader2_GetOutputProps(This,dwOutputNum,ppOutput)
  828.     (This)->lpVtbl -> GetOutputProps(This,dwOutputNum,ppOutput)
  829. #define IWMSyncReader2_SetOutputProps(This,dwOutputNum,pOutput)
  830.     (This)->lpVtbl -> SetOutputProps(This,dwOutputNum,pOutput)
  831. #define IWMSyncReader2_GetOutputFormatCount(This,dwOutputNum,pcFormats)
  832.     (This)->lpVtbl -> GetOutputFormatCount(This,dwOutputNum,pcFormats)
  833. #define IWMSyncReader2_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
  834.     (This)->lpVtbl -> GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
  835. #define IWMSyncReader2_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
  836.     (This)->lpVtbl -> GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
  837. #define IWMSyncReader2_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
  838.     (This)->lpVtbl -> GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
  839. #define IWMSyncReader2_GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  840.     (This)->lpVtbl -> GetMaxOutputSampleSize(This,dwOutput,pcbMax)
  841. #define IWMSyncReader2_GetMaxStreamSampleSize(This,wStream,pcbMax)
  842.     (This)->lpVtbl -> GetMaxStreamSampleSize(This,wStream,pcbMax)
  843. #define IWMSyncReader2_OpenStream(This,pStream)
  844.     (This)->lpVtbl -> OpenStream(This,pStream)
  845. #define IWMSyncReader2_SetRangeByTimecode(This,wStreamNum,pStart,pEnd)
  846.     (This)->lpVtbl -> SetRangeByTimecode(This,wStreamNum,pStart,pEnd)
  847. #define IWMSyncReader2_SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime)
  848.     (This)->lpVtbl -> SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime)
  849. #define IWMSyncReader2_SetAllocateForOutput(This,dwOutputNum,pAllocator)
  850.     (This)->lpVtbl -> SetAllocateForOutput(This,dwOutputNum,pAllocator)
  851. #define IWMSyncReader2_GetAllocateForOutput(This,dwOutputNum,ppAllocator)
  852.     (This)->lpVtbl -> GetAllocateForOutput(This,dwOutputNum,ppAllocator)
  853. #define IWMSyncReader2_SetAllocateForStream(This,wStreamNum,pAllocator)
  854.     (This)->lpVtbl -> SetAllocateForStream(This,wStreamNum,pAllocator)
  855. #define IWMSyncReader2_GetAllocateForStream(This,dwSreamNum,ppAllocator)
  856.     (This)->lpVtbl -> GetAllocateForStream(This,dwSreamNum,ppAllocator)
  857. #endif /* COBJMACROS */
  858. #endif  /* C style interface */
  859. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetRangeByTimecode_Proxy( 
  860.     IWMSyncReader2 * This,
  861.     /* [in] */ WORD wStreamNum,
  862.     /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pStart,
  863.     /* [in] */ WMT_TIMECODE_EXTENSION_DATA *pEnd);
  864. void __RPC_STUB IWMSyncReader2_SetRangeByTimecode_Stub(
  865.     IRpcStubBuffer *This,
  866.     IRpcChannelBuffer *_pRpcChannelBuffer,
  867.     PRPC_MESSAGE _pRpcMessage,
  868.     DWORD *_pdwStubPhase);
  869. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetRangeByFrameEx_Proxy( 
  870.     IWMSyncReader2 * This,
  871.     /* [in] */ WORD wStreamNum,
  872.     /* [in] */ QWORD qwFrameNumber,
  873.     /* [in] */ LONGLONG cFramesToRead,
  874.     /* [out] */ QWORD *pcnsStartTime);
  875. void __RPC_STUB IWMSyncReader2_SetRangeByFrameEx_Stub(
  876.     IRpcStubBuffer *This,
  877.     IRpcChannelBuffer *_pRpcChannelBuffer,
  878.     PRPC_MESSAGE _pRpcMessage,
  879.     DWORD *_pdwStubPhase);
  880. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetAllocateForOutput_Proxy( 
  881.     IWMSyncReader2 * This,
  882.     /* [in] */ DWORD dwOutputNum,
  883.     /* [in] */ IWMReaderAllocatorEx *pAllocator);
  884. void __RPC_STUB IWMSyncReader2_SetAllocateForOutput_Stub(
  885.     IRpcStubBuffer *This,
  886.     IRpcChannelBuffer *_pRpcChannelBuffer,
  887.     PRPC_MESSAGE _pRpcMessage,
  888.     DWORD *_pdwStubPhase);
  889. HRESULT STDMETHODCALLTYPE IWMSyncReader2_GetAllocateForOutput_Proxy( 
  890.     IWMSyncReader2 * This,
  891.     /* [in] */ DWORD dwOutputNum,
  892.     /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  893. void __RPC_STUB IWMSyncReader2_GetAllocateForOutput_Stub(
  894.     IRpcStubBuffer *This,
  895.     IRpcChannelBuffer *_pRpcChannelBuffer,
  896.     PRPC_MESSAGE _pRpcMessage,
  897.     DWORD *_pdwStubPhase);
  898. HRESULT STDMETHODCALLTYPE IWMSyncReader2_SetAllocateForStream_Proxy( 
  899.     IWMSyncReader2 * This,
  900.     /* [in] */ WORD wStreamNum,
  901.     /* [in] */ IWMReaderAllocatorEx *pAllocator);
  902. void __RPC_STUB IWMSyncReader2_SetAllocateForStream_Stub(
  903.     IRpcStubBuffer *This,
  904.     IRpcChannelBuffer *_pRpcChannelBuffer,
  905.     PRPC_MESSAGE _pRpcMessage,
  906.     DWORD *_pdwStubPhase);
  907. HRESULT STDMETHODCALLTYPE IWMSyncReader2_GetAllocateForStream_Proxy( 
  908.     IWMSyncReader2 * This,
  909.     /* [in] */ WORD dwSreamNum,
  910.     /* [out] */ IWMReaderAllocatorEx **ppAllocator);
  911. void __RPC_STUB IWMSyncReader2_GetAllocateForStream_Stub(
  912.     IRpcStubBuffer *This,
  913.     IRpcChannelBuffer *_pRpcChannelBuffer,
  914.     PRPC_MESSAGE _pRpcMessage,
  915.     DWORD *_pdwStubPhase);
  916. #endif  /* __IWMSyncReader2_INTERFACE_DEFINED__ */
  917. #ifndef __IWMOutputMediaProps_INTERFACE_DEFINED__
  918. #define __IWMOutputMediaProps_INTERFACE_DEFINED__
  919. /* interface IWMOutputMediaProps */
  920. /* [local][unique][helpstring][uuid][object] */ 
  921. EXTERN_C const IID IID_IWMOutputMediaProps;
  922. #if defined(__cplusplus) && !defined(CINTERFACE)
  923.     
  924.     MIDL_INTERFACE("96406BD7-2B2B-11d3-B36B-00C04F6108FF")
  925.     IWMOutputMediaProps : public IWMMediaProps
  926.     {
  927.     public:
  928.         virtual HRESULT STDMETHODCALLTYPE GetStreamGroupName( 
  929.             /* [size_is][out] */ WCHAR *pwszName,
  930.             /* [out][in] */ WORD *pcchName) = 0;
  931.         
  932.         virtual HRESULT STDMETHODCALLTYPE GetConnectionName( 
  933.             /* [size_is][out] */ WCHAR *pwszName,
  934.             /* [out][in] */ WORD *pcchName) = 0;
  935.         
  936.     };
  937.     
  938. #else  /* C style interface */
  939.     typedef struct IWMOutputMediaPropsVtbl
  940.     {
  941.         BEGIN_INTERFACE
  942.         
  943.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  944.             IWMOutputMediaProps * This,
  945.             /* [in] */ REFIID riid,
  946.             /* [iid_is][out] */ void **ppvObject);
  947.         
  948.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  949.             IWMOutputMediaProps * This);
  950.         
  951.         ULONG ( STDMETHODCALLTYPE *Release )( 
  952.             IWMOutputMediaProps * This);
  953.         
  954.         HRESULT ( STDMETHODCALLTYPE *GetType )( 
  955.             IWMOutputMediaProps * This,
  956.             /* [out] */ GUID *pguidType);
  957.         
  958.         HRESULT ( STDMETHODCALLTYPE *GetMediaType )( 
  959.             IWMOutputMediaProps * This,
  960.             /* [out] */ WM_MEDIA_TYPE *pType,
  961.             /* [out][in] */ DWORD *pcbType);
  962.         
  963.         HRESULT ( STDMETHODCALLTYPE *SetMediaType )( 
  964.             IWMOutputMediaProps * This,
  965.             /* [in] */ WM_MEDIA_TYPE *pType);
  966.         
  967.         HRESULT ( STDMETHODCALLTYPE *GetStreamGroupName )( 
  968.             IWMOutputMediaProps * This,
  969.             /* [size_is][out] */ WCHAR *pwszName,
  970.             /* [out][in] */ WORD *pcchName);
  971.         
  972.         HRESULT ( STDMETHODCALLTYPE *GetConnectionName )( 
  973.             IWMOutputMediaProps * This,
  974.             /* [size_is][out] */ WCHAR *pwszName,
  975.             /* [out][in] */ WORD *pcchName);
  976.         
  977.         END_INTERFACE
  978.     } IWMOutputMediaPropsVtbl;
  979.     interface IWMOutputMediaProps
  980.     {
  981.         CONST_VTBL struct IWMOutputMediaPropsVtbl *lpVtbl;
  982.     };
  983.     
  984. #ifdef COBJMACROS
  985. #define IWMOutputMediaProps_QueryInterface(This,riid,ppvObject)
  986.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  987. #define IWMOutputMediaProps_AddRef(This)
  988.     (This)->lpVtbl -> AddRef(This)
  989. #define IWMOutputMediaProps_Release(This)
  990.     (This)->lpVtbl -> Release(This)
  991. #define IWMOutputMediaProps_GetType(This,pguidType)
  992.     (This)->lpVtbl -> GetType(This,pguidType)
  993. #define IWMOutputMediaProps_GetMediaType(This,pType,pcbType)
  994.     (This)->lpVtbl -> GetMediaType(This,pType,pcbType)
  995. #define IWMOutputMediaProps_SetMediaType(This,pType)
  996.     (This)->lpVtbl -> SetMediaType(This,pType)
  997. #define IWMOutputMediaProps_GetStreamGroupName(This,pwszName,pcchName)
  998.     (This)->lpVtbl -> GetStreamGroupName(This,pwszName,pcchName)
  999. #define IWMOutputMediaProps_GetConnectionName(This,pwszName,pcchName)
  1000.     (This)->lpVtbl -> GetConnectionName(This,pwszName,pcchName)
  1001. #endif /* COBJMACROS */
  1002. #endif  /* C style interface */
  1003. HRESULT STDMETHODCALLTYPE IWMOutputMediaProps_GetStreamGroupName_Proxy( 
  1004.     IWMOutputMediaProps * This,
  1005.     /* [size_is][out] */ WCHAR *pwszName,
  1006.     /* [out][in] */ WORD *pcchName);
  1007. void __RPC_STUB IWMOutputMediaProps_GetStreamGroupName_Stub(
  1008.     IRpcStubBuffer *This,
  1009.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1010.     PRPC_MESSAGE _pRpcMessage,
  1011.     DWORD *_pdwStubPhase);
  1012. HRESULT STDMETHODCALLTYPE IWMOutputMediaProps_GetConnectionName_Proxy( 
  1013.     IWMOutputMediaProps * This,
  1014.     /* [size_is][out] */ WCHAR *pwszName,
  1015.     /* [out][in] */ WORD *pcchName);
  1016. void __RPC_STUB IWMOutputMediaProps_GetConnectionName_Stub(
  1017.     IRpcStubBuffer *This,
  1018.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1019.     PRPC_MESSAGE _pRpcMessage,
  1020.     DWORD *_pdwStubPhase);
  1021. #endif  /* __IWMOutputMediaProps_INTERFACE_DEFINED__ */
  1022. #ifndef __IWMStatusCallback_INTERFACE_DEFINED__
  1023. #define __IWMStatusCallback_INTERFACE_DEFINED__
  1024. /* interface IWMStatusCallback */
  1025. /* [local][unique][helpstring][uuid][object] */ 
  1026. EXTERN_C const IID IID_IWMStatusCallback;
  1027. #if defined(__cplusplus) && !defined(CINTERFACE)
  1028.     
  1029.     MIDL_INTERFACE("6d7cdc70-9888-11d3-8edc-00c04f6109cf")
  1030.     IWMStatusCallback : public IUnknown
  1031.     {
  1032.     public:
  1033.         virtual HRESULT STDMETHODCALLTYPE OnStatus( 
  1034.             /* [in] */ WMT_STATUS Status,
  1035.             /* [in] */ HRESULT hr,
  1036.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  1037.             /* [in] */ BYTE *pValue,
  1038.             /* [in] */ void *pvContext) = 0;
  1039.         
  1040.     };
  1041.     
  1042. #else  /* C style interface */
  1043.     typedef struct IWMStatusCallbackVtbl
  1044.     {
  1045.         BEGIN_INTERFACE
  1046.         
  1047.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1048.             IWMStatusCallback * This,
  1049.             /* [in] */ REFIID riid,
  1050.             /* [iid_is][out] */ void **ppvObject);
  1051.         
  1052.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1053.             IWMStatusCallback * This);
  1054.         
  1055.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1056.             IWMStatusCallback * This);
  1057.         
  1058.         HRESULT ( STDMETHODCALLTYPE *OnStatus )( 
  1059.             IWMStatusCallback * This,
  1060.             /* [in] */ WMT_STATUS Status,
  1061.             /* [in] */ HRESULT hr,
  1062.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  1063.             /* [in] */ BYTE *pValue,
  1064.             /* [in] */ void *pvContext);
  1065.         
  1066.         END_INTERFACE
  1067.     } IWMStatusCallbackVtbl;
  1068.     interface IWMStatusCallback
  1069.     {
  1070.         CONST_VTBL struct IWMStatusCallbackVtbl *lpVtbl;
  1071.     };
  1072.     
  1073. #ifdef COBJMACROS
  1074. #define IWMStatusCallback_QueryInterface(This,riid,ppvObject)
  1075.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1076. #define IWMStatusCallback_AddRef(This)
  1077.     (This)->lpVtbl -> AddRef(This)
  1078. #define IWMStatusCallback_Release(This)
  1079.     (This)->lpVtbl -> Release(This)
  1080. #define IWMStatusCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext)
  1081.     (This)->lpVtbl -> OnStatus(This,Status,hr,dwType,pValue,pvContext)
  1082. #endif /* COBJMACROS */
  1083. #endif  /* C style interface */
  1084. HRESULT STDMETHODCALLTYPE IWMStatusCallback_OnStatus_Proxy( 
  1085.     IWMStatusCallback * This,
  1086.     /* [in] */ WMT_STATUS Status,
  1087.     /* [in] */ HRESULT hr,
  1088.     /* [in] */ WMT_ATTR_DATATYPE dwType,
  1089.     /* [in] */ BYTE *pValue,
  1090.     /* [in] */ void *pvContext);
  1091. void __RPC_STUB IWMStatusCallback_OnStatus_Stub(
  1092.     IRpcStubBuffer *This,
  1093.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1094.     PRPC_MESSAGE _pRpcMessage,
  1095.     DWORD *_pdwStubPhase);
  1096. #endif  /* __IWMStatusCallback_INTERFACE_DEFINED__ */
  1097. #ifndef __IWMReaderCallback_INTERFACE_DEFINED__
  1098. #define __IWMReaderCallback_INTERFACE_DEFINED__
  1099. /* interface IWMReaderCallback */
  1100. /* [local][unique][helpstring][uuid][object] */ 
  1101. EXTERN_C const IID IID_IWMReaderCallback;
  1102. #if defined(__cplusplus) && !defined(CINTERFACE)
  1103.     
  1104.     MIDL_INTERFACE("96406BD8-2B2B-11d3-B36B-00C04F6108FF")
  1105.     IWMReaderCallback : public IWMStatusCallback
  1106.     {
  1107.     public:
  1108.         virtual HRESULT STDMETHODCALLTYPE OnSample( 
  1109.             /* [in] */ DWORD dwOutputNum,
  1110.             /* [in] */ QWORD cnsSampleTime,
  1111.             /* [in] */ QWORD cnsSampleDuration,
  1112.             /* [in] */ DWORD dwFlags,
  1113.             /* [in] */ INSSBuffer *pSample,
  1114.             /* [in] */ void *pvContext) = 0;
  1115.         
  1116.     };
  1117.     
  1118. #else  /* C style interface */
  1119.     typedef struct IWMReaderCallbackVtbl
  1120.     {
  1121.         BEGIN_INTERFACE
  1122.         
  1123.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1124.             IWMReaderCallback * This,
  1125.             /* [in] */ REFIID riid,
  1126.             /* [iid_is][out] */ void **ppvObject);
  1127.         
  1128.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1129.             IWMReaderCallback * This);
  1130.         
  1131.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1132.             IWMReaderCallback * This);
  1133.         
  1134.         HRESULT ( STDMETHODCALLTYPE *OnStatus )( 
  1135.             IWMReaderCallback * This,
  1136.             /* [in] */ WMT_STATUS Status,
  1137.             /* [in] */ HRESULT hr,
  1138.             /* [in] */ WMT_ATTR_DATATYPE dwType,
  1139.             /* [in] */ BYTE *pValue,
  1140.             /* [in] */ void *pvContext);
  1141.         
  1142.         HRESULT ( STDMETHODCALLTYPE *OnSample )( 
  1143.             IWMReaderCallback * This,
  1144.             /* [in] */ DWORD dwOutputNum,
  1145.             /* [in] */ QWORD cnsSampleTime,
  1146.             /* [in] */ QWORD cnsSampleDuration,
  1147.             /* [in] */ DWORD dwFlags,
  1148.             /* [in] */ INSSBuffer *pSample,
  1149.             /* [in] */ void *pvContext);
  1150.         
  1151.         END_INTERFACE
  1152.     } IWMReaderCallbackVtbl;
  1153.     interface IWMReaderCallback
  1154.     {
  1155.         CONST_VTBL struct IWMReaderCallbackVtbl *lpVtbl;
  1156.     };
  1157.     
  1158. #ifdef COBJMACROS
  1159. #define IWMReaderCallback_QueryInterface(This,riid,ppvObject)
  1160.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1161. #define IWMReaderCallback_AddRef(This)
  1162.     (This)->lpVtbl -> AddRef(This)
  1163. #define IWMReaderCallback_Release(This)
  1164.     (This)->lpVtbl -> Release(This)
  1165. #define IWMReaderCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext)
  1166.     (This)->lpVtbl -> OnStatus(This,Status,hr,dwType,pValue,pvContext)
  1167. #define IWMReaderCallback_OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  1168.     (This)->lpVtbl -> OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  1169. #endif /* COBJMACROS */
  1170. #endif  /* C style interface */
  1171. HRESULT STDMETHODCALLTYPE IWMReaderCallback_OnSample_Proxy( 
  1172.     IWMReaderCallback * This,
  1173.     /* [in] */ DWORD dwOutputNum,
  1174.     /* [in] */ QWORD cnsSampleTime,
  1175.     /* [in] */ QWORD cnsSampleDuration,
  1176.     /* [in] */ DWORD dwFlags,
  1177.     /* [in] */ INSSBuffer *pSample,
  1178.     /* [in] */ void *pvContext);
  1179. void __RPC_STUB IWMReaderCallback_OnSample_Stub(
  1180.     IRpcStubBuffer *This,
  1181.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1182.     PRPC_MESSAGE _pRpcMessage,
  1183.     DWORD *_pdwStubPhase);
  1184. #endif  /* __IWMReaderCallback_INTERFACE_DEFINED__ */
  1185. #ifndef __IWMCredentialCallback_INTERFACE_DEFINED__
  1186. #define __IWMCredentialCallback_INTERFACE_DEFINED__
  1187. /* interface IWMCredentialCallback */
  1188. /* [local][unique][helpstring][uuid][object] */ 
  1189. EXTERN_C const IID IID_IWMCredentialCallback;
  1190. #if defined(__cplusplus) && !defined(CINTERFACE)
  1191.     
  1192.     MIDL_INTERFACE("342e0eb7-e651-450c-975b-2ace2c90c48e")
  1193.     IWMCredentialCallback : public IUnknown
  1194.     {
  1195.     public:
  1196.         virtual HRESULT STDMETHODCALLTYPE AcquireCredentials( 
  1197.             /* [in] */ WCHAR *pwszRealm,
  1198.             /* [in] */ WCHAR *pwszSite,
  1199.             /* [size_is][out] */ WCHAR *pwszUser,
  1200.             /* [in] */ DWORD cchUser,
  1201.             /* [size_is][out] */ WCHAR *pwszPassword,
  1202.             /* [in] */ DWORD cchPassword,
  1203.             /* [in] */ HRESULT hrStatus,
  1204.             /* [out] */ DWORD *pdwFlags) = 0;
  1205.         
  1206.     };
  1207.     
  1208. #else  /* C style interface */
  1209.     typedef struct IWMCredentialCallbackVtbl
  1210.     {
  1211.         BEGIN_INTERFACE
  1212.         
  1213.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1214.             IWMCredentialCallback * This,
  1215.             /* [in] */ REFIID riid,
  1216.             /* [iid_is][out] */ void **ppvObject);
  1217.         
  1218.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1219.             IWMCredentialCallback * This);
  1220.         
  1221.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1222.             IWMCredentialCallback * This);
  1223.         
  1224.         HRESULT ( STDMETHODCALLTYPE *AcquireCredentials )( 
  1225.             IWMCredentialCallback * This,
  1226.             /* [in] */ WCHAR *pwszRealm,
  1227.             /* [in] */ WCHAR *pwszSite,
  1228.             /* [size_is][out] */ WCHAR *pwszUser,
  1229.             /* [in] */ DWORD cchUser,
  1230.             /* [size_is][out] */ WCHAR *pwszPassword,
  1231.             /* [in] */ DWORD cchPassword,
  1232.             /* [in] */ HRESULT hrStatus,
  1233.             /* [out] */ DWORD *pdwFlags);
  1234.         
  1235.         END_INTERFACE
  1236.     } IWMCredentialCallbackVtbl;
  1237.     interface IWMCredentialCallback
  1238.     {
  1239.         CONST_VTBL struct IWMCredentialCallbackVtbl *lpVtbl;
  1240.     };
  1241.     
  1242. #ifdef COBJMACROS
  1243. #define IWMCredentialCallback_QueryInterface(This,riid,ppvObject)
  1244.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1245. #define IWMCredentialCallback_AddRef(This)
  1246.     (This)->lpVtbl -> AddRef(This)
  1247. #define IWMCredentialCallback_Release(This)
  1248.     (This)->lpVtbl -> Release(This)
  1249. #define IWMCredentialCallback_AcquireCredentials(This,pwszRealm,pwszSite,pwszUser,cchUser,pwszPassword,cchPassword,hrStatus,pdwFlags)
  1250.     (This)->lpVtbl -> AcquireCredentials(This,pwszRealm,pwszSite,pwszUser,cchUser,pwszPassword,cchPassword,hrStatus,pdwFlags)
  1251. #endif /* COBJMACROS */
  1252. #endif  /* C style interface */
  1253. HRESULT STDMETHODCALLTYPE IWMCredentialCallback_AcquireCredentials_Proxy( 
  1254.     IWMCredentialCallback * This,
  1255.     /* [in] */ WCHAR *pwszRealm,
  1256.     /* [in] */ WCHAR *pwszSite,
  1257.     /* [size_is][out] */ WCHAR *pwszUser,
  1258.     /* [in] */ DWORD cchUser,
  1259.     /* [size_is][out] */ WCHAR *pwszPassword,
  1260.     /* [in] */ DWORD cchPassword,
  1261.     /* [in] */ HRESULT hrStatus,
  1262.     /* [out] */ DWORD *pdwFlags);
  1263. void __RPC_STUB IWMCredentialCallback_AcquireCredentials_Stub(
  1264.     IRpcStubBuffer *This,
  1265.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1266.     PRPC_MESSAGE _pRpcMessage,
  1267.     DWORD *_pdwStubPhase);
  1268. #endif  /* __IWMCredentialCallback_INTERFACE_DEFINED__ */
  1269. #ifndef __IWMMetadataEditor_INTERFACE_DEFINED__
  1270. #define __IWMMetadataEditor_INTERFACE_DEFINED__
  1271. /* interface IWMMetadataEditor */
  1272. /* [local][unique][helpstring][uuid][object] */ 
  1273. EXTERN_C const IID IID_IWMMetadataEditor;
  1274. #if defined(__cplusplus) && !defined(CINTERFACE)
  1275.     
  1276.     MIDL_INTERFACE("96406BD9-2B2B-11d3-B36B-00C04F6108FF")
  1277.     IWMMetadataEditor : public IUnknown
  1278.     {
  1279.     public:
  1280.         virtual HRESULT STDMETHODCALLTYPE Open( 
  1281.             /* [in] */ const WCHAR *pwszFilename) = 0;
  1282.         
  1283.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  1284.         
  1285.         virtual HRESULT STDMETHODCALLTYPE Flush( void) = 0;
  1286.         
  1287.     };
  1288.     
  1289. #else  /* C style interface */
  1290.     typedef struct IWMMetadataEditorVtbl
  1291.     {
  1292.         BEGIN_INTERFACE
  1293.         
  1294.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1295.             IWMMetadataEditor * This,
  1296.             /* [in] */ REFIID riid,
  1297.             /* [iid_is][out] */ void **ppvObject);
  1298.         
  1299.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1300.             IWMMetadataEditor * This);
  1301.         
  1302.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1303.             IWMMetadataEditor * This);
  1304.         
  1305.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  1306.             IWMMetadataEditor * This,
  1307.             /* [in] */ const WCHAR *pwszFilename);
  1308.         
  1309.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  1310.             IWMMetadataEditor * This);
  1311.         
  1312.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  1313.             IWMMetadataEditor * This);
  1314.         
  1315.         END_INTERFACE
  1316.     } IWMMetadataEditorVtbl;
  1317.     interface IWMMetadataEditor
  1318.     {
  1319.         CONST_VTBL struct IWMMetadataEditorVtbl *lpVtbl;
  1320.     };
  1321.     
  1322. #ifdef COBJMACROS
  1323. #define IWMMetadataEditor_QueryInterface(This,riid,ppvObject)
  1324.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1325. #define IWMMetadataEditor_AddRef(This)
  1326.     (This)->lpVtbl -> AddRef(This)
  1327. #define IWMMetadataEditor_Release(This)
  1328.     (This)->lpVtbl -> Release(This)
  1329. #define IWMMetadataEditor_Open(This,pwszFilename)
  1330.     (This)->lpVtbl -> Open(This,pwszFilename)
  1331. #define IWMMetadataEditor_Close(This)
  1332.     (This)->lpVtbl -> Close(This)
  1333. #define IWMMetadataEditor_Flush(This)
  1334.     (This)->lpVtbl -> Flush(This)
  1335. #endif /* COBJMACROS */
  1336. #endif  /* C style interface */
  1337. HRESULT STDMETHODCALLTYPE IWMMetadataEditor_Open_Proxy( 
  1338.     IWMMetadataEditor * This,
  1339.     /* [in] */ const WCHAR *pwszFilename);
  1340. void __RPC_STUB IWMMetadataEditor_Open_Stub(
  1341.     IRpcStubBuffer *This,
  1342.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1343.     PRPC_MESSAGE _pRpcMessage,
  1344.     DWORD *_pdwStubPhase);
  1345. HRESULT STDMETHODCALLTYPE IWMMetadataEditor_Close_Proxy( 
  1346.     IWMMetadataEditor * This);
  1347. void __RPC_STUB IWMMetadataEditor_Close_Stub(
  1348.     IRpcStubBuffer *This,
  1349.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1350.     PRPC_MESSAGE _pRpcMessage,
  1351.     DWORD *_pdwStubPhase);
  1352. HRESULT STDMETHODCALLTYPE IWMMetadataEditor_Flush_Proxy( 
  1353.     IWMMetadataEditor * This);
  1354. void __RPC_STUB IWMMetadataEditor_Flush_Stub(
  1355.     IRpcStubBuffer *This,
  1356.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1357.     PRPC_MESSAGE _pRpcMessage,
  1358.     DWORD *_pdwStubPhase);
  1359. #endif  /* __IWMMetadataEditor_INTERFACE_DEFINED__ */
  1360. #ifndef __IWMMetadataEditor2_INTERFACE_DEFINED__
  1361. #define __IWMMetadataEditor2_INTERFACE_DEFINED__
  1362. /* interface IWMMetadataEditor2 */
  1363. /* [local][unique][helpstring][uuid][object] */ 
  1364. EXTERN_C const IID IID_IWMMetadataEditor2;
  1365. #if defined(__cplusplus) && !defined(CINTERFACE)
  1366.     
  1367.     MIDL_INTERFACE("203CFFE3-2E18-4fdf-B59D-6E71530534CF")
  1368.     IWMMetadataEditor2 : public IWMMetadataEditor
  1369.     {
  1370.     public:
  1371.         virtual HRESULT STDMETHODCALLTYPE OpenEx( 
  1372.             /* [in] */ const WCHAR *pwszFilename,
  1373.             /* [in] */ DWORD dwDesiredAccess,
  1374.             /* [in] */ DWORD dwShareMode) = 0;
  1375.         
  1376.     };
  1377.     
  1378. #else  /* C style interface */
  1379.     typedef struct IWMMetadataEditor2Vtbl
  1380.     {
  1381.         BEGIN_INTERFACE
  1382.         
  1383.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1384.             IWMMetadataEditor2 * This,
  1385.             /* [in] */ REFIID riid,
  1386.             /* [iid_is][out] */ void **ppvObject);
  1387.         
  1388.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1389.             IWMMetadataEditor2 * This);
  1390.         
  1391.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1392.             IWMMetadataEditor2 * This);
  1393.         
  1394.         HRESULT ( STDMETHODCALLTYPE *Open )( 
  1395.             IWMMetadataEditor2 * This,
  1396.             /* [in] */ const WCHAR *pwszFilename);
  1397.         
  1398.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  1399.             IWMMetadataEditor2 * This);
  1400.         
  1401.         HRESULT ( STDMETHODCALLTYPE *Flush )( 
  1402.             IWMMetadataEditor2 * This);
  1403.         
  1404.         HRESULT ( STDMETHODCALLTYPE *OpenEx )( 
  1405.             IWMMetadataEditor2 * This,
  1406.             /* [in] */ const WCHAR *pwszFilename,
  1407.             /* [in] */ DWORD dwDesiredAccess,
  1408.             /* [in] */ DWORD dwShareMode);
  1409.         
  1410.         END_INTERFACE
  1411.     } IWMMetadataEditor2Vtbl;
  1412.     interface IWMMetadataEditor2
  1413.     {
  1414.         CONST_VTBL struct IWMMetadataEditor2Vtbl *lpVtbl;
  1415.     };
  1416.     
  1417. #ifdef COBJMACROS
  1418. #define IWMMetadataEditor2_QueryInterface(This,riid,ppvObject)
  1419.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1420. #define IWMMetadataEditor2_AddRef(This)
  1421.     (This)->lpVtbl -> AddRef(This)
  1422. #define IWMMetadataEditor2_Release(This)
  1423.     (This)->lpVtbl -> Release(This)
  1424. #define IWMMetadataEditor2_Open(This,pwszFilename)
  1425.     (This)->lpVtbl -> Open(This,pwszFilename)
  1426. #define IWMMetadataEditor2_Close(This)
  1427.     (This)->lpVtbl -> Close(This)
  1428. #define IWMMetadataEditor2_Flush(This)
  1429.     (This)->lpVtbl -> Flush(This)
  1430. #define IWMMetadataEditor2_OpenEx(This,pwszFilename,dwDesiredAccess,dwShareMode)
  1431.     (This)->lpVtbl -> OpenEx(This,pwszFilename,dwDesiredAccess,dwShareMode)
  1432. #endif /* COBJMACROS */
  1433. #endif  /* C style interface */
  1434. HRESULT STDMETHODCALLTYPE IWMMetadataEditor2_OpenEx_Proxy( 
  1435.     IWMMetadataEditor2 * This,
  1436.     /* [in] */ const WCHAR *pwszFilename,
  1437.     /* [in] */ DWORD dwDesiredAccess,
  1438.     /* [in] */ DWORD dwShareMode);
  1439. void __RPC_STUB IWMMetadataEditor2_OpenEx_Stub(
  1440.     IRpcStubBuffer *This,
  1441.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1442.     PRPC_MESSAGE _pRpcMessage,
  1443.     DWORD *_pdwStubPhase);
  1444. #endif  /* __IWMMetadataEditor2_INTERFACE_DEFINED__ */
  1445. #ifndef __IWMDRMEditor_INTERFACE_DEFINED__
  1446. #define __IWMDRMEditor_INTERFACE_DEFINED__
  1447. /* interface IWMDRMEditor */
  1448. /* [local][unique][helpstring][uuid][object] */ 
  1449. EXTERN_C const IID IID_IWMDRMEditor;
  1450. #if defined(__cplusplus) && !defined(CINTERFACE)
  1451.     
  1452.     MIDL_INTERFACE("FF130EBC-A6C3-42A6-B401-C3382C3E08B3")
  1453.     IWMDRMEditor : public IUnknown
  1454.     {
  1455.     public:
  1456.         virtual HRESULT STDMETHODCALLTYPE GetDRMProperty( 
  1457.             /* [in] */ LPCWSTR pwstrName,
  1458.             /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  1459.             /* [size_is][out] */ BYTE *pValue,
  1460.             /* [out][in] */ WORD *pcbLength) = 0;
  1461.         
  1462.     };
  1463.     
  1464. #else  /* C style interface */
  1465.     typedef struct IWMDRMEditorVtbl
  1466.     {
  1467.         BEGIN_INTERFACE
  1468.         
  1469.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1470.             IWMDRMEditor * This,
  1471.             /* [in] */ REFIID riid,
  1472.             /* [iid_is][out] */ void **ppvObject);
  1473.         
  1474.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1475.             IWMDRMEditor * This);
  1476.         
  1477.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1478.             IWMDRMEditor * This);
  1479.         
  1480.         HRESULT ( STDMETHODCALLTYPE *GetDRMProperty )( 
  1481.             IWMDRMEditor * This,
  1482.             /* [in] */ LPCWSTR pwstrName,
  1483.             /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  1484.             /* [size_is][out] */ BYTE *pValue,
  1485.             /* [out][in] */ WORD *pcbLength);
  1486.         
  1487.         END_INTERFACE
  1488.     } IWMDRMEditorVtbl;
  1489.     interface IWMDRMEditor
  1490.     {
  1491.         CONST_VTBL struct IWMDRMEditorVtbl *lpVtbl;
  1492.     };
  1493.     
  1494. #ifdef COBJMACROS
  1495. #define IWMDRMEditor_QueryInterface(This,riid,ppvObject)
  1496.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1497. #define IWMDRMEditor_AddRef(This)
  1498.     (This)->lpVtbl -> AddRef(This)
  1499. #define IWMDRMEditor_Release(This)
  1500.     (This)->lpVtbl -> Release(This)
  1501. #define IWMDRMEditor_GetDRMProperty(This,pwstrName,pdwType,pValue,pcbLength)
  1502.     (This)->lpVtbl -> GetDRMProperty(This,pwstrName,pdwType,pValue,pcbLength)
  1503. #endif /* COBJMACROS */
  1504. #endif  /* C style interface */
  1505. HRESULT STDMETHODCALLTYPE IWMDRMEditor_GetDRMProperty_Proxy( 
  1506.     IWMDRMEditor * This,
  1507.     /* [in] */ LPCWSTR pwstrName,
  1508.     /* [out] */ WMT_ATTR_DATATYPE *pdwType,
  1509.     /* [size_is][out] */ BYTE *pValue,
  1510.     /* [out][in] */ WORD *pcbLength);
  1511. void __RPC_STUB IWMDRMEditor_GetDRMProperty_Stub(
  1512.     IRpcStubBuffer *This,
  1513.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1514.     PRPC_MESSAGE _pRpcMessage,
  1515.     DWORD *_pdwStubPhase);
  1516. #endif  /* __IWMDRMEditor_INTERFACE_DEFINED__ */
  1517. #ifndef __IWMHeaderInfo_INTERFACE_DEFINED__
  1518. #define __IWMHeaderInfo_INTERFACE_DEFINED__
  1519. /* interface IWMHeaderInfo */
  1520. /* [local][unique][helpstring][uuid][object] */ 
  1521. EXTERN_C const IID IID_IWMHeaderInfo;
  1522. #if defined(__cplusplus) && !defined(CINTERFACE)
  1523.     
  1524.     MIDL_INTERFACE("96406BDA-2B2B-11d3-B36B-00C04F6108FF")
  1525.     IWMHeaderInfo : public IUnknown
  1526.     {
  1527.     public:
  1528.         virtual HRESULT STDMETHODCALLTYPE GetAttributeCount( 
  1529.             /* [in] */ WORD wStreamNum,
  1530.             /* [out] */ WORD *pcAttributes) = 0;
  1531.         
  1532.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex( 
  1533.             /* [in] */ WORD wIndex,
  1534.             /* [out][in] */ WORD *pwStreamNum,
  1535.             /* [size_is][out] */ WCHAR *pwszName,
  1536.             /* [out][in] */ WORD *pcchNameLen,
  1537.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  1538.             /* [size_is][out] */ BYTE *pValue,
  1539.             /* [out][in] */ WORD *pcbLength) = 0;
  1540.         
  1541.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByName( 
  1542.             /* [out][in] */ WORD *pwStreamNum,
  1543.             /* [in] */ LPCWSTR pszName,
  1544.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  1545.             /* [size_is][out] */ BYTE *pValue,
  1546.             /* [out][in] */ WORD *pcbLength) = 0;
  1547.         
  1548.         virtual HRESULT STDMETHODCALLTYPE SetAttribute( 
  1549.             /* [in] */ WORD wStreamNum,
  1550.             /* [in] */ LPCWSTR pszName,
  1551.             /* [in] */ WMT_ATTR_DATATYPE Type,
  1552.             /* [size_is][in] */ const BYTE *pValue,
  1553.             /* [in] */ WORD cbLength) = 0;
  1554.         
  1555.         virtual HRESULT STDMETHODCALLTYPE GetMarkerCount( 
  1556.             /* [out] */ WORD *pcMarkers) = 0;
  1557.         
  1558.         virtual HRESULT STDMETHODCALLTYPE GetMarker( 
  1559.             /* [in] */ WORD wIndex,
  1560.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  1561.             /* [out][in] */ WORD *pcchMarkerNameLen,
  1562.             /* [out] */ QWORD *pcnsMarkerTime) = 0;
  1563.         
  1564.         virtual HRESULT STDMETHODCALLTYPE AddMarker( 
  1565.             /* [in] */ WCHAR *pwszMarkerName,
  1566.             /* [in] */ QWORD cnsMarkerTime) = 0;
  1567.         
  1568.         virtual HRESULT STDMETHODCALLTYPE RemoveMarker( 
  1569.             /* [in] */ WORD wIndex) = 0;
  1570.         
  1571.         virtual HRESULT STDMETHODCALLTYPE GetScriptCount( 
  1572.             /* [out] */ WORD *pcScripts) = 0;
  1573.         
  1574.         virtual HRESULT STDMETHODCALLTYPE GetScript( 
  1575.             /* [in] */ WORD wIndex,
  1576.             /* [size_is][out] */ WCHAR *pwszType,
  1577.             /* [out][in] */ WORD *pcchTypeLen,
  1578.             /* [size_is][out] */ WCHAR *pwszCommand,
  1579.             /* [out][in] */ WORD *pcchCommandLen,
  1580.             /* [out] */ QWORD *pcnsScriptTime) = 0;
  1581.         
  1582.         virtual HRESULT STDMETHODCALLTYPE AddScript( 
  1583.             /* [in] */ WCHAR *pwszType,
  1584.             /* [in] */ WCHAR *pwszCommand,
  1585.             /* [in] */ QWORD cnsScriptTime) = 0;
  1586.         
  1587.         virtual HRESULT STDMETHODCALLTYPE RemoveScript( 
  1588.             /* [in] */ WORD wIndex) = 0;
  1589.         
  1590.     };
  1591.     
  1592. #else  /* C style interface */
  1593.     typedef struct IWMHeaderInfoVtbl
  1594.     {
  1595.         BEGIN_INTERFACE
  1596.         
  1597.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1598.             IWMHeaderInfo * This,
  1599.             /* [in] */ REFIID riid,
  1600.             /* [iid_is][out] */ void **ppvObject);
  1601.         
  1602.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1603.             IWMHeaderInfo * This);
  1604.         
  1605.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1606.             IWMHeaderInfo * This);
  1607.         
  1608.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
  1609.             IWMHeaderInfo * This,
  1610.             /* [in] */ WORD wStreamNum,
  1611.             /* [out] */ WORD *pcAttributes);
  1612.         
  1613.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )( 
  1614.             IWMHeaderInfo * This,
  1615.             /* [in] */ WORD wIndex,
  1616.             /* [out][in] */ WORD *pwStreamNum,
  1617.             /* [size_is][out] */ WCHAR *pwszName,
  1618.             /* [out][in] */ WORD *pcchNameLen,
  1619.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  1620.             /* [size_is][out] */ BYTE *pValue,
  1621.             /* [out][in] */ WORD *pcbLength);
  1622.         
  1623.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )( 
  1624.             IWMHeaderInfo * This,
  1625.             /* [out][in] */ WORD *pwStreamNum,
  1626.             /* [in] */ LPCWSTR pszName,
  1627.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  1628.             /* [size_is][out] */ BYTE *pValue,
  1629.             /* [out][in] */ WORD *pcbLength);
  1630.         
  1631.         HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
  1632.             IWMHeaderInfo * This,
  1633.             /* [in] */ WORD wStreamNum,
  1634.             /* [in] */ LPCWSTR pszName,
  1635.             /* [in] */ WMT_ATTR_DATATYPE Type,
  1636.             /* [size_is][in] */ const BYTE *pValue,
  1637.             /* [in] */ WORD cbLength);
  1638.         
  1639.         HRESULT ( STDMETHODCALLTYPE *GetMarkerCount )( 
  1640.             IWMHeaderInfo * This,
  1641.             /* [out] */ WORD *pcMarkers);
  1642.         
  1643.         HRESULT ( STDMETHODCALLTYPE *GetMarker )( 
  1644.             IWMHeaderInfo * This,
  1645.             /* [in] */ WORD wIndex,
  1646.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  1647.             /* [out][in] */ WORD *pcchMarkerNameLen,
  1648.             /* [out] */ QWORD *pcnsMarkerTime);
  1649.         
  1650.         HRESULT ( STDMETHODCALLTYPE *AddMarker )( 
  1651.             IWMHeaderInfo * This,
  1652.             /* [in] */ WCHAR *pwszMarkerName,
  1653.             /* [in] */ QWORD cnsMarkerTime);
  1654.         
  1655.         HRESULT ( STDMETHODCALLTYPE *RemoveMarker )( 
  1656.             IWMHeaderInfo * This,
  1657.             /* [in] */ WORD wIndex);
  1658.         
  1659.         HRESULT ( STDMETHODCALLTYPE *GetScriptCount )( 
  1660.             IWMHeaderInfo * This,
  1661.             /* [out] */ WORD *pcScripts);
  1662.         
  1663.         HRESULT ( STDMETHODCALLTYPE *GetScript )( 
  1664.             IWMHeaderInfo * This,
  1665.             /* [in] */ WORD wIndex,
  1666.             /* [size_is][out] */ WCHAR *pwszType,
  1667.             /* [out][in] */ WORD *pcchTypeLen,
  1668.             /* [size_is][out] */ WCHAR *pwszCommand,
  1669.             /* [out][in] */ WORD *pcchCommandLen,
  1670.             /* [out] */ QWORD *pcnsScriptTime);
  1671.         
  1672.         HRESULT ( STDMETHODCALLTYPE *AddScript )( 
  1673.             IWMHeaderInfo * This,
  1674.             /* [in] */ WCHAR *pwszType,
  1675.             /* [in] */ WCHAR *pwszCommand,
  1676.             /* [in] */ QWORD cnsScriptTime);
  1677.         
  1678.         HRESULT ( STDMETHODCALLTYPE *RemoveScript )( 
  1679.             IWMHeaderInfo * This,
  1680.             /* [in] */ WORD wIndex);
  1681.         
  1682.         END_INTERFACE
  1683.     } IWMHeaderInfoVtbl;
  1684.     interface IWMHeaderInfo
  1685.     {
  1686.         CONST_VTBL struct IWMHeaderInfoVtbl *lpVtbl;
  1687.     };
  1688.     
  1689. #ifdef COBJMACROS
  1690. #define IWMHeaderInfo_QueryInterface(This,riid,ppvObject)
  1691.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1692. #define IWMHeaderInfo_AddRef(This)
  1693.     (This)->lpVtbl -> AddRef(This)
  1694. #define IWMHeaderInfo_Release(This)
  1695.     (This)->lpVtbl -> Release(This)
  1696. #define IWMHeaderInfo_GetAttributeCount(This,wStreamNum,pcAttributes)
  1697.     (This)->lpVtbl -> GetAttributeCount(This,wStreamNum,pcAttributes)
  1698. #define IWMHeaderInfo_GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  1699.     (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  1700. #define IWMHeaderInfo_GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  1701.     (This)->lpVtbl -> GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  1702. #define IWMHeaderInfo_SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  1703.     (This)->lpVtbl -> SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  1704. #define IWMHeaderInfo_GetMarkerCount(This,pcMarkers)
  1705.     (This)->lpVtbl -> GetMarkerCount(This,pcMarkers)
  1706. #define IWMHeaderInfo_GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  1707.     (This)->lpVtbl -> GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  1708. #define IWMHeaderInfo_AddMarker(This,pwszMarkerName,cnsMarkerTime)
  1709.     (This)->lpVtbl -> AddMarker(This,pwszMarkerName,cnsMarkerTime)
  1710. #define IWMHeaderInfo_RemoveMarker(This,wIndex)
  1711.     (This)->lpVtbl -> RemoveMarker(This,wIndex)
  1712. #define IWMHeaderInfo_GetScriptCount(This,pcScripts)
  1713.     (This)->lpVtbl -> GetScriptCount(This,pcScripts)
  1714. #define IWMHeaderInfo_GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  1715.     (This)->lpVtbl -> GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  1716. #define IWMHeaderInfo_AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  1717.     (This)->lpVtbl -> AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  1718. #define IWMHeaderInfo_RemoveScript(This,wIndex)
  1719.     (This)->lpVtbl -> RemoveScript(This,wIndex)
  1720. #endif /* COBJMACROS */
  1721. #endif  /* C style interface */
  1722. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetAttributeCount_Proxy( 
  1723.     IWMHeaderInfo * This,
  1724.     /* [in] */ WORD wStreamNum,
  1725.     /* [out] */ WORD *pcAttributes);
  1726. void __RPC_STUB IWMHeaderInfo_GetAttributeCount_Stub(
  1727.     IRpcStubBuffer *This,
  1728.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1729.     PRPC_MESSAGE _pRpcMessage,
  1730.     DWORD *_pdwStubPhase);
  1731. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetAttributeByIndex_Proxy( 
  1732.     IWMHeaderInfo * This,
  1733.     /* [in] */ WORD wIndex,
  1734.     /* [out][in] */ WORD *pwStreamNum,
  1735.     /* [size_is][out] */ WCHAR *pwszName,
  1736.     /* [out][in] */ WORD *pcchNameLen,
  1737.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  1738.     /* [size_is][out] */ BYTE *pValue,
  1739.     /* [out][in] */ WORD *pcbLength);
  1740. void __RPC_STUB IWMHeaderInfo_GetAttributeByIndex_Stub(
  1741.     IRpcStubBuffer *This,
  1742.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1743.     PRPC_MESSAGE _pRpcMessage,
  1744.     DWORD *_pdwStubPhase);
  1745. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetAttributeByName_Proxy( 
  1746.     IWMHeaderInfo * This,
  1747.     /* [out][in] */ WORD *pwStreamNum,
  1748.     /* [in] */ LPCWSTR pszName,
  1749.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  1750.     /* [size_is][out] */ BYTE *pValue,
  1751.     /* [out][in] */ WORD *pcbLength);
  1752. void __RPC_STUB IWMHeaderInfo_GetAttributeByName_Stub(
  1753.     IRpcStubBuffer *This,
  1754.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1755.     PRPC_MESSAGE _pRpcMessage,
  1756.     DWORD *_pdwStubPhase);
  1757. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_SetAttribute_Proxy( 
  1758.     IWMHeaderInfo * This,
  1759.     /* [in] */ WORD wStreamNum,
  1760.     /* [in] */ LPCWSTR pszName,
  1761.     /* [in] */ WMT_ATTR_DATATYPE Type,
  1762.     /* [size_is][in] */ const BYTE *pValue,
  1763.     /* [in] */ WORD cbLength);
  1764. void __RPC_STUB IWMHeaderInfo_SetAttribute_Stub(
  1765.     IRpcStubBuffer *This,
  1766.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1767.     PRPC_MESSAGE _pRpcMessage,
  1768.     DWORD *_pdwStubPhase);
  1769. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetMarkerCount_Proxy( 
  1770.     IWMHeaderInfo * This,
  1771.     /* [out] */ WORD *pcMarkers);
  1772. void __RPC_STUB IWMHeaderInfo_GetMarkerCount_Stub(
  1773.     IRpcStubBuffer *This,
  1774.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1775.     PRPC_MESSAGE _pRpcMessage,
  1776.     DWORD *_pdwStubPhase);
  1777. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetMarker_Proxy( 
  1778.     IWMHeaderInfo * This,
  1779.     /* [in] */ WORD wIndex,
  1780.     /* [size_is][out] */ WCHAR *pwszMarkerName,
  1781.     /* [out][in] */ WORD *pcchMarkerNameLen,
  1782.     /* [out] */ QWORD *pcnsMarkerTime);
  1783. void __RPC_STUB IWMHeaderInfo_GetMarker_Stub(
  1784.     IRpcStubBuffer *This,
  1785.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1786.     PRPC_MESSAGE _pRpcMessage,
  1787.     DWORD *_pdwStubPhase);
  1788. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_AddMarker_Proxy( 
  1789.     IWMHeaderInfo * This,
  1790.     /* [in] */ WCHAR *pwszMarkerName,
  1791.     /* [in] */ QWORD cnsMarkerTime);
  1792. void __RPC_STUB IWMHeaderInfo_AddMarker_Stub(
  1793.     IRpcStubBuffer *This,
  1794.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1795.     PRPC_MESSAGE _pRpcMessage,
  1796.     DWORD *_pdwStubPhase);
  1797. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_RemoveMarker_Proxy( 
  1798.     IWMHeaderInfo * This,
  1799.     /* [in] */ WORD wIndex);
  1800. void __RPC_STUB IWMHeaderInfo_RemoveMarker_Stub(
  1801.     IRpcStubBuffer *This,
  1802.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1803.     PRPC_MESSAGE _pRpcMessage,
  1804.     DWORD *_pdwStubPhase);
  1805. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetScriptCount_Proxy( 
  1806.     IWMHeaderInfo * This,
  1807.     /* [out] */ WORD *pcScripts);
  1808. void __RPC_STUB IWMHeaderInfo_GetScriptCount_Stub(
  1809.     IRpcStubBuffer *This,
  1810.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1811.     PRPC_MESSAGE _pRpcMessage,
  1812.     DWORD *_pdwStubPhase);
  1813. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_GetScript_Proxy( 
  1814.     IWMHeaderInfo * This,
  1815.     /* [in] */ WORD wIndex,
  1816.     /* [size_is][out] */ WCHAR *pwszType,
  1817.     /* [out][in] */ WORD *pcchTypeLen,
  1818.     /* [size_is][out] */ WCHAR *pwszCommand,
  1819.     /* [out][in] */ WORD *pcchCommandLen,
  1820.     /* [out] */ QWORD *pcnsScriptTime);
  1821. void __RPC_STUB IWMHeaderInfo_GetScript_Stub(
  1822.     IRpcStubBuffer *This,
  1823.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1824.     PRPC_MESSAGE _pRpcMessage,
  1825.     DWORD *_pdwStubPhase);
  1826. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_AddScript_Proxy( 
  1827.     IWMHeaderInfo * This,
  1828.     /* [in] */ WCHAR *pwszType,
  1829.     /* [in] */ WCHAR *pwszCommand,
  1830.     /* [in] */ QWORD cnsScriptTime);
  1831. void __RPC_STUB IWMHeaderInfo_AddScript_Stub(
  1832.     IRpcStubBuffer *This,
  1833.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1834.     PRPC_MESSAGE _pRpcMessage,
  1835.     DWORD *_pdwStubPhase);
  1836. HRESULT STDMETHODCALLTYPE IWMHeaderInfo_RemoveScript_Proxy( 
  1837.     IWMHeaderInfo * This,
  1838.     /* [in] */ WORD wIndex);
  1839. void __RPC_STUB IWMHeaderInfo_RemoveScript_Stub(
  1840.     IRpcStubBuffer *This,
  1841.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1842.     PRPC_MESSAGE _pRpcMessage,
  1843.     DWORD *_pdwStubPhase);
  1844. #endif  /* __IWMHeaderInfo_INTERFACE_DEFINED__ */
  1845. #ifndef __IWMHeaderInfo2_INTERFACE_DEFINED__
  1846. #define __IWMHeaderInfo2_INTERFACE_DEFINED__
  1847. /* interface IWMHeaderInfo2 */
  1848. /* [local][unique][helpstring][uuid][object] */ 
  1849. EXTERN_C const IID IID_IWMHeaderInfo2;
  1850. #if defined(__cplusplus) && !defined(CINTERFACE)
  1851.     
  1852.     MIDL_INTERFACE("15CF9781-454E-482e-B393-85FAE487A810")
  1853.     IWMHeaderInfo2 : public IWMHeaderInfo
  1854.     {
  1855.     public:
  1856.         virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount( 
  1857.             /* [out] */ DWORD *pcCodecInfos) = 0;
  1858.         
  1859.         virtual HRESULT STDMETHODCALLTYPE GetCodecInfo( 
  1860.             /* [in] */ DWORD wIndex,
  1861.             /* [out][in] */ WORD *pcchName,
  1862.             /* [size_is][out] */ WCHAR *pwszName,
  1863.             /* [out][in] */ WORD *pcchDescription,
  1864.             /* [size_is][out] */ WCHAR *pwszDescription,
  1865.             /* [out] */ DWORD *pCodecType,
  1866.             /* [out][in] */ WORD *pcbCodecInfo,
  1867.             /* [size_is][out] */ BYTE *pbCodecInfo) = 0;
  1868.         
  1869.     };
  1870.     
  1871. #else  /* C style interface */
  1872.     typedef struct IWMHeaderInfo2Vtbl
  1873.     {
  1874.         BEGIN_INTERFACE
  1875.         
  1876.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1877.             IWMHeaderInfo2 * This,
  1878.             /* [in] */ REFIID riid,
  1879.             /* [iid_is][out] */ void **ppvObject);
  1880.         
  1881.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1882.             IWMHeaderInfo2 * This);
  1883.         
  1884.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1885.             IWMHeaderInfo2 * This);
  1886.         
  1887.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
  1888.             IWMHeaderInfo2 * This,
  1889.             /* [in] */ WORD wStreamNum,
  1890.             /* [out] */ WORD *pcAttributes);
  1891.         
  1892.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )( 
  1893.             IWMHeaderInfo2 * This,
  1894.             /* [in] */ WORD wIndex,
  1895.             /* [out][in] */ WORD *pwStreamNum,
  1896.             /* [size_is][out] */ WCHAR *pwszName,
  1897.             /* [out][in] */ WORD *pcchNameLen,
  1898.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  1899.             /* [size_is][out] */ BYTE *pValue,
  1900.             /* [out][in] */ WORD *pcbLength);
  1901.         
  1902.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )( 
  1903.             IWMHeaderInfo2 * This,
  1904.             /* [out][in] */ WORD *pwStreamNum,
  1905.             /* [in] */ LPCWSTR pszName,
  1906.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  1907.             /* [size_is][out] */ BYTE *pValue,
  1908.             /* [out][in] */ WORD *pcbLength);
  1909.         
  1910.         HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
  1911.             IWMHeaderInfo2 * This,
  1912.             /* [in] */ WORD wStreamNum,
  1913.             /* [in] */ LPCWSTR pszName,
  1914.             /* [in] */ WMT_ATTR_DATATYPE Type,
  1915.             /* [size_is][in] */ const BYTE *pValue,
  1916.             /* [in] */ WORD cbLength);
  1917.         
  1918.         HRESULT ( STDMETHODCALLTYPE *GetMarkerCount )( 
  1919.             IWMHeaderInfo2 * This,
  1920.             /* [out] */ WORD *pcMarkers);
  1921.         
  1922.         HRESULT ( STDMETHODCALLTYPE *GetMarker )( 
  1923.             IWMHeaderInfo2 * This,
  1924.             /* [in] */ WORD wIndex,
  1925.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  1926.             /* [out][in] */ WORD *pcchMarkerNameLen,
  1927.             /* [out] */ QWORD *pcnsMarkerTime);
  1928.         
  1929.         HRESULT ( STDMETHODCALLTYPE *AddMarker )( 
  1930.             IWMHeaderInfo2 * This,
  1931.             /* [in] */ WCHAR *pwszMarkerName,
  1932.             /* [in] */ QWORD cnsMarkerTime);
  1933.         
  1934.         HRESULT ( STDMETHODCALLTYPE *RemoveMarker )( 
  1935.             IWMHeaderInfo2 * This,
  1936.             /* [in] */ WORD wIndex);
  1937.         
  1938.         HRESULT ( STDMETHODCALLTYPE *GetScriptCount )( 
  1939.             IWMHeaderInfo2 * This,
  1940.             /* [out] */ WORD *pcScripts);
  1941.         
  1942.         HRESULT ( STDMETHODCALLTYPE *GetScript )( 
  1943.             IWMHeaderInfo2 * This,
  1944.             /* [in] */ WORD wIndex,
  1945.             /* [size_is][out] */ WCHAR *pwszType,
  1946.             /* [out][in] */ WORD *pcchTypeLen,
  1947.             /* [size_is][out] */ WCHAR *pwszCommand,
  1948.             /* [out][in] */ WORD *pcchCommandLen,
  1949.             /* [out] */ QWORD *pcnsScriptTime);
  1950.         
  1951.         HRESULT ( STDMETHODCALLTYPE *AddScript )( 
  1952.             IWMHeaderInfo2 * This,
  1953.             /* [in] */ WCHAR *pwszType,
  1954.             /* [in] */ WCHAR *pwszCommand,
  1955.             /* [in] */ QWORD cnsScriptTime);
  1956.         
  1957.         HRESULT ( STDMETHODCALLTYPE *RemoveScript )( 
  1958.             IWMHeaderInfo2 * This,
  1959.             /* [in] */ WORD wIndex);
  1960.         
  1961.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfoCount )( 
  1962.             IWMHeaderInfo2 * This,
  1963.             /* [out] */ DWORD *pcCodecInfos);
  1964.         
  1965.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfo )( 
  1966.             IWMHeaderInfo2 * This,
  1967.             /* [in] */ DWORD wIndex,
  1968.             /* [out][in] */ WORD *pcchName,
  1969.             /* [size_is][out] */ WCHAR *pwszName,
  1970.             /* [out][in] */ WORD *pcchDescription,
  1971.             /* [size_is][out] */ WCHAR *pwszDescription,
  1972.             /* [out] */ WMT_CODEC_INFO_TYPE *pCodecType,
  1973.             /* [out][in] */ WORD *pcbCodecInfo,
  1974.             /* [size_is][out] */ BYTE *pbCodecInfo);
  1975.         
  1976.         END_INTERFACE
  1977.     } IWMHeaderInfo2Vtbl;
  1978.     interface IWMHeaderInfo2
  1979.     {
  1980.         CONST_VTBL struct IWMHeaderInfo2Vtbl *lpVtbl;
  1981.     };
  1982.     
  1983. #ifdef COBJMACROS
  1984. #define IWMHeaderInfo2_QueryInterface(This,riid,ppvObject)
  1985.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1986. #define IWMHeaderInfo2_AddRef(This)
  1987.     (This)->lpVtbl -> AddRef(This)
  1988. #define IWMHeaderInfo2_Release(This)
  1989.     (This)->lpVtbl -> Release(This)
  1990. #define IWMHeaderInfo2_GetAttributeCount(This,wStreamNum,pcAttributes)
  1991.     (This)->lpVtbl -> GetAttributeCount(This,wStreamNum,pcAttributes)
  1992. #define IWMHeaderInfo2_GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  1993.     (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  1994. #define IWMHeaderInfo2_GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  1995.     (This)->lpVtbl -> GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  1996. #define IWMHeaderInfo2_SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  1997.     (This)->lpVtbl -> SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  1998. #define IWMHeaderInfo2_GetMarkerCount(This,pcMarkers)
  1999.     (This)->lpVtbl -> GetMarkerCount(This,pcMarkers)
  2000. #define IWMHeaderInfo2_GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  2001.     (This)->lpVtbl -> GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  2002. #define IWMHeaderInfo2_AddMarker(This,pwszMarkerName,cnsMarkerTime)
  2003.     (This)->lpVtbl -> AddMarker(This,pwszMarkerName,cnsMarkerTime)
  2004. #define IWMHeaderInfo2_RemoveMarker(This,wIndex)
  2005.     (This)->lpVtbl -> RemoveMarker(This,wIndex)
  2006. #define IWMHeaderInfo2_GetScriptCount(This,pcScripts)
  2007.     (This)->lpVtbl -> GetScriptCount(This,pcScripts)
  2008. #define IWMHeaderInfo2_GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  2009.     (This)->lpVtbl -> GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  2010. #define IWMHeaderInfo2_AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  2011.     (This)->lpVtbl -> AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  2012. #define IWMHeaderInfo2_RemoveScript(This,wIndex)
  2013.     (This)->lpVtbl -> RemoveScript(This,wIndex)
  2014. #define IWMHeaderInfo2_GetCodecInfoCount(This,pcCodecInfos)
  2015.     (This)->lpVtbl -> GetCodecInfoCount(This,pcCodecInfos)
  2016. #define IWMHeaderInfo2_GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)
  2017.     (This)->lpVtbl -> GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)
  2018. #endif /* COBJMACROS */
  2019. #endif  /* C style interface */
  2020. HRESULT STDMETHODCALLTYPE IWMHeaderInfo2_GetCodecInfoCount_Proxy( 
  2021.     IWMHeaderInfo2 * This,
  2022.     /* [out] */ DWORD *pcCodecInfos);
  2023. void __RPC_STUB IWMHeaderInfo2_GetCodecInfoCount_Stub(
  2024.     IRpcStubBuffer *This,
  2025.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2026.     PRPC_MESSAGE _pRpcMessage,
  2027.     DWORD *_pdwStubPhase);
  2028. HRESULT STDMETHODCALLTYPE IWMHeaderInfo2_GetCodecInfo_Proxy( 
  2029.     IWMHeaderInfo2 * This,
  2030.     /* [in] */ DWORD wIndex,
  2031.     /* [out][in] */ WORD *pcchName,
  2032.     /* [size_is][out] */ WCHAR *pwszName,
  2033.     /* [out][in] */ WORD *pcchDescription,
  2034.     /* [size_is][out] */ WCHAR *pwszDescription,
  2035.     /* [out] */ WMT_CODEC_INFO_TYPE *pCodecType,
  2036.     /* [out][in] */ WORD *pcbCodecInfo,
  2037.     /* [size_is][out] */ BYTE *pbCodecInfo);
  2038. void __RPC_STUB IWMHeaderInfo2_GetCodecInfo_Stub(
  2039.     IRpcStubBuffer *This,
  2040.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2041.     PRPC_MESSAGE _pRpcMessage,
  2042.     DWORD *_pdwStubPhase);
  2043. #endif  /* __IWMHeaderInfo2_INTERFACE_DEFINED__ */
  2044. #ifndef __IWMHeaderInfo3_INTERFACE_DEFINED__
  2045. #define __IWMHeaderInfo3_INTERFACE_DEFINED__
  2046. /* interface IWMHeaderInfo3 */
  2047. /* [local][unique][helpstring][uuid][object] */ 
  2048. EXTERN_C const IID IID_IWMHeaderInfo3;
  2049. #if defined(__cplusplus) && !defined(CINTERFACE)
  2050.     
  2051.     MIDL_INTERFACE("15CC68E3-27CC-4ecd-B222-3F5D02D80BD5")
  2052.     IWMHeaderInfo3 : public IWMHeaderInfo2
  2053.     {
  2054.     public:
  2055.         virtual HRESULT STDMETHODCALLTYPE GetAttributeCountEx( 
  2056.             /* [in] */ WORD wStreamNum,
  2057.             /* [out] */ WORD *pcAttributes) = 0;
  2058.         
  2059.         virtual HRESULT STDMETHODCALLTYPE GetAttributeIndices( 
  2060.             /* [in] */ WORD wStreamNum,
  2061.             /* [in] */ LPCWSTR pwszName,
  2062.             /* [in] */ WORD *pwLangIndex,
  2063.             /* [size_is][out] */ WORD *pwIndices,
  2064.             /* [out][in] */ WORD *pwCount) = 0;
  2065.         
  2066.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndexEx( 
  2067.             /* [in] */ WORD wStreamNum,
  2068.             /* [in] */ WORD wIndex,
  2069.             /* [size_is][out] */ LPWSTR pwszName,
  2070.             /* [out][in] */ WORD *pwNameLen,
  2071.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2072.             /* [out] */ WORD *pwLangIndex,
  2073.             /* [size_is][out] */ BYTE *pValue,
  2074.             /* [out][in] */ DWORD *pdwDataLength) = 0;
  2075.         
  2076.         virtual HRESULT STDMETHODCALLTYPE ModifyAttribute( 
  2077.             /* [in] */ WORD wStreamNum,
  2078.             /* [in] */ WORD wIndex,
  2079.             /* [in] */ WMT_ATTR_DATATYPE Type,
  2080.             /* [in] */ WORD wLangIndex,
  2081.             /* [size_is][in] */ const BYTE *pValue,
  2082.             /* [in] */ DWORD dwLength) = 0;
  2083.         
  2084.         virtual HRESULT STDMETHODCALLTYPE AddAttribute( 
  2085.             /* [in] */ WORD wStreamNum,
  2086.             /* [in] */ LPCWSTR pszName,
  2087.             /* [out] */ WORD *pwIndex,
  2088.             /* [in] */ WMT_ATTR_DATATYPE Type,
  2089.             /* [in] */ WORD wLangIndex,
  2090.             /* [size_is][in] */ const BYTE *pValue,
  2091.             /* [in] */ DWORD dwLength) = 0;
  2092.         
  2093.         virtual HRESULT STDMETHODCALLTYPE DeleteAttribute( 
  2094.             /* [in] */ WORD wStreamNum,
  2095.             /* [in] */ WORD wIndex) = 0;
  2096.         
  2097.         virtual HRESULT STDMETHODCALLTYPE AddCodecInfo( 
  2098.             /* [in] */ WCHAR *pwszName,
  2099.             /* [in] */ WCHAR *pwszDescription,
  2100.             /* [in] */ WMT_CODEC_INFO_TYPE codecType,
  2101.             /* [in] */ WORD cbCodecInfo,
  2102.             /* [size_is][in] */ BYTE *pbCodecInfo) = 0;
  2103.         
  2104.     };
  2105.     
  2106. #else  /* C style interface */
  2107.     typedef struct IWMHeaderInfo3Vtbl
  2108.     {
  2109.         BEGIN_INTERFACE
  2110.         
  2111.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2112.             IWMHeaderInfo3 * This,
  2113.             /* [in] */ REFIID riid,
  2114.             /* [iid_is][out] */ void **ppvObject);
  2115.         
  2116.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2117.             IWMHeaderInfo3 * This);
  2118.         
  2119.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2120.             IWMHeaderInfo3 * This);
  2121.         
  2122.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
  2123.             IWMHeaderInfo3 * This,
  2124.             /* [in] */ WORD wStreamNum,
  2125.             /* [out] */ WORD *pcAttributes);
  2126.         
  2127.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )( 
  2128.             IWMHeaderInfo3 * This,
  2129.             /* [in] */ WORD wIndex,
  2130.             /* [out][in] */ WORD *pwStreamNum,
  2131.             /* [size_is][out] */ WCHAR *pwszName,
  2132.             /* [out][in] */ WORD *pcchNameLen,
  2133.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2134.             /* [size_is][out] */ BYTE *pValue,
  2135.             /* [out][in] */ WORD *pcbLength);
  2136.         
  2137.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )( 
  2138.             IWMHeaderInfo3 * This,
  2139.             /* [out][in] */ WORD *pwStreamNum,
  2140.             /* [in] */ LPCWSTR pszName,
  2141.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2142.             /* [size_is][out] */ BYTE *pValue,
  2143.             /* [out][in] */ WORD *pcbLength);
  2144.         
  2145.         HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
  2146.             IWMHeaderInfo3 * This,
  2147.             /* [in] */ WORD wStreamNum,
  2148.             /* [in] */ LPCWSTR pszName,
  2149.             /* [in] */ WMT_ATTR_DATATYPE Type,
  2150.             /* [size_is][in] */ const BYTE *pValue,
  2151.             /* [in] */ WORD cbLength);
  2152.         
  2153.         HRESULT ( STDMETHODCALLTYPE *GetMarkerCount )( 
  2154.             IWMHeaderInfo3 * This,
  2155.             /* [out] */ WORD *pcMarkers);
  2156.         
  2157.         HRESULT ( STDMETHODCALLTYPE *GetMarker )( 
  2158.             IWMHeaderInfo3 * This,
  2159.             /* [in] */ WORD wIndex,
  2160.             /* [size_is][out] */ WCHAR *pwszMarkerName,
  2161.             /* [out][in] */ WORD *pcchMarkerNameLen,
  2162.             /* [out] */ QWORD *pcnsMarkerTime);
  2163.         
  2164.         HRESULT ( STDMETHODCALLTYPE *AddMarker )( 
  2165.             IWMHeaderInfo3 * This,
  2166.             /* [in] */ WCHAR *pwszMarkerName,
  2167.             /* [in] */ QWORD cnsMarkerTime);
  2168.         
  2169.         HRESULT ( STDMETHODCALLTYPE *RemoveMarker )( 
  2170.             IWMHeaderInfo3 * This,
  2171.             /* [in] */ WORD wIndex);
  2172.         
  2173.         HRESULT ( STDMETHODCALLTYPE *GetScriptCount )( 
  2174.             IWMHeaderInfo3 * This,
  2175.             /* [out] */ WORD *pcScripts);
  2176.         
  2177.         HRESULT ( STDMETHODCALLTYPE *GetScript )( 
  2178.             IWMHeaderInfo3 * This,
  2179.             /* [in] */ WORD wIndex,
  2180.             /* [size_is][out] */ WCHAR *pwszType,
  2181.             /* [out][in] */ WORD *pcchTypeLen,
  2182.             /* [size_is][out] */ WCHAR *pwszCommand,
  2183.             /* [out][in] */ WORD *pcchCommandLen,
  2184.             /* [out] */ QWORD *pcnsScriptTime);
  2185.         
  2186.         HRESULT ( STDMETHODCALLTYPE *AddScript )( 
  2187.             IWMHeaderInfo3 * This,
  2188.             /* [in] */ WCHAR *pwszType,
  2189.             /* [in] */ WCHAR *pwszCommand,
  2190.             /* [in] */ QWORD cnsScriptTime);
  2191.         
  2192.         HRESULT ( STDMETHODCALLTYPE *RemoveScript )( 
  2193.             IWMHeaderInfo3 * This,
  2194.             /* [in] */ WORD wIndex);
  2195.         
  2196.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfoCount )( 
  2197.             IWMHeaderInfo3 * This,
  2198.             /* [out] */ DWORD *pcCodecInfos);
  2199.         
  2200.         HRESULT ( STDMETHODCALLTYPE *GetCodecInfo )( 
  2201.             IWMHeaderInfo3 * This,
  2202.             /* [in] */ DWORD wIndex,
  2203.             /* [out][in] */ WORD *pcchName,
  2204.             /* [size_is][out] */ WCHAR *pwszName,
  2205.             /* [out][in] */ WORD *pcchDescription,
  2206.             /* [size_is][out] */ WCHAR *pwszDescription,
  2207.             /* [out] */ WMT_CODEC_INFO_TYPE *pCodecType,
  2208.             /* [out][in] */ WORD *pcbCodecInfo,
  2209.             /* [size_is][out] */ BYTE *pbCodecInfo);
  2210.         
  2211.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCountEx )( 
  2212.             IWMHeaderInfo3 * This,
  2213.             /* [in] */ WORD wStreamNum,
  2214.             /* [out] */ WORD *pcAttributes);
  2215.         
  2216.         HRESULT ( STDMETHODCALLTYPE *GetAttributeIndices )( 
  2217.             IWMHeaderInfo3 * This,
  2218.             /* [in] */ WORD wStreamNum,
  2219.             /* [in] */ LPCWSTR pwszName,
  2220.             /* [in] */ WORD *pwLangIndex,
  2221.             /* [size_is][out] */ WORD *pwIndices,
  2222.             /* [out][in] */ WORD *pwCount);
  2223.         
  2224.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndexEx )( 
  2225.             IWMHeaderInfo3 * This,
  2226.             /* [in] */ WORD wStreamNum,
  2227.             /* [in] */ WORD wIndex,
  2228.             /* [size_is][out] */ LPWSTR pwszName,
  2229.             /* [out][in] */ WORD *pwNameLen,
  2230.             /* [out] */ WMT_ATTR_DATATYPE *pType,
  2231.             /* [out] */ WORD *pwLangIndex,
  2232.             /* [size_is][out] */ BYTE *pValue,
  2233.             /* [out][in] */ DWORD *pdwDataLength);
  2234.         
  2235.         HRESULT ( STDMETHODCALLTYPE *ModifyAttribute )( 
  2236.             IWMHeaderInfo3 * This,
  2237.             /* [in] */ WORD wStreamNum,
  2238.             /* [in] */ WORD wIndex,
  2239.             /* [in] */ WMT_ATTR_DATATYPE Type,
  2240.             /* [in] */ WORD wLangIndex,
  2241.             /* [size_is][in] */ const BYTE *pValue,
  2242.             /* [in] */ DWORD dwLength);
  2243.         
  2244.         HRESULT ( STDMETHODCALLTYPE *AddAttribute )( 
  2245.             IWMHeaderInfo3 * This,
  2246.             /* [in] */ WORD wStreamNum,
  2247.             /* [in] */ LPCWSTR pszName,
  2248.             /* [out] */ WORD *pwIndex,
  2249.             /* [in] */ WMT_ATTR_DATATYPE Type,
  2250.             /* [in] */ WORD wLangIndex,
  2251.             /* [size_is][in] */ const BYTE *pValue,
  2252.             /* [in] */ DWORD dwLength);
  2253.         
  2254.         HRESULT ( STDMETHODCALLTYPE *DeleteAttribute )( 
  2255.             IWMHeaderInfo3 * This,
  2256.             /* [in] */ WORD wStreamNum,
  2257.             /* [in] */ WORD wIndex);
  2258.         
  2259.         HRESULT ( STDMETHODCALLTYPE *AddCodecInfo )( 
  2260.             IWMHeaderInfo3 * This,
  2261.             /* [in] */ WCHAR *pwszName,
  2262.             /* [in] */ WCHAR *pwszDescription,
  2263.             /* [in] */ WMT_CODEC_INFO_TYPE codecType,
  2264.             /* [in] */ WORD cbCodecInfo,
  2265.             /* [size_is][in] */ BYTE *pbCodecInfo);
  2266.         
  2267.         END_INTERFACE
  2268.     } IWMHeaderInfo3Vtbl;
  2269.     interface IWMHeaderInfo3
  2270.     {
  2271.         CONST_VTBL struct IWMHeaderInfo3Vtbl *lpVtbl;
  2272.     };
  2273.     
  2274. #ifdef COBJMACROS
  2275. #define IWMHeaderInfo3_QueryInterface(This,riid,ppvObject)
  2276.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2277. #define IWMHeaderInfo3_AddRef(This)
  2278.     (This)->lpVtbl -> AddRef(This)
  2279. #define IWMHeaderInfo3_Release(This)
  2280.     (This)->lpVtbl -> Release(This)
  2281. #define IWMHeaderInfo3_GetAttributeCount(This,wStreamNum,pcAttributes)
  2282.     (This)->lpVtbl -> GetAttributeCount(This,wStreamNum,pcAttributes)
  2283. #define IWMHeaderInfo3_GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  2284.     (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pwStreamNum,pwszName,pcchNameLen,pType,pValue,pcbLength)
  2285. #define IWMHeaderInfo3_GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  2286.     (This)->lpVtbl -> GetAttributeByName(This,pwStreamNum,pszName,pType,pValue,pcbLength)
  2287. #define IWMHeaderInfo3_SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  2288.     (This)->lpVtbl -> SetAttribute(This,wStreamNum,pszName,Type,pValue,cbLength)
  2289. #define IWMHeaderInfo3_GetMarkerCount(This,pcMarkers)
  2290.     (This)->lpVtbl -> GetMarkerCount(This,pcMarkers)
  2291. #define IWMHeaderInfo3_GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  2292.     (This)->lpVtbl -> GetMarker(This,wIndex,pwszMarkerName,pcchMarkerNameLen,pcnsMarkerTime)
  2293. #define IWMHeaderInfo3_AddMarker(This,pwszMarkerName,cnsMarkerTime)
  2294.     (This)->lpVtbl -> AddMarker(This,pwszMarkerName,cnsMarkerTime)
  2295. #define IWMHeaderInfo3_RemoveMarker(This,wIndex)
  2296.     (This)->lpVtbl -> RemoveMarker(This,wIndex)
  2297. #define IWMHeaderInfo3_GetScriptCount(This,pcScripts)
  2298.     (This)->lpVtbl -> GetScriptCount(This,pcScripts)
  2299. #define IWMHeaderInfo3_GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  2300.     (This)->lpVtbl -> GetScript(This,wIndex,pwszType,pcchTypeLen,pwszCommand,pcchCommandLen,pcnsScriptTime)
  2301. #define IWMHeaderInfo3_AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  2302.     (This)->lpVtbl -> AddScript(This,pwszType,pwszCommand,cnsScriptTime)
  2303. #define IWMHeaderInfo3_RemoveScript(This,wIndex)
  2304.     (This)->lpVtbl -> RemoveScript(This,wIndex)
  2305. #define IWMHeaderInfo3_GetCodecInfoCount(This,pcCodecInfos)
  2306.     (This)->lpVtbl -> GetCodecInfoCount(This,pcCodecInfos)
  2307. #define IWMHeaderInfo3_GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)
  2308.     (This)->lpVtbl -> GetCodecInfo(This,wIndex,pcchName,pwszName,pcchDescription,pwszDescription,pCodecType,pcbCodecInfo,pbCodecInfo)
  2309. #define IWMHeaderInfo3_GetAttributeCountEx(This,wStreamNum,pcAttributes)
  2310.     (This)->lpVtbl -> GetAttributeCountEx(This,wStreamNum,pcAttributes)
  2311. #define IWMHeaderInfo3_GetAttributeIndices(This,wStreamNum,pwszName,pwLangIndex,pwIndices,pwCount)
  2312.     (This)->lpVtbl -> GetAttributeIndices(This,wStreamNum,pwszName,pwLangIndex,pwIndices,pwCount)
  2313. #define IWMHeaderInfo3_GetAttributeByIndexEx(This,wStreamNum,wIndex,pwszName,pwNameLen,pType,pwLangIndex,pValue,pdwDataLength)
  2314.     (This)->lpVtbl -> GetAttributeByIndexEx(This,wStreamNum,wIndex,pwszName,pwNameLen,pType,pwLangIndex,pValue,pdwDataLength)
  2315. #define IWMHeaderInfo3_ModifyAttribute(This,wStreamNum,wIndex,Type,wLangIndex,pValue,dwLength)
  2316.     (This)->lpVtbl -> ModifyAttribute(This,wStreamNum,wIndex,Type,wLangIndex,pValue,dwLength)
  2317. #define IWMHeaderInfo3_AddAttribute(This,wStreamNum,pszName,pwIndex,Type,wLangIndex,pValue,dwLength)
  2318.     (This)->lpVtbl -> AddAttribute(This,wStreamNum,pszName,pwIndex,Type,wLangIndex,pValue,dwLength)
  2319. #define IWMHeaderInfo3_DeleteAttribute(This,wStreamNum,wIndex)
  2320.     (This)->lpVtbl -> DeleteAttribute(This,wStreamNum,wIndex)
  2321. #define IWMHeaderInfo3_AddCodecInfo(This,pwszName,pwszDescription,codecType,cbCodecInfo,pbCodecInfo)
  2322.     (This)->lpVtbl -> AddCodecInfo(This,pwszName,pwszDescription,codecType,cbCodecInfo,pbCodecInfo)
  2323. #endif /* COBJMACROS */
  2324. #endif  /* C style interface */
  2325. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_GetAttributeCountEx_Proxy( 
  2326.     IWMHeaderInfo3 * This,
  2327.     /* [in] */ WORD wStreamNum,
  2328.     /* [out] */ WORD *pcAttributes);
  2329. void __RPC_STUB IWMHeaderInfo3_GetAttributeCountEx_Stub(
  2330.     IRpcStubBuffer *This,
  2331.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2332.     PRPC_MESSAGE _pRpcMessage,
  2333.     DWORD *_pdwStubPhase);
  2334. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_GetAttributeIndices_Proxy( 
  2335.     IWMHeaderInfo3 * This,
  2336.     /* [in] */ WORD wStreamNum,
  2337.     /* [in] */ LPCWSTR pwszName,
  2338.     /* [in] */ WORD *pwLangIndex,
  2339.     /* [size_is][out] */ WORD *pwIndices,
  2340.     /* [out][in] */ WORD *pwCount);
  2341. void __RPC_STUB IWMHeaderInfo3_GetAttributeIndices_Stub(
  2342.     IRpcStubBuffer *This,
  2343.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2344.     PRPC_MESSAGE _pRpcMessage,
  2345.     DWORD *_pdwStubPhase);
  2346. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_GetAttributeByIndexEx_Proxy( 
  2347.     IWMHeaderInfo3 * This,
  2348.     /* [in] */ WORD wStreamNum,
  2349.     /* [in] */ WORD wIndex,
  2350.     /* [size_is][out] */ LPWSTR pwszName,
  2351.     /* [out][in] */ WORD *pwNameLen,
  2352.     /* [out] */ WMT_ATTR_DATATYPE *pType,
  2353.     /* [out] */ WORD *pwLangIndex,
  2354.     /* [size_is][out] */ BYTE *pValue,
  2355.     /* [out][in] */ DWORD *pdwDataLength);
  2356. void __RPC_STUB IWMHeaderInfo3_GetAttributeByIndexEx_Stub(
  2357.     IRpcStubBuffer *This,
  2358.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2359.     PRPC_MESSAGE _pRpcMessage,
  2360.     DWORD *_pdwStubPhase);
  2361. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_ModifyAttribute_Proxy( 
  2362.     IWMHeaderInfo3 * This,
  2363.     /* [in] */ WORD wStreamNum,
  2364.     /* [in] */ WORD wIndex,
  2365.     /* [in] */ WMT_ATTR_DATATYPE Type,
  2366.     /* [in] */ WORD wLangIndex,
  2367.     /* [size_is][in] */ const BYTE *pValue,
  2368.     /* [in] */ DWORD dwLength);
  2369. void __RPC_STUB IWMHeaderInfo3_ModifyAttribute_Stub(
  2370.     IRpcStubBuffer *This,
  2371.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2372.     PRPC_MESSAGE _pRpcMessage,
  2373.     DWORD *_pdwStubPhase);
  2374. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_AddAttribute_Proxy( 
  2375.     IWMHeaderInfo3 * This,
  2376.     /* [in] */ WORD wStreamNum,
  2377.     /* [in] */ LPCWSTR pszName,
  2378.     /* [out] */ WORD *pwIndex,
  2379.     /* [in] */ WMT_ATTR_DATATYPE Type,
  2380.     /* [in] */ WORD wLangIndex,
  2381.     /* [size_is][in] */ const BYTE *pValue,
  2382.     /* [in] */ DWORD dwLength);
  2383. void __RPC_STUB IWMHeaderInfo3_AddAttribute_Stub(
  2384.     IRpcStubBuffer *This,
  2385.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2386.     PRPC_MESSAGE _pRpcMessage,
  2387.     DWORD *_pdwStubPhase);
  2388. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_DeleteAttribute_Proxy( 
  2389.     IWMHeaderInfo3 * This,
  2390.     /* [in] */ WORD wStreamNum,
  2391.     /* [in] */ WORD wIndex);
  2392. void __RPC_STUB IWMHeaderInfo3_DeleteAttribute_Stub(
  2393.     IRpcStubBuffer *This,
  2394.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2395.     PRPC_MESSAGE _pRpcMessage,
  2396.     DWORD *_pdwStubPhase);
  2397. HRESULT STDMETHODCALLTYPE IWMHeaderInfo3_AddCodecInfo_Proxy( 
  2398.     IWMHeaderInfo3 * This,
  2399.     /* [in] */ WCHAR *pwszName,
  2400.     /* [in] */ WCHAR *pwszDescription,
  2401.     /* [in] */ WMT_CODEC_INFO_TYPE codecType,
  2402.     /* [in] */ WORD cbCodecInfo,
  2403.     /* [size_is][in] */ BYTE *pbCodecInfo);
  2404. void __RPC_STUB IWMHeaderInfo3_AddCodecInfo_Stub(
  2405.     IRpcStubBuffer *This,
  2406.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2407.     PRPC_MESSAGE _pRpcMessage,
  2408.     DWORD *_pdwStubPhase);
  2409. #endif  /* __IWMHeaderInfo3_INTERFACE_DEFINED__ */
  2410. #ifndef __IWMProfileManager_INTERFACE_DEFINED__
  2411. #define __IWMProfileManager_INTERFACE_DEFINED__
  2412. /* interface IWMProfileManager */
  2413. /* [local][unique][helpstring][uuid][object] */ 
  2414. EXTERN_C const IID IID_IWMProfileManager;
  2415. #if defined(__cplusplus) && !defined(CINTERFACE)
  2416.     
  2417.     MIDL_INTERFACE("d16679f2-6ca0-472d-8d31-2f5d55aee155")
  2418.     IWMProfileManager : public IUnknown
  2419.     {
  2420.     public:
  2421.         virtual HRESULT STDMETHODCALLTYPE CreateEmptyProfile( 
  2422.             /* [in] */ WMT_VERSION dwVersion,
  2423.             /* [out] */ IWMProfile **ppProfile) = 0;
  2424.         
  2425.         virtual HRESULT STDMETHODCALLTYPE LoadProfileByID( 
  2426.             /* [in] */ REFGUID guidProfile,
  2427.             /* [out] */ IWMProfile **ppProfile) = 0;
  2428.         
  2429.         virtual HRESULT STDMETHODCALLTYPE LoadProfileByData( 
  2430.             /* [in] */ const WCHAR *pwszProfile,
  2431.             /* [out] */ IWMProfile **ppProfile) = 0;
  2432.         
  2433.         virtual HRESULT STDMETHODCALLTYPE SaveProfile( 
  2434.             /* [in] */ IWMProfile *pIWMProfile,
  2435.             /* [in] */ WCHAR *pwszProfile,
  2436.             /* [out][in] */ DWORD *pdwLength) = 0;
  2437.         
  2438.         virtual HRESULT STDMETHODCALLTYPE GetSystemProfileCount( 
  2439.             /* [out] */ DWORD *pcProfiles) = 0;
  2440.         
  2441.         virtual HRESULT STDMETHODCALLTYPE LoadSystemProfile( 
  2442.             /* [in] */ DWORD dwProfileIndex,
  2443.             /* [out] */ IWMProfile **ppProfile) = 0;
  2444.         
  2445.     };
  2446.     
  2447. #else  /* C style interface */
  2448.     typedef struct IWMProfileManagerVtbl
  2449.     {
  2450.         BEGIN_INTERFACE
  2451.         
  2452.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2453.             IWMProfileManager * This,
  2454.             /* [in] */ REFIID riid,
  2455.             /* [iid_is][out] */ void **ppvObject);
  2456.         
  2457.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2458.             IWMProfileManager * This);
  2459.         
  2460.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2461.             IWMProfileManager * This);
  2462.         
  2463.         HRESULT ( STDMETHODCALLTYPE *CreateEmptyProfile )( 
  2464.             IWMProfileManager * This,
  2465.             /* [in] */ WMT_VERSION dwVersion,
  2466.             /* [out] */ IWMProfile **ppProfile);
  2467.         
  2468.         HRESULT ( STDMETHODCALLTYPE *LoadProfileByID )( 
  2469.             IWMProfileManager * This,
  2470.             /* [in] */ REFGUID guidProfile,
  2471.             /* [out] */ IWMProfile **ppProfile);
  2472.         
  2473.         HRESULT ( STDMETHODCALLTYPE *LoadProfileByData )( 
  2474.             IWMProfileManager * This,
  2475.             /* [in] */ const WCHAR *pwszProfile,
  2476.             /* [out] */ IWMProfile **ppProfile);
  2477.         
  2478.         HRESULT ( STDMETHODCALLTYPE *SaveProfile )( 
  2479.             IWMProfileManager * This,
  2480.             /* [in] */ IWMProfile *pIWMProfile,
  2481.             /* [in] */ WCHAR *pwszProfile,
  2482.             /* [out][in] */ DWORD *pdwLength);
  2483.         
  2484.         HRESULT ( STDMETHODCALLTYPE *GetSystemProfileCount )( 
  2485.             IWMProfileManager * This,
  2486.             /* [out] */ DWORD *pcProfiles);
  2487.         
  2488.         HRESULT ( STDMETHODCALLTYPE *LoadSystemProfile )( 
  2489.             IWMProfileManager * This,
  2490.             /* [in] */ DWORD dwProfileIndex,
  2491.             /* [out] */ IWMProfile **ppProfile);
  2492.         
  2493.         END_INTERFACE
  2494.     } IWMProfileManagerVtbl;
  2495.     interface IWMProfileManager
  2496.     {
  2497.         CONST_VTBL struct IWMProfileManagerVtbl *lpVtbl;
  2498.     };
  2499.     
  2500. #ifdef COBJMACROS
  2501. #define IWMProfileManager_QueryInterface(This,riid,ppvObject)
  2502.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2503. #define IWMProfileManager_AddRef(This)
  2504.     (This)->lpVtbl -> AddRef(This)
  2505. #define IWMProfileManager_Release(This)
  2506.     (This)->lpVtbl -> Release(This)
  2507. #define IWMProfileManager_CreateEmptyProfile(This,dwVersion,ppProfile)
  2508.     (This)->lpVtbl -> CreateEmptyProfile(This,dwVersion,ppProfile)
  2509. #define IWMProfileManager_LoadProfileByID(This,guidProfile,ppProfile)
  2510.     (This)->lpVtbl -> LoadProfileByID(This,guidProfile,ppProfile)
  2511. #define IWMProfileManager_LoadProfileByData(This,pwszProfile,ppProfile)
  2512.     (This)->lpVtbl -> LoadProfileByData(This,pwszProfile,ppProfile)
  2513. #define IWMProfileManager_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
  2514.     (This)->lpVtbl -> SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
  2515. #define IWMProfileManager_GetSystemProfileCount(This,pcProfiles)
  2516.     (This)->lpVtbl -> GetSystemProfileCount(This,pcProfiles)
  2517. #define IWMProfileManager_LoadSystemProfile(This,dwProfileIndex,ppProfile)
  2518.     (This)->lpVtbl -> LoadSystemProfile(This,dwProfileIndex,ppProfile)
  2519. #endif /* COBJMACROS */
  2520. #endif  /* C style interface */
  2521. HRESULT STDMETHODCALLTYPE IWMProfileManager_CreateEmptyProfile_Proxy( 
  2522.     IWMProfileManager * This,
  2523.     /* [in] */ WMT_VERSION dwVersion,
  2524.     /* [out] */ IWMProfile **ppProfile);
  2525. void __RPC_STUB IWMProfileManager_CreateEmptyProfile_Stub(
  2526.     IRpcStubBuffer *This,
  2527.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2528.     PRPC_MESSAGE _pRpcMessage,
  2529.     DWORD *_pdwStubPhase);
  2530. HRESULT STDMETHODCALLTYPE IWMProfileManager_LoadProfileByID_Proxy( 
  2531.     IWMProfileManager * This,
  2532.     /* [in] */ REFGUID guidProfile,
  2533.     /* [out] */ IWMProfile **ppProfile);
  2534. void __RPC_STUB IWMProfileManager_LoadProfileByID_Stub(
  2535.     IRpcStubBuffer *This,
  2536.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2537.     PRPC_MESSAGE _pRpcMessage,
  2538.     DWORD *_pdwStubPhase);
  2539. HRESULT STDMETHODCALLTYPE IWMProfileManager_LoadProfileByData_Proxy( 
  2540.     IWMProfileManager * This,
  2541.     /* [in] */ const WCHAR *pwszProfile,
  2542.     /* [out] */ IWMProfile **ppProfile);
  2543. void __RPC_STUB IWMProfileManager_LoadProfileByData_Stub(
  2544.     IRpcStubBuffer *This,
  2545.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2546.     PRPC_MESSAGE _pRpcMessage,
  2547.     DWORD *_pdwStubPhase);
  2548. HRESULT STDMETHODCALLTYPE IWMProfileManager_SaveProfile_Proxy( 
  2549.     IWMProfileManager * This,
  2550.     /* [in] */ IWMProfile *pIWMProfile,
  2551.     /* [in] */ WCHAR *pwszProfile,
  2552.     /* [out][in] */ DWORD *pdwLength);
  2553. void __RPC_STUB IWMProfileManager_SaveProfile_Stub(
  2554.     IRpcStubBuffer *This,
  2555.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2556.     PRPC_MESSAGE _pRpcMessage,
  2557.     DWORD *_pdwStubPhase);
  2558. HRESULT STDMETHODCALLTYPE IWMProfileManager_GetSystemProfileCount_Proxy( 
  2559.     IWMProfileManager * This,
  2560.     /* [out] */ DWORD *pcProfiles);
  2561. void __RPC_STUB IWMProfileManager_GetSystemProfileCount_Stub(
  2562.     IRpcStubBuffer *This,
  2563.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2564.     PRPC_MESSAGE _pRpcMessage,
  2565.     DWORD *_pdwStubPhase);
  2566. HRESULT STDMETHODCALLTYPE IWMProfileManager_LoadSystemProfile_Proxy( 
  2567.     IWMProfileManager * This,
  2568.     /* [in] */ DWORD dwProfileIndex,
  2569.     /* [out] */ IWMProfile **ppProfile);
  2570. void __RPC_STUB IWMProfileManager_LoadSystemProfile_Stub(
  2571.     IRpcStubBuffer *This,
  2572.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2573.     PRPC_MESSAGE _pRpcMessage,
  2574.     DWORD *_pdwStubPhase);
  2575. #endif  /* __IWMProfileManager_INTERFACE_DEFINED__ */
  2576. #ifndef __IWMProfileManager2_INTERFACE_DEFINED__
  2577. #define __IWMProfileManager2_INTERFACE_DEFINED__
  2578. /* interface IWMProfileManager2 */
  2579. /* [local][unique][helpstring][uuid][object] */ 
  2580. EXTERN_C const IID IID_IWMProfileManager2;
  2581. #if defined(__cplusplus) && !defined(CINTERFACE)
  2582.     
  2583.     MIDL_INTERFACE("7A924E51-73C1-494d-8019-23D37ED9B89A")
  2584.     IWMProfileManager2 : public IWMProfileManager
  2585.     {
  2586.     public:
  2587.         virtual HRESULT STDMETHODCALLTYPE GetSystemProfileVersion( 
  2588.             WMT_VERSION *pdwVersion) = 0;
  2589.         
  2590.         virtual HRESULT STDMETHODCALLTYPE SetSystemProfileVersion( 
  2591.             WMT_VERSION dwVersion) = 0;
  2592.         
  2593.     };
  2594.     
  2595. #else  /* C style interface */
  2596.     typedef struct IWMProfileManager2Vtbl
  2597.     {
  2598.         BEGIN_INTERFACE
  2599.         
  2600.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2601.             IWMProfileManager2 * This,