home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / sbe.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-12-04  |  56.7 KB  |  1,778 lines

  1.  
  2. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  3.  
  4. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  5.  
  6.  
  7.  /* File created by MIDL compiler version 6.00.0357 */
  8. /* Compiler settings for sbe.idl:
  9.     Oicf, W1, Zp8, env=Win32 (32b run)
  10.     protocol : dce , ms_ext, c_ext, robust
  11.     error checks: allocation ref bounds_check enum stub_data 
  12.     VC __declspec() decoration level: 
  13.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  14.          DECLSPEC_UUID(), MIDL_INTERFACE()
  15. */
  16. //@@MIDL_FILE_HEADING(  )
  17.  
  18.  
  19. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  20. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  21. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  22. #endif
  23.  
  24. #include "rpc.h"
  25. #include "rpcndr.h"
  26.  
  27. #ifndef __RPCNDR_H_VERSION__
  28. #error this stub requires an updated version of <rpcndr.h>
  29. #endif // __RPCNDR_H_VERSION__
  30.  
  31. #ifndef COM_NO_WINDOWS_H
  32. #include "windows.h"
  33. #include "ole2.h"
  34. #endif /*COM_NO_WINDOWS_H*/
  35.  
  36. #ifndef __sbe_h__
  37. #define __sbe_h__
  38.  
  39. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  40. #pragma once
  41. #endif
  42.  
  43. /* Forward Declarations */ 
  44.  
  45. #ifndef __IStreamBufferInitialize_FWD_DEFINED__
  46. #define __IStreamBufferInitialize_FWD_DEFINED__
  47. typedef interface IStreamBufferInitialize IStreamBufferInitialize;
  48. #endif     /* __IStreamBufferInitialize_FWD_DEFINED__ */
  49.  
  50.  
  51. #ifndef __IStreamBufferSink_FWD_DEFINED__
  52. #define __IStreamBufferSink_FWD_DEFINED__
  53. typedef interface IStreamBufferSink IStreamBufferSink;
  54. #endif     /* __IStreamBufferSink_FWD_DEFINED__ */
  55.  
  56.  
  57. #ifndef __IStreamBufferSource_FWD_DEFINED__
  58. #define __IStreamBufferSource_FWD_DEFINED__
  59. typedef interface IStreamBufferSource IStreamBufferSource;
  60. #endif     /* __IStreamBufferSource_FWD_DEFINED__ */
  61.  
  62.  
  63. #ifndef __IStreamBufferRecordControl_FWD_DEFINED__
  64. #define __IStreamBufferRecordControl_FWD_DEFINED__
  65. typedef interface IStreamBufferRecordControl IStreamBufferRecordControl;
  66. #endif     /* __IStreamBufferRecordControl_FWD_DEFINED__ */
  67.  
  68.  
  69. #ifndef __IStreamBufferRecComp_FWD_DEFINED__
  70. #define __IStreamBufferRecComp_FWD_DEFINED__
  71. typedef interface IStreamBufferRecComp IStreamBufferRecComp;
  72. #endif     /* __IStreamBufferRecComp_FWD_DEFINED__ */
  73.  
  74.  
  75. #ifndef __IStreamBufferRecordingAttribute_FWD_DEFINED__
  76. #define __IStreamBufferRecordingAttribute_FWD_DEFINED__
  77. typedef interface IStreamBufferRecordingAttribute IStreamBufferRecordingAttribute;
  78. #endif     /* __IStreamBufferRecordingAttribute_FWD_DEFINED__ */
  79.  
  80.  
  81. #ifndef __IEnumStreamBufferRecordingAttrib_FWD_DEFINED__
  82. #define __IEnumStreamBufferRecordingAttrib_FWD_DEFINED__
  83. typedef interface IEnumStreamBufferRecordingAttrib IEnumStreamBufferRecordingAttrib;
  84. #endif     /* __IEnumStreamBufferRecordingAttrib_FWD_DEFINED__ */
  85.  
  86.  
  87. #ifndef __IStreamBufferConfigure_FWD_DEFINED__
  88. #define __IStreamBufferConfigure_FWD_DEFINED__
  89. typedef interface IStreamBufferConfigure IStreamBufferConfigure;
  90. #endif     /* __IStreamBufferConfigure_FWD_DEFINED__ */
  91.  
  92.  
  93. #ifndef __IStreamBufferMediaSeeking_FWD_DEFINED__
  94. #define __IStreamBufferMediaSeeking_FWD_DEFINED__
  95. typedef interface IStreamBufferMediaSeeking IStreamBufferMediaSeeking;
  96. #endif     /* __IStreamBufferMediaSeeking_FWD_DEFINED__ */
  97.  
  98.  
  99. /* header files for imported files */
  100. #include "unknwn.h"
  101. #include "objidl.h"
  102. #include "strmif.h"
  103.  
  104. #ifdef __cplusplus
  105. extern "C"{
  106. #endif 
  107.  
  108. void * __RPC_USER MIDL_user_allocate(size_t);
  109. void __RPC_USER MIDL_user_free( void * ); 
  110.  
  111. /* interface __MIDL_itf_sbe_0000 */
  112. /* [local] */ 
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125. extern RPC_IF_HANDLE __MIDL_itf_sbe_0000_v0_0_c_ifspec;
  126. extern RPC_IF_HANDLE __MIDL_itf_sbe_0000_v0_0_s_ifspec;
  127.  
  128. #ifndef __IStreamBufferInitialize_INTERFACE_DEFINED__
  129. #define __IStreamBufferInitialize_INTERFACE_DEFINED__
  130.  
  131. /* interface IStreamBufferInitialize */
  132. /* [local][unique][uuid][object] */ 
  133.  
  134.  
  135. EXTERN_C const IID IID_IStreamBufferInitialize;
  136.  
  137. #if defined(__cplusplus) && !defined(CINTERFACE)
  138.     
  139.     MIDL_INTERFACE("9ce50f2d-6ba7-40fb-a034-50b1a674ec78")
  140.     IStreamBufferInitialize : public IUnknown
  141.     {
  142.     public:
  143.         virtual HRESULT STDMETHODCALLTYPE SetHKEY( 
  144.             /* [in] */ HKEY hkeyRoot) = 0;
  145.         
  146.         virtual HRESULT STDMETHODCALLTYPE SetSIDs( 
  147.             /* [in] */ DWORD cSIDs,
  148.             /* [size_is][in] */ PSID *ppSID) = 0;
  149.         
  150.     };
  151.     
  152. #else     /* C style interface */
  153.  
  154.     typedef struct IStreamBufferInitializeVtbl
  155.     {
  156.         BEGIN_INTERFACE
  157.         
  158.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  159.             IStreamBufferInitialize * This,
  160.             /* [in] */ REFIID riid,
  161.             /* [iid_is][out] */ void **ppvObject);
  162.         
  163.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  164.             IStreamBufferInitialize * This);
  165.         
  166.         ULONG ( STDMETHODCALLTYPE *Release )( 
  167.             IStreamBufferInitialize * This);
  168.         
  169.         HRESULT ( STDMETHODCALLTYPE *SetHKEY )( 
  170.             IStreamBufferInitialize * This,
  171.             /* [in] */ HKEY hkeyRoot);
  172.         
  173.         HRESULT ( STDMETHODCALLTYPE *SetSIDs )( 
  174.             IStreamBufferInitialize * This,
  175.             /* [in] */ DWORD cSIDs,
  176.             /* [size_is][in] */ PSID *ppSID);
  177.         
  178.         END_INTERFACE
  179.     } IStreamBufferInitializeVtbl;
  180.  
  181.     interface IStreamBufferInitialize
  182.     {
  183.         CONST_VTBL struct IStreamBufferInitializeVtbl *lpVtbl;
  184.     };
  185.  
  186.     
  187.  
  188. #ifdef COBJMACROS
  189.  
  190.  
  191. #define IStreamBufferInitialize_QueryInterface(This,riid,ppvObject)    \
  192.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  193.  
  194. #define IStreamBufferInitialize_AddRef(This)    \
  195.     (This)->lpVtbl -> AddRef(This)
  196.  
  197. #define IStreamBufferInitialize_Release(This)    \
  198.     (This)->lpVtbl -> Release(This)
  199.  
  200.  
  201. #define IStreamBufferInitialize_SetHKEY(This,hkeyRoot)    \
  202.     (This)->lpVtbl -> SetHKEY(This,hkeyRoot)
  203.  
  204. #define IStreamBufferInitialize_SetSIDs(This,cSIDs,ppSID)    \
  205.     (This)->lpVtbl -> SetSIDs(This,cSIDs,ppSID)
  206.  
  207. #endif /* COBJMACROS */
  208.  
  209.  
  210. #endif     /* C style interface */
  211.  
  212.  
  213.  
  214. HRESULT STDMETHODCALLTYPE IStreamBufferInitialize_SetHKEY_Proxy( 
  215.     IStreamBufferInitialize * This,
  216.     /* [in] */ HKEY hkeyRoot);
  217.  
  218.  
  219. void __RPC_STUB IStreamBufferInitialize_SetHKEY_Stub(
  220.     IRpcStubBuffer *This,
  221.     IRpcChannelBuffer *_pRpcChannelBuffer,
  222.     PRPC_MESSAGE _pRpcMessage,
  223.     DWORD *_pdwStubPhase);
  224.  
  225.  
  226. HRESULT STDMETHODCALLTYPE IStreamBufferInitialize_SetSIDs_Proxy( 
  227.     IStreamBufferInitialize * This,
  228.     /* [in] */ DWORD cSIDs,
  229.     /* [size_is][in] */ PSID *ppSID);
  230.  
  231.  
  232. void __RPC_STUB IStreamBufferInitialize_SetSIDs_Stub(
  233.     IRpcStubBuffer *This,
  234.     IRpcChannelBuffer *_pRpcChannelBuffer,
  235.     PRPC_MESSAGE _pRpcMessage,
  236.     DWORD *_pdwStubPhase);
  237.  
  238.  
  239.  
  240. #endif     /* __IStreamBufferInitialize_INTERFACE_DEFINED__ */
  241.  
  242.  
  243. /* interface __MIDL_itf_sbe_0408 */
  244. /* [local] */ 
  245.  
  246.  
  247. enum __MIDL___MIDL_itf_sbe_0408_0001
  248.     {    RECORDING_TYPE_CONTENT    = 0,
  249.     RECORDING_TYPE_REFERENCE    = RECORDING_TYPE_CONTENT + 1
  250.     } ;
  251.  
  252.  
  253. extern RPC_IF_HANDLE __MIDL_itf_sbe_0408_v0_0_c_ifspec;
  254. extern RPC_IF_HANDLE __MIDL_itf_sbe_0408_v0_0_s_ifspec;
  255.  
  256. #ifndef __IStreamBufferSink_INTERFACE_DEFINED__
  257. #define __IStreamBufferSink_INTERFACE_DEFINED__
  258.  
  259. /* interface IStreamBufferSink */
  260. /* [unique][uuid][object] */ 
  261.  
  262.  
  263. EXTERN_C const IID IID_IStreamBufferSink;
  264.  
  265. #if defined(__cplusplus) && !defined(CINTERFACE)
  266.     
  267.     MIDL_INTERFACE("afd1f242-7efd-45ee-ba4e-407a25c9a77a")
  268.     IStreamBufferSink : public IUnknown
  269.     {
  270.     public:
  271.         virtual HRESULT STDMETHODCALLTYPE LockProfile( 
  272.             /* [in] */ LPCWSTR pszStreamBufferFilename) = 0;
  273.         
  274.         virtual HRESULT STDMETHODCALLTYPE CreateRecorder( 
  275.             /* [in] */ LPCWSTR pszFilename,
  276.             /* [in] */ DWORD dwRecordType,
  277.             /* [out] */ IUnknown **pRecordingIUnknown) = 0;
  278.         
  279.         virtual HRESULT STDMETHODCALLTYPE IsProfileLocked( void) = 0;
  280.         
  281.     };
  282.     
  283. #else     /* C style interface */
  284.  
  285.     typedef struct IStreamBufferSinkVtbl
  286.     {
  287.         BEGIN_INTERFACE
  288.         
  289.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  290.             IStreamBufferSink * This,
  291.             /* [in] */ REFIID riid,
  292.             /* [iid_is][out] */ void **ppvObject);
  293.         
  294.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  295.             IStreamBufferSink * This);
  296.         
  297.         ULONG ( STDMETHODCALLTYPE *Release )( 
  298.             IStreamBufferSink * This);
  299.         
  300.         HRESULT ( STDMETHODCALLTYPE *LockProfile )( 
  301.             IStreamBufferSink * This,
  302.             /* [in] */ LPCWSTR pszStreamBufferFilename);
  303.         
  304.         HRESULT ( STDMETHODCALLTYPE *CreateRecorder )( 
  305.             IStreamBufferSink * This,
  306.             /* [in] */ LPCWSTR pszFilename,
  307.             /* [in] */ DWORD dwRecordType,
  308.             /* [out] */ IUnknown **pRecordingIUnknown);
  309.         
  310.         HRESULT ( STDMETHODCALLTYPE *IsProfileLocked )( 
  311.             IStreamBufferSink * This);
  312.         
  313.         END_INTERFACE
  314.     } IStreamBufferSinkVtbl;
  315.  
  316.     interface IStreamBufferSink
  317.     {
  318.         CONST_VTBL struct IStreamBufferSinkVtbl *lpVtbl;
  319.     };
  320.  
  321.     
  322.  
  323. #ifdef COBJMACROS
  324.  
  325.  
  326. #define IStreamBufferSink_QueryInterface(This,riid,ppvObject)    \
  327.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  328.  
  329. #define IStreamBufferSink_AddRef(This)    \
  330.     (This)->lpVtbl -> AddRef(This)
  331.  
  332. #define IStreamBufferSink_Release(This)    \
  333.     (This)->lpVtbl -> Release(This)
  334.  
  335.  
  336. #define IStreamBufferSink_LockProfile(This,pszStreamBufferFilename)    \
  337.     (This)->lpVtbl -> LockProfile(This,pszStreamBufferFilename)
  338.  
  339. #define IStreamBufferSink_CreateRecorder(This,pszFilename,dwRecordType,pRecordingIUnknown)    \
  340.     (This)->lpVtbl -> CreateRecorder(This,pszFilename,dwRecordType,pRecordingIUnknown)
  341.  
  342. #define IStreamBufferSink_IsProfileLocked(This)    \
  343.     (This)->lpVtbl -> IsProfileLocked(This)
  344.  
  345. #endif /* COBJMACROS */
  346.  
  347.  
  348. #endif     /* C style interface */
  349.  
  350.  
  351.  
  352. HRESULT STDMETHODCALLTYPE IStreamBufferSink_LockProfile_Proxy( 
  353.     IStreamBufferSink * This,
  354.     /* [in] */ LPCWSTR pszStreamBufferFilename);
  355.  
  356.  
  357. void __RPC_STUB IStreamBufferSink_LockProfile_Stub(
  358.     IRpcStubBuffer *This,
  359.     IRpcChannelBuffer *_pRpcChannelBuffer,
  360.     PRPC_MESSAGE _pRpcMessage,
  361.     DWORD *_pdwStubPhase);
  362.  
  363.  
  364. HRESULT STDMETHODCALLTYPE IStreamBufferSink_CreateRecorder_Proxy( 
  365.     IStreamBufferSink * This,
  366.     /* [in] */ LPCWSTR pszFilename,
  367.     /* [in] */ DWORD dwRecordType,
  368.     /* [out] */ IUnknown **pRecordingIUnknown);
  369.  
  370.  
  371. void __RPC_STUB IStreamBufferSink_CreateRecorder_Stub(
  372.     IRpcStubBuffer *This,
  373.     IRpcChannelBuffer *_pRpcChannelBuffer,
  374.     PRPC_MESSAGE _pRpcMessage,
  375.     DWORD *_pdwStubPhase);
  376.  
  377.  
  378. HRESULT STDMETHODCALLTYPE IStreamBufferSink_IsProfileLocked_Proxy( 
  379.     IStreamBufferSink * This);
  380.  
  381.  
  382. void __RPC_STUB IStreamBufferSink_IsProfileLocked_Stub(
  383.     IRpcStubBuffer *This,
  384.     IRpcChannelBuffer *_pRpcChannelBuffer,
  385.     PRPC_MESSAGE _pRpcMessage,
  386.     DWORD *_pdwStubPhase);
  387.  
  388.  
  389.  
  390. #endif     /* __IStreamBufferSink_INTERFACE_DEFINED__ */
  391.  
  392.  
  393. #ifndef __IStreamBufferSource_INTERFACE_DEFINED__
  394. #define __IStreamBufferSource_INTERFACE_DEFINED__
  395.  
  396. /* interface IStreamBufferSource */
  397. /* [unique][uuid][object] */ 
  398.  
  399.  
  400. EXTERN_C const IID IID_IStreamBufferSource;
  401.  
  402. #if defined(__cplusplus) && !defined(CINTERFACE)
  403.     
  404.     MIDL_INTERFACE("1c5bd776-6ced-4f44-8164-5eab0e98db12")
  405.     IStreamBufferSource : public IUnknown
  406.     {
  407.     public:
  408.         virtual HRESULT STDMETHODCALLTYPE SetStreamSink( 
  409.             /* [in] */ IStreamBufferSink *pIStreamBufferSink) = 0;
  410.         
  411.     };
  412.     
  413. #else     /* C style interface */
  414.  
  415.     typedef struct IStreamBufferSourceVtbl
  416.     {
  417.         BEGIN_INTERFACE
  418.         
  419.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  420.             IStreamBufferSource * This,
  421.             /* [in] */ REFIID riid,
  422.             /* [iid_is][out] */ void **ppvObject);
  423.         
  424.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  425.             IStreamBufferSource * This);
  426.         
  427.         ULONG ( STDMETHODCALLTYPE *Release )( 
  428.             IStreamBufferSource * This);
  429.         
  430.         HRESULT ( STDMETHODCALLTYPE *SetStreamSink )( 
  431.             IStreamBufferSource * This,
  432.             /* [in] */ IStreamBufferSink *pIStreamBufferSink);
  433.         
  434.         END_INTERFACE
  435.     } IStreamBufferSourceVtbl;
  436.  
  437.     interface IStreamBufferSource
  438.     {
  439.         CONST_VTBL struct IStreamBufferSourceVtbl *lpVtbl;
  440.     };
  441.  
  442.     
  443.  
  444. #ifdef COBJMACROS
  445.  
  446.  
  447. #define IStreamBufferSource_QueryInterface(This,riid,ppvObject)    \
  448.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  449.  
  450. #define IStreamBufferSource_AddRef(This)    \
  451.     (This)->lpVtbl -> AddRef(This)
  452.  
  453. #define IStreamBufferSource_Release(This)    \
  454.     (This)->lpVtbl -> Release(This)
  455.  
  456.  
  457. #define IStreamBufferSource_SetStreamSink(This,pIStreamBufferSink)    \
  458.     (This)->lpVtbl -> SetStreamSink(This,pIStreamBufferSink)
  459.  
  460. #endif /* COBJMACROS */
  461.  
  462.  
  463. #endif     /* C style interface */
  464.  
  465.  
  466.  
  467. HRESULT STDMETHODCALLTYPE IStreamBufferSource_SetStreamSink_Proxy( 
  468.     IStreamBufferSource * This,
  469.     /* [in] */ IStreamBufferSink *pIStreamBufferSink);
  470.  
  471.  
  472. void __RPC_STUB IStreamBufferSource_SetStreamSink_Stub(
  473.     IRpcStubBuffer *This,
  474.     IRpcChannelBuffer *_pRpcChannelBuffer,
  475.     PRPC_MESSAGE _pRpcMessage,
  476.     DWORD *_pdwStubPhase);
  477.  
  478.  
  479.  
  480. #endif     /* __IStreamBufferSource_INTERFACE_DEFINED__ */
  481.  
  482.  
  483. #ifndef __IStreamBufferRecordControl_INTERFACE_DEFINED__
  484. #define __IStreamBufferRecordControl_INTERFACE_DEFINED__
  485.  
  486. /* interface IStreamBufferRecordControl */
  487. /* [unique][uuid][object] */ 
  488.  
  489.  
  490. EXTERN_C const IID IID_IStreamBufferRecordControl;
  491.  
  492. #if defined(__cplusplus) && !defined(CINTERFACE)
  493.     
  494.     MIDL_INTERFACE("ba9b6c99-f3c7-4ff2-92db-cfdd4851bf31")
  495.     IStreamBufferRecordControl : public IUnknown
  496.     {
  497.     public:
  498.         virtual HRESULT STDMETHODCALLTYPE Start( 
  499.             /* [out][in] */ REFERENCE_TIME *prtStart) = 0;
  500.         
  501.         virtual HRESULT STDMETHODCALLTYPE Stop( 
  502.             /* [in] */ REFERENCE_TIME rtStop) = 0;
  503.         
  504.         virtual HRESULT STDMETHODCALLTYPE GetRecordingStatus( 
  505.             /* [out] */ HRESULT *phResult,
  506.             /* [out] */ BOOL *pbStarted,
  507.             /* [out] */ BOOL *pbStopped) = 0;
  508.         
  509.     };
  510.     
  511. #else     /* C style interface */
  512.  
  513.     typedef struct IStreamBufferRecordControlVtbl
  514.     {
  515.         BEGIN_INTERFACE
  516.         
  517.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  518.             IStreamBufferRecordControl * This,
  519.             /* [in] */ REFIID riid,
  520.             /* [iid_is][out] */ void **ppvObject);
  521.         
  522.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  523.             IStreamBufferRecordControl * This);
  524.         
  525.         ULONG ( STDMETHODCALLTYPE *Release )( 
  526.             IStreamBufferRecordControl * This);
  527.         
  528.         HRESULT ( STDMETHODCALLTYPE *Start )( 
  529.             IStreamBufferRecordControl * This,
  530.             /* [out][in] */ REFERENCE_TIME *prtStart);
  531.         
  532.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  533.             IStreamBufferRecordControl * This,
  534.             /* [in] */ REFERENCE_TIME rtStop);
  535.         
  536.         HRESULT ( STDMETHODCALLTYPE *GetRecordingStatus )( 
  537.             IStreamBufferRecordControl * This,
  538.             /* [out] */ HRESULT *phResult,
  539.             /* [out] */ BOOL *pbStarted,
  540.             /* [out] */ BOOL *pbStopped);
  541.         
  542.         END_INTERFACE
  543.     } IStreamBufferRecordControlVtbl;
  544.  
  545.     interface IStreamBufferRecordControl
  546.     {
  547.         CONST_VTBL struct IStreamBufferRecordControlVtbl *lpVtbl;
  548.     };
  549.  
  550.     
  551.  
  552. #ifdef COBJMACROS
  553.  
  554.  
  555. #define IStreamBufferRecordControl_QueryInterface(This,riid,ppvObject)    \
  556.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  557.  
  558. #define IStreamBufferRecordControl_AddRef(This)    \
  559.     (This)->lpVtbl -> AddRef(This)
  560.  
  561. #define IStreamBufferRecordControl_Release(This)    \
  562.     (This)->lpVtbl -> Release(This)
  563.  
  564.  
  565. #define IStreamBufferRecordControl_Start(This,prtStart)    \
  566.     (This)->lpVtbl -> Start(This,prtStart)
  567.  
  568. #define IStreamBufferRecordControl_Stop(This,rtStop)    \
  569.     (This)->lpVtbl -> Stop(This,rtStop)
  570.  
  571. #define IStreamBufferRecordControl_GetRecordingStatus(This,phResult,pbStarted,pbStopped)    \
  572.     (This)->lpVtbl -> GetRecordingStatus(This,phResult,pbStarted,pbStopped)
  573.  
  574. #endif /* COBJMACROS */
  575.  
  576.  
  577. #endif     /* C style interface */
  578.  
  579.  
  580.  
  581. HRESULT STDMETHODCALLTYPE IStreamBufferRecordControl_Start_Proxy( 
  582.     IStreamBufferRecordControl * This,
  583.     /* [out][in] */ REFERENCE_TIME *prtStart);
  584.  
  585.  
  586. void __RPC_STUB IStreamBufferRecordControl_Start_Stub(
  587.     IRpcStubBuffer *This,
  588.     IRpcChannelBuffer *_pRpcChannelBuffer,
  589.     PRPC_MESSAGE _pRpcMessage,
  590.     DWORD *_pdwStubPhase);
  591.  
  592.  
  593. HRESULT STDMETHODCALLTYPE IStreamBufferRecordControl_Stop_Proxy( 
  594.     IStreamBufferRecordControl * This,
  595.     /* [in] */ REFERENCE_TIME rtStop);
  596.  
  597.  
  598. void __RPC_STUB IStreamBufferRecordControl_Stop_Stub(
  599.     IRpcStubBuffer *This,
  600.     IRpcChannelBuffer *_pRpcChannelBuffer,
  601.     PRPC_MESSAGE _pRpcMessage,
  602.     DWORD *_pdwStubPhase);
  603.  
  604.  
  605. HRESULT STDMETHODCALLTYPE IStreamBufferRecordControl_GetRecordingStatus_Proxy( 
  606.     IStreamBufferRecordControl * This,
  607.     /* [out] */ HRESULT *phResult,
  608.     /* [out] */ BOOL *pbStarted,
  609.     /* [out] */ BOOL *pbStopped);
  610.  
  611.  
  612. void __RPC_STUB IStreamBufferRecordControl_GetRecordingStatus_Stub(
  613.     IRpcStubBuffer *This,
  614.     IRpcChannelBuffer *_pRpcChannelBuffer,
  615.     PRPC_MESSAGE _pRpcMessage,
  616.     DWORD *_pdwStubPhase);
  617.  
  618.  
  619.  
  620. #endif     /* __IStreamBufferRecordControl_INTERFACE_DEFINED__ */
  621.  
  622.  
  623. #ifndef __IStreamBufferRecComp_INTERFACE_DEFINED__
  624. #define __IStreamBufferRecComp_INTERFACE_DEFINED__
  625.  
  626. /* interface IStreamBufferRecComp */
  627. /* [unique][uuid][object] */ 
  628.  
  629.  
  630. EXTERN_C const IID IID_IStreamBufferRecComp;
  631.  
  632. #if defined(__cplusplus) && !defined(CINTERFACE)
  633.     
  634.     MIDL_INTERFACE("9E259A9B-8815-42ae-B09F-221970B154FD")
  635.     IStreamBufferRecComp : public IUnknown
  636.     {
  637.     public:
  638.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  639.             /* [in] */ LPCWSTR pszTargetFilename,
  640.             /* [in] */ LPCWSTR pszSBRecProfileRef) = 0;
  641.         
  642.         virtual HRESULT STDMETHODCALLTYPE Append( 
  643.             /* [in] */ LPCWSTR pszSBRecording) = 0;
  644.         
  645.         virtual HRESULT STDMETHODCALLTYPE AppendEx( 
  646.             /* [in] */ LPCWSTR pszSBRecording,
  647.             /* [in] */ REFERENCE_TIME rtStart,
  648.             /* [in] */ REFERENCE_TIME rtStop) = 0;
  649.         
  650.         virtual HRESULT STDMETHODCALLTYPE GetCurrentLength( 
  651.             /* [out] */ DWORD *pcSeconds) = 0;
  652.         
  653.         virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  654.         
  655.         virtual HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
  656.         
  657.     };
  658.     
  659. #else     /* C style interface */
  660.  
  661.     typedef struct IStreamBufferRecCompVtbl
  662.     {
  663.         BEGIN_INTERFACE
  664.         
  665.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  666.             IStreamBufferRecComp * This,
  667.             /* [in] */ REFIID riid,
  668.             /* [iid_is][out] */ void **ppvObject);
  669.         
  670.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  671.             IStreamBufferRecComp * This);
  672.         
  673.         ULONG ( STDMETHODCALLTYPE *Release )( 
  674.             IStreamBufferRecComp * This);
  675.         
  676.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  677.             IStreamBufferRecComp * This,
  678.             /* [in] */ LPCWSTR pszTargetFilename,
  679.             /* [in] */ LPCWSTR pszSBRecProfileRef);
  680.         
  681.         HRESULT ( STDMETHODCALLTYPE *Append )( 
  682.             IStreamBufferRecComp * This,
  683.             /* [in] */ LPCWSTR pszSBRecording);
  684.         
  685.         HRESULT ( STDMETHODCALLTYPE *AppendEx )( 
  686.             IStreamBufferRecComp * This,
  687.             /* [in] */ LPCWSTR pszSBRecording,
  688.             /* [in] */ REFERENCE_TIME rtStart,
  689.             /* [in] */ REFERENCE_TIME rtStop);
  690.         
  691.         HRESULT ( STDMETHODCALLTYPE *GetCurrentLength )( 
  692.             IStreamBufferRecComp * This,
  693.             /* [out] */ DWORD *pcSeconds);
  694.         
  695.         HRESULT ( STDMETHODCALLTYPE *Close )( 
  696.             IStreamBufferRecComp * This);
  697.         
  698.         HRESULT ( STDMETHODCALLTYPE *Cancel )( 
  699.             IStreamBufferRecComp * This);
  700.         
  701.         END_INTERFACE
  702.     } IStreamBufferRecCompVtbl;
  703.  
  704.     interface IStreamBufferRecComp
  705.     {
  706.         CONST_VTBL struct IStreamBufferRecCompVtbl *lpVtbl;
  707.     };
  708.  
  709.     
  710.  
  711. #ifdef COBJMACROS
  712.  
  713.  
  714. #define IStreamBufferRecComp_QueryInterface(This,riid,ppvObject)    \
  715.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  716.  
  717. #define IStreamBufferRecComp_AddRef(This)    \
  718.     (This)->lpVtbl -> AddRef(This)
  719.  
  720. #define IStreamBufferRecComp_Release(This)    \
  721.     (This)->lpVtbl -> Release(This)
  722.  
  723.  
  724. #define IStreamBufferRecComp_Initialize(This,pszTargetFilename,pszSBRecProfileRef)    \
  725.     (This)->lpVtbl -> Initialize(This,pszTargetFilename,pszSBRecProfileRef)
  726.  
  727. #define IStreamBufferRecComp_Append(This,pszSBRecording)    \
  728.     (This)->lpVtbl -> Append(This,pszSBRecording)
  729.  
  730. #define IStreamBufferRecComp_AppendEx(This,pszSBRecording,rtStart,rtStop)    \
  731.     (This)->lpVtbl -> AppendEx(This,pszSBRecording,rtStart,rtStop)
  732.  
  733. #define IStreamBufferRecComp_GetCurrentLength(This,pcSeconds)    \
  734.     (This)->lpVtbl -> GetCurrentLength(This,pcSeconds)
  735.  
  736. #define IStreamBufferRecComp_Close(This)    \
  737.     (This)->lpVtbl -> Close(This)
  738.  
  739. #define IStreamBufferRecComp_Cancel(This)    \
  740.     (This)->lpVtbl -> Cancel(This)
  741.  
  742. #endif /* COBJMACROS */
  743.  
  744.  
  745. #endif     /* C style interface */
  746.  
  747.  
  748.  
  749. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Initialize_Proxy( 
  750.     IStreamBufferRecComp * This,
  751.     /* [in] */ LPCWSTR pszTargetFilename,
  752.     /* [in] */ LPCWSTR pszSBRecProfileRef);
  753.  
  754.  
  755. void __RPC_STUB IStreamBufferRecComp_Initialize_Stub(
  756.     IRpcStubBuffer *This,
  757.     IRpcChannelBuffer *_pRpcChannelBuffer,
  758.     PRPC_MESSAGE _pRpcMessage,
  759.     DWORD *_pdwStubPhase);
  760.  
  761.  
  762. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Append_Proxy( 
  763.     IStreamBufferRecComp * This,
  764.     /* [in] */ LPCWSTR pszSBRecording);
  765.  
  766.  
  767. void __RPC_STUB IStreamBufferRecComp_Append_Stub(
  768.     IRpcStubBuffer *This,
  769.     IRpcChannelBuffer *_pRpcChannelBuffer,
  770.     PRPC_MESSAGE _pRpcMessage,
  771.     DWORD *_pdwStubPhase);
  772.  
  773.  
  774. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_AppendEx_Proxy( 
  775.     IStreamBufferRecComp * This,
  776.     /* [in] */ LPCWSTR pszSBRecording,
  777.     /* [in] */ REFERENCE_TIME rtStart,
  778.     /* [in] */ REFERENCE_TIME rtStop);
  779.  
  780.  
  781. void __RPC_STUB IStreamBufferRecComp_AppendEx_Stub(
  782.     IRpcStubBuffer *This,
  783.     IRpcChannelBuffer *_pRpcChannelBuffer,
  784.     PRPC_MESSAGE _pRpcMessage,
  785.     DWORD *_pdwStubPhase);
  786.  
  787.  
  788. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_GetCurrentLength_Proxy( 
  789.     IStreamBufferRecComp * This,
  790.     /* [out] */ DWORD *pcSeconds);
  791.  
  792.  
  793. void __RPC_STUB IStreamBufferRecComp_GetCurrentLength_Stub(
  794.     IRpcStubBuffer *This,
  795.     IRpcChannelBuffer *_pRpcChannelBuffer,
  796.     PRPC_MESSAGE _pRpcMessage,
  797.     DWORD *_pdwStubPhase);
  798.  
  799.  
  800. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Close_Proxy( 
  801.     IStreamBufferRecComp * This);
  802.  
  803.  
  804. void __RPC_STUB IStreamBufferRecComp_Close_Stub(
  805.     IRpcStubBuffer *This,
  806.     IRpcChannelBuffer *_pRpcChannelBuffer,
  807.     PRPC_MESSAGE _pRpcMessage,
  808.     DWORD *_pdwStubPhase);
  809.  
  810.  
  811. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Cancel_Proxy( 
  812.     IStreamBufferRecComp * This);
  813.  
  814.  
  815. void __RPC_STUB IStreamBufferRecComp_Cancel_Stub(
  816.     IRpcStubBuffer *This,
  817.     IRpcChannelBuffer *_pRpcChannelBuffer,
  818.     PRPC_MESSAGE _pRpcMessage,
  819.     DWORD *_pdwStubPhase);
  820.  
  821.  
  822.  
  823. #endif     /* __IStreamBufferRecComp_INTERFACE_DEFINED__ */
  824.  
  825.  
  826. /* interface __MIDL_itf_sbe_0412 */
  827. /* [local] */ 
  828.  
  829. ////////////////////////////////////////////////////////////////
  830. //
  831. // List of pre-defined attributes 
  832. //
  833. static const WCHAR g_wszStreamBufferRecordingDuration[] =L"Duration";
  834. static const WCHAR g_wszStreamBufferRecordingBitrate[] =L"Bitrate";
  835. static const WCHAR g_wszStreamBufferRecordingSeekable[] =L"Seekable";
  836. static const WCHAR g_wszStreamBufferRecordingStridable[] =L"Stridable";
  837. static const WCHAR g_wszStreamBufferRecordingBroadcast[] =L"Broadcast";
  838. static const WCHAR g_wszStreamBufferRecordingProtected[] =L"Is_Protected";
  839. static const WCHAR g_wszStreamBufferRecordingTrusted[] =L"Is_Trusted";
  840. static const WCHAR g_wszStreamBufferRecordingSignature_Name[] =L"Signature_Name";
  841. static const WCHAR g_wszStreamBufferRecordingHasAudio[] =L"HasAudio";
  842. static const WCHAR g_wszStreamBufferRecordingHasImage[] =L"HasImage";
  843. static const WCHAR g_wszStreamBufferRecordingHasScript[] =L"HasScript";
  844. static const WCHAR g_wszStreamBufferRecordingHasVideo[] =L"HasVideo";
  845. static const WCHAR g_wszStreamBufferRecordingCurrentBitrate[] =L"CurrentBitrate";
  846. static const WCHAR g_wszStreamBufferRecordingOptimalBitrate[] =L"OptimalBitrate";
  847. static const WCHAR g_wszStreamBufferRecordingHasAttachedImages[] =L"HasAttachedImages";
  848. static const WCHAR g_wszStreamBufferRecordingSkipBackward[] =L"Can_Skip_Backward";
  849. static const WCHAR g_wszStreamBufferRecordingSkipForward[] =L"Can_Skip_Forward";
  850. static const WCHAR g_wszStreamBufferRecordingNumberOfFrames[] =L"NumberOfFrames";
  851. static const WCHAR g_wszStreamBufferRecordingFileSize[] =L"FileSize";
  852. static const WCHAR g_wszStreamBufferRecordingHasArbitraryDataStream[] =L"HasArbitraryDataStream";
  853. static const WCHAR g_wszStreamBufferRecordingHasFileTransferStream[] =L"HasFileTransferStream";
  854.  
  855. ////////////////////////////////////////////////////////////////
  856. //
  857. // The content description object supports 5 basic attributes.
  858. //
  859. static const WCHAR g_wszStreamBufferRecordingTitle[] =L"Title";
  860. static const WCHAR g_wszStreamBufferRecordingAuthor[] =L"Author";
  861. static const WCHAR g_wszStreamBufferRecordingDescription[] =L"Description";
  862. static const WCHAR g_wszStreamBufferRecordingRating[] =L"Rating";
  863. static const WCHAR g_wszStreamBufferRecordingCopyright[] =L"Copyright";
  864.  
  865. ////////////////////////////////////////////////////////////////
  866. //
  867. // These attributes are used to configure DRM using IWMDRMWriter::SetDRMAttribute.
  868. //
  869. static const WCHAR *g_wszStreamBufferRecordingUse_DRM = L"Use_DRM";
  870. static const WCHAR *g_wszStreamBufferRecordingDRM_Flags = L"DRM_Flags";
  871. static const WCHAR *g_wszStreamBufferRecordingDRM_Level = L"DRM_Level";
  872.  
  873. ////////////////////////////////////////////////////////////////
  874. //
  875. // These are the additional attributes defined in the WM attribute
  876. // namespace that give information about the content.
  877. //
  878. static const WCHAR g_wszStreamBufferRecordingAlbumTitle[] =L"WM/AlbumTitle";
  879. static const WCHAR g_wszStreamBufferRecordingTrack[] =L"WM/Track";
  880. static const WCHAR g_wszStreamBufferRecordingPromotionURL[] =L"WM/PromotionURL";
  881. static const WCHAR g_wszStreamBufferRecordingAlbumCoverURL[] =L"WM/AlbumCoverURL";
  882. static const WCHAR g_wszStreamBufferRecordingGenre[] =L"WM/Genre";
  883. static const WCHAR g_wszStreamBufferRecordingYear[] =L"WM/Year";
  884. static const WCHAR g_wszStreamBufferRecordingGenreID[] =L"WM/GenreID";
  885. static const WCHAR g_wszStreamBufferRecordingMCDI[] =L"WM/MCDI";
  886. static const WCHAR g_wszStreamBufferRecordingComposer[] =L"WM/Composer";
  887. static const WCHAR g_wszStreamBufferRecordingLyrics[] =L"WM/Lyrics";
  888. static const WCHAR g_wszStreamBufferRecordingTrackNumber[] =L"WM/TrackNumber";
  889. static const WCHAR g_wszStreamBufferRecordingToolName[] =L"WM/ToolName";
  890. static const WCHAR g_wszStreamBufferRecordingToolVersion[] =L"WM/ToolVersion";
  891. static const WCHAR g_wszStreamBufferRecordingIsVBR[] =L"IsVBR";
  892. static const WCHAR g_wszStreamBufferRecordingAlbumArtist[] =L"WM/AlbumArtist";
  893.  
  894. ////////////////////////////////////////////////////////////////
  895. //
  896. // These optional attributes may be used to give information 
  897. // about the branding of the content.
  898. //
  899. static const WCHAR g_wszStreamBufferRecordingBannerImageType[] =L"BannerImageType";
  900. static const WCHAR g_wszStreamBufferRecordingBannerImageData[] =L"BannerImageData";
  901. static const WCHAR g_wszStreamBufferRecordingBannerImageURL[] =L"BannerImageURL";
  902. static const WCHAR g_wszStreamBufferRecordingCopyrightURL[] =L"CopyrightURL";
  903. ////////////////////////////////////////////////////////////////
  904. //
  905. // Optional attributes, used to give information 
  906. // about video stream properties.
  907. //
  908. static const WCHAR g_wszStreamBufferRecordingAspectRatioX[] =L"AspectRatioX";
  909. static const WCHAR g_wszStreamBufferRecordingAspectRatioY[] =L"AspectRatioY";
  910. ////////////////////////////////////////////////////////////////
  911. //
  912. // The NSC file supports the following attributes.
  913. //
  914. static const WCHAR g_wszStreamBufferRecordingNSCName[] =L"NSC_Name";
  915. static const WCHAR g_wszStreamBufferRecordingNSCAddress[] =L"NSC_Address";
  916. static const WCHAR g_wszStreamBufferRecordingNSCPhone[] =L"NSC_Phone";
  917. static const WCHAR g_wszStreamBufferRecordingNSCEmail[] =L"NSC_Email";
  918. static const WCHAR g_wszStreamBufferRecordingNSCDescription[] =L"NSC_Description";
  919.  
  920. typedef /* [public][public][public][public][public][public] */ 
  921. enum __MIDL___MIDL_itf_sbe_0412_0001
  922.     {    STREAMBUFFER_TYPE_DWORD    = 0,
  923.     STREAMBUFFER_TYPE_STRING    = 1,
  924.     STREAMBUFFER_TYPE_BINARY    = 2,
  925.     STREAMBUFFER_TYPE_BOOL    = 3,
  926.     STREAMBUFFER_TYPE_QWORD    = 4,
  927.     STREAMBUFFER_TYPE_WORD    = 5,
  928.     STREAMBUFFER_TYPE_GUID    = 6
  929.     }     STREAMBUFFER_ATTR_DATATYPE;
  930.  
  931.  
  932.  
  933. extern RPC_IF_HANDLE __MIDL_itf_sbe_0412_v0_0_c_ifspec;
  934. extern RPC_IF_HANDLE __MIDL_itf_sbe_0412_v0_0_s_ifspec;
  935.  
  936. #ifndef __IStreamBufferRecordingAttribute_INTERFACE_DEFINED__
  937. #define __IStreamBufferRecordingAttribute_INTERFACE_DEFINED__
  938.  
  939. /* interface IStreamBufferRecordingAttribute */
  940. /* [unique][uuid][object] */ 
  941.  
  942.  
  943. EXTERN_C const IID IID_IStreamBufferRecordingAttribute;
  944.  
  945. #if defined(__cplusplus) && !defined(CINTERFACE)
  946.     
  947.     MIDL_INTERFACE("16CA4E03-FE69-4705-BD41-5B7DFC0C95F3")
  948.     IStreamBufferRecordingAttribute : public IUnknown
  949.     {
  950.     public:
  951.         virtual HRESULT STDMETHODCALLTYPE SetAttribute( 
  952.             /* [in] */ ULONG ulReserved,
  953.             /* [in] */ LPCWSTR pszAttributeName,
  954.             /* [in] */ STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType,
  955.             /* [in] */ BYTE *pbAttribute,
  956.             /* [in] */ WORD cbAttributeLength) = 0;
  957.         
  958.         virtual HRESULT STDMETHODCALLTYPE GetAttributeCount( 
  959.             /* [in] */ ULONG ulReserved,
  960.             /* [out] */ WORD *pcAttributes) = 0;
  961.         
  962.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByName( 
  963.             /* [in] */ LPCWSTR pszAttributeName,
  964.             /* [in] */ ULONG *pulReserved,
  965.             /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  966.             /* [out] */ BYTE *pbAttribute,
  967.             /* [out][in] */ WORD *pcbLength) = 0;
  968.         
  969.         virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex( 
  970.             /* [in] */ WORD wIndex,
  971.             /* [in] */ ULONG *pulReserved,
  972.             /* [out] */ WCHAR *pszAttributeName,
  973.             /* [out][in] */ WORD *pcchNameLength,
  974.             /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  975.             /* [out] */ BYTE *pbAttribute,
  976.             /* [out][in] */ WORD *pcbLength) = 0;
  977.         
  978.         virtual HRESULT STDMETHODCALLTYPE EnumAttributes( 
  979.             /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib) = 0;
  980.         
  981.     };
  982.     
  983. #else     /* C style interface */
  984.  
  985.     typedef struct IStreamBufferRecordingAttributeVtbl
  986.     {
  987.         BEGIN_INTERFACE
  988.         
  989.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  990.             IStreamBufferRecordingAttribute * This,
  991.             /* [in] */ REFIID riid,
  992.             /* [iid_is][out] */ void **ppvObject);
  993.         
  994.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  995.             IStreamBufferRecordingAttribute * This);
  996.         
  997.         ULONG ( STDMETHODCALLTYPE *Release )( 
  998.             IStreamBufferRecordingAttribute * This);
  999.         
  1000.         HRESULT ( STDMETHODCALLTYPE *SetAttribute )( 
  1001.             IStreamBufferRecordingAttribute * This,
  1002.             /* [in] */ ULONG ulReserved,
  1003.             /* [in] */ LPCWSTR pszAttributeName,
  1004.             /* [in] */ STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType,
  1005.             /* [in] */ BYTE *pbAttribute,
  1006.             /* [in] */ WORD cbAttributeLength);
  1007.         
  1008.         HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )( 
  1009.             IStreamBufferRecordingAttribute * This,
  1010.             /* [in] */ ULONG ulReserved,
  1011.             /* [out] */ WORD *pcAttributes);
  1012.         
  1013.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )( 
  1014.             IStreamBufferRecordingAttribute * This,
  1015.             /* [in] */ LPCWSTR pszAttributeName,
  1016.             /* [in] */ ULONG *pulReserved,
  1017.             /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  1018.             /* [out] */ BYTE *pbAttribute,
  1019.             /* [out][in] */ WORD *pcbLength);
  1020.         
  1021.         HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )( 
  1022.             IStreamBufferRecordingAttribute * This,
  1023.             /* [in] */ WORD wIndex,
  1024.             /* [in] */ ULONG *pulReserved,
  1025.             /* [out] */ WCHAR *pszAttributeName,
  1026.             /* [out][in] */ WORD *pcchNameLength,
  1027.             /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  1028.             /* [out] */ BYTE *pbAttribute,
  1029.             /* [out][in] */ WORD *pcbLength);
  1030.         
  1031.         HRESULT ( STDMETHODCALLTYPE *EnumAttributes )( 
  1032.             IStreamBufferRecordingAttribute * This,
  1033.             /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  1034.         
  1035.         END_INTERFACE
  1036.     } IStreamBufferRecordingAttributeVtbl;
  1037.  
  1038.     interface IStreamBufferRecordingAttribute
  1039.     {
  1040.         CONST_VTBL struct IStreamBufferRecordingAttributeVtbl *lpVtbl;
  1041.     };
  1042.  
  1043.     
  1044.  
  1045. #ifdef COBJMACROS
  1046.  
  1047.  
  1048. #define IStreamBufferRecordingAttribute_QueryInterface(This,riid,ppvObject)    \
  1049.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1050.  
  1051. #define IStreamBufferRecordingAttribute_AddRef(This)    \
  1052.     (This)->lpVtbl -> AddRef(This)
  1053.  
  1054. #define IStreamBufferRecordingAttribute_Release(This)    \
  1055.     (This)->lpVtbl -> Release(This)
  1056.  
  1057.  
  1058. #define IStreamBufferRecordingAttribute_SetAttribute(This,ulReserved,pszAttributeName,StreamBufferAttributeType,pbAttribute,cbAttributeLength)    \
  1059.     (This)->lpVtbl -> SetAttribute(This,ulReserved,pszAttributeName,StreamBufferAttributeType,pbAttribute,cbAttributeLength)
  1060.  
  1061. #define IStreamBufferRecordingAttribute_GetAttributeCount(This,ulReserved,pcAttributes)    \
  1062.     (This)->lpVtbl -> GetAttributeCount(This,ulReserved,pcAttributes)
  1063.  
  1064. #define IStreamBufferRecordingAttribute_GetAttributeByName(This,pszAttributeName,pulReserved,pStreamBufferAttributeType,pbAttribute,pcbLength)    \
  1065.     (This)->lpVtbl -> GetAttributeByName(This,pszAttributeName,pulReserved,pStreamBufferAttributeType,pbAttribute,pcbLength)
  1066.  
  1067. #define IStreamBufferRecordingAttribute_GetAttributeByIndex(This,wIndex,pulReserved,pszAttributeName,pcchNameLength,pStreamBufferAttributeType,pbAttribute,pcbLength)    \
  1068.     (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pulReserved,pszAttributeName,pcchNameLength,pStreamBufferAttributeType,pbAttribute,pcbLength)
  1069.  
  1070. #define IStreamBufferRecordingAttribute_EnumAttributes(This,ppIEnumStreamBufferAttrib)    \
  1071.     (This)->lpVtbl -> EnumAttributes(This,ppIEnumStreamBufferAttrib)
  1072.  
  1073. #endif /* COBJMACROS */
  1074.  
  1075.  
  1076. #endif     /* C style interface */
  1077.  
  1078.  
  1079.  
  1080. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_SetAttribute_Proxy( 
  1081.     IStreamBufferRecordingAttribute * This,
  1082.     /* [in] */ ULONG ulReserved,
  1083.     /* [in] */ LPCWSTR pszAttributeName,
  1084.     /* [in] */ STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType,
  1085.     /* [in] */ BYTE *pbAttribute,
  1086.     /* [in] */ WORD cbAttributeLength);
  1087.  
  1088.  
  1089. void __RPC_STUB IStreamBufferRecordingAttribute_SetAttribute_Stub(
  1090.     IRpcStubBuffer *This,
  1091.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1092.     PRPC_MESSAGE _pRpcMessage,
  1093.     DWORD *_pdwStubPhase);
  1094.  
  1095.  
  1096. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_GetAttributeCount_Proxy( 
  1097.     IStreamBufferRecordingAttribute * This,
  1098.     /* [in] */ ULONG ulReserved,
  1099.     /* [out] */ WORD *pcAttributes);
  1100.  
  1101.  
  1102. void __RPC_STUB IStreamBufferRecordingAttribute_GetAttributeCount_Stub(
  1103.     IRpcStubBuffer *This,
  1104.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1105.     PRPC_MESSAGE _pRpcMessage,
  1106.     DWORD *_pdwStubPhase);
  1107.  
  1108.  
  1109. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_GetAttributeByName_Proxy( 
  1110.     IStreamBufferRecordingAttribute * This,
  1111.     /* [in] */ LPCWSTR pszAttributeName,
  1112.     /* [in] */ ULONG *pulReserved,
  1113.     /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  1114.     /* [out] */ BYTE *pbAttribute,
  1115.     /* [out][in] */ WORD *pcbLength);
  1116.  
  1117.  
  1118. void __RPC_STUB IStreamBufferRecordingAttribute_GetAttributeByName_Stub(
  1119.     IRpcStubBuffer *This,
  1120.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1121.     PRPC_MESSAGE _pRpcMessage,
  1122.     DWORD *_pdwStubPhase);
  1123.  
  1124.  
  1125. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_GetAttributeByIndex_Proxy( 
  1126.     IStreamBufferRecordingAttribute * This,
  1127.     /* [in] */ WORD wIndex,
  1128.     /* [in] */ ULONG *pulReserved,
  1129.     /* [out] */ WCHAR *pszAttributeName,
  1130.     /* [out][in] */ WORD *pcchNameLength,
  1131.     /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  1132.     /* [out] */ BYTE *pbAttribute,
  1133.     /* [out][in] */ WORD *pcbLength);
  1134.  
  1135.  
  1136. void __RPC_STUB IStreamBufferRecordingAttribute_GetAttributeByIndex_Stub(
  1137.     IRpcStubBuffer *This,
  1138.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1139.     PRPC_MESSAGE _pRpcMessage,
  1140.     DWORD *_pdwStubPhase);
  1141.  
  1142.  
  1143. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_EnumAttributes_Proxy( 
  1144.     IStreamBufferRecordingAttribute * This,
  1145.     /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  1146.  
  1147.  
  1148. void __RPC_STUB IStreamBufferRecordingAttribute_EnumAttributes_Stub(
  1149.     IRpcStubBuffer *This,
  1150.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1151.     PRPC_MESSAGE _pRpcMessage,
  1152.     DWORD *_pdwStubPhase);
  1153.  
  1154.  
  1155.  
  1156. #endif     /* __IStreamBufferRecordingAttribute_INTERFACE_DEFINED__ */
  1157.  
  1158.  
  1159. /* interface __MIDL_itf_sbe_0413 */
  1160. /* [local] */ 
  1161.  
  1162. typedef /* [public][public] */ struct __MIDL___MIDL_itf_sbe_0413_0001
  1163.     {
  1164.     LPWSTR pszName;
  1165.     STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType;
  1166.     BYTE *pbAttribute;
  1167.     WORD cbLength;
  1168.     }     STREAMBUFFER_ATTRIBUTE;
  1169.  
  1170.  
  1171.  
  1172. extern RPC_IF_HANDLE __MIDL_itf_sbe_0413_v0_0_c_ifspec;
  1173. extern RPC_IF_HANDLE __MIDL_itf_sbe_0413_v0_0_s_ifspec;
  1174.  
  1175. #ifndef __IEnumStreamBufferRecordingAttrib_INTERFACE_DEFINED__
  1176. #define __IEnumStreamBufferRecordingAttrib_INTERFACE_DEFINED__
  1177.  
  1178. /* interface IEnumStreamBufferRecordingAttrib */
  1179. /* [unique][uuid][object] */ 
  1180.  
  1181.  
  1182. EXTERN_C const IID IID_IEnumStreamBufferRecordingAttrib;
  1183.  
  1184. #if defined(__cplusplus) && !defined(CINTERFACE)
  1185.     
  1186.     MIDL_INTERFACE("C18A9162-1E82-4142-8C73-5690FA62FE33")
  1187.     IEnumStreamBufferRecordingAttrib : public IUnknown
  1188.     {
  1189.     public:
  1190.         virtual HRESULT STDMETHODCALLTYPE Next( 
  1191.             /* [in] */ ULONG cRequest,
  1192.             /* [size_is][out][in] */ STREAMBUFFER_ATTRIBUTE *pStreamBufferAttribute,
  1193.             /* [out] */ ULONG *pcReceived) = 0;
  1194.         
  1195.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  1196.             /* [in] */ ULONG cRecords) = 0;
  1197.         
  1198.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1199.         
  1200.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  1201.             /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib) = 0;
  1202.         
  1203.     };
  1204.     
  1205. #else     /* C style interface */
  1206.  
  1207.     typedef struct IEnumStreamBufferRecordingAttribVtbl
  1208.     {
  1209.         BEGIN_INTERFACE
  1210.         
  1211.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1212.             IEnumStreamBufferRecordingAttrib * This,
  1213.             /* [in] */ REFIID riid,
  1214.             /* [iid_is][out] */ void **ppvObject);
  1215.         
  1216.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1217.             IEnumStreamBufferRecordingAttrib * This);
  1218.         
  1219.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1220.             IEnumStreamBufferRecordingAttrib * This);
  1221.         
  1222.         HRESULT ( STDMETHODCALLTYPE *Next )( 
  1223.             IEnumStreamBufferRecordingAttrib * This,
  1224.             /* [in] */ ULONG cRequest,
  1225.             /* [size_is][out][in] */ STREAMBUFFER_ATTRIBUTE *pStreamBufferAttribute,
  1226.             /* [out] */ ULONG *pcReceived);
  1227.         
  1228.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  1229.             IEnumStreamBufferRecordingAttrib * This,
  1230.             /* [in] */ ULONG cRecords);
  1231.         
  1232.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  1233.             IEnumStreamBufferRecordingAttrib * This);
  1234.         
  1235.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  1236.             IEnumStreamBufferRecordingAttrib * This,
  1237.             /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  1238.         
  1239.         END_INTERFACE
  1240.     } IEnumStreamBufferRecordingAttribVtbl;
  1241.  
  1242.     interface IEnumStreamBufferRecordingAttrib
  1243.     {
  1244.         CONST_VTBL struct IEnumStreamBufferRecordingAttribVtbl *lpVtbl;
  1245.     };
  1246.  
  1247.     
  1248.  
  1249. #ifdef COBJMACROS
  1250.  
  1251.  
  1252. #define IEnumStreamBufferRecordingAttrib_QueryInterface(This,riid,ppvObject)    \
  1253.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1254.  
  1255. #define IEnumStreamBufferRecordingAttrib_AddRef(This)    \
  1256.     (This)->lpVtbl -> AddRef(This)
  1257.  
  1258. #define IEnumStreamBufferRecordingAttrib_Release(This)    \
  1259.     (This)->lpVtbl -> Release(This)
  1260.  
  1261.  
  1262. #define IEnumStreamBufferRecordingAttrib_Next(This,cRequest,pStreamBufferAttribute,pcReceived)    \
  1263.     (This)->lpVtbl -> Next(This,cRequest,pStreamBufferAttribute,pcReceived)
  1264.  
  1265. #define IEnumStreamBufferRecordingAttrib_Skip(This,cRecords)    \
  1266.     (This)->lpVtbl -> Skip(This,cRecords)
  1267.  
  1268. #define IEnumStreamBufferRecordingAttrib_Reset(This)    \
  1269.     (This)->lpVtbl -> Reset(This)
  1270.  
  1271. #define IEnumStreamBufferRecordingAttrib_Clone(This,ppIEnumStreamBufferAttrib)    \
  1272.     (This)->lpVtbl -> Clone(This,ppIEnumStreamBufferAttrib)
  1273.  
  1274. #endif /* COBJMACROS */
  1275.  
  1276.  
  1277. #endif     /* C style interface */
  1278.  
  1279.  
  1280.  
  1281. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Next_Proxy( 
  1282.     IEnumStreamBufferRecordingAttrib * This,
  1283.     /* [in] */ ULONG cRequest,
  1284.     /* [size_is][out][in] */ STREAMBUFFER_ATTRIBUTE *pStreamBufferAttribute,
  1285.     /* [out] */ ULONG *pcReceived);
  1286.  
  1287.  
  1288. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Next_Stub(
  1289.     IRpcStubBuffer *This,
  1290.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1291.     PRPC_MESSAGE _pRpcMessage,
  1292.     DWORD *_pdwStubPhase);
  1293.  
  1294.  
  1295. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Skip_Proxy( 
  1296.     IEnumStreamBufferRecordingAttrib * This,
  1297.     /* [in] */ ULONG cRecords);
  1298.  
  1299.  
  1300. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Skip_Stub(
  1301.     IRpcStubBuffer *This,
  1302.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1303.     PRPC_MESSAGE _pRpcMessage,
  1304.     DWORD *_pdwStubPhase);
  1305.  
  1306.  
  1307. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Reset_Proxy( 
  1308.     IEnumStreamBufferRecordingAttrib * This);
  1309.  
  1310.  
  1311. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Reset_Stub(
  1312.     IRpcStubBuffer *This,
  1313.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1314.     PRPC_MESSAGE _pRpcMessage,
  1315.     DWORD *_pdwStubPhase);
  1316.  
  1317.  
  1318. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Clone_Proxy( 
  1319.     IEnumStreamBufferRecordingAttrib * This,
  1320.     /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  1321.  
  1322.  
  1323. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Clone_Stub(
  1324.     IRpcStubBuffer *This,
  1325.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1326.     PRPC_MESSAGE _pRpcMessage,
  1327.     DWORD *_pdwStubPhase);
  1328.  
  1329.  
  1330.  
  1331. #endif     /* __IEnumStreamBufferRecordingAttrib_INTERFACE_DEFINED__ */
  1332.  
  1333.  
  1334. #ifndef __IStreamBufferConfigure_INTERFACE_DEFINED__
  1335. #define __IStreamBufferConfigure_INTERFACE_DEFINED__
  1336.  
  1337. /* interface IStreamBufferConfigure */
  1338. /* [unique][uuid][object] */ 
  1339.  
  1340.  
  1341. EXTERN_C const IID IID_IStreamBufferConfigure;
  1342.  
  1343. #if defined(__cplusplus) && !defined(CINTERFACE)
  1344.     
  1345.     MIDL_INTERFACE("ce14dfae-4098-4af7-bbf7-d6511f835414")
  1346.     IStreamBufferConfigure : public IUnknown
  1347.     {
  1348.     public:
  1349.         virtual HRESULT STDMETHODCALLTYPE SetDirectory( 
  1350.             /* [in] */ LPCWSTR pszDirectoryName) = 0;
  1351.         
  1352.         virtual HRESULT STDMETHODCALLTYPE GetDirectory( 
  1353.             /* [out] */ LPWSTR *ppszDirectoryName) = 0;
  1354.         
  1355.         virtual HRESULT STDMETHODCALLTYPE SetBackingFileCount( 
  1356.             /* [in] */ DWORD dwMin,
  1357.             /* [in] */ DWORD dwMax) = 0;
  1358.         
  1359.         virtual HRESULT STDMETHODCALLTYPE GetBackingFileCount( 
  1360.             /* [out] */ DWORD *pdwMin,
  1361.             /* [out] */ DWORD *pdwMax) = 0;
  1362.         
  1363.         virtual HRESULT STDMETHODCALLTYPE SetBackingFileDuration( 
  1364.             /* [in] */ DWORD dwSeconds) = 0;
  1365.         
  1366.         virtual HRESULT STDMETHODCALLTYPE GetBackingFileDuration( 
  1367.             /* [out] */ DWORD *pdwSeconds) = 0;
  1368.         
  1369.     };
  1370.     
  1371. #else     /* C style interface */
  1372.  
  1373.     typedef struct IStreamBufferConfigureVtbl
  1374.     {
  1375.         BEGIN_INTERFACE
  1376.         
  1377.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1378.             IStreamBufferConfigure * This,
  1379.             /* [in] */ REFIID riid,
  1380.             /* [iid_is][out] */ void **ppvObject);
  1381.         
  1382.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1383.             IStreamBufferConfigure * This);
  1384.         
  1385.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1386.             IStreamBufferConfigure * This);
  1387.         
  1388.         HRESULT ( STDMETHODCALLTYPE *SetDirectory )( 
  1389.             IStreamBufferConfigure * This,
  1390.             /* [in] */ LPCWSTR pszDirectoryName);
  1391.         
  1392.         HRESULT ( STDMETHODCALLTYPE *GetDirectory )( 
  1393.             IStreamBufferConfigure * This,
  1394.             /* [out] */ LPWSTR *ppszDirectoryName);
  1395.         
  1396.         HRESULT ( STDMETHODCALLTYPE *SetBackingFileCount )( 
  1397.             IStreamBufferConfigure * This,
  1398.             /* [in] */ DWORD dwMin,
  1399.             /* [in] */ DWORD dwMax);
  1400.         
  1401.         HRESULT ( STDMETHODCALLTYPE *GetBackingFileCount )( 
  1402.             IStreamBufferConfigure * This,
  1403.             /* [out] */ DWORD *pdwMin,
  1404.             /* [out] */ DWORD *pdwMax);
  1405.         
  1406.         HRESULT ( STDMETHODCALLTYPE *SetBackingFileDuration )( 
  1407.             IStreamBufferConfigure * This,
  1408.             /* [in] */ DWORD dwSeconds);
  1409.         
  1410.         HRESULT ( STDMETHODCALLTYPE *GetBackingFileDuration )( 
  1411.             IStreamBufferConfigure * This,
  1412.             /* [out] */ DWORD *pdwSeconds);
  1413.         
  1414.         END_INTERFACE
  1415.     } IStreamBufferConfigureVtbl;
  1416.  
  1417.     interface IStreamBufferConfigure
  1418.     {
  1419.         CONST_VTBL struct IStreamBufferConfigureVtbl *lpVtbl;
  1420.     };
  1421.  
  1422.     
  1423.  
  1424. #ifdef COBJMACROS
  1425.  
  1426.  
  1427. #define IStreamBufferConfigure_QueryInterface(This,riid,ppvObject)    \
  1428.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1429.  
  1430. #define IStreamBufferConfigure_AddRef(This)    \
  1431.     (This)->lpVtbl -> AddRef(This)
  1432.  
  1433. #define IStreamBufferConfigure_Release(This)    \
  1434.     (This)->lpVtbl -> Release(This)
  1435.  
  1436.  
  1437. #define IStreamBufferConfigure_SetDirectory(This,pszDirectoryName)    \
  1438.     (This)->lpVtbl -> SetDirectory(This,pszDirectoryName)
  1439.  
  1440. #define IStreamBufferConfigure_GetDirectory(This,ppszDirectoryName)    \
  1441.     (This)->lpVtbl -> GetDirectory(This,ppszDirectoryName)
  1442.  
  1443. #define IStreamBufferConfigure_SetBackingFileCount(This,dwMin,dwMax)    \
  1444.     (This)->lpVtbl -> SetBackingFileCount(This,dwMin,dwMax)
  1445.  
  1446. #define IStreamBufferConfigure_GetBackingFileCount(This,pdwMin,pdwMax)    \
  1447.     (This)->lpVtbl -> GetBackingFileCount(This,pdwMin,pdwMax)
  1448.  
  1449. #define IStreamBufferConfigure_SetBackingFileDuration(This,dwSeconds)    \
  1450.     (This)->lpVtbl -> SetBackingFileDuration(This,dwSeconds)
  1451.  
  1452. #define IStreamBufferConfigure_GetBackingFileDuration(This,pdwSeconds)    \
  1453.     (This)->lpVtbl -> GetBackingFileDuration(This,pdwSeconds)
  1454.  
  1455. #endif /* COBJMACROS */
  1456.  
  1457.  
  1458. #endif     /* C style interface */
  1459.  
  1460.  
  1461.  
  1462. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_SetDirectory_Proxy( 
  1463.     IStreamBufferConfigure * This,
  1464.     /* [in] */ LPCWSTR pszDirectoryName);
  1465.  
  1466.  
  1467. void __RPC_STUB IStreamBufferConfigure_SetDirectory_Stub(
  1468.     IRpcStubBuffer *This,
  1469.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1470.     PRPC_MESSAGE _pRpcMessage,
  1471.     DWORD *_pdwStubPhase);
  1472.  
  1473.  
  1474. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_GetDirectory_Proxy( 
  1475.     IStreamBufferConfigure * This,
  1476.     /* [out] */ LPWSTR *ppszDirectoryName);
  1477.  
  1478.  
  1479. void __RPC_STUB IStreamBufferConfigure_GetDirectory_Stub(
  1480.     IRpcStubBuffer *This,
  1481.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1482.     PRPC_MESSAGE _pRpcMessage,
  1483.     DWORD *_pdwStubPhase);
  1484.  
  1485.  
  1486. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_SetBackingFileCount_Proxy( 
  1487.     IStreamBufferConfigure * This,
  1488.     /* [in] */ DWORD dwMin,
  1489.     /* [in] */ DWORD dwMax);
  1490.  
  1491.  
  1492. void __RPC_STUB IStreamBufferConfigure_SetBackingFileCount_Stub(
  1493.     IRpcStubBuffer *This,
  1494.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1495.     PRPC_MESSAGE _pRpcMessage,
  1496.     DWORD *_pdwStubPhase);
  1497.  
  1498.  
  1499. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_GetBackingFileCount_Proxy( 
  1500.     IStreamBufferConfigure * This,
  1501.     /* [out] */ DWORD *pdwMin,
  1502.     /* [out] */ DWORD *pdwMax);
  1503.  
  1504.  
  1505. void __RPC_STUB IStreamBufferConfigure_GetBackingFileCount_Stub(
  1506.     IRpcStubBuffer *This,
  1507.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1508.     PRPC_MESSAGE _pRpcMessage,
  1509.     DWORD *_pdwStubPhase);
  1510.  
  1511.  
  1512. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_SetBackingFileDuration_Proxy( 
  1513.     IStreamBufferConfigure * This,
  1514.     /* [in] */ DWORD dwSeconds);
  1515.  
  1516.  
  1517. void __RPC_STUB IStreamBufferConfigure_SetBackingFileDuration_Stub(
  1518.     IRpcStubBuffer *This,
  1519.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1520.     PRPC_MESSAGE _pRpcMessage,
  1521.     DWORD *_pdwStubPhase);
  1522.  
  1523.  
  1524. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_GetBackingFileDuration_Proxy( 
  1525.     IStreamBufferConfigure * This,
  1526.     /* [out] */ DWORD *pdwSeconds);
  1527.  
  1528.  
  1529. void __RPC_STUB IStreamBufferConfigure_GetBackingFileDuration_Stub(
  1530.     IRpcStubBuffer *This,
  1531.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1532.     PRPC_MESSAGE _pRpcMessage,
  1533.     DWORD *_pdwStubPhase);
  1534.  
  1535.  
  1536.  
  1537. #endif     /* __IStreamBufferConfigure_INTERFACE_DEFINED__ */
  1538.  
  1539.  
  1540. #ifndef __IStreamBufferMediaSeeking_INTERFACE_DEFINED__
  1541. #define __IStreamBufferMediaSeeking_INTERFACE_DEFINED__
  1542.  
  1543. /* interface IStreamBufferMediaSeeking */
  1544. /* [unique][uuid][object] */ 
  1545.  
  1546.  
  1547. EXTERN_C const IID IID_IStreamBufferMediaSeeking;
  1548.  
  1549. #if defined(__cplusplus) && !defined(CINTERFACE)
  1550.     
  1551.     MIDL_INTERFACE("f61f5c26-863d-4afa-b0ba-2f81dc978596")
  1552.     IStreamBufferMediaSeeking : public IMediaSeeking
  1553.     {
  1554.     public:
  1555.     };
  1556.     
  1557. #else     /* C style interface */
  1558.  
  1559.     typedef struct IStreamBufferMediaSeekingVtbl
  1560.     {
  1561.         BEGIN_INTERFACE
  1562.         
  1563.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1564.             IStreamBufferMediaSeeking * This,
  1565.             /* [in] */ REFIID riid,
  1566.             /* [iid_is][out] */ void **ppvObject);
  1567.         
  1568.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1569.             IStreamBufferMediaSeeking * This);
  1570.         
  1571.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1572.             IStreamBufferMediaSeeking * This);
  1573.         
  1574.         HRESULT ( STDMETHODCALLTYPE *GetCapabilities )( 
  1575.             IStreamBufferMediaSeeking * This,
  1576.             /* [out] */ DWORD *pCapabilities);
  1577.         
  1578.         HRESULT ( STDMETHODCALLTYPE *CheckCapabilities )( 
  1579.             IStreamBufferMediaSeeking * This,
  1580.             /* [out][in] */ DWORD *pCapabilities);
  1581.         
  1582.         HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )( 
  1583.             IStreamBufferMediaSeeking * This,
  1584.             /* [in] */ const GUID *pFormat);
  1585.         
  1586.         HRESULT ( STDMETHODCALLTYPE *QueryPreferredFormat )( 
  1587.             IStreamBufferMediaSeeking * This,
  1588.             /* [out] */ GUID *pFormat);
  1589.         
  1590.         HRESULT ( STDMETHODCALLTYPE *GetTimeFormat )( 
  1591.             IStreamBufferMediaSeeking * This,
  1592.             /* [out] */ GUID *pFormat);
  1593.         
  1594.         HRESULT ( STDMETHODCALLTYPE *IsUsingTimeFormat )( 
  1595.             IStreamBufferMediaSeeking * This,
  1596.             /* [in] */ const GUID *pFormat);
  1597.         
  1598.         HRESULT ( STDMETHODCALLTYPE *SetTimeFormat )( 
  1599.             IStreamBufferMediaSeeking * This,
  1600.             /* [in] */ const GUID *pFormat);
  1601.         
  1602.         HRESULT ( STDMETHODCALLTYPE *GetDuration )( 
  1603.             IStreamBufferMediaSeeking * This,
  1604.             /* [out] */ LONGLONG *pDuration);
  1605.         
  1606.         HRESULT ( STDMETHODCALLTYPE *GetStopPosition )( 
  1607.             IStreamBufferMediaSeeking * This,
  1608.             /* [out] */ LONGLONG *pStop);
  1609.         
  1610.         HRESULT ( STDMETHODCALLTYPE *GetCurrentPosition )( 
  1611.             IStreamBufferMediaSeeking * This,
  1612.             /* [out] */ LONGLONG *pCurrent);
  1613.         
  1614.         HRESULT ( STDMETHODCALLTYPE *ConvertTimeFormat )( 
  1615.             IStreamBufferMediaSeeking * This,
  1616.             /* [out] */ LONGLONG *pTarget,
  1617.             /* [in] */ const GUID *pTargetFormat,
  1618.             /* [in] */ LONGLONG Source,
  1619.             /* [in] */ const GUID *pSourceFormat);
  1620.         
  1621.         HRESULT ( STDMETHODCALLTYPE *SetPositions )( 
  1622.             IStreamBufferMediaSeeking * This,
  1623.             /* [out][in] */ LONGLONG *pCurrent,
  1624.             /* [in] */ DWORD dwCurrentFlags,
  1625.             /* [out][in] */ LONGLONG *pStop,
  1626.             /* [in] */ DWORD dwStopFlags);
  1627.         
  1628.         HRESULT ( STDMETHODCALLTYPE *GetPositions )( 
  1629.             IStreamBufferMediaSeeking * This,
  1630.             /* [out] */ LONGLONG *pCurrent,
  1631.             /* [out] */ LONGLONG *pStop);
  1632.         
  1633.         HRESULT ( STDMETHODCALLTYPE *GetAvailable )( 
  1634.             IStreamBufferMediaSeeking * This,
  1635.             /* [out] */ LONGLONG *pEarliest,
  1636.             /* [out] */ LONGLONG *pLatest);
  1637.         
  1638.         HRESULT ( STDMETHODCALLTYPE *SetRate )( 
  1639.             IStreamBufferMediaSeeking * This,
  1640.             /* [in] */ double dRate);
  1641.         
  1642.         HRESULT ( STDMETHODCALLTYPE *GetRate )( 
  1643.             IStreamBufferMediaSeeking * This,
  1644.             /* [out] */ double *pdRate);
  1645.         
  1646.         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( 
  1647.             IStreamBufferMediaSeeking * This,
  1648.             /* [out] */ LONGLONG *pllPreroll);
  1649.         
  1650.         END_INTERFACE
  1651.     } IStreamBufferMediaSeekingVtbl;
  1652.  
  1653.     interface IStreamBufferMediaSeeking
  1654.     {
  1655.         CONST_VTBL struct IStreamBufferMediaSeekingVtbl *lpVtbl;
  1656.     };
  1657.  
  1658.     
  1659.  
  1660. #ifdef COBJMACROS
  1661.  
  1662.  
  1663. #define IStreamBufferMediaSeeking_QueryInterface(This,riid,ppvObject)    \
  1664.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1665.  
  1666. #define IStreamBufferMediaSeeking_AddRef(This)    \
  1667.     (This)->lpVtbl -> AddRef(This)
  1668.  
  1669. #define IStreamBufferMediaSeeking_Release(This)    \
  1670.     (This)->lpVtbl -> Release(This)
  1671.  
  1672.  
  1673. #define IStreamBufferMediaSeeking_GetCapabilities(This,pCapabilities)    \
  1674.     (This)->lpVtbl -> GetCapabilities(This,pCapabilities)
  1675.  
  1676. #define IStreamBufferMediaSeeking_CheckCapabilities(This,pCapabilities)    \
  1677.     (This)->lpVtbl -> CheckCapabilities(This,pCapabilities)
  1678.  
  1679. #define IStreamBufferMediaSeeking_IsFormatSupported(This,pFormat)    \
  1680.     (This)->lpVtbl -> IsFormatSupported(This,pFormat)
  1681.  
  1682. #define IStreamBufferMediaSeeking_QueryPreferredFormat(This,pFormat)    \
  1683.     (This)->lpVtbl -> QueryPreferredFormat(This,pFormat)
  1684.  
  1685. #define IStreamBufferMediaSeeking_GetTimeFormat(This,pFormat)    \
  1686.     (This)->lpVtbl -> GetTimeFormat(This,pFormat)
  1687.  
  1688. #define IStreamBufferMediaSeeking_IsUsingTimeFormat(This,pFormat)    \
  1689.     (This)->lpVtbl -> IsUsingTimeFormat(This,pFormat)
  1690.  
  1691. #define IStreamBufferMediaSeeking_SetTimeFormat(This,pFormat)    \
  1692.     (This)->lpVtbl -> SetTimeFormat(This,pFormat)
  1693.  
  1694. #define IStreamBufferMediaSeeking_GetDuration(This,pDuration)    \
  1695.     (This)->lpVtbl -> GetDuration(This,pDuration)
  1696.  
  1697. #define IStreamBufferMediaSeeking_GetStopPosition(This,pStop)    \
  1698.     (This)->lpVtbl -> GetStopPosition(This,pStop)
  1699.  
  1700. #define IStreamBufferMediaSeeking_GetCurrentPosition(This,pCurrent)    \
  1701.     (This)->lpVtbl -> GetCurrentPosition(This,pCurrent)
  1702.  
  1703. #define IStreamBufferMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)    \
  1704.     (This)->lpVtbl -> ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
  1705.  
  1706. #define IStreamBufferMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)    \
  1707.     (This)->lpVtbl -> SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
  1708.  
  1709. #define IStreamBufferMediaSeeking_GetPositions(This,pCurrent,pStop)    \
  1710.     (This)->lpVtbl -> GetPositions(This,pCurrent,pStop)
  1711.  
  1712. #define IStreamBufferMediaSeeking_GetAvailable(This,pEarliest,pLatest)    \
  1713.     (This)->lpVtbl -> GetAvailable(This,pEarliest,pLatest)
  1714.  
  1715. #define IStreamBufferMediaSeeking_SetRate(This,dRate)    \
  1716.     (This)->lpVtbl -> SetRate(This,dRate)
  1717.  
  1718. #define IStreamBufferMediaSeeking_GetRate(This,pdRate)    \
  1719.     (This)->lpVtbl -> GetRate(This,pdRate)
  1720.  
  1721. #define IStreamBufferMediaSeeking_GetPreroll(This,pllPreroll)    \
  1722.     (This)->lpVtbl -> GetPreroll(This,pllPreroll)
  1723.  
  1724.  
  1725. #endif /* COBJMACROS */
  1726.  
  1727.  
  1728. #endif     /* C style interface */
  1729.  
  1730.  
  1731.  
  1732.  
  1733. #endif     /* __IStreamBufferMediaSeeking_INTERFACE_DEFINED__ */
  1734.  
  1735.  
  1736. /* interface __MIDL_itf_sbe_0416 */
  1737. /* [local] */ 
  1738.  
  1739. #define STREAMBUFFER_EC_BASE                     0x0326
  1740. enum {
  1741.     //  timehole event
  1742.     //      param1 = timehole stream offset ms
  1743.     //      param1 = timehole size ms
  1744.     STREAMBUFFER_EC_TIMEHOLE = STREAMBUFFER_EC_BASE,
  1745.     
  1746.     STREAMBUFFER_EC_STALE_DATA_READ,
  1747.     
  1748.     STREAMBUFFER_EC_STALE_FILE_DELETED,
  1749.     STREAMBUFFER_EC_CONTENT_BECOMING_STALE,
  1750.     STREAMBUFFER_EC_WRITE_FAILURE,
  1751.     //
  1752.     //  unexpected read failure
  1753.     //      param1 = HRESULT failure
  1754.     //      param2 = undefined
  1755.     STREAMBUFFER_EC_READ_FAILURE,
  1756.     //
  1757.     //  playback rate change
  1758.     //      param1 = old_playback_rate * 10000 e.g. 2x is 20000
  1759.     //      param2 = new_playback_rate * 10000
  1760.     STREAMBUFFER_EC_RATE_CHANGED,
  1761. } ;
  1762.  
  1763.  
  1764. extern RPC_IF_HANDLE __MIDL_itf_sbe_0416_v0_0_c_ifspec;
  1765. extern RPC_IF_HANDLE __MIDL_itf_sbe_0416_v0_0_s_ifspec;
  1766.  
  1767. /* Additional Prototypes for ALL interfaces */
  1768.  
  1769. /* end of Additional Prototypes */
  1770.  
  1771. #ifdef __cplusplus
  1772. }
  1773. #endif
  1774.  
  1775. #endif
  1776.  
  1777.  
  1778.