Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1787 lines
57 KiB

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 6.00.0361 */
  3. /* Compiler settings for sbe.idl:
  4. Oicf, W1, Zp8, env=Win32 (32b run)
  5. protocol : dce , ms_ext, c_ext, robust
  6. error checks: allocation ref bounds_check enum stub_data
  7. VC __declspec() decoration level:
  8. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  9. DECLSPEC_UUID(), MIDL_INTERFACE()
  10. */
  11. //@@MIDL_FILE_HEADING( )
  12. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __sbe_h__
  27. #define __sbe_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */
  32. #ifndef __IStreamBufferInitialize_FWD_DEFINED__
  33. #define __IStreamBufferInitialize_FWD_DEFINED__
  34. typedef interface IStreamBufferInitialize IStreamBufferInitialize;
  35. #endif /* __IStreamBufferInitialize_FWD_DEFINED__ */
  36. #ifndef __IStreamBufferSink_FWD_DEFINED__
  37. #define __IStreamBufferSink_FWD_DEFINED__
  38. typedef interface IStreamBufferSink IStreamBufferSink;
  39. #endif /* __IStreamBufferSink_FWD_DEFINED__ */
  40. #ifndef __IStreamBufferSource_FWD_DEFINED__
  41. #define __IStreamBufferSource_FWD_DEFINED__
  42. typedef interface IStreamBufferSource IStreamBufferSource;
  43. #endif /* __IStreamBufferSource_FWD_DEFINED__ */
  44. #ifndef __IStreamBufferRecordControl_FWD_DEFINED__
  45. #define __IStreamBufferRecordControl_FWD_DEFINED__
  46. typedef interface IStreamBufferRecordControl IStreamBufferRecordControl;
  47. #endif /* __IStreamBufferRecordControl_FWD_DEFINED__ */
  48. #ifndef __IStreamBufferRecComp_FWD_DEFINED__
  49. #define __IStreamBufferRecComp_FWD_DEFINED__
  50. typedef interface IStreamBufferRecComp IStreamBufferRecComp;
  51. #endif /* __IStreamBufferRecComp_FWD_DEFINED__ */
  52. #ifndef __IStreamBufferRecordingAttribute_FWD_DEFINED__
  53. #define __IStreamBufferRecordingAttribute_FWD_DEFINED__
  54. typedef interface IStreamBufferRecordingAttribute IStreamBufferRecordingAttribute;
  55. #endif /* __IStreamBufferRecordingAttribute_FWD_DEFINED__ */
  56. #ifndef __IEnumStreamBufferRecordingAttrib_FWD_DEFINED__
  57. #define __IEnumStreamBufferRecordingAttrib_FWD_DEFINED__
  58. typedef interface IEnumStreamBufferRecordingAttrib IEnumStreamBufferRecordingAttrib;
  59. #endif /* __IEnumStreamBufferRecordingAttrib_FWD_DEFINED__ */
  60. #ifndef __IStreamBufferConfigure_FWD_DEFINED__
  61. #define __IStreamBufferConfigure_FWD_DEFINED__
  62. typedef interface IStreamBufferConfigure IStreamBufferConfigure;
  63. #endif /* __IStreamBufferConfigure_FWD_DEFINED__ */
  64. #ifndef __IStreamBufferMediaSeeking_FWD_DEFINED__
  65. #define __IStreamBufferMediaSeeking_FWD_DEFINED__
  66. typedef interface IStreamBufferMediaSeeking IStreamBufferMediaSeeking;
  67. #endif /* __IStreamBufferMediaSeeking_FWD_DEFINED__ */
  68. /* header files for imported files */
  69. #include "unknwn.h"
  70. #include "objidl.h"
  71. #include "strmif.h"
  72. #ifdef __cplusplus
  73. extern "C"{
  74. #endif
  75. void * __RPC_USER MIDL_user_allocate(size_t);
  76. void __RPC_USER MIDL_user_free( void * );
  77. /* interface __MIDL_itf_sbe_0000 */
  78. /* [local] */
  79. extern RPC_IF_HANDLE __MIDL_itf_sbe_0000_v0_0_c_ifspec;
  80. extern RPC_IF_HANDLE __MIDL_itf_sbe_0000_v0_0_s_ifspec;
  81. #ifndef __IStreamBufferInitialize_INTERFACE_DEFINED__
  82. #define __IStreamBufferInitialize_INTERFACE_DEFINED__
  83. /* interface IStreamBufferInitialize */
  84. /* [local][unique][uuid][object] */
  85. EXTERN_C const IID IID_IStreamBufferInitialize;
  86. #if defined(__cplusplus) && !defined(CINTERFACE)
  87. MIDL_INTERFACE("9ce50f2d-6ba7-40fb-a034-50b1a674ec78")
  88. IStreamBufferInitialize : public IUnknown
  89. {
  90. public:
  91. virtual HRESULT STDMETHODCALLTYPE SetHKEY(
  92. /* [in] */ HKEY hkeyRoot) = 0;
  93. virtual HRESULT STDMETHODCALLTYPE SetSIDs(
  94. /* [in] */ DWORD cSIDs,
  95. /* [size_is][in] */ PSID *ppSID) = 0;
  96. };
  97. #else /* C style interface */
  98. typedef struct IStreamBufferInitializeVtbl
  99. {
  100. BEGIN_INTERFACE
  101. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  102. IStreamBufferInitialize * This,
  103. /* [in] */ REFIID riid,
  104. /* [iid_is][out] */ void **ppvObject);
  105. ULONG ( STDMETHODCALLTYPE *AddRef )(
  106. IStreamBufferInitialize * This);
  107. ULONG ( STDMETHODCALLTYPE *Release )(
  108. IStreamBufferInitialize * This);
  109. HRESULT ( STDMETHODCALLTYPE *SetHKEY )(
  110. IStreamBufferInitialize * This,
  111. /* [in] */ HKEY hkeyRoot);
  112. HRESULT ( STDMETHODCALLTYPE *SetSIDs )(
  113. IStreamBufferInitialize * This,
  114. /* [in] */ DWORD cSIDs,
  115. /* [size_is][in] */ PSID *ppSID);
  116. END_INTERFACE
  117. } IStreamBufferInitializeVtbl;
  118. interface IStreamBufferInitialize
  119. {
  120. CONST_VTBL struct IStreamBufferInitializeVtbl *lpVtbl;
  121. };
  122. #ifdef COBJMACROS
  123. #define IStreamBufferInitialize_QueryInterface(This,riid,ppvObject) \
  124. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  125. #define IStreamBufferInitialize_AddRef(This) \
  126. (This)->lpVtbl -> AddRef(This)
  127. #define IStreamBufferInitialize_Release(This) \
  128. (This)->lpVtbl -> Release(This)
  129. #define IStreamBufferInitialize_SetHKEY(This,hkeyRoot) \
  130. (This)->lpVtbl -> SetHKEY(This,hkeyRoot)
  131. #define IStreamBufferInitialize_SetSIDs(This,cSIDs,ppSID) \
  132. (This)->lpVtbl -> SetSIDs(This,cSIDs,ppSID)
  133. #endif /* COBJMACROS */
  134. #endif /* C style interface */
  135. HRESULT STDMETHODCALLTYPE IStreamBufferInitialize_SetHKEY_Proxy(
  136. IStreamBufferInitialize * This,
  137. /* [in] */ HKEY hkeyRoot);
  138. void __RPC_STUB IStreamBufferInitialize_SetHKEY_Stub(
  139. IRpcStubBuffer *This,
  140. IRpcChannelBuffer *_pRpcChannelBuffer,
  141. PRPC_MESSAGE _pRpcMessage,
  142. DWORD *_pdwStubPhase);
  143. HRESULT STDMETHODCALLTYPE IStreamBufferInitialize_SetSIDs_Proxy(
  144. IStreamBufferInitialize * This,
  145. /* [in] */ DWORD cSIDs,
  146. /* [size_is][in] */ PSID *ppSID);
  147. void __RPC_STUB IStreamBufferInitialize_SetSIDs_Stub(
  148. IRpcStubBuffer *This,
  149. IRpcChannelBuffer *_pRpcChannelBuffer,
  150. PRPC_MESSAGE _pRpcMessage,
  151. DWORD *_pdwStubPhase);
  152. #endif /* __IStreamBufferInitialize_INTERFACE_DEFINED__ */
  153. /* interface __MIDL_itf_sbe_0411 */
  154. /* [local] */
  155. enum __MIDL___MIDL_itf_sbe_0411_0001
  156. { RECORDING_TYPE_CONTENT = 0,
  157. RECORDING_TYPE_REFERENCE = RECORDING_TYPE_CONTENT + 1
  158. } ;
  159. extern RPC_IF_HANDLE __MIDL_itf_sbe_0411_v0_0_c_ifspec;
  160. extern RPC_IF_HANDLE __MIDL_itf_sbe_0411_v0_0_s_ifspec;
  161. #ifndef __IStreamBufferSink_INTERFACE_DEFINED__
  162. #define __IStreamBufferSink_INTERFACE_DEFINED__
  163. /* interface IStreamBufferSink */
  164. /* [unique][uuid][object] */
  165. EXTERN_C const IID IID_IStreamBufferSink;
  166. #if defined(__cplusplus) && !defined(CINTERFACE)
  167. MIDL_INTERFACE("afd1f242-7efd-45ee-ba4e-407a25c9a77a")
  168. IStreamBufferSink : public IUnknown
  169. {
  170. public:
  171. virtual HRESULT STDMETHODCALLTYPE LockProfile(
  172. /* [in] */ LPCWSTR pszStreamBufferFilename) = 0;
  173. virtual HRESULT STDMETHODCALLTYPE CreateRecorder(
  174. /* [in] */ LPCWSTR pszFilename,
  175. /* [in] */ DWORD dwRecordType,
  176. /* [out] */ IUnknown **pRecordingIUnknown) = 0;
  177. virtual HRESULT STDMETHODCALLTYPE IsProfileLocked( void) = 0;
  178. };
  179. #else /* C style interface */
  180. typedef struct IStreamBufferSinkVtbl
  181. {
  182. BEGIN_INTERFACE
  183. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  184. IStreamBufferSink * This,
  185. /* [in] */ REFIID riid,
  186. /* [iid_is][out] */ void **ppvObject);
  187. ULONG ( STDMETHODCALLTYPE *AddRef )(
  188. IStreamBufferSink * This);
  189. ULONG ( STDMETHODCALLTYPE *Release )(
  190. IStreamBufferSink * This);
  191. HRESULT ( STDMETHODCALLTYPE *LockProfile )(
  192. IStreamBufferSink * This,
  193. /* [in] */ LPCWSTR pszStreamBufferFilename);
  194. HRESULT ( STDMETHODCALLTYPE *CreateRecorder )(
  195. IStreamBufferSink * This,
  196. /* [in] */ LPCWSTR pszFilename,
  197. /* [in] */ DWORD dwRecordType,
  198. /* [out] */ IUnknown **pRecordingIUnknown);
  199. HRESULT ( STDMETHODCALLTYPE *IsProfileLocked )(
  200. IStreamBufferSink * This);
  201. END_INTERFACE
  202. } IStreamBufferSinkVtbl;
  203. interface IStreamBufferSink
  204. {
  205. CONST_VTBL struct IStreamBufferSinkVtbl *lpVtbl;
  206. };
  207. #ifdef COBJMACROS
  208. #define IStreamBufferSink_QueryInterface(This,riid,ppvObject) \
  209. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  210. #define IStreamBufferSink_AddRef(This) \
  211. (This)->lpVtbl -> AddRef(This)
  212. #define IStreamBufferSink_Release(This) \
  213. (This)->lpVtbl -> Release(This)
  214. #define IStreamBufferSink_LockProfile(This,pszStreamBufferFilename) \
  215. (This)->lpVtbl -> LockProfile(This,pszStreamBufferFilename)
  216. #define IStreamBufferSink_CreateRecorder(This,pszFilename,dwRecordType,pRecordingIUnknown) \
  217. (This)->lpVtbl -> CreateRecorder(This,pszFilename,dwRecordType,pRecordingIUnknown)
  218. #define IStreamBufferSink_IsProfileLocked(This) \
  219. (This)->lpVtbl -> IsProfileLocked(This)
  220. #endif /* COBJMACROS */
  221. #endif /* C style interface */
  222. HRESULT STDMETHODCALLTYPE IStreamBufferSink_LockProfile_Proxy(
  223. IStreamBufferSink * This,
  224. /* [in] */ LPCWSTR pszStreamBufferFilename);
  225. void __RPC_STUB IStreamBufferSink_LockProfile_Stub(
  226. IRpcStubBuffer *This,
  227. IRpcChannelBuffer *_pRpcChannelBuffer,
  228. PRPC_MESSAGE _pRpcMessage,
  229. DWORD *_pdwStubPhase);
  230. HRESULT STDMETHODCALLTYPE IStreamBufferSink_CreateRecorder_Proxy(
  231. IStreamBufferSink * This,
  232. /* [in] */ LPCWSTR pszFilename,
  233. /* [in] */ DWORD dwRecordType,
  234. /* [out] */ IUnknown **pRecordingIUnknown);
  235. void __RPC_STUB IStreamBufferSink_CreateRecorder_Stub(
  236. IRpcStubBuffer *This,
  237. IRpcChannelBuffer *_pRpcChannelBuffer,
  238. PRPC_MESSAGE _pRpcMessage,
  239. DWORD *_pdwStubPhase);
  240. HRESULT STDMETHODCALLTYPE IStreamBufferSink_IsProfileLocked_Proxy(
  241. IStreamBufferSink * This);
  242. void __RPC_STUB IStreamBufferSink_IsProfileLocked_Stub(
  243. IRpcStubBuffer *This,
  244. IRpcChannelBuffer *_pRpcChannelBuffer,
  245. PRPC_MESSAGE _pRpcMessage,
  246. DWORD *_pdwStubPhase);
  247. #endif /* __IStreamBufferSink_INTERFACE_DEFINED__ */
  248. #ifndef __IStreamBufferSource_INTERFACE_DEFINED__
  249. #define __IStreamBufferSource_INTERFACE_DEFINED__
  250. /* interface IStreamBufferSource */
  251. /* [unique][uuid][object] */
  252. EXTERN_C const IID IID_IStreamBufferSource;
  253. #if defined(__cplusplus) && !defined(CINTERFACE)
  254. MIDL_INTERFACE("1c5bd776-6ced-4f44-8164-5eab0e98db12")
  255. IStreamBufferSource : public IUnknown
  256. {
  257. public:
  258. virtual HRESULT STDMETHODCALLTYPE SetStreamSink(
  259. /* [in] */ IStreamBufferSink *pIStreamBufferSink) = 0;
  260. };
  261. #else /* C style interface */
  262. typedef struct IStreamBufferSourceVtbl
  263. {
  264. BEGIN_INTERFACE
  265. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  266. IStreamBufferSource * This,
  267. /* [in] */ REFIID riid,
  268. /* [iid_is][out] */ void **ppvObject);
  269. ULONG ( STDMETHODCALLTYPE *AddRef )(
  270. IStreamBufferSource * This);
  271. ULONG ( STDMETHODCALLTYPE *Release )(
  272. IStreamBufferSource * This);
  273. HRESULT ( STDMETHODCALLTYPE *SetStreamSink )(
  274. IStreamBufferSource * This,
  275. /* [in] */ IStreamBufferSink *pIStreamBufferSink);
  276. END_INTERFACE
  277. } IStreamBufferSourceVtbl;
  278. interface IStreamBufferSource
  279. {
  280. CONST_VTBL struct IStreamBufferSourceVtbl *lpVtbl;
  281. };
  282. #ifdef COBJMACROS
  283. #define IStreamBufferSource_QueryInterface(This,riid,ppvObject) \
  284. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  285. #define IStreamBufferSource_AddRef(This) \
  286. (This)->lpVtbl -> AddRef(This)
  287. #define IStreamBufferSource_Release(This) \
  288. (This)->lpVtbl -> Release(This)
  289. #define IStreamBufferSource_SetStreamSink(This,pIStreamBufferSink) \
  290. (This)->lpVtbl -> SetStreamSink(This,pIStreamBufferSink)
  291. #endif /* COBJMACROS */
  292. #endif /* C style interface */
  293. HRESULT STDMETHODCALLTYPE IStreamBufferSource_SetStreamSink_Proxy(
  294. IStreamBufferSource * This,
  295. /* [in] */ IStreamBufferSink *pIStreamBufferSink);
  296. void __RPC_STUB IStreamBufferSource_SetStreamSink_Stub(
  297. IRpcStubBuffer *This,
  298. IRpcChannelBuffer *_pRpcChannelBuffer,
  299. PRPC_MESSAGE _pRpcMessage,
  300. DWORD *_pdwStubPhase);
  301. #endif /* __IStreamBufferSource_INTERFACE_DEFINED__ */
  302. #ifndef __IStreamBufferRecordControl_INTERFACE_DEFINED__
  303. #define __IStreamBufferRecordControl_INTERFACE_DEFINED__
  304. /* interface IStreamBufferRecordControl */
  305. /* [unique][uuid][object] */
  306. EXTERN_C const IID IID_IStreamBufferRecordControl;
  307. #if defined(__cplusplus) && !defined(CINTERFACE)
  308. MIDL_INTERFACE("ba9b6c99-f3c7-4ff2-92db-cfdd4851bf31")
  309. IStreamBufferRecordControl : public IUnknown
  310. {
  311. public:
  312. virtual HRESULT STDMETHODCALLTYPE Start(
  313. /* [out][in] */ REFERENCE_TIME *prtStart) = 0;
  314. virtual HRESULT STDMETHODCALLTYPE Stop(
  315. /* [in] */ REFERENCE_TIME rtStop) = 0;
  316. virtual HRESULT STDMETHODCALLTYPE GetRecordingStatus(
  317. /* [out] */ HRESULT *phResult,
  318. /* [out] */ BOOL *pbStarted,
  319. /* [out] */ BOOL *pbStopped) = 0;
  320. };
  321. #else /* C style interface */
  322. typedef struct IStreamBufferRecordControlVtbl
  323. {
  324. BEGIN_INTERFACE
  325. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  326. IStreamBufferRecordControl * This,
  327. /* [in] */ REFIID riid,
  328. /* [iid_is][out] */ void **ppvObject);
  329. ULONG ( STDMETHODCALLTYPE *AddRef )(
  330. IStreamBufferRecordControl * This);
  331. ULONG ( STDMETHODCALLTYPE *Release )(
  332. IStreamBufferRecordControl * This);
  333. HRESULT ( STDMETHODCALLTYPE *Start )(
  334. IStreamBufferRecordControl * This,
  335. /* [out][in] */ REFERENCE_TIME *prtStart);
  336. HRESULT ( STDMETHODCALLTYPE *Stop )(
  337. IStreamBufferRecordControl * This,
  338. /* [in] */ REFERENCE_TIME rtStop);
  339. HRESULT ( STDMETHODCALLTYPE *GetRecordingStatus )(
  340. IStreamBufferRecordControl * This,
  341. /* [out] */ HRESULT *phResult,
  342. /* [out] */ BOOL *pbStarted,
  343. /* [out] */ BOOL *pbStopped);
  344. END_INTERFACE
  345. } IStreamBufferRecordControlVtbl;
  346. interface IStreamBufferRecordControl
  347. {
  348. CONST_VTBL struct IStreamBufferRecordControlVtbl *lpVtbl;
  349. };
  350. #ifdef COBJMACROS
  351. #define IStreamBufferRecordControl_QueryInterface(This,riid,ppvObject) \
  352. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  353. #define IStreamBufferRecordControl_AddRef(This) \
  354. (This)->lpVtbl -> AddRef(This)
  355. #define IStreamBufferRecordControl_Release(This) \
  356. (This)->lpVtbl -> Release(This)
  357. #define IStreamBufferRecordControl_Start(This,prtStart) \
  358. (This)->lpVtbl -> Start(This,prtStart)
  359. #define IStreamBufferRecordControl_Stop(This,rtStop) \
  360. (This)->lpVtbl -> Stop(This,rtStop)
  361. #define IStreamBufferRecordControl_GetRecordingStatus(This,phResult,pbStarted,pbStopped) \
  362. (This)->lpVtbl -> GetRecordingStatus(This,phResult,pbStarted,pbStopped)
  363. #endif /* COBJMACROS */
  364. #endif /* C style interface */
  365. HRESULT STDMETHODCALLTYPE IStreamBufferRecordControl_Start_Proxy(
  366. IStreamBufferRecordControl * This,
  367. /* [out][in] */ REFERENCE_TIME *prtStart);
  368. void __RPC_STUB IStreamBufferRecordControl_Start_Stub(
  369. IRpcStubBuffer *This,
  370. IRpcChannelBuffer *_pRpcChannelBuffer,
  371. PRPC_MESSAGE _pRpcMessage,
  372. DWORD *_pdwStubPhase);
  373. HRESULT STDMETHODCALLTYPE IStreamBufferRecordControl_Stop_Proxy(
  374. IStreamBufferRecordControl * This,
  375. /* [in] */ REFERENCE_TIME rtStop);
  376. void __RPC_STUB IStreamBufferRecordControl_Stop_Stub(
  377. IRpcStubBuffer *This,
  378. IRpcChannelBuffer *_pRpcChannelBuffer,
  379. PRPC_MESSAGE _pRpcMessage,
  380. DWORD *_pdwStubPhase);
  381. HRESULT STDMETHODCALLTYPE IStreamBufferRecordControl_GetRecordingStatus_Proxy(
  382. IStreamBufferRecordControl * This,
  383. /* [out] */ HRESULT *phResult,
  384. /* [out] */ BOOL *pbStarted,
  385. /* [out] */ BOOL *pbStopped);
  386. void __RPC_STUB IStreamBufferRecordControl_GetRecordingStatus_Stub(
  387. IRpcStubBuffer *This,
  388. IRpcChannelBuffer *_pRpcChannelBuffer,
  389. PRPC_MESSAGE _pRpcMessage,
  390. DWORD *_pdwStubPhase);
  391. #endif /* __IStreamBufferRecordControl_INTERFACE_DEFINED__ */
  392. #ifndef __IStreamBufferRecComp_INTERFACE_DEFINED__
  393. #define __IStreamBufferRecComp_INTERFACE_DEFINED__
  394. /* interface IStreamBufferRecComp */
  395. /* [unique][uuid][object] */
  396. EXTERN_C const IID IID_IStreamBufferRecComp;
  397. #if defined(__cplusplus) && !defined(CINTERFACE)
  398. MIDL_INTERFACE("9E259A9B-8815-42ae-B09F-221970B154FD")
  399. IStreamBufferRecComp : public IUnknown
  400. {
  401. public:
  402. virtual HRESULT STDMETHODCALLTYPE Initialize(
  403. /* [in] */ LPCWSTR pszTargetFilename,
  404. /* [in] */ LPCWSTR pszSBRecProfileRef) = 0;
  405. virtual HRESULT STDMETHODCALLTYPE Append(
  406. /* [in] */ LPCWSTR pszSBRecording) = 0;
  407. virtual HRESULT STDMETHODCALLTYPE AppendEx(
  408. /* [in] */ LPCWSTR pszSBRecording,
  409. /* [in] */ REFERENCE_TIME rtStart,
  410. /* [in] */ REFERENCE_TIME rtStop) = 0;
  411. virtual HRESULT STDMETHODCALLTYPE GetCurrentLength(
  412. /* [out] */ DWORD *pcSeconds) = 0;
  413. virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  414. virtual HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
  415. };
  416. #else /* C style interface */
  417. typedef struct IStreamBufferRecCompVtbl
  418. {
  419. BEGIN_INTERFACE
  420. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  421. IStreamBufferRecComp * This,
  422. /* [in] */ REFIID riid,
  423. /* [iid_is][out] */ void **ppvObject);
  424. ULONG ( STDMETHODCALLTYPE *AddRef )(
  425. IStreamBufferRecComp * This);
  426. ULONG ( STDMETHODCALLTYPE *Release )(
  427. IStreamBufferRecComp * This);
  428. HRESULT ( STDMETHODCALLTYPE *Initialize )(
  429. IStreamBufferRecComp * This,
  430. /* [in] */ LPCWSTR pszTargetFilename,
  431. /* [in] */ LPCWSTR pszSBRecProfileRef);
  432. HRESULT ( STDMETHODCALLTYPE *Append )(
  433. IStreamBufferRecComp * This,
  434. /* [in] */ LPCWSTR pszSBRecording);
  435. HRESULT ( STDMETHODCALLTYPE *AppendEx )(
  436. IStreamBufferRecComp * This,
  437. /* [in] */ LPCWSTR pszSBRecording,
  438. /* [in] */ REFERENCE_TIME rtStart,
  439. /* [in] */ REFERENCE_TIME rtStop);
  440. HRESULT ( STDMETHODCALLTYPE *GetCurrentLength )(
  441. IStreamBufferRecComp * This,
  442. /* [out] */ DWORD *pcSeconds);
  443. HRESULT ( STDMETHODCALLTYPE *Close )(
  444. IStreamBufferRecComp * This);
  445. HRESULT ( STDMETHODCALLTYPE *Cancel )(
  446. IStreamBufferRecComp * This);
  447. END_INTERFACE
  448. } IStreamBufferRecCompVtbl;
  449. interface IStreamBufferRecComp
  450. {
  451. CONST_VTBL struct IStreamBufferRecCompVtbl *lpVtbl;
  452. };
  453. #ifdef COBJMACROS
  454. #define IStreamBufferRecComp_QueryInterface(This,riid,ppvObject) \
  455. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  456. #define IStreamBufferRecComp_AddRef(This) \
  457. (This)->lpVtbl -> AddRef(This)
  458. #define IStreamBufferRecComp_Release(This) \
  459. (This)->lpVtbl -> Release(This)
  460. #define IStreamBufferRecComp_Initialize(This,pszTargetFilename,pszSBRecProfileRef) \
  461. (This)->lpVtbl -> Initialize(This,pszTargetFilename,pszSBRecProfileRef)
  462. #define IStreamBufferRecComp_Append(This,pszSBRecording) \
  463. (This)->lpVtbl -> Append(This,pszSBRecording)
  464. #define IStreamBufferRecComp_AppendEx(This,pszSBRecording,rtStart,rtStop) \
  465. (This)->lpVtbl -> AppendEx(This,pszSBRecording,rtStart,rtStop)
  466. #define IStreamBufferRecComp_GetCurrentLength(This,pcSeconds) \
  467. (This)->lpVtbl -> GetCurrentLength(This,pcSeconds)
  468. #define IStreamBufferRecComp_Close(This) \
  469. (This)->lpVtbl -> Close(This)
  470. #define IStreamBufferRecComp_Cancel(This) \
  471. (This)->lpVtbl -> Cancel(This)
  472. #endif /* COBJMACROS */
  473. #endif /* C style interface */
  474. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Initialize_Proxy(
  475. IStreamBufferRecComp * This,
  476. /* [in] */ LPCWSTR pszTargetFilename,
  477. /* [in] */ LPCWSTR pszSBRecProfileRef);
  478. void __RPC_STUB IStreamBufferRecComp_Initialize_Stub(
  479. IRpcStubBuffer *This,
  480. IRpcChannelBuffer *_pRpcChannelBuffer,
  481. PRPC_MESSAGE _pRpcMessage,
  482. DWORD *_pdwStubPhase);
  483. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Append_Proxy(
  484. IStreamBufferRecComp * This,
  485. /* [in] */ LPCWSTR pszSBRecording);
  486. void __RPC_STUB IStreamBufferRecComp_Append_Stub(
  487. IRpcStubBuffer *This,
  488. IRpcChannelBuffer *_pRpcChannelBuffer,
  489. PRPC_MESSAGE _pRpcMessage,
  490. DWORD *_pdwStubPhase);
  491. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_AppendEx_Proxy(
  492. IStreamBufferRecComp * This,
  493. /* [in] */ LPCWSTR pszSBRecording,
  494. /* [in] */ REFERENCE_TIME rtStart,
  495. /* [in] */ REFERENCE_TIME rtStop);
  496. void __RPC_STUB IStreamBufferRecComp_AppendEx_Stub(
  497. IRpcStubBuffer *This,
  498. IRpcChannelBuffer *_pRpcChannelBuffer,
  499. PRPC_MESSAGE _pRpcMessage,
  500. DWORD *_pdwStubPhase);
  501. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_GetCurrentLength_Proxy(
  502. IStreamBufferRecComp * This,
  503. /* [out] */ DWORD *pcSeconds);
  504. void __RPC_STUB IStreamBufferRecComp_GetCurrentLength_Stub(
  505. IRpcStubBuffer *This,
  506. IRpcChannelBuffer *_pRpcChannelBuffer,
  507. PRPC_MESSAGE _pRpcMessage,
  508. DWORD *_pdwStubPhase);
  509. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Close_Proxy(
  510. IStreamBufferRecComp * This);
  511. void __RPC_STUB IStreamBufferRecComp_Close_Stub(
  512. IRpcStubBuffer *This,
  513. IRpcChannelBuffer *_pRpcChannelBuffer,
  514. PRPC_MESSAGE _pRpcMessage,
  515. DWORD *_pdwStubPhase);
  516. HRESULT STDMETHODCALLTYPE IStreamBufferRecComp_Cancel_Proxy(
  517. IStreamBufferRecComp * This);
  518. void __RPC_STUB IStreamBufferRecComp_Cancel_Stub(
  519. IRpcStubBuffer *This,
  520. IRpcChannelBuffer *_pRpcChannelBuffer,
  521. PRPC_MESSAGE _pRpcMessage,
  522. DWORD *_pdwStubPhase);
  523. #endif /* __IStreamBufferRecComp_INTERFACE_DEFINED__ */
  524. /* interface __MIDL_itf_sbe_0415 */
  525. /* [local] */
  526. ////////////////////////////////////////////////////////////////
  527. //
  528. // List of pre-defined attributes
  529. //
  530. static const WCHAR g_wszStreamBufferRecordingDuration[] =L"Duration";
  531. static const WCHAR g_wszStreamBufferRecordingBitrate[] =L"Bitrate";
  532. static const WCHAR g_wszStreamBufferRecordingSeekable[] =L"Seekable";
  533. static const WCHAR g_wszStreamBufferRecordingStridable[] =L"Stridable";
  534. static const WCHAR g_wszStreamBufferRecordingBroadcast[] =L"Broadcast";
  535. static const WCHAR g_wszStreamBufferRecordingProtected[] =L"Is_Protected";
  536. static const WCHAR g_wszStreamBufferRecordingTrusted[] =L"Is_Trusted";
  537. static const WCHAR g_wszStreamBufferRecordingSignature_Name[] =L"Signature_Name";
  538. static const WCHAR g_wszStreamBufferRecordingHasAudio[] =L"HasAudio";
  539. static const WCHAR g_wszStreamBufferRecordingHasImage[] =L"HasImage";
  540. static const WCHAR g_wszStreamBufferRecordingHasScript[] =L"HasScript";
  541. static const WCHAR g_wszStreamBufferRecordingHasVideo[] =L"HasVideo";
  542. static const WCHAR g_wszStreamBufferRecordingCurrentBitrate[] =L"CurrentBitrate";
  543. static const WCHAR g_wszStreamBufferRecordingOptimalBitrate[] =L"OptimalBitrate";
  544. static const WCHAR g_wszStreamBufferRecordingHasAttachedImages[] =L"HasAttachedImages";
  545. static const WCHAR g_wszStreamBufferRecordingSkipBackward[] =L"Can_Skip_Backward";
  546. static const WCHAR g_wszStreamBufferRecordingSkipForward[] =L"Can_Skip_Forward";
  547. static const WCHAR g_wszStreamBufferRecordingNumberOfFrames[] =L"NumberOfFrames";
  548. static const WCHAR g_wszStreamBufferRecordingFileSize[] =L"FileSize";
  549. static const WCHAR g_wszStreamBufferRecordingHasArbitraryDataStream[] =L"HasArbitraryDataStream";
  550. static const WCHAR g_wszStreamBufferRecordingHasFileTransferStream[] =L"HasFileTransferStream";
  551. ////////////////////////////////////////////////////////////////
  552. //
  553. // The content description object supports 5 basic attributes.
  554. //
  555. static const WCHAR g_wszStreamBufferRecordingTitle[] =L"Title";
  556. static const WCHAR g_wszStreamBufferRecordingAuthor[] =L"Author";
  557. static const WCHAR g_wszStreamBufferRecordingDescription[] =L"Description";
  558. static const WCHAR g_wszStreamBufferRecordingRating[] =L"Rating";
  559. static const WCHAR g_wszStreamBufferRecordingCopyright[] =L"Copyright";
  560. ////////////////////////////////////////////////////////////////
  561. //
  562. // These attributes are used to configure DRM using IWMDRMWriter::SetDRMAttribute.
  563. //
  564. static const WCHAR *g_wszStreamBufferRecordingUse_DRM = L"Use_DRM";
  565. static const WCHAR *g_wszStreamBufferRecordingDRM_Flags = L"DRM_Flags";
  566. static const WCHAR *g_wszStreamBufferRecordingDRM_Level = L"DRM_Level";
  567. ////////////////////////////////////////////////////////////////
  568. //
  569. // These are the additional attributes defined in the WM attribute
  570. // namespace that give information about the content.
  571. //
  572. static const WCHAR g_wszStreamBufferRecordingAlbumTitle[] =L"WM/AlbumTitle";
  573. static const WCHAR g_wszStreamBufferRecordingTrack[] =L"WM/Track";
  574. static const WCHAR g_wszStreamBufferRecordingPromotionURL[] =L"WM/PromotionURL";
  575. static const WCHAR g_wszStreamBufferRecordingAlbumCoverURL[] =L"WM/AlbumCoverURL";
  576. static const WCHAR g_wszStreamBufferRecordingGenre[] =L"WM/Genre";
  577. static const WCHAR g_wszStreamBufferRecordingYear[] =L"WM/Year";
  578. static const WCHAR g_wszStreamBufferRecordingGenreID[] =L"WM/GenreID";
  579. static const WCHAR g_wszStreamBufferRecordingMCDI[] =L"WM/MCDI";
  580. static const WCHAR g_wszStreamBufferRecordingComposer[] =L"WM/Composer";
  581. static const WCHAR g_wszStreamBufferRecordingLyrics[] =L"WM/Lyrics";
  582. static const WCHAR g_wszStreamBufferRecordingTrackNumber[] =L"WM/TrackNumber";
  583. static const WCHAR g_wszStreamBufferRecordingToolName[] =L"WM/ToolName";
  584. static const WCHAR g_wszStreamBufferRecordingToolVersion[] =L"WM/ToolVersion";
  585. static const WCHAR g_wszStreamBufferRecordingIsVBR[] =L"IsVBR";
  586. static const WCHAR g_wszStreamBufferRecordingAlbumArtist[] =L"WM/AlbumArtist";
  587. ////////////////////////////////////////////////////////////////
  588. //
  589. // These optional attributes may be used to give information
  590. // about the branding of the content.
  591. //
  592. static const WCHAR g_wszStreamBufferRecordingBannerImageType[] =L"BannerImageType";
  593. static const WCHAR g_wszStreamBufferRecordingBannerImageData[] =L"BannerImageData";
  594. static const WCHAR g_wszStreamBufferRecordingBannerImageURL[] =L"BannerImageURL";
  595. static const WCHAR g_wszStreamBufferRecordingCopyrightURL[] =L"CopyrightURL";
  596. ////////////////////////////////////////////////////////////////
  597. //
  598. // Optional attributes, used to give information
  599. // about video stream properties.
  600. //
  601. static const WCHAR g_wszStreamBufferRecordingAspectRatioX[] =L"AspectRatioX";
  602. static const WCHAR g_wszStreamBufferRecordingAspectRatioY[] =L"AspectRatioY";
  603. ////////////////////////////////////////////////////////////////
  604. //
  605. // The NSC file supports the following attributes.
  606. //
  607. static const WCHAR g_wszStreamBufferRecordingNSCName[] =L"NSC_Name";
  608. static const WCHAR g_wszStreamBufferRecordingNSCAddress[] =L"NSC_Address";
  609. static const WCHAR g_wszStreamBufferRecordingNSCPhone[] =L"NSC_Phone";
  610. static const WCHAR g_wszStreamBufferRecordingNSCEmail[] =L"NSC_Email";
  611. static const WCHAR g_wszStreamBufferRecordingNSCDescription[] =L"NSC_Description";
  612. typedef /* [public][public][public][public][public][public] */
  613. enum __MIDL___MIDL_itf_sbe_0415_0001
  614. { STREAMBUFFER_TYPE_DWORD = 0,
  615. STREAMBUFFER_TYPE_STRING = 1,
  616. STREAMBUFFER_TYPE_BINARY = 2,
  617. STREAMBUFFER_TYPE_BOOL = 3,
  618. STREAMBUFFER_TYPE_QWORD = 4,
  619. STREAMBUFFER_TYPE_WORD = 5,
  620. STREAMBUFFER_TYPE_GUID = 6
  621. } STREAMBUFFER_ATTR_DATATYPE;
  622. extern RPC_IF_HANDLE __MIDL_itf_sbe_0415_v0_0_c_ifspec;
  623. extern RPC_IF_HANDLE __MIDL_itf_sbe_0415_v0_0_s_ifspec;
  624. #ifndef __IStreamBufferRecordingAttribute_INTERFACE_DEFINED__
  625. #define __IStreamBufferRecordingAttribute_INTERFACE_DEFINED__
  626. /* interface IStreamBufferRecordingAttribute */
  627. /* [unique][uuid][object] */
  628. EXTERN_C const IID IID_IStreamBufferRecordingAttribute;
  629. #if defined(__cplusplus) && !defined(CINTERFACE)
  630. MIDL_INTERFACE("16CA4E03-FE69-4705-BD41-5B7DFC0C95F3")
  631. IStreamBufferRecordingAttribute : public IUnknown
  632. {
  633. public:
  634. virtual HRESULT STDMETHODCALLTYPE SetAttribute(
  635. /* [in] */ ULONG ulReserved,
  636. /* [in] */ LPCWSTR pszAttributeName,
  637. /* [in] */ STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType,
  638. /* [in] */ BYTE *pbAttribute,
  639. /* [in] */ WORD cbAttributeLength) = 0;
  640. virtual HRESULT STDMETHODCALLTYPE GetAttributeCount(
  641. /* [in] */ ULONG ulReserved,
  642. /* [out] */ WORD *pcAttributes) = 0;
  643. virtual HRESULT STDMETHODCALLTYPE GetAttributeByName(
  644. /* [in] */ LPCWSTR pszAttributeName,
  645. /* [in] */ ULONG *pulReserved,
  646. /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  647. /* [out] */ BYTE *pbAttribute,
  648. /* [out][in] */ WORD *pcbLength) = 0;
  649. virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex(
  650. /* [in] */ WORD wIndex,
  651. /* [in] */ ULONG *pulReserved,
  652. /* [out] */ WCHAR *pszAttributeName,
  653. /* [out][in] */ WORD *pcchNameLength,
  654. /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  655. /* [out] */ BYTE *pbAttribute,
  656. /* [out][in] */ WORD *pcbLength) = 0;
  657. virtual HRESULT STDMETHODCALLTYPE EnumAttributes(
  658. /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib) = 0;
  659. };
  660. #else /* C style interface */
  661. typedef struct IStreamBufferRecordingAttributeVtbl
  662. {
  663. BEGIN_INTERFACE
  664. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  665. IStreamBufferRecordingAttribute * This,
  666. /* [in] */ REFIID riid,
  667. /* [iid_is][out] */ void **ppvObject);
  668. ULONG ( STDMETHODCALLTYPE *AddRef )(
  669. IStreamBufferRecordingAttribute * This);
  670. ULONG ( STDMETHODCALLTYPE *Release )(
  671. IStreamBufferRecordingAttribute * This);
  672. HRESULT ( STDMETHODCALLTYPE *SetAttribute )(
  673. IStreamBufferRecordingAttribute * This,
  674. /* [in] */ ULONG ulReserved,
  675. /* [in] */ LPCWSTR pszAttributeName,
  676. /* [in] */ STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType,
  677. /* [in] */ BYTE *pbAttribute,
  678. /* [in] */ WORD cbAttributeLength);
  679. HRESULT ( STDMETHODCALLTYPE *GetAttributeCount )(
  680. IStreamBufferRecordingAttribute * This,
  681. /* [in] */ ULONG ulReserved,
  682. /* [out] */ WORD *pcAttributes);
  683. HRESULT ( STDMETHODCALLTYPE *GetAttributeByName )(
  684. IStreamBufferRecordingAttribute * This,
  685. /* [in] */ LPCWSTR pszAttributeName,
  686. /* [in] */ ULONG *pulReserved,
  687. /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  688. /* [out] */ BYTE *pbAttribute,
  689. /* [out][in] */ WORD *pcbLength);
  690. HRESULT ( STDMETHODCALLTYPE *GetAttributeByIndex )(
  691. IStreamBufferRecordingAttribute * This,
  692. /* [in] */ WORD wIndex,
  693. /* [in] */ ULONG *pulReserved,
  694. /* [out] */ WCHAR *pszAttributeName,
  695. /* [out][in] */ WORD *pcchNameLength,
  696. /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  697. /* [out] */ BYTE *pbAttribute,
  698. /* [out][in] */ WORD *pcbLength);
  699. HRESULT ( STDMETHODCALLTYPE *EnumAttributes )(
  700. IStreamBufferRecordingAttribute * This,
  701. /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  702. END_INTERFACE
  703. } IStreamBufferRecordingAttributeVtbl;
  704. interface IStreamBufferRecordingAttribute
  705. {
  706. CONST_VTBL struct IStreamBufferRecordingAttributeVtbl *lpVtbl;
  707. };
  708. #ifdef COBJMACROS
  709. #define IStreamBufferRecordingAttribute_QueryInterface(This,riid,ppvObject) \
  710. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  711. #define IStreamBufferRecordingAttribute_AddRef(This) \
  712. (This)->lpVtbl -> AddRef(This)
  713. #define IStreamBufferRecordingAttribute_Release(This) \
  714. (This)->lpVtbl -> Release(This)
  715. #define IStreamBufferRecordingAttribute_SetAttribute(This,ulReserved,pszAttributeName,StreamBufferAttributeType,pbAttribute,cbAttributeLength) \
  716. (This)->lpVtbl -> SetAttribute(This,ulReserved,pszAttributeName,StreamBufferAttributeType,pbAttribute,cbAttributeLength)
  717. #define IStreamBufferRecordingAttribute_GetAttributeCount(This,ulReserved,pcAttributes) \
  718. (This)->lpVtbl -> GetAttributeCount(This,ulReserved,pcAttributes)
  719. #define IStreamBufferRecordingAttribute_GetAttributeByName(This,pszAttributeName,pulReserved,pStreamBufferAttributeType,pbAttribute,pcbLength) \
  720. (This)->lpVtbl -> GetAttributeByName(This,pszAttributeName,pulReserved,pStreamBufferAttributeType,pbAttribute,pcbLength)
  721. #define IStreamBufferRecordingAttribute_GetAttributeByIndex(This,wIndex,pulReserved,pszAttributeName,pcchNameLength,pStreamBufferAttributeType,pbAttribute,pcbLength) \
  722. (This)->lpVtbl -> GetAttributeByIndex(This,wIndex,pulReserved,pszAttributeName,pcchNameLength,pStreamBufferAttributeType,pbAttribute,pcbLength)
  723. #define IStreamBufferRecordingAttribute_EnumAttributes(This,ppIEnumStreamBufferAttrib) \
  724. (This)->lpVtbl -> EnumAttributes(This,ppIEnumStreamBufferAttrib)
  725. #endif /* COBJMACROS */
  726. #endif /* C style interface */
  727. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_SetAttribute_Proxy(
  728. IStreamBufferRecordingAttribute * This,
  729. /* [in] */ ULONG ulReserved,
  730. /* [in] */ LPCWSTR pszAttributeName,
  731. /* [in] */ STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType,
  732. /* [in] */ BYTE *pbAttribute,
  733. /* [in] */ WORD cbAttributeLength);
  734. void __RPC_STUB IStreamBufferRecordingAttribute_SetAttribute_Stub(
  735. IRpcStubBuffer *This,
  736. IRpcChannelBuffer *_pRpcChannelBuffer,
  737. PRPC_MESSAGE _pRpcMessage,
  738. DWORD *_pdwStubPhase);
  739. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_GetAttributeCount_Proxy(
  740. IStreamBufferRecordingAttribute * This,
  741. /* [in] */ ULONG ulReserved,
  742. /* [out] */ WORD *pcAttributes);
  743. void __RPC_STUB IStreamBufferRecordingAttribute_GetAttributeCount_Stub(
  744. IRpcStubBuffer *This,
  745. IRpcChannelBuffer *_pRpcChannelBuffer,
  746. PRPC_MESSAGE _pRpcMessage,
  747. DWORD *_pdwStubPhase);
  748. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_GetAttributeByName_Proxy(
  749. IStreamBufferRecordingAttribute * This,
  750. /* [in] */ LPCWSTR pszAttributeName,
  751. /* [in] */ ULONG *pulReserved,
  752. /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  753. /* [out] */ BYTE *pbAttribute,
  754. /* [out][in] */ WORD *pcbLength);
  755. void __RPC_STUB IStreamBufferRecordingAttribute_GetAttributeByName_Stub(
  756. IRpcStubBuffer *This,
  757. IRpcChannelBuffer *_pRpcChannelBuffer,
  758. PRPC_MESSAGE _pRpcMessage,
  759. DWORD *_pdwStubPhase);
  760. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_GetAttributeByIndex_Proxy(
  761. IStreamBufferRecordingAttribute * This,
  762. /* [in] */ WORD wIndex,
  763. /* [in] */ ULONG *pulReserved,
  764. /* [out] */ WCHAR *pszAttributeName,
  765. /* [out][in] */ WORD *pcchNameLength,
  766. /* [out] */ STREAMBUFFER_ATTR_DATATYPE *pStreamBufferAttributeType,
  767. /* [out] */ BYTE *pbAttribute,
  768. /* [out][in] */ WORD *pcbLength);
  769. void __RPC_STUB IStreamBufferRecordingAttribute_GetAttributeByIndex_Stub(
  770. IRpcStubBuffer *This,
  771. IRpcChannelBuffer *_pRpcChannelBuffer,
  772. PRPC_MESSAGE _pRpcMessage,
  773. DWORD *_pdwStubPhase);
  774. HRESULT STDMETHODCALLTYPE IStreamBufferRecordingAttribute_EnumAttributes_Proxy(
  775. IStreamBufferRecordingAttribute * This,
  776. /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  777. void __RPC_STUB IStreamBufferRecordingAttribute_EnumAttributes_Stub(
  778. IRpcStubBuffer *This,
  779. IRpcChannelBuffer *_pRpcChannelBuffer,
  780. PRPC_MESSAGE _pRpcMessage,
  781. DWORD *_pdwStubPhase);
  782. #endif /* __IStreamBufferRecordingAttribute_INTERFACE_DEFINED__ */
  783. /* interface __MIDL_itf_sbe_0416 */
  784. /* [local] */
  785. typedef /* [public][public] */ struct __MIDL___MIDL_itf_sbe_0416_0001
  786. {
  787. LPWSTR pszName;
  788. STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType;
  789. BYTE *pbAttribute;
  790. WORD cbLength;
  791. } STREAMBUFFER_ATTRIBUTE;
  792. extern RPC_IF_HANDLE __MIDL_itf_sbe_0416_v0_0_c_ifspec;
  793. extern RPC_IF_HANDLE __MIDL_itf_sbe_0416_v0_0_s_ifspec;
  794. #ifndef __IEnumStreamBufferRecordingAttrib_INTERFACE_DEFINED__
  795. #define __IEnumStreamBufferRecordingAttrib_INTERFACE_DEFINED__
  796. /* interface IEnumStreamBufferRecordingAttrib */
  797. /* [unique][uuid][object] */
  798. EXTERN_C const IID IID_IEnumStreamBufferRecordingAttrib;
  799. #if defined(__cplusplus) && !defined(CINTERFACE)
  800. MIDL_INTERFACE("C18A9162-1E82-4142-8C73-5690FA62FE33")
  801. IEnumStreamBufferRecordingAttrib : public IUnknown
  802. {
  803. public:
  804. virtual HRESULT STDMETHODCALLTYPE Next(
  805. /* [in] */ ULONG cRequest,
  806. /* [size_is][out][in] */ STREAMBUFFER_ATTRIBUTE *pStreamBufferAttribute,
  807. /* [out] */ ULONG *pcReceived) = 0;
  808. virtual HRESULT STDMETHODCALLTYPE Skip(
  809. /* [in] */ ULONG cRecords) = 0;
  810. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  811. virtual HRESULT STDMETHODCALLTYPE Clone(
  812. /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib) = 0;
  813. };
  814. #else /* C style interface */
  815. typedef struct IEnumStreamBufferRecordingAttribVtbl
  816. {
  817. BEGIN_INTERFACE
  818. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  819. IEnumStreamBufferRecordingAttrib * This,
  820. /* [in] */ REFIID riid,
  821. /* [iid_is][out] */ void **ppvObject);
  822. ULONG ( STDMETHODCALLTYPE *AddRef )(
  823. IEnumStreamBufferRecordingAttrib * This);
  824. ULONG ( STDMETHODCALLTYPE *Release )(
  825. IEnumStreamBufferRecordingAttrib * This);
  826. HRESULT ( STDMETHODCALLTYPE *Next )(
  827. IEnumStreamBufferRecordingAttrib * This,
  828. /* [in] */ ULONG cRequest,
  829. /* [size_is][out][in] */ STREAMBUFFER_ATTRIBUTE *pStreamBufferAttribute,
  830. /* [out] */ ULONG *pcReceived);
  831. HRESULT ( STDMETHODCALLTYPE *Skip )(
  832. IEnumStreamBufferRecordingAttrib * This,
  833. /* [in] */ ULONG cRecords);
  834. HRESULT ( STDMETHODCALLTYPE *Reset )(
  835. IEnumStreamBufferRecordingAttrib * This);
  836. HRESULT ( STDMETHODCALLTYPE *Clone )(
  837. IEnumStreamBufferRecordingAttrib * This,
  838. /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  839. END_INTERFACE
  840. } IEnumStreamBufferRecordingAttribVtbl;
  841. interface IEnumStreamBufferRecordingAttrib
  842. {
  843. CONST_VTBL struct IEnumStreamBufferRecordingAttribVtbl *lpVtbl;
  844. };
  845. #ifdef COBJMACROS
  846. #define IEnumStreamBufferRecordingAttrib_QueryInterface(This,riid,ppvObject) \
  847. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  848. #define IEnumStreamBufferRecordingAttrib_AddRef(This) \
  849. (This)->lpVtbl -> AddRef(This)
  850. #define IEnumStreamBufferRecordingAttrib_Release(This) \
  851. (This)->lpVtbl -> Release(This)
  852. #define IEnumStreamBufferRecordingAttrib_Next(This,cRequest,pStreamBufferAttribute,pcReceived) \
  853. (This)->lpVtbl -> Next(This,cRequest,pStreamBufferAttribute,pcReceived)
  854. #define IEnumStreamBufferRecordingAttrib_Skip(This,cRecords) \
  855. (This)->lpVtbl -> Skip(This,cRecords)
  856. #define IEnumStreamBufferRecordingAttrib_Reset(This) \
  857. (This)->lpVtbl -> Reset(This)
  858. #define IEnumStreamBufferRecordingAttrib_Clone(This,ppIEnumStreamBufferAttrib) \
  859. (This)->lpVtbl -> Clone(This,ppIEnumStreamBufferAttrib)
  860. #endif /* COBJMACROS */
  861. #endif /* C style interface */
  862. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Next_Proxy(
  863. IEnumStreamBufferRecordingAttrib * This,
  864. /* [in] */ ULONG cRequest,
  865. /* [size_is][out][in] */ STREAMBUFFER_ATTRIBUTE *pStreamBufferAttribute,
  866. /* [out] */ ULONG *pcReceived);
  867. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Next_Stub(
  868. IRpcStubBuffer *This,
  869. IRpcChannelBuffer *_pRpcChannelBuffer,
  870. PRPC_MESSAGE _pRpcMessage,
  871. DWORD *_pdwStubPhase);
  872. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Skip_Proxy(
  873. IEnumStreamBufferRecordingAttrib * This,
  874. /* [in] */ ULONG cRecords);
  875. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Skip_Stub(
  876. IRpcStubBuffer *This,
  877. IRpcChannelBuffer *_pRpcChannelBuffer,
  878. PRPC_MESSAGE _pRpcMessage,
  879. DWORD *_pdwStubPhase);
  880. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Reset_Proxy(
  881. IEnumStreamBufferRecordingAttrib * This);
  882. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Reset_Stub(
  883. IRpcStubBuffer *This,
  884. IRpcChannelBuffer *_pRpcChannelBuffer,
  885. PRPC_MESSAGE _pRpcMessage,
  886. DWORD *_pdwStubPhase);
  887. HRESULT STDMETHODCALLTYPE IEnumStreamBufferRecordingAttrib_Clone_Proxy(
  888. IEnumStreamBufferRecordingAttrib * This,
  889. /* [out] */ IEnumStreamBufferRecordingAttrib **ppIEnumStreamBufferAttrib);
  890. void __RPC_STUB IEnumStreamBufferRecordingAttrib_Clone_Stub(
  891. IRpcStubBuffer *This,
  892. IRpcChannelBuffer *_pRpcChannelBuffer,
  893. PRPC_MESSAGE _pRpcMessage,
  894. DWORD *_pdwStubPhase);
  895. #endif /* __IEnumStreamBufferRecordingAttrib_INTERFACE_DEFINED__ */
  896. #ifndef __IStreamBufferConfigure_INTERFACE_DEFINED__
  897. #define __IStreamBufferConfigure_INTERFACE_DEFINED__
  898. /* interface IStreamBufferConfigure */
  899. /* [unique][uuid][object] */
  900. EXTERN_C const IID IID_IStreamBufferConfigure;
  901. #if defined(__cplusplus) && !defined(CINTERFACE)
  902. MIDL_INTERFACE("ce14dfae-4098-4af7-bbf7-d6511f835414")
  903. IStreamBufferConfigure : public IUnknown
  904. {
  905. public:
  906. virtual HRESULT STDMETHODCALLTYPE SetDirectory(
  907. /* [in] */ LPCWSTR pszDirectoryName) = 0;
  908. virtual HRESULT STDMETHODCALLTYPE GetDirectory(
  909. /* [out] */ LPWSTR *ppszDirectoryName) = 0;
  910. virtual HRESULT STDMETHODCALLTYPE SetBackingFileCount(
  911. /* [in] */ DWORD dwMin,
  912. /* [in] */ DWORD dwMax) = 0;
  913. virtual HRESULT STDMETHODCALLTYPE GetBackingFileCount(
  914. /* [out] */ DWORD *pdwMin,
  915. /* [out] */ DWORD *pdwMax) = 0;
  916. virtual HRESULT STDMETHODCALLTYPE SetBackingFileDuration(
  917. /* [in] */ DWORD dwSeconds) = 0;
  918. virtual HRESULT STDMETHODCALLTYPE GetBackingFileDuration(
  919. /* [out] */ DWORD *pdwSeconds) = 0;
  920. };
  921. #else /* C style interface */
  922. typedef struct IStreamBufferConfigureVtbl
  923. {
  924. BEGIN_INTERFACE
  925. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  926. IStreamBufferConfigure * This,
  927. /* [in] */ REFIID riid,
  928. /* [iid_is][out] */ void **ppvObject);
  929. ULONG ( STDMETHODCALLTYPE *AddRef )(
  930. IStreamBufferConfigure * This);
  931. ULONG ( STDMETHODCALLTYPE *Release )(
  932. IStreamBufferConfigure * This);
  933. HRESULT ( STDMETHODCALLTYPE *SetDirectory )(
  934. IStreamBufferConfigure * This,
  935. /* [in] */ LPCWSTR pszDirectoryName);
  936. HRESULT ( STDMETHODCALLTYPE *GetDirectory )(
  937. IStreamBufferConfigure * This,
  938. /* [out] */ LPWSTR *ppszDirectoryName);
  939. HRESULT ( STDMETHODCALLTYPE *SetBackingFileCount )(
  940. IStreamBufferConfigure * This,
  941. /* [in] */ DWORD dwMin,
  942. /* [in] */ DWORD dwMax);
  943. HRESULT ( STDMETHODCALLTYPE *GetBackingFileCount )(
  944. IStreamBufferConfigure * This,
  945. /* [out] */ DWORD *pdwMin,
  946. /* [out] */ DWORD *pdwMax);
  947. HRESULT ( STDMETHODCALLTYPE *SetBackingFileDuration )(
  948. IStreamBufferConfigure * This,
  949. /* [in] */ DWORD dwSeconds);
  950. HRESULT ( STDMETHODCALLTYPE *GetBackingFileDuration )(
  951. IStreamBufferConfigure * This,
  952. /* [out] */ DWORD *pdwSeconds);
  953. END_INTERFACE
  954. } IStreamBufferConfigureVtbl;
  955. interface IStreamBufferConfigure
  956. {
  957. CONST_VTBL struct IStreamBufferConfigureVtbl *lpVtbl;
  958. };
  959. #ifdef COBJMACROS
  960. #define IStreamBufferConfigure_QueryInterface(This,riid,ppvObject) \
  961. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  962. #define IStreamBufferConfigure_AddRef(This) \
  963. (This)->lpVtbl -> AddRef(This)
  964. #define IStreamBufferConfigure_Release(This) \
  965. (This)->lpVtbl -> Release(This)
  966. #define IStreamBufferConfigure_SetDirectory(This,pszDirectoryName) \
  967. (This)->lpVtbl -> SetDirectory(This,pszDirectoryName)
  968. #define IStreamBufferConfigure_GetDirectory(This,ppszDirectoryName) \
  969. (This)->lpVtbl -> GetDirectory(This,ppszDirectoryName)
  970. #define IStreamBufferConfigure_SetBackingFileCount(This,dwMin,dwMax) \
  971. (This)->lpVtbl -> SetBackingFileCount(This,dwMin,dwMax)
  972. #define IStreamBufferConfigure_GetBackingFileCount(This,pdwMin,pdwMax) \
  973. (This)->lpVtbl -> GetBackingFileCount(This,pdwMin,pdwMax)
  974. #define IStreamBufferConfigure_SetBackingFileDuration(This,dwSeconds) \
  975. (This)->lpVtbl -> SetBackingFileDuration(This,dwSeconds)
  976. #define IStreamBufferConfigure_GetBackingFileDuration(This,pdwSeconds) \
  977. (This)->lpVtbl -> GetBackingFileDuration(This,pdwSeconds)
  978. #endif /* COBJMACROS */
  979. #endif /* C style interface */
  980. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_SetDirectory_Proxy(
  981. IStreamBufferConfigure * This,
  982. /* [in] */ LPCWSTR pszDirectoryName);
  983. void __RPC_STUB IStreamBufferConfigure_SetDirectory_Stub(
  984. IRpcStubBuffer *This,
  985. IRpcChannelBuffer *_pRpcChannelBuffer,
  986. PRPC_MESSAGE _pRpcMessage,
  987. DWORD *_pdwStubPhase);
  988. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_GetDirectory_Proxy(
  989. IStreamBufferConfigure * This,
  990. /* [out] */ LPWSTR *ppszDirectoryName);
  991. void __RPC_STUB IStreamBufferConfigure_GetDirectory_Stub(
  992. IRpcStubBuffer *This,
  993. IRpcChannelBuffer *_pRpcChannelBuffer,
  994. PRPC_MESSAGE _pRpcMessage,
  995. DWORD *_pdwStubPhase);
  996. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_SetBackingFileCount_Proxy(
  997. IStreamBufferConfigure * This,
  998. /* [in] */ DWORD dwMin,
  999. /* [in] */ DWORD dwMax);
  1000. void __RPC_STUB IStreamBufferConfigure_SetBackingFileCount_Stub(
  1001. IRpcStubBuffer *This,
  1002. IRpcChannelBuffer *_pRpcChannelBuffer,
  1003. PRPC_MESSAGE _pRpcMessage,
  1004. DWORD *_pdwStubPhase);
  1005. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_GetBackingFileCount_Proxy(
  1006. IStreamBufferConfigure * This,
  1007. /* [out] */ DWORD *pdwMin,
  1008. /* [out] */ DWORD *pdwMax);
  1009. void __RPC_STUB IStreamBufferConfigure_GetBackingFileCount_Stub(
  1010. IRpcStubBuffer *This,
  1011. IRpcChannelBuffer *_pRpcChannelBuffer,
  1012. PRPC_MESSAGE _pRpcMessage,
  1013. DWORD *_pdwStubPhase);
  1014. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_SetBackingFileDuration_Proxy(
  1015. IStreamBufferConfigure * This,
  1016. /* [in] */ DWORD dwSeconds);
  1017. void __RPC_STUB IStreamBufferConfigure_SetBackingFileDuration_Stub(
  1018. IRpcStubBuffer *This,
  1019. IRpcChannelBuffer *_pRpcChannelBuffer,
  1020. PRPC_MESSAGE _pRpcMessage,
  1021. DWORD *_pdwStubPhase);
  1022. HRESULT STDMETHODCALLTYPE IStreamBufferConfigure_GetBackingFileDuration_Proxy(
  1023. IStreamBufferConfigure * This,
  1024. /* [out] */ DWORD *pdwSeconds);
  1025. void __RPC_STUB IStreamBufferConfigure_GetBackingFileDuration_Stub(
  1026. IRpcStubBuffer *This,
  1027. IRpcChannelBuffer *_pRpcChannelBuffer,
  1028. PRPC_MESSAGE _pRpcMessage,
  1029. DWORD *_pdwStubPhase);
  1030. #endif /* __IStreamBufferConfigure_INTERFACE_DEFINED__ */
  1031. #ifndef __IStreamBufferMediaSeeking_INTERFACE_DEFINED__
  1032. #define __IStreamBufferMediaSeeking_INTERFACE_DEFINED__
  1033. /* interface IStreamBufferMediaSeeking */
  1034. /* [unique][uuid][object] */
  1035. EXTERN_C const IID IID_IStreamBufferMediaSeeking;
  1036. #if defined(__cplusplus) && !defined(CINTERFACE)
  1037. MIDL_INTERFACE("f61f5c26-863d-4afa-b0ba-2f81dc978596")
  1038. IStreamBufferMediaSeeking : public IMediaSeeking
  1039. {
  1040. public:
  1041. };
  1042. #else /* C style interface */
  1043. typedef struct IStreamBufferMediaSeekingVtbl
  1044. {
  1045. BEGIN_INTERFACE
  1046. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1047. IStreamBufferMediaSeeking * This,
  1048. /* [in] */ REFIID riid,
  1049. /* [iid_is][out] */ void **ppvObject);
  1050. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1051. IStreamBufferMediaSeeking * This);
  1052. ULONG ( STDMETHODCALLTYPE *Release )(
  1053. IStreamBufferMediaSeeking * This);
  1054. HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
  1055. IStreamBufferMediaSeeking * This,
  1056. /* [out] */ DWORD *pCapabilities);
  1057. HRESULT ( STDMETHODCALLTYPE *CheckCapabilities )(
  1058. IStreamBufferMediaSeeking * This,
  1059. /* [out][in] */ DWORD *pCapabilities);
  1060. HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )(
  1061. IStreamBufferMediaSeeking * This,
  1062. /* [in] */ const GUID *pFormat);
  1063. HRESULT ( STDMETHODCALLTYPE *QueryPreferredFormat )(
  1064. IStreamBufferMediaSeeking * This,
  1065. /* [out] */ GUID *pFormat);
  1066. HRESULT ( STDMETHODCALLTYPE *GetTimeFormat )(
  1067. IStreamBufferMediaSeeking * This,
  1068. /* [out] */ GUID *pFormat);
  1069. HRESULT ( STDMETHODCALLTYPE *IsUsingTimeFormat )(
  1070. IStreamBufferMediaSeeking * This,
  1071. /* [in] */ const GUID *pFormat);
  1072. HRESULT ( STDMETHODCALLTYPE *SetTimeFormat )(
  1073. IStreamBufferMediaSeeking * This,
  1074. /* [in] */ const GUID *pFormat);
  1075. HRESULT ( STDMETHODCALLTYPE *GetDuration )(
  1076. IStreamBufferMediaSeeking * This,
  1077. /* [out] */ LONGLONG *pDuration);
  1078. HRESULT ( STDMETHODCALLTYPE *GetStopPosition )(
  1079. IStreamBufferMediaSeeking * This,
  1080. /* [out] */ LONGLONG *pStop);
  1081. HRESULT ( STDMETHODCALLTYPE *GetCurrentPosition )(
  1082. IStreamBufferMediaSeeking * This,
  1083. /* [out] */ LONGLONG *pCurrent);
  1084. HRESULT ( STDMETHODCALLTYPE *ConvertTimeFormat )(
  1085. IStreamBufferMediaSeeking * This,
  1086. /* [out] */ LONGLONG *pTarget,
  1087. /* [in] */ const GUID *pTargetFormat,
  1088. /* [in] */ LONGLONG Source,
  1089. /* [in] */ const GUID *pSourceFormat);
  1090. HRESULT ( STDMETHODCALLTYPE *SetPositions )(
  1091. IStreamBufferMediaSeeking * This,
  1092. /* [out][in] */ LONGLONG *pCurrent,
  1093. /* [in] */ DWORD dwCurrentFlags,
  1094. /* [out][in] */ LONGLONG *pStop,
  1095. /* [in] */ DWORD dwStopFlags);
  1096. HRESULT ( STDMETHODCALLTYPE *GetPositions )(
  1097. IStreamBufferMediaSeeking * This,
  1098. /* [out] */ LONGLONG *pCurrent,
  1099. /* [out] */ LONGLONG *pStop);
  1100. HRESULT ( STDMETHODCALLTYPE *GetAvailable )(
  1101. IStreamBufferMediaSeeking * This,
  1102. /* [out] */ LONGLONG *pEarliest,
  1103. /* [out] */ LONGLONG *pLatest);
  1104. HRESULT ( STDMETHODCALLTYPE *SetRate )(
  1105. IStreamBufferMediaSeeking * This,
  1106. /* [in] */ double dRate);
  1107. HRESULT ( STDMETHODCALLTYPE *GetRate )(
  1108. IStreamBufferMediaSeeking * This,
  1109. /* [out] */ double *pdRate);
  1110. HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
  1111. IStreamBufferMediaSeeking * This,
  1112. /* [out] */ LONGLONG *pllPreroll);
  1113. END_INTERFACE
  1114. } IStreamBufferMediaSeekingVtbl;
  1115. interface IStreamBufferMediaSeeking
  1116. {
  1117. CONST_VTBL struct IStreamBufferMediaSeekingVtbl *lpVtbl;
  1118. };
  1119. #ifdef COBJMACROS
  1120. #define IStreamBufferMediaSeeking_QueryInterface(This,riid,ppvObject) \
  1121. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1122. #define IStreamBufferMediaSeeking_AddRef(This) \
  1123. (This)->lpVtbl -> AddRef(This)
  1124. #define IStreamBufferMediaSeeking_Release(This) \
  1125. (This)->lpVtbl -> Release(This)
  1126. #define IStreamBufferMediaSeeking_GetCapabilities(This,pCapabilities) \
  1127. (This)->lpVtbl -> GetCapabilities(This,pCapabilities)
  1128. #define IStreamBufferMediaSeeking_CheckCapabilities(This,pCapabilities) \
  1129. (This)->lpVtbl -> CheckCapabilities(This,pCapabilities)
  1130. #define IStreamBufferMediaSeeking_IsFormatSupported(This,pFormat) \
  1131. (This)->lpVtbl -> IsFormatSupported(This,pFormat)
  1132. #define IStreamBufferMediaSeeking_QueryPreferredFormat(This,pFormat) \
  1133. (This)->lpVtbl -> QueryPreferredFormat(This,pFormat)
  1134. #define IStreamBufferMediaSeeking_GetTimeFormat(This,pFormat) \
  1135. (This)->lpVtbl -> GetTimeFormat(This,pFormat)
  1136. #define IStreamBufferMediaSeeking_IsUsingTimeFormat(This,pFormat) \
  1137. (This)->lpVtbl -> IsUsingTimeFormat(This,pFormat)
  1138. #define IStreamBufferMediaSeeking_SetTimeFormat(This,pFormat) \
  1139. (This)->lpVtbl -> SetTimeFormat(This,pFormat)
  1140. #define IStreamBufferMediaSeeking_GetDuration(This,pDuration) \
  1141. (This)->lpVtbl -> GetDuration(This,pDuration)
  1142. #define IStreamBufferMediaSeeking_GetStopPosition(This,pStop) \
  1143. (This)->lpVtbl -> GetStopPosition(This,pStop)
  1144. #define IStreamBufferMediaSeeking_GetCurrentPosition(This,pCurrent) \
  1145. (This)->lpVtbl -> GetCurrentPosition(This,pCurrent)
  1146. #define IStreamBufferMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) \
  1147. (This)->lpVtbl -> ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
  1148. #define IStreamBufferMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) \
  1149. (This)->lpVtbl -> SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
  1150. #define IStreamBufferMediaSeeking_GetPositions(This,pCurrent,pStop) \
  1151. (This)->lpVtbl -> GetPositions(This,pCurrent,pStop)
  1152. #define IStreamBufferMediaSeeking_GetAvailable(This,pEarliest,pLatest) \
  1153. (This)->lpVtbl -> GetAvailable(This,pEarliest,pLatest)
  1154. #define IStreamBufferMediaSeeking_SetRate(This,dRate) \
  1155. (This)->lpVtbl -> SetRate(This,dRate)
  1156. #define IStreamBufferMediaSeeking_GetRate(This,pdRate) \
  1157. (This)->lpVtbl -> GetRate(This,pdRate)
  1158. #define IStreamBufferMediaSeeking_GetPreroll(This,pllPreroll) \
  1159. (This)->lpVtbl -> GetPreroll(This,pllPreroll)
  1160. #endif /* COBJMACROS */
  1161. #endif /* C style interface */
  1162. #endif /* __IStreamBufferMediaSeeking_INTERFACE_DEFINED__ */
  1163. /* interface __MIDL_itf_sbe_0419 */
  1164. /* [local] */
  1165. #define STREAMBUFFER_EC_BASE 0x0326
  1166. enum {
  1167. // timehole event
  1168. // param1 = timehole stream offset ms
  1169. // param1 = timehole size ms
  1170. STREAMBUFFER_EC_TIMEHOLE = STREAMBUFFER_EC_BASE,
  1171. STREAMBUFFER_EC_STALE_DATA_READ,
  1172. STREAMBUFFER_EC_STALE_FILE_DELETED,
  1173. STREAMBUFFER_EC_CONTENT_BECOMING_STALE,
  1174. STREAMBUFFER_EC_WRITE_FAILURE,
  1175. //
  1176. // unexpected read failure
  1177. // param1 = HRESULT failure
  1178. // param2 = undefined
  1179. STREAMBUFFER_EC_READ_FAILURE,
  1180. //
  1181. // playback rate change
  1182. // param1 = old_playback_rate * 10000 e.g. 2x is 20000
  1183. // param2 = new_playback_rate * 10000
  1184. STREAMBUFFER_EC_RATE_CHANGED,
  1185. } ;
  1186. typedef enum {
  1187. AM_RATE_UseRateVersion = AM_RATE_Step + 1,
  1188. AM_RATE_QueryFullFrameRate,
  1189. AM_RATE_QueryLastRateSegPTS
  1190. } AM_PROPERTY_TS_RATE_CHANGE_11 ;
  1191. typedef struct {
  1192. LONG lMaxForwardFullFrame ; // rate * 10000
  1193. LONG lMaxReverseFullFrame ; // rate * 10000
  1194. } AM_QueryRate ;
  1195. extern RPC_IF_HANDLE __MIDL_itf_sbe_0419_v0_0_c_ifspec;
  1196. extern RPC_IF_HANDLE __MIDL_itf_sbe_0419_v0_0_s_ifspec;
  1197. /* Additional Prototypes for ALL interfaces */
  1198. /* end of Additional Prototypes */
  1199. #ifdef __cplusplus
  1200. }
  1201. #endif
  1202. #endif