wmcodeciface.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:30k
源码类别:

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  20. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  21.  /* File created by MIDL compiler version 6.00.0347 */
  22. /* at Tue Feb 18 17:09:53 2003
  23.  */
  24. /* Compiler settings for wmcodec.idl:
  25.     Os, W1, Zp8, env=Win32 (32b run)
  26.     protocol : dce , ms_ext, c_ext
  27.     error checks: allocation ref bounds_check enum stub_data 
  28.     VC __declspec() decoration level: 
  29.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  30.          DECLSPEC_UUID(), MIDL_INTERFACE()
  31. */
  32. //@@MIDL_FILE_HEADING(  )
  33. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  34. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  35. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  36. #endif
  37. #include "rpc.h"
  38. #include "rpcndr.h"
  39. #ifndef __RPCNDR_H_VERSION__
  40. #error this stub requires an updated version of <rpcndr.h>
  41. #endif // __RPCNDR_H_VERSION__
  42. #ifndef COM_NO_WINDOWS_H
  43. #include "windows.h"
  44. #include "ole2.h"
  45. #endif /*COM_NO_WINDOWS_H*/
  46. #ifndef __wmcodec_h_h__
  47. #define __wmcodec_h_h__
  48. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  49. #pragma once
  50. #endif
  51. /* Forward Declarations */ 
  52. #ifndef __IWMVideoDecoderHurryup_FWD_DEFINED__
  53. #define __IWMVideoDecoderHurryup_FWD_DEFINED__
  54. typedef interface IWMVideoDecoderHurryup IWMVideoDecoderHurryup;
  55. #endif  /* __IWMVideoDecoderHurryup_FWD_DEFINED__ */
  56. #ifndef __IWMCodecStrings_FWD_DEFINED__
  57. #define __IWMCodecStrings_FWD_DEFINED__
  58. typedef interface IWMCodecStrings IWMCodecStrings;
  59. #endif  /* __IWMCodecStrings_FWD_DEFINED__ */
  60. #ifndef __IWMCodecProps_FWD_DEFINED__
  61. #define __IWMCodecProps_FWD_DEFINED__
  62. typedef interface IWMCodecProps IWMCodecProps;
  63. #endif  /* __IWMCodecProps_FWD_DEFINED__ */
  64. #ifndef __IWMCodecLeakyBucket_FWD_DEFINED__
  65. #define __IWMCodecLeakyBucket_FWD_DEFINED__
  66. typedef interface IWMCodecLeakyBucket IWMCodecLeakyBucket;
  67. #endif  /* __IWMCodecLeakyBucket_FWD_DEFINED__ */
  68. #ifndef __IWMCodecMetaData_FWD_DEFINED__
  69. #define __IWMCodecMetaData_FWD_DEFINED__
  70. typedef interface IWMCodecMetaData IWMCodecMetaData;
  71. #endif  /* __IWMCodecMetaData_FWD_DEFINED__ */
  72. #ifndef __IWMCodecOutputTimestamp_FWD_DEFINED__
  73. #define __IWMCodecOutputTimestamp_FWD_DEFINED__
  74. typedef interface IWMCodecOutputTimestamp IWMCodecOutputTimestamp;
  75. #endif  /* __IWMCodecOutputTimestamp_FWD_DEFINED__ */
  76. #ifndef __IWMCodecPrivateData_FWD_DEFINED__
  77. #define __IWMCodecPrivateData_FWD_DEFINED__
  78. typedef interface IWMCodecPrivateData IWMCodecPrivateData;
  79. #endif  /* __IWMCodecPrivateData_FWD_DEFINED__ */
  80. /* header files for imported files */
  81. #include "mediaobj.h"
  82. #ifdef __cplusplus
  83. extern "C"{
  84. #endif 
  85. void * __RPC_USER MIDL_user_allocate(size_t);
  86. void __RPC_USER MIDL_user_free( void * ); 
  87. /* interface __MIDL_itf_wmcodec_0000 */
  88. /* [local] */ 
  89. //=========================================================================
  90. //
  91. //  Microsoft Windows Media
  92. //
  93. //  Copyright (C) Microsoft Corporation. All rights reserved.
  94. //
  95. //=========================================================================
  96. EXTERN_GUID( IID_IWMVideoDecoderHurryup, 0x352bb3bd, 0x2d4d, 0x4323, 0x9e, 0x71, 0xdc, 0xdc, 0xfb, 0xd5, 0x3c, 0xa6);
  97. EXTERN_GUID( IID_IWMCodecStrings,        0xA7B2504B, 0xE58A, 0x47fb, 0x95, 0x8B, 0xCA, 0xC7, 0x16, 0x5A, 0x05, 0x7D);
  98. EXTERN_GUID( IID_IWMCodecProps,          0x2573e11a, 0xf01a, 0x4fdd, 0xa9, 0x8d, 0x63, 0xb8, 0xe0, 0xbA, 0x95, 0x89);
  99. EXTERN_GUID( IID_IWMCodecLeakyBucket,    0xA81BA647, 0x6227, 0x43b7, 0xB2, 0x31, 0xC7, 0xB1, 0x51, 0x35, 0xDD, 0x7D);
  100. EXTERN_GUID( IID_IWMCodecMetaData,       0xd051ed9f, 0xbc5c, 0x4e83, 0xb1, 0x4e, 0x84, 0x28, 0x48, 0x5c, 0x28, 0x6a);
  101. EXTERN_GUID( IID_IWMCodecOutputTimestamp,0xB72ADF95, 0x7ADC, 0x4a72, 0xBC, 0x05, 0x57, 0x7D, 0x8E, 0xA6, 0xBF, 0x68);
  102. EXTERN_GUID( IID_IWMCodecPrivateData,    0x73f0be8e, 0x57f7, 0x4f01, 0xaa, 0x66, 0x9f, 0x57, 0x34, 0xc, 0xfe, 0xe );
  103. typedef 
  104. enum WMT_PROP_DATATYPE
  105.     { WMT_PROP_TYPE_DWORD = 0,
  106. WMT_PROP_TYPE_STRING = 1,
  107. WMT_PROP_TYPE_BINARY = 2,
  108. WMT_PROP_TYPE_BOOL = 3,
  109. WMT_PROP_TYPE_QWORD = 4,
  110. WMT_PROP_TYPE_WORD = 5,
  111. WMT_PROP_TYPE_GUID = 6
  112.     }  WMT_PROP_DATATYPE;
  113. extern RPC_IF_HANDLE __MIDL_itf_wmcodec_0000_v0_0_c_ifspec;
  114. extern RPC_IF_HANDLE __MIDL_itf_wmcodec_0000_v0_0_s_ifspec;
  115. #ifndef __IWMVideoDecoderHurryup_INTERFACE_DEFINED__
  116. #define __IWMVideoDecoderHurryup_INTERFACE_DEFINED__
  117. /* interface IWMVideoDecoderHurryup */
  118. /* [local][unique][helpstring][uuid][object] */ 
  119. EXTERN_C const IID IID_IWMVideoDecoderHurryup;
  120. #if defined(__cplusplus) && !defined(CINTERFACE)
  121.     
  122.     MIDL_INTERFACE("352bb3bd-2d4d-4323-9e71-dcdcfbd53ca6")
  123.     IWMVideoDecoderHurryup : public IUnknown
  124.     {
  125.     public:
  126.         virtual HRESULT STDMETHODCALLTYPE SetHurryup( 
  127.             /* [in] */ LONG lHurryup) = 0;
  128.         
  129.         virtual HRESULT STDMETHODCALLTYPE GetHurryup( 
  130.             /* [out] */ LONG *plHurryup) = 0;
  131.         
  132.     };
  133.     
  134. #else  /* C style interface */
  135.     typedef struct IWMVideoDecoderHurryupVtbl
  136.     {
  137.         BEGIN_INTERFACE
  138.         
  139.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  140.             IWMVideoDecoderHurryup * This,
  141.             /* [in] */ REFIID riid,
  142.             /* [iid_is][out] */ void **ppvObject);
  143.         
  144.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  145.             IWMVideoDecoderHurryup * This);
  146.         
  147.         ULONG ( STDMETHODCALLTYPE *Release )( 
  148.             IWMVideoDecoderHurryup * This);
  149.         
  150.         HRESULT ( STDMETHODCALLTYPE *SetHurryup )( 
  151.             IWMVideoDecoderHurryup * This,
  152.             /* [in] */ LONG lHurryup);
  153.         
  154.         HRESULT ( STDMETHODCALLTYPE *GetHurryup )( 
  155.             IWMVideoDecoderHurryup * This,
  156.             /* [out] */ LONG *plHurryup);
  157.         
  158.         END_INTERFACE
  159.     } IWMVideoDecoderHurryupVtbl;
  160.     interface IWMVideoDecoderHurryup
  161.     {
  162.         CONST_VTBL struct IWMVideoDecoderHurryupVtbl *lpVtbl;
  163.     };
  164.     
  165. #ifdef COBJMACROS
  166. #define IWMVideoDecoderHurryup_QueryInterface(This,riid,ppvObject)
  167.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  168. #define IWMVideoDecoderHurryup_AddRef(This)
  169.     (This)->lpVtbl -> AddRef(This)
  170. #define IWMVideoDecoderHurryup_Release(This)
  171.     (This)->lpVtbl -> Release(This)
  172. #define IWMVideoDecoderHurryup_SetHurryup(This,lHurryup)
  173.     (This)->lpVtbl -> SetHurryup(This,lHurryup)
  174. #define IWMVideoDecoderHurryup_GetHurryup(This,plHurryup)
  175.     (This)->lpVtbl -> GetHurryup(This,plHurryup)
  176. #endif /* COBJMACROS */
  177. #endif  /* C style interface */
  178. HRESULT STDMETHODCALLTYPE IWMVideoDecoderHurryup_SetHurryup_Proxy( 
  179.     IWMVideoDecoderHurryup * This,
  180.     /* [in] */ LONG lHurryup);
  181. void __RPC_STUB IWMVideoDecoderHurryup_SetHurryup_Stub(
  182.     IRpcStubBuffer *This,
  183.     IRpcChannelBuffer *_pRpcChannelBuffer,
  184.     PRPC_MESSAGE _pRpcMessage,
  185.     DWORD *_pdwStubPhase);
  186. HRESULT STDMETHODCALLTYPE IWMVideoDecoderHurryup_GetHurryup_Proxy( 
  187.     IWMVideoDecoderHurryup * This,
  188.     /* [out] */ LONG *plHurryup);
  189. void __RPC_STUB IWMVideoDecoderHurryup_GetHurryup_Stub(
  190.     IRpcStubBuffer *This,
  191.     IRpcChannelBuffer *_pRpcChannelBuffer,
  192.     PRPC_MESSAGE _pRpcMessage,
  193.     DWORD *_pdwStubPhase);
  194. #endif  /* __IWMVideoDecoderHurryup_INTERFACE_DEFINED__ */
  195. #ifndef __IWMCodecStrings_INTERFACE_DEFINED__
  196. #define __IWMCodecStrings_INTERFACE_DEFINED__
  197. /* interface IWMCodecStrings */
  198. /* [local][unique][helpstring][uuid][object] */ 
  199. EXTERN_C const IID IID_IWMCodecStrings;
  200. #if defined(__cplusplus) && !defined(CINTERFACE)
  201.     
  202.     MIDL_INTERFACE("A7B2504B-E58A-47fb-958B-CAC7165A057D")
  203.     IWMCodecStrings : public IUnknown
  204.     {
  205.     public:
  206.         virtual HRESULT STDMETHODCALLTYPE GetName( 
  207.             /* [in] */ DMO_MEDIA_TYPE *pmt,
  208.             /* [in] */ ULONG cchLength,
  209.             /* [out] */ WCHAR *szName,
  210.             /* [out] */ ULONG *pcchLength) = 0;
  211.         
  212.         virtual HRESULT STDMETHODCALLTYPE GetDescription( 
  213.             /* [in] */ DMO_MEDIA_TYPE *pmt,
  214.             /* [in] */ ULONG cchLength,
  215.             /* [out] */ WCHAR *szDescription,
  216.             /* [out] */ ULONG *pcchLength) = 0;
  217.         
  218.     };
  219.     
  220. #else  /* C style interface */
  221.     typedef struct IWMCodecStringsVtbl
  222.     {
  223.         BEGIN_INTERFACE
  224.         
  225.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  226.             IWMCodecStrings * This,
  227.             /* [in] */ REFIID riid,
  228.             /* [iid_is][out] */ void **ppvObject);
  229.         
  230.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  231.             IWMCodecStrings * This);
  232.         
  233.         ULONG ( STDMETHODCALLTYPE *Release )( 
  234.             IWMCodecStrings * This);
  235.         
  236.         HRESULT ( STDMETHODCALLTYPE *GetName )( 
  237.             IWMCodecStrings * This,
  238.             /* [in] */ DMO_MEDIA_TYPE *pmt,
  239.             /* [in] */ ULONG cchLength,
  240.             /* [out] */ WCHAR *szName,
  241.             /* [out] */ ULONG *pcchLength);
  242.         
  243.         HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
  244.             IWMCodecStrings * This,
  245.             /* [in] */ DMO_MEDIA_TYPE *pmt,
  246.             /* [in] */ ULONG cchLength,
  247.             /* [out] */ WCHAR *szDescription,
  248.             /* [out] */ ULONG *pcchLength);
  249.         
  250.         END_INTERFACE
  251.     } IWMCodecStringsVtbl;
  252.     interface IWMCodecStrings
  253.     {
  254.         CONST_VTBL struct IWMCodecStringsVtbl *lpVtbl;
  255.     };
  256.     
  257. #ifdef COBJMACROS
  258. #define IWMCodecStrings_QueryInterface(This,riid,ppvObject)
  259.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  260. #define IWMCodecStrings_AddRef(This)
  261.     (This)->lpVtbl -> AddRef(This)
  262. #define IWMCodecStrings_Release(This)
  263.     (This)->lpVtbl -> Release(This)
  264. #define IWMCodecStrings_GetName(This,pmt,cchLength,szName,pcchLength)
  265.     (This)->lpVtbl -> GetName(This,pmt,cchLength,szName,pcchLength)
  266. #define IWMCodecStrings_GetDescription(This,pmt,cchLength,szDescription,pcchLength)
  267.     (This)->lpVtbl -> GetDescription(This,pmt,cchLength,szDescription,pcchLength)
  268. #endif /* COBJMACROS */
  269. #endif  /* C style interface */
  270. HRESULT STDMETHODCALLTYPE IWMCodecStrings_GetName_Proxy( 
  271.     IWMCodecStrings * This,
  272.     /* [in] */ DMO_MEDIA_TYPE *pmt,
  273.     /* [in] */ ULONG cchLength,
  274.     /* [out] */ WCHAR *szName,
  275.     /* [out] */ ULONG *pcchLength);
  276. void __RPC_STUB IWMCodecStrings_GetName_Stub(
  277.     IRpcStubBuffer *This,
  278.     IRpcChannelBuffer *_pRpcChannelBuffer,
  279.     PRPC_MESSAGE _pRpcMessage,
  280.     DWORD *_pdwStubPhase);
  281. HRESULT STDMETHODCALLTYPE IWMCodecStrings_GetDescription_Proxy( 
  282.     IWMCodecStrings * This,
  283.     /* [in] */ DMO_MEDIA_TYPE *pmt,
  284.     /* [in] */ ULONG cchLength,
  285.     /* [out] */ WCHAR *szDescription,
  286.     /* [out] */ ULONG *pcchLength);
  287. void __RPC_STUB IWMCodecStrings_GetDescription_Stub(
  288.     IRpcStubBuffer *This,
  289.     IRpcChannelBuffer *_pRpcChannelBuffer,
  290.     PRPC_MESSAGE _pRpcMessage,
  291.     DWORD *_pdwStubPhase);
  292. #endif  /* __IWMCodecStrings_INTERFACE_DEFINED__ */
  293. #ifndef __IWMCodecProps_INTERFACE_DEFINED__
  294. #define __IWMCodecProps_INTERFACE_DEFINED__
  295. /* interface IWMCodecProps */
  296. /* [local][unique][helpstring][uuid][object] */ 
  297. EXTERN_C const IID IID_IWMCodecProps;
  298. #if defined(__cplusplus) && !defined(CINTERFACE)
  299.     
  300.     MIDL_INTERFACE("2573e11a-f01a-4fdd-a98d-63b8e0ba9589")
  301.     IWMCodecProps : public IUnknown
  302.     {
  303.     public:
  304.         virtual HRESULT STDMETHODCALLTYPE GetFormatProp( 
  305.             /* [in] */ DMO_MEDIA_TYPE *pmt,
  306.             /* [in] */ LPCWSTR pszName,
  307.             /* [out] */ WMT_PROP_DATATYPE *pType,
  308.             /* [out] */ BYTE *pValue,
  309.             /* [out][in] */ DWORD *pdwSize) = 0;
  310.         
  311.         virtual HRESULT STDMETHODCALLTYPE GetCodecProp( 
  312.             /* [in] */ DWORD dwFormat,
  313.             /* [in] */ LPCWSTR pszName,
  314.             /* [out] */ WMT_PROP_DATATYPE *pType,
  315.             /* [out] */ BYTE *pValue,
  316.             /* [out][in] */ DWORD *pdwSize) = 0;
  317.         
  318.     };
  319.     
  320. #else  /* C style interface */
  321.     typedef struct IWMCodecPropsVtbl
  322.     {
  323.         BEGIN_INTERFACE
  324.         
  325.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  326.             IWMCodecProps * This,
  327.             /* [in] */ REFIID riid,
  328.             /* [iid_is][out] */ void **ppvObject);
  329.         
  330.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  331.             IWMCodecProps * This);
  332.         
  333.         ULONG ( STDMETHODCALLTYPE *Release )( 
  334.             IWMCodecProps * This);
  335.         
  336.         HRESULT ( STDMETHODCALLTYPE *GetFormatProp )( 
  337.             IWMCodecProps * This,
  338.             /* [in] */ DMO_MEDIA_TYPE *pmt,
  339.             /* [in] */ LPCWSTR pszName,
  340.             /* [out] */ WMT_PROP_DATATYPE *pType,
  341.             /* [out] */ BYTE *pValue,
  342.             /* [out][in] */ DWORD *pdwSize);
  343.         
  344.         HRESULT ( STDMETHODCALLTYPE *GetCodecProp )( 
  345.             IWMCodecProps * This,
  346.             /* [in] */ DWORD dwFormat,
  347.             /* [in] */ LPCWSTR pszName,
  348.             /* [out] */ WMT_PROP_DATATYPE *pType,
  349.             /* [out] */ BYTE *pValue,
  350.             /* [out][in] */ DWORD *pdwSize);
  351.         
  352.         END_INTERFACE
  353.     } IWMCodecPropsVtbl;
  354.     interface IWMCodecProps
  355.     {
  356.         CONST_VTBL struct IWMCodecPropsVtbl *lpVtbl;
  357.     };
  358.     
  359. #ifdef COBJMACROS
  360. #define IWMCodecProps_QueryInterface(This,riid,ppvObject)
  361.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  362. #define IWMCodecProps_AddRef(This)
  363.     (This)->lpVtbl -> AddRef(This)
  364. #define IWMCodecProps_Release(This)
  365.     (This)->lpVtbl -> Release(This)
  366. #define IWMCodecProps_GetFormatProp(This,pmt,pszName,pType,pValue,pdwSize)
  367.     (This)->lpVtbl -> GetFormatProp(This,pmt,pszName,pType,pValue,pdwSize)
  368. #define IWMCodecProps_GetCodecProp(This,dwFormat,pszName,pType,pValue,pdwSize)
  369.     (This)->lpVtbl -> GetCodecProp(This,dwFormat,pszName,pType,pValue,pdwSize)
  370. #endif /* COBJMACROS */
  371. #endif  /* C style interface */
  372. HRESULT STDMETHODCALLTYPE IWMCodecProps_GetFormatProp_Proxy( 
  373.     IWMCodecProps * This,
  374.     /* [in] */ DMO_MEDIA_TYPE *pmt,
  375.     /* [in] */ LPCWSTR pszName,
  376.     /* [out] */ WMT_PROP_DATATYPE *pType,
  377.     /* [out] */ BYTE *pValue,
  378.     /* [out][in] */ DWORD *pdwSize);
  379. void __RPC_STUB IWMCodecProps_GetFormatProp_Stub(
  380.     IRpcStubBuffer *This,
  381.     IRpcChannelBuffer *_pRpcChannelBuffer,
  382.     PRPC_MESSAGE _pRpcMessage,
  383.     DWORD *_pdwStubPhase);
  384. HRESULT STDMETHODCALLTYPE IWMCodecProps_GetCodecProp_Proxy( 
  385.     IWMCodecProps * This,
  386.     /* [in] */ DWORD dwFormat,
  387.     /* [in] */ LPCWSTR pszName,
  388.     /* [out] */ WMT_PROP_DATATYPE *pType,
  389.     /* [out] */ BYTE *pValue,
  390.     /* [out][in] */ DWORD *pdwSize);
  391. void __RPC_STUB IWMCodecProps_GetCodecProp_Stub(
  392.     IRpcStubBuffer *This,
  393.     IRpcChannelBuffer *_pRpcChannelBuffer,
  394.     PRPC_MESSAGE _pRpcMessage,
  395.     DWORD *_pdwStubPhase);
  396. #endif  /* __IWMCodecProps_INTERFACE_DEFINED__ */
  397. #ifndef __IWMCodecLeakyBucket_INTERFACE_DEFINED__
  398. #define __IWMCodecLeakyBucket_INTERFACE_DEFINED__
  399. /* interface IWMCodecLeakyBucket */
  400. /* [local][unique][helpstring][uuid][object] */ 
  401. EXTERN_C const IID IID_IWMCodecLeakyBucket;
  402. #if defined(__cplusplus) && !defined(CINTERFACE)
  403.     
  404.     MIDL_INTERFACE("A81BA647-6227-43b7-B231-C7B15135DD7D")
  405.     IWMCodecLeakyBucket : public IUnknown
  406.     {
  407.     public:
  408.         virtual HRESULT STDMETHODCALLTYPE SetBufferSizeBits( 
  409.             /* [in] */ ULONG ulBufferSize) = 0;
  410.         
  411.         virtual HRESULT STDMETHODCALLTYPE GetBufferSizeBits( 
  412.             /* [out] */ ULONG *pulBufferSize) = 0;
  413.         
  414.         virtual HRESULT STDMETHODCALLTYPE SetBufferFullnessBits( 
  415.             /* [in] */ ULONG ulBufferFullness) = 0;
  416.         
  417.         virtual HRESULT STDMETHODCALLTYPE GetBufferFullnessBits( 
  418.             /* [out] */ ULONG *pulBufferFullness) = 0;
  419.         
  420.     };
  421.     
  422. #else  /* C style interface */
  423.     typedef struct IWMCodecLeakyBucketVtbl
  424.     {
  425.         BEGIN_INTERFACE
  426.         
  427.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  428.             IWMCodecLeakyBucket * This,
  429.             /* [in] */ REFIID riid,
  430.             /* [iid_is][out] */ void **ppvObject);
  431.         
  432.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  433.             IWMCodecLeakyBucket * This);
  434.         
  435.         ULONG ( STDMETHODCALLTYPE *Release )( 
  436.             IWMCodecLeakyBucket * This);
  437.         
  438.         HRESULT ( STDMETHODCALLTYPE *SetBufferSizeBits )( 
  439.             IWMCodecLeakyBucket * This,
  440.             /* [in] */ ULONG ulBufferSize);
  441.         
  442.         HRESULT ( STDMETHODCALLTYPE *GetBufferSizeBits )( 
  443.             IWMCodecLeakyBucket * This,
  444.             /* [out] */ ULONG *pulBufferSize);
  445.         
  446.         HRESULT ( STDMETHODCALLTYPE *SetBufferFullnessBits )( 
  447.             IWMCodecLeakyBucket * This,
  448.             /* [in] */ ULONG ulBufferFullness);
  449.         
  450.         HRESULT ( STDMETHODCALLTYPE *GetBufferFullnessBits )( 
  451.             IWMCodecLeakyBucket * This,
  452.             /* [out] */ ULONG *pulBufferFullness);
  453.         
  454.         END_INTERFACE
  455.     } IWMCodecLeakyBucketVtbl;
  456.     interface IWMCodecLeakyBucket
  457.     {
  458.         CONST_VTBL struct IWMCodecLeakyBucketVtbl *lpVtbl;
  459.     };
  460.     
  461. #ifdef COBJMACROS
  462. #define IWMCodecLeakyBucket_QueryInterface(This,riid,ppvObject)
  463.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  464. #define IWMCodecLeakyBucket_AddRef(This)
  465.     (This)->lpVtbl -> AddRef(This)
  466. #define IWMCodecLeakyBucket_Release(This)
  467.     (This)->lpVtbl -> Release(This)
  468. #define IWMCodecLeakyBucket_SetBufferSizeBits(This,ulBufferSize)
  469.     (This)->lpVtbl -> SetBufferSizeBits(This,ulBufferSize)
  470. #define IWMCodecLeakyBucket_GetBufferSizeBits(This,pulBufferSize)
  471.     (This)->lpVtbl -> GetBufferSizeBits(This,pulBufferSize)
  472. #define IWMCodecLeakyBucket_SetBufferFullnessBits(This,ulBufferFullness)
  473.     (This)->lpVtbl -> SetBufferFullnessBits(This,ulBufferFullness)
  474. #define IWMCodecLeakyBucket_GetBufferFullnessBits(This,pulBufferFullness)
  475.     (This)->lpVtbl -> GetBufferFullnessBits(This,pulBufferFullness)
  476. #endif /* COBJMACROS */
  477. #endif  /* C style interface */
  478. HRESULT STDMETHODCALLTYPE IWMCodecLeakyBucket_SetBufferSizeBits_Proxy( 
  479.     IWMCodecLeakyBucket * This,
  480.     /* [in] */ ULONG ulBufferSize);
  481. void __RPC_STUB IWMCodecLeakyBucket_SetBufferSizeBits_Stub(
  482.     IRpcStubBuffer *This,
  483.     IRpcChannelBuffer *_pRpcChannelBuffer,
  484.     PRPC_MESSAGE _pRpcMessage,
  485.     DWORD *_pdwStubPhase);
  486. HRESULT STDMETHODCALLTYPE IWMCodecLeakyBucket_GetBufferSizeBits_Proxy( 
  487.     IWMCodecLeakyBucket * This,
  488.     /* [out] */ ULONG *pulBufferSize);
  489. void __RPC_STUB IWMCodecLeakyBucket_GetBufferSizeBits_Stub(
  490.     IRpcStubBuffer *This,
  491.     IRpcChannelBuffer *_pRpcChannelBuffer,
  492.     PRPC_MESSAGE _pRpcMessage,
  493.     DWORD *_pdwStubPhase);
  494. HRESULT STDMETHODCALLTYPE IWMCodecLeakyBucket_SetBufferFullnessBits_Proxy( 
  495.     IWMCodecLeakyBucket * This,
  496.     /* [in] */ ULONG ulBufferFullness);
  497. void __RPC_STUB IWMCodecLeakyBucket_SetBufferFullnessBits_Stub(
  498.     IRpcStubBuffer *This,
  499.     IRpcChannelBuffer *_pRpcChannelBuffer,
  500.     PRPC_MESSAGE _pRpcMessage,
  501.     DWORD *_pdwStubPhase);
  502. HRESULT STDMETHODCALLTYPE IWMCodecLeakyBucket_GetBufferFullnessBits_Proxy( 
  503.     IWMCodecLeakyBucket * This,
  504.     /* [out] */ ULONG *pulBufferFullness);
  505. void __RPC_STUB IWMCodecLeakyBucket_GetBufferFullnessBits_Stub(
  506.     IRpcStubBuffer *This,
  507.     IRpcChannelBuffer *_pRpcChannelBuffer,
  508.     PRPC_MESSAGE _pRpcMessage,
  509.     DWORD *_pdwStubPhase);
  510. #endif  /* __IWMCodecLeakyBucket_INTERFACE_DEFINED__ */
  511. #ifndef __IWMCodecMetaData_INTERFACE_DEFINED__
  512. #define __IWMCodecMetaData_INTERFACE_DEFINED__
  513. /* interface IWMCodecMetaData */
  514. /* [local][unique][helpstring][uuid][object] */ 
  515. EXTERN_C const IID IID_IWMCodecMetaData;
  516. #if defined(__cplusplus) && !defined(CINTERFACE)
  517.     
  518.     MIDL_INTERFACE("D051ED9F-BC5C-4e83-B14E-8428485C286A")
  519.     IWMCodecMetaData : public IUnknown
  520.     {
  521.     public:
  522.         virtual HRESULT STDMETHODCALLTYPE GetNumberOfValues( 
  523.             /* [out] */ ULONG *pulNumValues) = 0;
  524.         
  525.         virtual HRESULT STDMETHODCALLTYPE GetBufferSizes( 
  526.             /* [in] */ ULONG ulValueIndex,
  527.             /* [out] */ ULONG *pcbData,
  528.             /* [out] */ ULONG *pcchName) = 0;
  529.         
  530.         virtual HRESULT STDMETHODCALLTYPE GetValueAndName( 
  531.             /* [in] */ ULONG ulValueIndex,
  532.             /* [out] */ BYTE *pbData,
  533.             /* [in] */ ULONG cbData,
  534.             /* [out] */ ULONG *pcbData,
  535.             /* [out] */ WCHAR *szName,
  536.             /* [in] */ ULONG cchName,
  537.             /* [out] */ ULONG *pcchName) = 0;
  538.         
  539.     };
  540.     
  541. #else  /* C style interface */
  542.     typedef struct IWMCodecMetaDataVtbl
  543.     {
  544.         BEGIN_INTERFACE
  545.         
  546.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  547.             IWMCodecMetaData * This,
  548.             /* [in] */ REFIID riid,
  549.             /* [iid_is][out] */ void **ppvObject);
  550.         
  551.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  552.             IWMCodecMetaData * This);
  553.         
  554.         ULONG ( STDMETHODCALLTYPE *Release )( 
  555.             IWMCodecMetaData * This);
  556.         
  557.         HRESULT ( STDMETHODCALLTYPE *GetNumberOfValues )( 
  558.             IWMCodecMetaData * This,
  559.             /* [out] */ ULONG *pulNumValues);
  560.         
  561.         HRESULT ( STDMETHODCALLTYPE *GetBufferSizes )( 
  562.             IWMCodecMetaData * This,
  563.             /* [in] */ ULONG ulValueIndex,
  564.             /* [out] */ ULONG *pcbData,
  565.             /* [out] */ ULONG *pcchName);
  566.         
  567.         HRESULT ( STDMETHODCALLTYPE *GetValueAndName )( 
  568.             IWMCodecMetaData * This,
  569.             /* [in] */ ULONG ulValueIndex,
  570.             /* [out] */ BYTE *pbData,
  571.             /* [in] */ ULONG cbData,
  572.             /* [out] */ ULONG *pcbData,
  573.             /* [out] */ WCHAR *szName,
  574.             /* [in] */ ULONG cchName,
  575.             /* [out] */ ULONG *pcchName);
  576.         
  577.         END_INTERFACE
  578.     } IWMCodecMetaDataVtbl;
  579.     interface IWMCodecMetaData
  580.     {
  581.         CONST_VTBL struct IWMCodecMetaDataVtbl *lpVtbl;
  582.     };
  583.     
  584. #ifdef COBJMACROS
  585. #define IWMCodecMetaData_QueryInterface(This,riid,ppvObject)
  586.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  587. #define IWMCodecMetaData_AddRef(This)
  588.     (This)->lpVtbl -> AddRef(This)
  589. #define IWMCodecMetaData_Release(This)
  590.     (This)->lpVtbl -> Release(This)
  591. #define IWMCodecMetaData_GetNumberOfValues(This,pulNumValues)
  592.     (This)->lpVtbl -> GetNumberOfValues(This,pulNumValues)
  593. #define IWMCodecMetaData_GetBufferSizes(This,ulValueIndex,pcbData,pcchName)
  594.     (This)->lpVtbl -> GetBufferSizes(This,ulValueIndex,pcbData,pcchName)
  595. #define IWMCodecMetaData_GetValueAndName(This,ulValueIndex,pbData,cbData,pcbData,szName,cchName,pcchName)
  596.     (This)->lpVtbl -> GetValueAndName(This,ulValueIndex,pbData,cbData,pcbData,szName,cchName,pcchName)
  597. #endif /* COBJMACROS */
  598. #endif  /* C style interface */
  599. HRESULT STDMETHODCALLTYPE IWMCodecMetaData_GetNumberOfValues_Proxy( 
  600.     IWMCodecMetaData * This,
  601.     /* [out] */ ULONG *pulNumValues);
  602. void __RPC_STUB IWMCodecMetaData_GetNumberOfValues_Stub(
  603.     IRpcStubBuffer *This,
  604.     IRpcChannelBuffer *_pRpcChannelBuffer,
  605.     PRPC_MESSAGE _pRpcMessage,
  606.     DWORD *_pdwStubPhase);
  607. HRESULT STDMETHODCALLTYPE IWMCodecMetaData_GetBufferSizes_Proxy( 
  608.     IWMCodecMetaData * This,
  609.     /* [in] */ ULONG ulValueIndex,
  610.     /* [out] */ ULONG *pcbData,
  611.     /* [out] */ ULONG *pcchName);
  612. void __RPC_STUB IWMCodecMetaData_GetBufferSizes_Stub(
  613.     IRpcStubBuffer *This,
  614.     IRpcChannelBuffer *_pRpcChannelBuffer,
  615.     PRPC_MESSAGE _pRpcMessage,
  616.     DWORD *_pdwStubPhase);
  617. HRESULT STDMETHODCALLTYPE IWMCodecMetaData_GetValueAndName_Proxy( 
  618.     IWMCodecMetaData * This,
  619.     /* [in] */ ULONG ulValueIndex,
  620.     /* [out] */ BYTE *pbData,
  621.     /* [in] */ ULONG cbData,
  622.     /* [out] */ ULONG *pcbData,
  623.     /* [out] */ WCHAR *szName,
  624.     /* [in] */ ULONG cchName,
  625.     /* [out] */ ULONG *pcchName);
  626. void __RPC_STUB IWMCodecMetaData_GetValueAndName_Stub(
  627.     IRpcStubBuffer *This,
  628.     IRpcChannelBuffer *_pRpcChannelBuffer,
  629.     PRPC_MESSAGE _pRpcMessage,
  630.     DWORD *_pdwStubPhase);
  631. #endif  /* __IWMCodecMetaData_INTERFACE_DEFINED__ */
  632. #ifndef __IWMCodecOutputTimestamp_INTERFACE_DEFINED__
  633. #define __IWMCodecOutputTimestamp_INTERFACE_DEFINED__
  634. /* interface IWMCodecOutputTimestamp */
  635. /* [local][unique][helpstring][uuid][object] */ 
  636. EXTERN_C const IID IID_IWMCodecOutputTimestamp;
  637. #if defined(__cplusplus) && !defined(CINTERFACE)
  638.     
  639.     MIDL_INTERFACE("B72ADF95-7ADC-4a72-BC05-577D8EA6BF68")
  640.     IWMCodecOutputTimestamp : public IUnknown
  641.     {
  642.     public:
  643.         virtual HRESULT STDMETHODCALLTYPE GetNextOutputTime( 
  644.             /* [out] */ REFERENCE_TIME *prtTime) = 0;
  645.         
  646.     };
  647.     
  648. #else  /* C style interface */
  649.     typedef struct IWMCodecOutputTimestampVtbl
  650.     {
  651.         BEGIN_INTERFACE
  652.         
  653.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  654.             IWMCodecOutputTimestamp * This,
  655.             /* [in] */ REFIID riid,
  656.             /* [iid_is][out] */ void **ppvObject);
  657.         
  658.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  659.             IWMCodecOutputTimestamp * This);
  660.         
  661.         ULONG ( STDMETHODCALLTYPE *Release )( 
  662.             IWMCodecOutputTimestamp * This);
  663.         
  664.         HRESULT ( STDMETHODCALLTYPE *GetNextOutputTime )( 
  665.             IWMCodecOutputTimestamp * This,
  666.             /* [out] */ REFERENCE_TIME *prtTime);
  667.         
  668.         END_INTERFACE
  669.     } IWMCodecOutputTimestampVtbl;
  670.     interface IWMCodecOutputTimestamp
  671.     {
  672.         CONST_VTBL struct IWMCodecOutputTimestampVtbl *lpVtbl;
  673.     };
  674.     
  675. #ifdef COBJMACROS
  676. #define IWMCodecOutputTimestamp_QueryInterface(This,riid,ppvObject)
  677.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  678. #define IWMCodecOutputTimestamp_AddRef(This)
  679.     (This)->lpVtbl -> AddRef(This)
  680. #define IWMCodecOutputTimestamp_Release(This)
  681.     (This)->lpVtbl -> Release(This)
  682. #define IWMCodecOutputTimestamp_GetNextOutputTime(This,prtTime)
  683.     (This)->lpVtbl -> GetNextOutputTime(This,prtTime)
  684. #endif /* COBJMACROS */
  685. #endif  /* C style interface */
  686. HRESULT STDMETHODCALLTYPE IWMCodecOutputTimestamp_GetNextOutputTime_Proxy( 
  687.     IWMCodecOutputTimestamp * This,
  688.     /* [out] */ REFERENCE_TIME *prtTime);
  689. void __RPC_STUB IWMCodecOutputTimestamp_GetNextOutputTime_Stub(
  690.     IRpcStubBuffer *This,
  691.     IRpcChannelBuffer *_pRpcChannelBuffer,
  692.     PRPC_MESSAGE _pRpcMessage,
  693.     DWORD *_pdwStubPhase);
  694. #endif  /* __IWMCodecOutputTimestamp_INTERFACE_DEFINED__ */
  695. #ifndef __IWMCodecPrivateData_INTERFACE_DEFINED__
  696. #define __IWMCodecPrivateData_INTERFACE_DEFINED__
  697. /* interface IWMCodecPrivateData */
  698. /* [local][unique][helpstring][uuid][object] */ 
  699. EXTERN_C const IID IID_IWMCodecPrivateData;
  700. #if defined(__cplusplus) && !defined(CINTERFACE)
  701.     
  702.     MIDL_INTERFACE("73F0BE8E-57F7-4f01-AA66-9F57340CFE0E")
  703.     IWMCodecPrivateData : public IUnknown
  704.     {
  705.     public:
  706.         virtual HRESULT STDMETHODCALLTYPE SetPartialOutputType( 
  707.             /* [in] */ DMO_MEDIA_TYPE *pmt) = 0;
  708.         
  709.         virtual HRESULT STDMETHODCALLTYPE GetPrivateData( 
  710.             /* [out] */ BYTE *pbData,
  711.             /* [out][in] */ ULONG *pcbData) = 0;
  712.         
  713.     };
  714.     
  715. #else  /* C style interface */
  716.     typedef struct IWMCodecPrivateDataVtbl
  717.     {
  718.         BEGIN_INTERFACE
  719.         
  720.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  721.             IWMCodecPrivateData * This,
  722.             /* [in] */ REFIID riid,
  723.             /* [iid_is][out] */ void **ppvObject);
  724.         
  725.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  726.             IWMCodecPrivateData * This);
  727.         
  728.         ULONG ( STDMETHODCALLTYPE *Release )( 
  729.             IWMCodecPrivateData * This);
  730.         
  731.         HRESULT ( STDMETHODCALLTYPE *SetPartialOutputType )( 
  732.             IWMCodecPrivateData * This,
  733.             /* [in] */ DMO_MEDIA_TYPE *pmt);
  734.         
  735.         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
  736.             IWMCodecPrivateData * This,
  737.             /* [out] */ BYTE *pbData,
  738.             /* [out][in] */ ULONG *pcbData);
  739.         
  740.         END_INTERFACE
  741.     } IWMCodecPrivateDataVtbl;
  742.     interface IWMCodecPrivateData
  743.     {
  744.         CONST_VTBL struct IWMCodecPrivateDataVtbl *lpVtbl;
  745.     };
  746.     
  747. #ifdef COBJMACROS
  748. #define IWMCodecPrivateData_QueryInterface(This,riid,ppvObject)
  749.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  750. #define IWMCodecPrivateData_AddRef(This)
  751.     (This)->lpVtbl -> AddRef(This)
  752. #define IWMCodecPrivateData_Release(This)
  753.     (This)->lpVtbl -> Release(This)
  754. #define IWMCodecPrivateData_SetPartialOutputType(This,pmt)
  755.     (This)->lpVtbl -> SetPartialOutputType(This,pmt)
  756. #define IWMCodecPrivateData_GetPrivateData(This,pbData,pcbData)
  757.     (This)->lpVtbl -> GetPrivateData(This,pbData,pcbData)
  758. #endif /* COBJMACROS */
  759. #endif  /* C style interface */
  760. HRESULT STDMETHODCALLTYPE IWMCodecPrivateData_SetPartialOutputType_Proxy( 
  761.     IWMCodecPrivateData * This,
  762.     /* [in] */ DMO_MEDIA_TYPE *pmt);
  763. void __RPC_STUB IWMCodecPrivateData_SetPartialOutputType_Stub(
  764.     IRpcStubBuffer *This,
  765.     IRpcChannelBuffer *_pRpcChannelBuffer,
  766.     PRPC_MESSAGE _pRpcMessage,
  767.     DWORD *_pdwStubPhase);
  768. HRESULT STDMETHODCALLTYPE IWMCodecPrivateData_GetPrivateData_Proxy( 
  769.     IWMCodecPrivateData * This,
  770.     /* [out] */ BYTE *pbData,
  771.     /* [out][in] */ ULONG *pcbData);
  772. void __RPC_STUB IWMCodecPrivateData_GetPrivateData_Stub(
  773.     IRpcStubBuffer *This,
  774.     IRpcChannelBuffer *_pRpcChannelBuffer,
  775.     PRPC_MESSAGE _pRpcMessage,
  776.     DWORD *_pdwStubPhase);
  777. #endif  /* __IWMCodecPrivateData_INTERFACE_DEFINED__ */
  778. /* Additional Prototypes for ALL interfaces */
  779. /* end of Additional Prototypes */
  780. #ifdef __cplusplus
  781. }
  782. #endif
  783. #endif