Change REFIID to IID* for stack declarations to avoid initializers
[wine/wine-gecko.git] / include / mmstream.h
blob91e86c3a3c30cf36e37f1f107638ecd8768c9ae1
1 /*** Autogenerated by WIDL 0.1 from mmstream.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_MMSTREAM_H
6 #define __WIDL_MMSTREAM_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <unknwn.h>
11 #define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)
12 #define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)
13 #define MS_S_PENDING MS_SUCCESS_CODE(1)
14 #define MS_S_NOUPDATE MS_SUCCESS_CODE(2)
15 #define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)
16 #define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)
17 #define MS_E_PURPOSEID MS_ERROR_CODE(2)
18 #define MS_E_NOSTREAM MS_ERROR_CODE(3)
19 #define MS_E_NOSEEKING MS_ERROR_CODE(4)
20 #define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)
21 #define MS_E_BUSY MS_ERROR_CODE(6)
22 #define MS_E_NOTINIT MS_ERROR_CODE(7)
23 #define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)
24 #define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)
25 #define MS_E_NOTRUNNING MS_ERROR_CODE(10)
26 DEFINE_GUID(MSPID_PrimaryVideo, 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
27 DEFINE_GUID(MSPID_PrimaryAudio, 0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
28 #if 0
29 typedef void *PAPCFUNC;
31 #endif
32 typedef LONGLONG STREAM_TIME;
34 typedef GUID MSPID;
36 typedef REFGUID REFMSPID;
38 typedef enum {
39 STREAMTYPE_READ = 0,
40 STREAMTYPE_WRITE = 1,
41 STREAMTYPE_TRANSFORM = 2
42 } STREAM_TYPE;
44 typedef enum {
45 STREAMSTATE_STOP = 0,
46 STREAMSTATE_RUN = 1
47 } STREAM_STATE;
49 typedef enum {
50 COMPSTAT_NOUPDATEOK = 0x1,
51 COMPSTAT_WAIT = 0x2,
52 COMPSTAT_ABORT = 0x4
53 } COMPLETION_STATUS_FLAGS;
55 enum {
56 MMSSF_HASCLOCK = 0x1,
57 MMSSF_SUPPORTSEEK = 0x2,
58 MMSSF_ASYNCHRONOUS = 0x4
61 enum {
62 SSUPDATE_ASYNC = 0x1,
63 SSUPDATE_CONTINUOUS = 0x2
66 #ifndef __IMultiMediaStream_FWD_DEFINED__
67 #define __IMultiMediaStream_FWD_DEFINED__
68 typedef struct IMultiMediaStream IMultiMediaStream;
69 #endif
71 #ifndef __IMediaStream_FWD_DEFINED__
72 #define __IMediaStream_FWD_DEFINED__
73 typedef struct IMediaStream IMediaStream;
74 #endif
76 #ifndef __IStreamSample_FWD_DEFINED__
77 #define __IStreamSample_FWD_DEFINED__
78 typedef struct IStreamSample IStreamSample;
79 #endif
81 /*****************************************************************************
82 * IMultiMediaStream interface
84 #ifndef __IMultiMediaStream_INTERFACE_DEFINED__
85 #define __IMultiMediaStream_INTERFACE_DEFINED__
87 DEFINE_GUID(IID_IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
88 #if defined(__cplusplus) && !defined(CINTERFACE)
89 struct IMultiMediaStream : public IUnknown
91 virtual HRESULT STDMETHODCALLTYPE GetInformation(
92 char* pdwFlags,
93 STREAM_TYPE* pStreamType) = 0;
95 virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
96 REFMSPID idPurpose,
97 IMediaStream** ppMediaStream) = 0;
99 virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
100 long Index,
101 IMediaStream** ppMediaStream) = 0;
103 virtual HRESULT STDMETHODCALLTYPE GetState(
104 STREAM_STATE* pCurrentState) = 0;
106 virtual HRESULT STDMETHODCALLTYPE SetState(
107 STREAM_STATE NewState) = 0;
109 virtual HRESULT STDMETHODCALLTYPE GetTime(
110 STREAM_TIME* pCurrentTime) = 0;
112 virtual HRESULT STDMETHODCALLTYPE GetDuration(
113 STREAM_TIME* pDuration) = 0;
115 virtual HRESULT STDMETHODCALLTYPE Seek(
116 STREAM_TIME SeekTime) = 0;
118 virtual HRESULT STDMETHODCALLTYPE GetEndOfStreamEventHandle(
119 HANDLE* phEOS) = 0;
122 #else
123 typedef struct IMultiMediaStreamVtbl IMultiMediaStreamVtbl;
124 struct IMultiMediaStream {
125 const IMultiMediaStreamVtbl* lpVtbl;
127 struct IMultiMediaStreamVtbl {
128 ICOM_MSVTABLE_COMPAT_FIELDS
130 /*** IUnknown methods ***/
131 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
132 IMultiMediaStream* This,
133 REFIID riid,
134 void** ppvObject);
136 ULONG (STDMETHODCALLTYPE *AddRef)(
137 IMultiMediaStream* This);
139 ULONG (STDMETHODCALLTYPE *Release)(
140 IMultiMediaStream* This);
142 /*** IMultiMediaStream methods ***/
143 HRESULT (STDMETHODCALLTYPE *GetInformation)(
144 IMultiMediaStream* This,
145 char* pdwFlags,
146 STREAM_TYPE* pStreamType);
148 HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
149 IMultiMediaStream* This,
150 REFMSPID idPurpose,
151 IMediaStream** ppMediaStream);
153 HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
154 IMultiMediaStream* This,
155 long Index,
156 IMediaStream** ppMediaStream);
158 HRESULT (STDMETHODCALLTYPE *GetState)(
159 IMultiMediaStream* This,
160 STREAM_STATE* pCurrentState);
162 HRESULT (STDMETHODCALLTYPE *SetState)(
163 IMultiMediaStream* This,
164 STREAM_STATE NewState);
166 HRESULT (STDMETHODCALLTYPE *GetTime)(
167 IMultiMediaStream* This,
168 STREAM_TIME* pCurrentTime);
170 HRESULT (STDMETHODCALLTYPE *GetDuration)(
171 IMultiMediaStream* This,
172 STREAM_TIME* pDuration);
174 HRESULT (STDMETHODCALLTYPE *Seek)(
175 IMultiMediaStream* This,
176 STREAM_TIME SeekTime);
178 HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)(
179 IMultiMediaStream* This,
180 HANDLE* phEOS);
184 /*** IUnknown methods ***/
185 #define IMultiMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
186 #define IMultiMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
187 #define IMultiMediaStream_Release(p) (p)->lpVtbl->Release(p)
188 /*** IMultiMediaStream methods ***/
189 #define IMultiMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
190 #define IMultiMediaStream_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
191 #define IMultiMediaStream_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
192 #define IMultiMediaStream_GetState(p,a) (p)->lpVtbl->GetState(p,a)
193 #define IMultiMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
194 #define IMultiMediaStream_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
195 #define IMultiMediaStream_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
196 #define IMultiMediaStream_Seek(p,a) (p)->lpVtbl->Seek(p,a)
197 #define IMultiMediaStream_GetEndOfStreamEventHandle(p,a) (p)->lpVtbl->GetEndOfStreamEventHandle(p,a)
199 #endif
201 #define IMultiMediaStream_METHODS \
202 ICOM_MSVTABLE_COMPAT_FIELDS \
203 /*** IUnknown methods ***/ \
204 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
205 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
206 STDMETHOD_(ULONG,Release)(THIS) PURE; \
207 /*** IMultiMediaStream methods ***/ \
208 STDMETHOD_(HRESULT,GetInformation)(THIS_ char* pdwFlags, STREAM_TYPE* pStreamType) PURE; \
209 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
210 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
211 STDMETHOD_(HRESULT,GetState)(THIS_ STREAM_STATE* pCurrentState) PURE; \
212 STDMETHOD_(HRESULT,SetState)(THIS_ STREAM_STATE NewState) PURE; \
213 STDMETHOD_(HRESULT,GetTime)(THIS_ STREAM_TIME* pCurrentTime) PURE; \
214 STDMETHOD_(HRESULT,GetDuration)(THIS_ STREAM_TIME* pDuration) PURE; \
215 STDMETHOD_(HRESULT,Seek)(THIS_ STREAM_TIME SeekTime) PURE; \
216 STDMETHOD_(HRESULT,GetEndOfStreamEventHandle)(THIS_ HANDLE* phEOS) PURE;
218 HRESULT CALLBACK IMultiMediaStream_GetInformation_Proxy(
219 IMultiMediaStream* This,
220 char* pdwFlags,
221 STREAM_TYPE* pStreamType);
222 void __RPC_STUB IMultiMediaStream_GetInformation_Stub(
223 struct IRpcStubBuffer* This,
224 struct IRpcChannelBuffer* pRpcChannelBuffer,
225 PRPC_MESSAGE pRpcMessage,
226 DWORD* pdwStubPhase);
227 HRESULT CALLBACK IMultiMediaStream_GetMediaStream_Proxy(
228 IMultiMediaStream* This,
229 REFMSPID idPurpose,
230 IMediaStream** ppMediaStream);
231 void __RPC_STUB IMultiMediaStream_GetMediaStream_Stub(
232 struct IRpcStubBuffer* This,
233 struct IRpcChannelBuffer* pRpcChannelBuffer,
234 PRPC_MESSAGE pRpcMessage,
235 DWORD* pdwStubPhase);
236 HRESULT CALLBACK IMultiMediaStream_EnumMediaStreams_Proxy(
237 IMultiMediaStream* This,
238 long Index,
239 IMediaStream** ppMediaStream);
240 void __RPC_STUB IMultiMediaStream_EnumMediaStreams_Stub(
241 struct IRpcStubBuffer* This,
242 struct IRpcChannelBuffer* pRpcChannelBuffer,
243 PRPC_MESSAGE pRpcMessage,
244 DWORD* pdwStubPhase);
245 HRESULT CALLBACK IMultiMediaStream_GetState_Proxy(
246 IMultiMediaStream* This,
247 STREAM_STATE* pCurrentState);
248 void __RPC_STUB IMultiMediaStream_GetState_Stub(
249 struct IRpcStubBuffer* This,
250 struct IRpcChannelBuffer* pRpcChannelBuffer,
251 PRPC_MESSAGE pRpcMessage,
252 DWORD* pdwStubPhase);
253 HRESULT CALLBACK IMultiMediaStream_SetState_Proxy(
254 IMultiMediaStream* This,
255 STREAM_STATE NewState);
256 void __RPC_STUB IMultiMediaStream_SetState_Stub(
257 struct IRpcStubBuffer* This,
258 struct IRpcChannelBuffer* pRpcChannelBuffer,
259 PRPC_MESSAGE pRpcMessage,
260 DWORD* pdwStubPhase);
261 HRESULT CALLBACK IMultiMediaStream_GetTime_Proxy(
262 IMultiMediaStream* This,
263 STREAM_TIME* pCurrentTime);
264 void __RPC_STUB IMultiMediaStream_GetTime_Stub(
265 struct IRpcStubBuffer* This,
266 struct IRpcChannelBuffer* pRpcChannelBuffer,
267 PRPC_MESSAGE pRpcMessage,
268 DWORD* pdwStubPhase);
269 HRESULT CALLBACK IMultiMediaStream_GetDuration_Proxy(
270 IMultiMediaStream* This,
271 STREAM_TIME* pDuration);
272 void __RPC_STUB IMultiMediaStream_GetDuration_Stub(
273 struct IRpcStubBuffer* This,
274 struct IRpcChannelBuffer* pRpcChannelBuffer,
275 PRPC_MESSAGE pRpcMessage,
276 DWORD* pdwStubPhase);
277 HRESULT CALLBACK IMultiMediaStream_Seek_Proxy(
278 IMultiMediaStream* This,
279 STREAM_TIME SeekTime);
280 void __RPC_STUB IMultiMediaStream_Seek_Stub(
281 struct IRpcStubBuffer* This,
282 struct IRpcChannelBuffer* pRpcChannelBuffer,
283 PRPC_MESSAGE pRpcMessage,
284 DWORD* pdwStubPhase);
285 HRESULT CALLBACK IMultiMediaStream_GetEndOfStreamEventHandle_Proxy(
286 IMultiMediaStream* This,
287 HANDLE* phEOS);
288 void __RPC_STUB IMultiMediaStream_GetEndOfStreamEventHandle_Stub(
289 struct IRpcStubBuffer* This,
290 struct IRpcChannelBuffer* pRpcChannelBuffer,
291 PRPC_MESSAGE pRpcMessage,
292 DWORD* pdwStubPhase);
294 #endif /* __IMultiMediaStream_INTERFACE_DEFINED__ */
296 /*****************************************************************************
297 * IMediaStream interface
299 #ifndef __IMediaStream_INTERFACE_DEFINED__
300 #define __IMediaStream_INTERFACE_DEFINED__
302 DEFINE_GUID(IID_IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
303 #if defined(__cplusplus) && !defined(CINTERFACE)
304 struct IMediaStream : public IUnknown
306 virtual HRESULT STDMETHODCALLTYPE GetMultiMediaStream(
307 IMultiMediaStream** ppMultiMediaStream) = 0;
309 virtual HRESULT STDMETHODCALLTYPE GetInformation(
310 MSPID* pPurposeId,
311 STREAM_TYPE* pType) = 0;
313 virtual HRESULT STDMETHODCALLTYPE SetSameFormat(
314 IMediaStream* pStreamThatHasDesiredFormat,
315 DWORD dwFlags) = 0;
317 virtual HRESULT STDMETHODCALLTYPE AllocateSample(
318 DWORD dwFlags,
319 IStreamSample** ppSample) = 0;
321 virtual HRESULT STDMETHODCALLTYPE CreateSharedSample(
322 IStreamSample* pExistingSample,
323 DWORD dwFlags,
324 IStreamSample** ppNewSample) = 0;
326 virtual HRESULT STDMETHODCALLTYPE SendEndOfStream(
327 DWORD dwFlags) = 0;
330 #else
331 typedef struct IMediaStreamVtbl IMediaStreamVtbl;
332 struct IMediaStream {
333 const IMediaStreamVtbl* lpVtbl;
335 struct IMediaStreamVtbl {
336 ICOM_MSVTABLE_COMPAT_FIELDS
338 /*** IUnknown methods ***/
339 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
340 IMediaStream* This,
341 REFIID riid,
342 void** ppvObject);
344 ULONG (STDMETHODCALLTYPE *AddRef)(
345 IMediaStream* This);
347 ULONG (STDMETHODCALLTYPE *Release)(
348 IMediaStream* This);
350 /*** IMediaStream methods ***/
351 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
352 IMediaStream* This,
353 IMultiMediaStream** ppMultiMediaStream);
355 HRESULT (STDMETHODCALLTYPE *GetInformation)(
356 IMediaStream* This,
357 MSPID* pPurposeId,
358 STREAM_TYPE* pType);
360 HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
361 IMediaStream* This,
362 IMediaStream* pStreamThatHasDesiredFormat,
363 DWORD dwFlags);
365 HRESULT (STDMETHODCALLTYPE *AllocateSample)(
366 IMediaStream* This,
367 DWORD dwFlags,
368 IStreamSample** ppSample);
370 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
371 IMediaStream* This,
372 IStreamSample* pExistingSample,
373 DWORD dwFlags,
374 IStreamSample** ppNewSample);
376 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
377 IMediaStream* This,
378 DWORD dwFlags);
382 /*** IUnknown methods ***/
383 #define IMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
384 #define IMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
385 #define IMediaStream_Release(p) (p)->lpVtbl->Release(p)
386 /*** IMediaStream methods ***/
387 #define IMediaStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
388 #define IMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
389 #define IMediaStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
390 #define IMediaStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
391 #define IMediaStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
392 #define IMediaStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
394 #endif
396 #define IMediaStream_METHODS \
397 ICOM_MSVTABLE_COMPAT_FIELDS \
398 /*** IUnknown methods ***/ \
399 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
400 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
401 STDMETHOD_(ULONG,Release)(THIS) PURE; \
402 /*** IMediaStream methods ***/ \
403 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
404 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
405 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
406 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
407 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
408 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE;
410 HRESULT CALLBACK IMediaStream_GetMultiMediaStream_Proxy(
411 IMediaStream* This,
412 IMultiMediaStream** ppMultiMediaStream);
413 void __RPC_STUB IMediaStream_GetMultiMediaStream_Stub(
414 struct IRpcStubBuffer* This,
415 struct IRpcChannelBuffer* pRpcChannelBuffer,
416 PRPC_MESSAGE pRpcMessage,
417 DWORD* pdwStubPhase);
418 HRESULT CALLBACK IMediaStream_GetInformation_Proxy(
419 IMediaStream* This,
420 MSPID* pPurposeId,
421 STREAM_TYPE* pType);
422 void __RPC_STUB IMediaStream_GetInformation_Stub(
423 struct IRpcStubBuffer* This,
424 struct IRpcChannelBuffer* pRpcChannelBuffer,
425 PRPC_MESSAGE pRpcMessage,
426 DWORD* pdwStubPhase);
427 HRESULT CALLBACK IMediaStream_SetSameFormat_Proxy(
428 IMediaStream* This,
429 IMediaStream* pStreamThatHasDesiredFormat,
430 DWORD dwFlags);
431 void __RPC_STUB IMediaStream_SetSameFormat_Stub(
432 struct IRpcStubBuffer* This,
433 struct IRpcChannelBuffer* pRpcChannelBuffer,
434 PRPC_MESSAGE pRpcMessage,
435 DWORD* pdwStubPhase);
436 HRESULT CALLBACK IMediaStream_AllocateSample_Proxy(
437 IMediaStream* This,
438 DWORD dwFlags,
439 IStreamSample** ppSample);
440 void __RPC_STUB IMediaStream_AllocateSample_Stub(
441 struct IRpcStubBuffer* This,
442 struct IRpcChannelBuffer* pRpcChannelBuffer,
443 PRPC_MESSAGE pRpcMessage,
444 DWORD* pdwStubPhase);
445 HRESULT CALLBACK IMediaStream_CreateSharedSample_Proxy(
446 IMediaStream* This,
447 IStreamSample* pExistingSample,
448 DWORD dwFlags,
449 IStreamSample** ppNewSample);
450 void __RPC_STUB IMediaStream_CreateSharedSample_Stub(
451 struct IRpcStubBuffer* This,
452 struct IRpcChannelBuffer* pRpcChannelBuffer,
453 PRPC_MESSAGE pRpcMessage,
454 DWORD* pdwStubPhase);
455 HRESULT CALLBACK IMediaStream_SendEndOfStream_Proxy(
456 IMediaStream* This,
457 DWORD dwFlags);
458 void __RPC_STUB IMediaStream_SendEndOfStream_Stub(
459 struct IRpcStubBuffer* This,
460 struct IRpcChannelBuffer* pRpcChannelBuffer,
461 PRPC_MESSAGE pRpcMessage,
462 DWORD* pdwStubPhase);
464 #endif /* __IMediaStream_INTERFACE_DEFINED__ */
466 /*****************************************************************************
467 * IStreamSample interface
469 #ifndef __IStreamSample_INTERFACE_DEFINED__
470 #define __IStreamSample_INTERFACE_DEFINED__
472 DEFINE_GUID(IID_IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
473 #if defined(__cplusplus) && !defined(CINTERFACE)
474 struct IStreamSample : public IUnknown
476 virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
477 IMediaStream** ppMediaStream) = 0;
479 virtual HRESULT STDMETHODCALLTYPE GetSampleTimes(
480 STREAM_TIME* pStartTime,
481 STREAM_TIME* pEndTime,
482 STREAM_TIME* pCurrentTime) = 0;
484 virtual HRESULT STDMETHODCALLTYPE SetSampleTimes(
485 const STREAM_TIME* pStartTime,
486 const STREAM_TIME* pEndTime) = 0;
488 virtual HRESULT STDMETHODCALLTYPE Update(
489 DWORD dwFlags,
490 HANDLE hEvent,
491 PAPCFUNC pfnAPC,
492 DWORD dwAPCData) = 0;
494 virtual HRESULT STDMETHODCALLTYPE CompletionStatus(
495 DWORD dwFlags,
496 DWORD dwMilliseconds) = 0;
499 #else
500 typedef struct IStreamSampleVtbl IStreamSampleVtbl;
501 struct IStreamSample {
502 const IStreamSampleVtbl* lpVtbl;
504 struct IStreamSampleVtbl {
505 ICOM_MSVTABLE_COMPAT_FIELDS
507 /*** IUnknown methods ***/
508 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
509 IStreamSample* This,
510 REFIID riid,
511 void** ppvObject);
513 ULONG (STDMETHODCALLTYPE *AddRef)(
514 IStreamSample* This);
516 ULONG (STDMETHODCALLTYPE *Release)(
517 IStreamSample* This);
519 /*** IStreamSample methods ***/
520 HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
521 IStreamSample* This,
522 IMediaStream** ppMediaStream);
524 HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
525 IStreamSample* This,
526 STREAM_TIME* pStartTime,
527 STREAM_TIME* pEndTime,
528 STREAM_TIME* pCurrentTime);
530 HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
531 IStreamSample* This,
532 const STREAM_TIME* pStartTime,
533 const STREAM_TIME* pEndTime);
535 HRESULT (STDMETHODCALLTYPE *Update)(
536 IStreamSample* This,
537 DWORD dwFlags,
538 HANDLE hEvent,
539 PAPCFUNC pfnAPC,
540 DWORD dwAPCData);
542 HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
543 IStreamSample* This,
544 DWORD dwFlags,
545 DWORD dwMilliseconds);
549 /*** IUnknown methods ***/
550 #define IStreamSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
551 #define IStreamSample_AddRef(p) (p)->lpVtbl->AddRef(p)
552 #define IStreamSample_Release(p) (p)->lpVtbl->Release(p)
553 /*** IStreamSample methods ***/
554 #define IStreamSample_GetMediaStream(p,a) (p)->lpVtbl->GetMediaStream(p,a)
555 #define IStreamSample_GetSampleTimes(p,a,b,c) (p)->lpVtbl->GetSampleTimes(p,a,b,c)
556 #define IStreamSample_SetSampleTimes(p,a,b) (p)->lpVtbl->SetSampleTimes(p,a,b)
557 #define IStreamSample_Update(p,a,b,c,d) (p)->lpVtbl->Update(p,a,b,c,d)
558 #define IStreamSample_CompletionStatus(p,a,b) (p)->lpVtbl->CompletionStatus(p,a,b)
560 #endif
562 #define IStreamSample_METHODS \
563 ICOM_MSVTABLE_COMPAT_FIELDS \
564 /*** IUnknown methods ***/ \
565 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
566 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
567 STDMETHOD_(ULONG,Release)(THIS) PURE; \
568 /*** IStreamSample methods ***/ \
569 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ IMediaStream** ppMediaStream) PURE; \
570 STDMETHOD_(HRESULT,GetSampleTimes)(THIS_ STREAM_TIME* pStartTime, STREAM_TIME* pEndTime, STREAM_TIME* pCurrentTime) PURE; \
571 STDMETHOD_(HRESULT,SetSampleTimes)(THIS_ const STREAM_TIME* pStartTime, const STREAM_TIME* pEndTime) PURE; \
572 STDMETHOD_(HRESULT,Update)(THIS_ DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData) PURE; \
573 STDMETHOD_(HRESULT,CompletionStatus)(THIS_ DWORD dwFlags, DWORD dwMilliseconds) PURE;
575 HRESULT CALLBACK IStreamSample_GetMediaStream_Proxy(
576 IStreamSample* This,
577 IMediaStream** ppMediaStream);
578 void __RPC_STUB IStreamSample_GetMediaStream_Stub(
579 struct IRpcStubBuffer* This,
580 struct IRpcChannelBuffer* pRpcChannelBuffer,
581 PRPC_MESSAGE pRpcMessage,
582 DWORD* pdwStubPhase);
583 HRESULT CALLBACK IStreamSample_GetSampleTimes_Proxy(
584 IStreamSample* This,
585 STREAM_TIME* pStartTime,
586 STREAM_TIME* pEndTime,
587 STREAM_TIME* pCurrentTime);
588 void __RPC_STUB IStreamSample_GetSampleTimes_Stub(
589 struct IRpcStubBuffer* This,
590 struct IRpcChannelBuffer* pRpcChannelBuffer,
591 PRPC_MESSAGE pRpcMessage,
592 DWORD* pdwStubPhase);
593 HRESULT CALLBACK IStreamSample_SetSampleTimes_Proxy(
594 IStreamSample* This,
595 const STREAM_TIME* pStartTime,
596 const STREAM_TIME* pEndTime);
597 void __RPC_STUB IStreamSample_SetSampleTimes_Stub(
598 struct IRpcStubBuffer* This,
599 struct IRpcChannelBuffer* pRpcChannelBuffer,
600 PRPC_MESSAGE pRpcMessage,
601 DWORD* pdwStubPhase);
602 HRESULT CALLBACK IStreamSample_Update_Proxy(
603 IStreamSample* This,
604 DWORD dwFlags,
605 HANDLE hEvent,
606 PAPCFUNC pfnAPC,
607 DWORD dwAPCData);
608 void __RPC_STUB IStreamSample_Update_Stub(
609 struct IRpcStubBuffer* This,
610 struct IRpcChannelBuffer* pRpcChannelBuffer,
611 PRPC_MESSAGE pRpcMessage,
612 DWORD* pdwStubPhase);
613 HRESULT CALLBACK IStreamSample_CompletionStatus_Proxy(
614 IStreamSample* This,
615 DWORD dwFlags,
616 DWORD dwMilliseconds);
617 void __RPC_STUB IStreamSample_CompletionStatus_Stub(
618 struct IRpcStubBuffer* This,
619 struct IRpcChannelBuffer* pRpcChannelBuffer,
620 PRPC_MESSAGE pRpcMessage,
621 DWORD* pdwStubPhase);
623 #endif /* __IStreamSample_INTERFACE_DEFINED__ */
625 #ifdef __cplusplus
627 #endif
628 #endif /* __WIDL_MMSTREAM_H */