- more FIXME -> TRACE
[wine.git] / include / amstream.h
blobb01ec3d1d868175431335aa174e0074b31e56f12
1 /*** Autogenerated by WIDL 0.1 from amstream.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_AMSTREAM_H
6 #define __WIDL_AMSTREAM_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <unknwn.h>
11 #include <mmstream.h>
12 #include <strmif.h>
13 #include <ddraw.h>
14 #include <mmsystem.h>
15 #include <mmstream.h>
16 #include <ddstream.h>
17 #include <austream.h>
18 #if 0
19 #ifndef __IDirectDraw_FWD_DEFINED__
20 #define __IDirectDraw_FWD_DEFINED__
21 typedef struct IDirectDraw IDirectDraw;
22 #endif
24 #ifndef __IDirectDrawSurface_FWD_DEFINED__
25 #define __IDirectDrawSurface_FWD_DEFINED__
26 typedef struct IDirectDrawSurface IDirectDrawSurface;
27 #endif
29 #endif
30 #ifndef __IAMMultiMediaStream_FWD_DEFINED__
31 #define __IAMMultiMediaStream_FWD_DEFINED__
32 typedef struct IAMMultiMediaStream IAMMultiMediaStream;
33 #endif
35 #ifndef __IAMMediaStream_FWD_DEFINED__
36 #define __IAMMediaStream_FWD_DEFINED__
37 typedef struct IAMMediaStream IAMMediaStream;
38 #endif
40 #ifndef __IMediaStreamFilter_FWD_DEFINED__
41 #define __IMediaStreamFilter_FWD_DEFINED__
42 typedef struct IMediaStreamFilter IMediaStreamFilter;
43 #endif
45 #ifndef __IAMMediaTypeStream_FWD_DEFINED__
46 #define __IAMMediaTypeStream_FWD_DEFINED__
47 typedef struct IAMMediaTypeStream IAMMediaTypeStream;
48 #endif
50 #ifndef __IAMMediaTypeSample_FWD_DEFINED__
51 #define __IAMMediaTypeSample_FWD_DEFINED__
52 typedef struct IAMMediaTypeSample IAMMediaTypeSample;
53 #endif
55 enum {
56 AMMSF_NOGRAPHTHREAD = 0x1
59 enum {
60 AMMSF_ADDDEFAULTRENDERER = 0x1,
61 AMMSF_CREATEPEER = 0x2
64 enum {
65 AMMSF_RENDERTYPEMASK = 0x3,
66 AMMSF_RENDERTOEXISTING = 0x0,
67 AMMSF_RENDERALLSTREAMS = 0x1,
68 AMMSF_NORENDER = 0x2,
69 AMMSF_NOCLOCK = 0x4,
70 AMMSF_RUN = 0x8
73 typedef enum {
74 Disabled = 0,
75 ReadData = 1,
76 RenderData = 2
77 } OUTPUT_STATE;
79 /*****************************************************************************
80 * IAMMultiMediaStream interface
82 #ifndef __IAMMultiMediaStream_INTERFACE_DEFINED__
83 #define __IAMMultiMediaStream_INTERFACE_DEFINED__
85 DEFINE_GUID(IID_IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
86 #if defined(__cplusplus) && !defined(CINTERFACE)
87 struct IAMMultiMediaStream : public IMultiMediaStream
89 virtual HRESULT STDMETHODCALLTYPE Initialize(
90 STREAM_TYPE StreamType,
91 DWORD dwFlags,
92 IGraphBuilder* pFilterGraph) = 0;
94 virtual HRESULT STDMETHODCALLTYPE GetFilterGraph(
95 IGraphBuilder** ppGraphBuilder) = 0;
97 virtual HRESULT STDMETHODCALLTYPE GetFilter(
98 IMediaStreamFilter** ppFilter) = 0;
100 virtual HRESULT STDMETHODCALLTYPE AddMediaStream(
101 IUnknown* pStreamObject,
102 const MSPID* PurposeId,
103 DWORD dwFlags,
104 IMediaStream** ppNewStream) = 0;
106 virtual HRESULT STDMETHODCALLTYPE OpenFile(
107 LPCWSTR pszFileName,
108 DWORD dwFlags) = 0;
110 virtual HRESULT STDMETHODCALLTYPE OpenMoniker(
111 IBindCtx* pCtx,
112 IMoniker* pMoniker,
113 DWORD dwFlags) = 0;
115 virtual HRESULT STDMETHODCALLTYPE Render(
116 DWORD dwFlags) = 0;
119 #else
120 typedef struct IAMMultiMediaStreamVtbl IAMMultiMediaStreamVtbl;
121 struct IAMMultiMediaStream {
122 const IAMMultiMediaStreamVtbl* lpVtbl;
124 struct IAMMultiMediaStreamVtbl {
125 ICOM_MSVTABLE_COMPAT_FIELDS
127 /*** IUnknown methods ***/
128 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
129 IAMMultiMediaStream* This,
130 REFIID riid,
131 void** ppvObject);
133 ULONG (STDMETHODCALLTYPE *AddRef)(
134 IAMMultiMediaStream* This);
136 ULONG (STDMETHODCALLTYPE *Release)(
137 IAMMultiMediaStream* This);
139 /*** IMultiMediaStream methods ***/
140 HRESULT (STDMETHODCALLTYPE *GetInformation)(
141 IAMMultiMediaStream* This,
142 char* pdwFlags,
143 STREAM_TYPE* pStreamType);
145 HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
146 IAMMultiMediaStream* This,
147 REFMSPID idPurpose,
148 IMediaStream** ppMediaStream);
150 HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
151 IAMMultiMediaStream* This,
152 long Index,
153 IMediaStream** ppMediaStream);
155 HRESULT (STDMETHODCALLTYPE *GetState)(
156 IAMMultiMediaStream* This,
157 STREAM_STATE* pCurrentState);
159 HRESULT (STDMETHODCALLTYPE *SetState)(
160 IAMMultiMediaStream* This,
161 STREAM_STATE NewState);
163 HRESULT (STDMETHODCALLTYPE *GetTime)(
164 IAMMultiMediaStream* This,
165 STREAM_TIME* pCurrentTime);
167 HRESULT (STDMETHODCALLTYPE *GetDuration)(
168 IAMMultiMediaStream* This,
169 STREAM_TIME* pDuration);
171 HRESULT (STDMETHODCALLTYPE *Seek)(
172 IAMMultiMediaStream* This,
173 STREAM_TIME SeekTime);
175 HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)(
176 IAMMultiMediaStream* This,
177 HANDLE* phEOS);
179 /*** IAMMultiMediaStream methods ***/
180 HRESULT (STDMETHODCALLTYPE *Initialize)(
181 IAMMultiMediaStream* This,
182 STREAM_TYPE StreamType,
183 DWORD dwFlags,
184 IGraphBuilder* pFilterGraph);
186 HRESULT (STDMETHODCALLTYPE *GetFilterGraph)(
187 IAMMultiMediaStream* This,
188 IGraphBuilder** ppGraphBuilder);
190 HRESULT (STDMETHODCALLTYPE *GetFilter)(
191 IAMMultiMediaStream* This,
192 IMediaStreamFilter** ppFilter);
194 HRESULT (STDMETHODCALLTYPE *AddMediaStream)(
195 IAMMultiMediaStream* This,
196 IUnknown* pStreamObject,
197 const MSPID* PurposeId,
198 DWORD dwFlags,
199 IMediaStream** ppNewStream);
201 HRESULT (STDMETHODCALLTYPE *OpenFile)(
202 IAMMultiMediaStream* This,
203 LPCWSTR pszFileName,
204 DWORD dwFlags);
206 HRESULT (STDMETHODCALLTYPE *OpenMoniker)(
207 IAMMultiMediaStream* This,
208 IBindCtx* pCtx,
209 IMoniker* pMoniker,
210 DWORD dwFlags);
212 HRESULT (STDMETHODCALLTYPE *Render)(
213 IAMMultiMediaStream* This,
214 DWORD dwFlags);
218 /*** IUnknown methods ***/
219 #define IAMMultiMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
220 #define IAMMultiMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
221 #define IAMMultiMediaStream_Release(p) (p)->lpVtbl->Release(p)
222 /*** IMultiMediaStream methods ***/
223 #define IAMMultiMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
224 #define IAMMultiMediaStream_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
225 #define IAMMultiMediaStream_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
226 #define IAMMultiMediaStream_GetState(p,a) (p)->lpVtbl->GetState(p,a)
227 #define IAMMultiMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
228 #define IAMMultiMediaStream_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
229 #define IAMMultiMediaStream_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
230 #define IAMMultiMediaStream_Seek(p,a) (p)->lpVtbl->Seek(p,a)
231 #define IAMMultiMediaStream_GetEndOfStreamEventHandle(p,a) (p)->lpVtbl->GetEndOfStreamEventHandle(p,a)
232 /*** IAMMultiMediaStream methods ***/
233 #define IAMMultiMediaStream_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
234 #define IAMMultiMediaStream_GetFilterGraph(p,a) (p)->lpVtbl->GetFilterGraph(p,a)
235 #define IAMMultiMediaStream_GetFilter(p,a) (p)->lpVtbl->GetFilter(p,a)
236 #define IAMMultiMediaStream_AddMediaStream(p,a,b,c,d) (p)->lpVtbl->AddMediaStream(p,a,b,c,d)
237 #define IAMMultiMediaStream_OpenFile(p,a,b) (p)->lpVtbl->OpenFile(p,a,b)
238 #define IAMMultiMediaStream_OpenMoniker(p,a,b,c) (p)->lpVtbl->OpenMoniker(p,a,b,c)
239 #define IAMMultiMediaStream_Render(p,a) (p)->lpVtbl->Render(p,a)
241 #endif
243 #define IAMMultiMediaStream_METHODS \
244 ICOM_MSVTABLE_COMPAT_FIELDS \
245 /*** IUnknown methods ***/ \
246 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
247 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
248 STDMETHOD_(ULONG,Release)(THIS) PURE; \
249 /*** IMultiMediaStream methods ***/ \
250 STDMETHOD_(HRESULT,GetInformation)(THIS_ char* pdwFlags, STREAM_TYPE* pStreamType) PURE; \
251 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
252 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
253 STDMETHOD_(HRESULT,GetState)(THIS_ STREAM_STATE* pCurrentState) PURE; \
254 STDMETHOD_(HRESULT,SetState)(THIS_ STREAM_STATE NewState) PURE; \
255 STDMETHOD_(HRESULT,GetTime)(THIS_ STREAM_TIME* pCurrentTime) PURE; \
256 STDMETHOD_(HRESULT,GetDuration)(THIS_ STREAM_TIME* pDuration) PURE; \
257 STDMETHOD_(HRESULT,Seek)(THIS_ STREAM_TIME SeekTime) PURE; \
258 STDMETHOD_(HRESULT,GetEndOfStreamEventHandle)(THIS_ HANDLE* phEOS) PURE; \
259 /*** IAMMultiMediaStream methods ***/ \
260 STDMETHOD_(HRESULT,Initialize)(THIS_ STREAM_TYPE StreamType, DWORD dwFlags, IGraphBuilder* pFilterGraph) PURE; \
261 STDMETHOD_(HRESULT,GetFilterGraph)(THIS_ IGraphBuilder** ppGraphBuilder) PURE; \
262 STDMETHOD_(HRESULT,GetFilter)(THIS_ IMediaStreamFilter** ppFilter) PURE; \
263 STDMETHOD_(HRESULT,AddMediaStream)(THIS_ IUnknown* pStreamObject, const MSPID* PurposeId, DWORD dwFlags, IMediaStream** ppNewStream) PURE; \
264 STDMETHOD_(HRESULT,OpenFile)(THIS_ LPCWSTR pszFileName, DWORD dwFlags) PURE; \
265 STDMETHOD_(HRESULT,OpenMoniker)(THIS_ IBindCtx* pCtx, IMoniker* pMoniker, DWORD dwFlags) PURE; \
266 STDMETHOD_(HRESULT,Render)(THIS_ DWORD dwFlags) PURE;
268 HRESULT CALLBACK IAMMultiMediaStream_Initialize_Proxy(
269 IAMMultiMediaStream* This,
270 STREAM_TYPE StreamType,
271 DWORD dwFlags,
272 IGraphBuilder* pFilterGraph);
273 void __RPC_STUB IAMMultiMediaStream_Initialize_Stub(
274 struct IRpcStubBuffer* This,
275 struct IRpcChannelBuffer* pRpcChannelBuffer,
276 PRPC_MESSAGE pRpcMessage,
277 DWORD* pdwStubPhase);
278 HRESULT CALLBACK IAMMultiMediaStream_GetFilterGraph_Proxy(
279 IAMMultiMediaStream* This,
280 IGraphBuilder** ppGraphBuilder);
281 void __RPC_STUB IAMMultiMediaStream_GetFilterGraph_Stub(
282 struct IRpcStubBuffer* This,
283 struct IRpcChannelBuffer* pRpcChannelBuffer,
284 PRPC_MESSAGE pRpcMessage,
285 DWORD* pdwStubPhase);
286 HRESULT CALLBACK IAMMultiMediaStream_GetFilter_Proxy(
287 IAMMultiMediaStream* This,
288 IMediaStreamFilter** ppFilter);
289 void __RPC_STUB IAMMultiMediaStream_GetFilter_Stub(
290 struct IRpcStubBuffer* This,
291 struct IRpcChannelBuffer* pRpcChannelBuffer,
292 PRPC_MESSAGE pRpcMessage,
293 DWORD* pdwStubPhase);
294 HRESULT CALLBACK IAMMultiMediaStream_AddMediaStream_Proxy(
295 IAMMultiMediaStream* This,
296 IUnknown* pStreamObject,
297 const MSPID* PurposeId,
298 DWORD dwFlags,
299 IMediaStream** ppNewStream);
300 void __RPC_STUB IAMMultiMediaStream_AddMediaStream_Stub(
301 struct IRpcStubBuffer* This,
302 struct IRpcChannelBuffer* pRpcChannelBuffer,
303 PRPC_MESSAGE pRpcMessage,
304 DWORD* pdwStubPhase);
305 HRESULT CALLBACK IAMMultiMediaStream_OpenFile_Proxy(
306 IAMMultiMediaStream* This,
307 LPCWSTR pszFileName,
308 DWORD dwFlags);
309 void __RPC_STUB IAMMultiMediaStream_OpenFile_Stub(
310 struct IRpcStubBuffer* This,
311 struct IRpcChannelBuffer* pRpcChannelBuffer,
312 PRPC_MESSAGE pRpcMessage,
313 DWORD* pdwStubPhase);
314 HRESULT CALLBACK IAMMultiMediaStream_OpenMoniker_Proxy(
315 IAMMultiMediaStream* This,
316 IBindCtx* pCtx,
317 IMoniker* pMoniker,
318 DWORD dwFlags);
319 void __RPC_STUB IAMMultiMediaStream_OpenMoniker_Stub(
320 struct IRpcStubBuffer* This,
321 struct IRpcChannelBuffer* pRpcChannelBuffer,
322 PRPC_MESSAGE pRpcMessage,
323 DWORD* pdwStubPhase);
324 HRESULT CALLBACK IAMMultiMediaStream_Render_Proxy(
325 IAMMultiMediaStream* This,
326 DWORD dwFlags);
327 void __RPC_STUB IAMMultiMediaStream_Render_Stub(
328 struct IRpcStubBuffer* This,
329 struct IRpcChannelBuffer* pRpcChannelBuffer,
330 PRPC_MESSAGE pRpcMessage,
331 DWORD* pdwStubPhase);
333 #endif /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */
335 /*****************************************************************************
336 * IAMMediaStream interface
338 #ifndef __IAMMediaStream_INTERFACE_DEFINED__
339 #define __IAMMediaStream_INTERFACE_DEFINED__
341 DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
342 #if defined(__cplusplus) && !defined(CINTERFACE)
343 struct IAMMediaStream : public IMediaStream
345 virtual HRESULT STDMETHODCALLTYPE Initialize(
346 IUnknown* pSourceObject,
347 DWORD dwFlags,
348 REFMSPID PurposeId,
349 const STREAM_TYPE StreamType) = 0;
351 virtual HRESULT STDMETHODCALLTYPE SetState(
352 FILTER_STATE State) = 0;
354 virtual HRESULT STDMETHODCALLTYPE JoinAMMultiMediaStream(
355 IAMMultiMediaStream* pAMMultiMediaStream) = 0;
357 virtual HRESULT STDMETHODCALLTYPE JoinFilter(
358 IMediaStreamFilter* pMediaStreamFilter) = 0;
360 virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
361 IFilterGraph* pFilterGraph) = 0;
364 #else
365 typedef struct IAMMediaStreamVtbl IAMMediaStreamVtbl;
366 struct IAMMediaStream {
367 const IAMMediaStreamVtbl* lpVtbl;
369 struct IAMMediaStreamVtbl {
370 ICOM_MSVTABLE_COMPAT_FIELDS
372 /*** IUnknown methods ***/
373 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
374 IAMMediaStream* This,
375 REFIID riid,
376 void** ppvObject);
378 ULONG (STDMETHODCALLTYPE *AddRef)(
379 IAMMediaStream* This);
381 ULONG (STDMETHODCALLTYPE *Release)(
382 IAMMediaStream* This);
384 /*** IMediaStream methods ***/
385 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
386 IAMMediaStream* This,
387 IMultiMediaStream** ppMultiMediaStream);
389 HRESULT (STDMETHODCALLTYPE *GetInformation)(
390 IAMMediaStream* This,
391 MSPID* pPurposeId,
392 STREAM_TYPE* pType);
394 HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
395 IAMMediaStream* This,
396 IMediaStream* pStreamThatHasDesiredFormat,
397 DWORD dwFlags);
399 HRESULT (STDMETHODCALLTYPE *AllocateSample)(
400 IAMMediaStream* This,
401 DWORD dwFlags,
402 IStreamSample** ppSample);
404 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
405 IAMMediaStream* This,
406 IStreamSample* pExistingSample,
407 DWORD dwFlags,
408 IStreamSample** ppNewSample);
410 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
411 IAMMediaStream* This,
412 DWORD dwFlags);
414 /*** IAMMediaStream methods ***/
415 HRESULT (STDMETHODCALLTYPE *Initialize)(
416 IAMMediaStream* This,
417 IUnknown* pSourceObject,
418 DWORD dwFlags,
419 REFMSPID PurposeId,
420 const STREAM_TYPE StreamType);
422 HRESULT (STDMETHODCALLTYPE *SetState)(
423 IAMMediaStream* This,
424 FILTER_STATE State);
426 HRESULT (STDMETHODCALLTYPE *JoinAMMultiMediaStream)(
427 IAMMediaStream* This,
428 IAMMultiMediaStream* pAMMultiMediaStream);
430 HRESULT (STDMETHODCALLTYPE *JoinFilter)(
431 IAMMediaStream* This,
432 IMediaStreamFilter* pMediaStreamFilter);
434 HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
435 IAMMediaStream* This,
436 IFilterGraph* pFilterGraph);
440 /*** IUnknown methods ***/
441 #define IAMMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
442 #define IAMMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
443 #define IAMMediaStream_Release(p) (p)->lpVtbl->Release(p)
444 /*** IMediaStream methods ***/
445 #define IAMMediaStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
446 #define IAMMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
447 #define IAMMediaStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
448 #define IAMMediaStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
449 #define IAMMediaStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
450 #define IAMMediaStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
451 /*** IAMMediaStream methods ***/
452 #define IAMMediaStream_Initialize(p,a,b,c,d) (p)->lpVtbl->Initialize(p,a,b,c,d)
453 #define IAMMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
454 #define IAMMediaStream_JoinAMMultiMediaStream(p,a) (p)->lpVtbl->JoinAMMultiMediaStream(p,a)
455 #define IAMMediaStream_JoinFilter(p,a) (p)->lpVtbl->JoinFilter(p,a)
456 #define IAMMediaStream_JoinFilterGraph(p,a) (p)->lpVtbl->JoinFilterGraph(p,a)
458 #endif
460 #define IAMMediaStream_METHODS \
461 ICOM_MSVTABLE_COMPAT_FIELDS \
462 /*** IUnknown methods ***/ \
463 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
464 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
465 STDMETHOD_(ULONG,Release)(THIS) PURE; \
466 /*** IMediaStream methods ***/ \
467 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
468 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
469 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
470 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
471 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
472 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE; \
473 /*** IAMMediaStream methods ***/ \
474 STDMETHOD_(HRESULT,Initialize)(THIS_ IUnknown* pSourceObject, DWORD dwFlags, REFMSPID PurposeId, const STREAM_TYPE StreamType) PURE; \
475 STDMETHOD_(HRESULT,SetState)(THIS_ FILTER_STATE State) PURE; \
476 STDMETHOD_(HRESULT,JoinAMMultiMediaStream)(THIS_ IAMMultiMediaStream* pAMMultiMediaStream) PURE; \
477 STDMETHOD_(HRESULT,JoinFilter)(THIS_ IMediaStreamFilter* pMediaStreamFilter) PURE; \
478 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pFilterGraph) PURE;
480 HRESULT CALLBACK IAMMediaStream_Initialize_Proxy(
481 IAMMediaStream* This,
482 IUnknown* pSourceObject,
483 DWORD dwFlags,
484 REFMSPID PurposeId,
485 const STREAM_TYPE StreamType);
486 void __RPC_STUB IAMMediaStream_Initialize_Stub(
487 struct IRpcStubBuffer* This,
488 struct IRpcChannelBuffer* pRpcChannelBuffer,
489 PRPC_MESSAGE pRpcMessage,
490 DWORD* pdwStubPhase);
491 HRESULT CALLBACK IAMMediaStream_SetState_Proxy(
492 IAMMediaStream* This,
493 FILTER_STATE State);
494 void __RPC_STUB IAMMediaStream_SetState_Stub(
495 struct IRpcStubBuffer* This,
496 struct IRpcChannelBuffer* pRpcChannelBuffer,
497 PRPC_MESSAGE pRpcMessage,
498 DWORD* pdwStubPhase);
499 HRESULT CALLBACK IAMMediaStream_JoinAMMultiMediaStream_Proxy(
500 IAMMediaStream* This,
501 IAMMultiMediaStream* pAMMultiMediaStream);
502 void __RPC_STUB IAMMediaStream_JoinAMMultiMediaStream_Stub(
503 struct IRpcStubBuffer* This,
504 struct IRpcChannelBuffer* pRpcChannelBuffer,
505 PRPC_MESSAGE pRpcMessage,
506 DWORD* pdwStubPhase);
507 HRESULT CALLBACK IAMMediaStream_JoinFilter_Proxy(
508 IAMMediaStream* This,
509 IMediaStreamFilter* pMediaStreamFilter);
510 void __RPC_STUB IAMMediaStream_JoinFilter_Stub(
511 struct IRpcStubBuffer* This,
512 struct IRpcChannelBuffer* pRpcChannelBuffer,
513 PRPC_MESSAGE pRpcMessage,
514 DWORD* pdwStubPhase);
515 HRESULT CALLBACK IAMMediaStream_JoinFilterGraph_Proxy(
516 IAMMediaStream* This,
517 IFilterGraph* pFilterGraph);
518 void __RPC_STUB IAMMediaStream_JoinFilterGraph_Stub(
519 struct IRpcStubBuffer* This,
520 struct IRpcChannelBuffer* pRpcChannelBuffer,
521 PRPC_MESSAGE pRpcMessage,
522 DWORD* pdwStubPhase);
524 #endif /* __IAMMediaStream_INTERFACE_DEFINED__ */
526 /*****************************************************************************
527 * IMediaStreamFilter interface
529 #ifndef __IMediaStreamFilter_INTERFACE_DEFINED__
530 #define __IMediaStreamFilter_INTERFACE_DEFINED__
532 DEFINE_GUID(IID_IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
533 #if defined(__cplusplus) && !defined(CINTERFACE)
534 struct IMediaStreamFilter : public IBaseFilter
536 virtual HRESULT STDMETHODCALLTYPE AddMediaStream(
537 IAMMediaStream* pAMMediaStream) = 0;
539 virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
540 REFMSPID idPurpose,
541 IMediaStream** ppMediaStream) = 0;
543 virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
544 long Index,
545 IMediaStream** ppMediaStream) = 0;
547 virtual HRESULT STDMETHODCALLTYPE SupportSeeking(
548 BOOL bRenderer) = 0;
550 virtual HRESULT STDMETHODCALLTYPE ReferenceTimeToStreamTime(
551 REFERENCE_TIME* pTime) = 0;
553 virtual HRESULT STDMETHODCALLTYPE GetCurrentStreamTime(
554 REFERENCE_TIME* pCurrentStreamTime) = 0;
556 virtual HRESULT STDMETHODCALLTYPE WaitUntil(
557 REFERENCE_TIME WaitStreamTime) = 0;
559 virtual HRESULT STDMETHODCALLTYPE Flush(
560 BOOL bCancelEOS) = 0;
562 virtual HRESULT STDMETHODCALLTYPE EndOfStream(
563 ) = 0;
566 #else
567 typedef struct IMediaStreamFilterVtbl IMediaStreamFilterVtbl;
568 struct IMediaStreamFilter {
569 const IMediaStreamFilterVtbl* lpVtbl;
571 struct IMediaStreamFilterVtbl {
572 ICOM_MSVTABLE_COMPAT_FIELDS
574 /*** IUnknown methods ***/
575 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
576 IMediaStreamFilter* This,
577 REFIID riid,
578 void** ppvObject);
580 ULONG (STDMETHODCALLTYPE *AddRef)(
581 IMediaStreamFilter* This);
583 ULONG (STDMETHODCALLTYPE *Release)(
584 IMediaStreamFilter* This);
586 /*** IPersist methods ***/
587 HRESULT (STDMETHODCALLTYPE *GetClassID)(
588 IMediaStreamFilter* This,
589 CLSID* pClassID);
591 /*** IMediaFilter methods ***/
592 HRESULT (STDMETHODCALLTYPE *Stop)(
593 IMediaStreamFilter* This);
595 HRESULT (STDMETHODCALLTYPE *Pause)(
596 IMediaStreamFilter* This);
598 HRESULT (STDMETHODCALLTYPE *Run)(
599 IMediaStreamFilter* This,
600 REFERENCE_TIME tStart);
602 HRESULT (STDMETHODCALLTYPE *GetState)(
603 IMediaStreamFilter* This,
604 DWORD dwMilliSecsTimeout,
605 FILTER_STATE* State);
607 HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
608 IMediaStreamFilter* This,
609 IReferenceClock* pClock);
611 HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
612 IMediaStreamFilter* This,
613 IReferenceClock** pClock);
615 /*** IBaseFilter methods ***/
616 HRESULT (STDMETHODCALLTYPE *EnumPins)(
617 IMediaStreamFilter* This,
618 IEnumPins** ppEnum);
620 HRESULT (STDMETHODCALLTYPE *FindPin)(
621 IMediaStreamFilter* This,
622 LPCWSTR Id,
623 IPin** ppPin);
625 HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
626 IMediaStreamFilter* This,
627 FILTER_INFO* pInfo);
629 HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
630 IMediaStreamFilter* This,
631 IFilterGraph* pGraph,
632 LPCWSTR pName);
634 HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
635 IMediaStreamFilter* This,
636 LPWSTR* pVendorInfo);
638 /*** IMediaStreamFilter methods ***/
639 HRESULT (STDMETHODCALLTYPE *AddMediaStream)(
640 IMediaStreamFilter* This,
641 IAMMediaStream* pAMMediaStream);
643 HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
644 IMediaStreamFilter* This,
645 REFMSPID idPurpose,
646 IMediaStream** ppMediaStream);
648 HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
649 IMediaStreamFilter* This,
650 long Index,
651 IMediaStream** ppMediaStream);
653 HRESULT (STDMETHODCALLTYPE *SupportSeeking)(
654 IMediaStreamFilter* This,
655 BOOL bRenderer);
657 HRESULT (STDMETHODCALLTYPE *ReferenceTimeToStreamTime)(
658 IMediaStreamFilter* This,
659 REFERENCE_TIME* pTime);
661 HRESULT (STDMETHODCALLTYPE *GetCurrentStreamTime)(
662 IMediaStreamFilter* This,
663 REFERENCE_TIME* pCurrentStreamTime);
665 HRESULT (STDMETHODCALLTYPE *WaitUntil)(
666 IMediaStreamFilter* This,
667 REFERENCE_TIME WaitStreamTime);
669 HRESULT (STDMETHODCALLTYPE *Flush)(
670 IMediaStreamFilter* This,
671 BOOL bCancelEOS);
673 HRESULT (STDMETHODCALLTYPE *EndOfStream)(
674 IMediaStreamFilter* This);
678 /*** IUnknown methods ***/
679 #define IMediaStreamFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
680 #define IMediaStreamFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
681 #define IMediaStreamFilter_Release(p) (p)->lpVtbl->Release(p)
682 /*** IPersist methods ***/
683 #define IMediaStreamFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
684 /*** IMediaFilter methods ***/
685 #define IMediaStreamFilter_Stop(p) (p)->lpVtbl->Stop(p)
686 #define IMediaStreamFilter_Pause(p) (p)->lpVtbl->Pause(p)
687 #define IMediaStreamFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
688 #define IMediaStreamFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
689 #define IMediaStreamFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
690 #define IMediaStreamFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
691 /*** IBaseFilter methods ***/
692 #define IMediaStreamFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a)
693 #define IMediaStreamFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b)
694 #define IMediaStreamFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a)
695 #define IMediaStreamFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b)
696 #define IMediaStreamFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a)
697 /*** IMediaStreamFilter methods ***/
698 #define IMediaStreamFilter_AddMediaStream(p,a) (p)->lpVtbl->AddMediaStream(p,a)
699 #define IMediaStreamFilter_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
700 #define IMediaStreamFilter_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
701 #define IMediaStreamFilter_SupportSeeking(p,a) (p)->lpVtbl->SupportSeeking(p,a)
702 #define IMediaStreamFilter_ReferenceTimeToStreamTime(p,a) (p)->lpVtbl->ReferenceTimeToStreamTime(p,a)
703 #define IMediaStreamFilter_GetCurrentStreamTime(p,a) (p)->lpVtbl->GetCurrentStreamTime(p,a)
704 #define IMediaStreamFilter_WaitUntil(p,a) (p)->lpVtbl->WaitUntil(p,a)
705 #define IMediaStreamFilter_Flush(p,a) (p)->lpVtbl->Flush(p,a)
706 #define IMediaStreamFilter_EndOfStream(p) (p)->lpVtbl->EndOfStream(p)
708 #endif
710 #define IMediaStreamFilter_METHODS \
711 ICOM_MSVTABLE_COMPAT_FIELDS \
712 /*** IUnknown methods ***/ \
713 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
714 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
715 STDMETHOD_(ULONG,Release)(THIS) PURE; \
716 /*** IPersist methods ***/ \
717 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
718 /*** IMediaFilter methods ***/ \
719 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
720 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
721 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
722 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
723 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
724 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \
725 /*** IBaseFilter methods ***/ \
726 STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \
727 STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \
728 STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \
729 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \
730 STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE; \
731 /*** IMediaStreamFilter methods ***/ \
732 STDMETHOD_(HRESULT,AddMediaStream)(THIS_ IAMMediaStream* pAMMediaStream) PURE; \
733 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
734 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
735 STDMETHOD_(HRESULT,SupportSeeking)(THIS_ BOOL bRenderer) PURE; \
736 STDMETHOD_(HRESULT,ReferenceTimeToStreamTime)(THIS_ REFERENCE_TIME* pTime) PURE; \
737 STDMETHOD_(HRESULT,GetCurrentStreamTime)(THIS_ REFERENCE_TIME* pCurrentStreamTime) PURE; \
738 STDMETHOD_(HRESULT,WaitUntil)(THIS_ REFERENCE_TIME WaitStreamTime) PURE; \
739 STDMETHOD_(HRESULT,Flush)(THIS_ BOOL bCancelEOS) PURE; \
740 STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE;
742 HRESULT CALLBACK IMediaStreamFilter_AddMediaStream_Proxy(
743 IMediaStreamFilter* This,
744 IAMMediaStream* pAMMediaStream);
745 void __RPC_STUB IMediaStreamFilter_AddMediaStream_Stub(
746 struct IRpcStubBuffer* This,
747 struct IRpcChannelBuffer* pRpcChannelBuffer,
748 PRPC_MESSAGE pRpcMessage,
749 DWORD* pdwStubPhase);
750 HRESULT CALLBACK IMediaStreamFilter_GetMediaStream_Proxy(
751 IMediaStreamFilter* This,
752 REFMSPID idPurpose,
753 IMediaStream** ppMediaStream);
754 void __RPC_STUB IMediaStreamFilter_GetMediaStream_Stub(
755 struct IRpcStubBuffer* This,
756 struct IRpcChannelBuffer* pRpcChannelBuffer,
757 PRPC_MESSAGE pRpcMessage,
758 DWORD* pdwStubPhase);
759 HRESULT CALLBACK IMediaStreamFilter_EnumMediaStreams_Proxy(
760 IMediaStreamFilter* This,
761 long Index,
762 IMediaStream** ppMediaStream);
763 void __RPC_STUB IMediaStreamFilter_EnumMediaStreams_Stub(
764 struct IRpcStubBuffer* This,
765 struct IRpcChannelBuffer* pRpcChannelBuffer,
766 PRPC_MESSAGE pRpcMessage,
767 DWORD* pdwStubPhase);
768 HRESULT CALLBACK IMediaStreamFilter_SupportSeeking_Proxy(
769 IMediaStreamFilter* This,
770 BOOL bRenderer);
771 void __RPC_STUB IMediaStreamFilter_SupportSeeking_Stub(
772 struct IRpcStubBuffer* This,
773 struct IRpcChannelBuffer* pRpcChannelBuffer,
774 PRPC_MESSAGE pRpcMessage,
775 DWORD* pdwStubPhase);
776 HRESULT CALLBACK IMediaStreamFilter_ReferenceTimeToStreamTime_Proxy(
777 IMediaStreamFilter* This,
778 REFERENCE_TIME* pTime);
779 void __RPC_STUB IMediaStreamFilter_ReferenceTimeToStreamTime_Stub(
780 struct IRpcStubBuffer* This,
781 struct IRpcChannelBuffer* pRpcChannelBuffer,
782 PRPC_MESSAGE pRpcMessage,
783 DWORD* pdwStubPhase);
784 HRESULT CALLBACK IMediaStreamFilter_GetCurrentStreamTime_Proxy(
785 IMediaStreamFilter* This,
786 REFERENCE_TIME* pCurrentStreamTime);
787 void __RPC_STUB IMediaStreamFilter_GetCurrentStreamTime_Stub(
788 struct IRpcStubBuffer* This,
789 struct IRpcChannelBuffer* pRpcChannelBuffer,
790 PRPC_MESSAGE pRpcMessage,
791 DWORD* pdwStubPhase);
792 HRESULT CALLBACK IMediaStreamFilter_WaitUntil_Proxy(
793 IMediaStreamFilter* This,
794 REFERENCE_TIME WaitStreamTime);
795 void __RPC_STUB IMediaStreamFilter_WaitUntil_Stub(
796 struct IRpcStubBuffer* This,
797 struct IRpcChannelBuffer* pRpcChannelBuffer,
798 PRPC_MESSAGE pRpcMessage,
799 DWORD* pdwStubPhase);
800 HRESULT CALLBACK IMediaStreamFilter_Flush_Proxy(
801 IMediaStreamFilter* This,
802 BOOL bCancelEOS);
803 void __RPC_STUB IMediaStreamFilter_Flush_Stub(
804 struct IRpcStubBuffer* This,
805 struct IRpcChannelBuffer* pRpcChannelBuffer,
806 PRPC_MESSAGE pRpcMessage,
807 DWORD* pdwStubPhase);
808 HRESULT CALLBACK IMediaStreamFilter_EndOfStream_Proxy(
809 IMediaStreamFilter* This);
810 void __RPC_STUB IMediaStreamFilter_EndOfStream_Stub(
811 struct IRpcStubBuffer* This,
812 struct IRpcChannelBuffer* pRpcChannelBuffer,
813 PRPC_MESSAGE pRpcMessage,
814 DWORD* pdwStubPhase);
816 #endif /* __IMediaStreamFilter_INTERFACE_DEFINED__ */
818 #ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
819 #define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
820 typedef struct IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator;
821 #endif
823 /*****************************************************************************
824 * IDirectDrawMediaSampleAllocator interface
826 #ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
827 #define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
829 DEFINE_GUID(IID_IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
830 #if defined(__cplusplus) && !defined(CINTERFACE)
831 struct IDirectDrawMediaSampleAllocator : public IUnknown
833 virtual HRESULT STDMETHODCALLTYPE GetDirectDraw(
834 IDirectDraw** ppDirectDraw) = 0;
837 #else
838 typedef struct IDirectDrawMediaSampleAllocatorVtbl IDirectDrawMediaSampleAllocatorVtbl;
839 struct IDirectDrawMediaSampleAllocator {
840 const IDirectDrawMediaSampleAllocatorVtbl* lpVtbl;
842 struct IDirectDrawMediaSampleAllocatorVtbl {
843 ICOM_MSVTABLE_COMPAT_FIELDS
845 /*** IUnknown methods ***/
846 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
847 IDirectDrawMediaSampleAllocator* This,
848 REFIID riid,
849 void** ppvObject);
851 ULONG (STDMETHODCALLTYPE *AddRef)(
852 IDirectDrawMediaSampleAllocator* This);
854 ULONG (STDMETHODCALLTYPE *Release)(
855 IDirectDrawMediaSampleAllocator* This);
857 /*** IDirectDrawMediaSampleAllocator methods ***/
858 HRESULT (STDMETHODCALLTYPE *GetDirectDraw)(
859 IDirectDrawMediaSampleAllocator* This,
860 IDirectDraw** ppDirectDraw);
864 /*** IUnknown methods ***/
865 #define IDirectDrawMediaSampleAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
866 #define IDirectDrawMediaSampleAllocator_AddRef(p) (p)->lpVtbl->AddRef(p)
867 #define IDirectDrawMediaSampleAllocator_Release(p) (p)->lpVtbl->Release(p)
868 /*** IDirectDrawMediaSampleAllocator methods ***/
869 #define IDirectDrawMediaSampleAllocator_GetDirectDraw(p,a) (p)->lpVtbl->GetDirectDraw(p,a)
871 #endif
873 #define IDirectDrawMediaSampleAllocator_METHODS \
874 ICOM_MSVTABLE_COMPAT_FIELDS \
875 /*** IUnknown methods ***/ \
876 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
877 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
878 STDMETHOD_(ULONG,Release)(THIS) PURE; \
879 /*** IDirectDrawMediaSampleAllocator methods ***/ \
880 STDMETHOD_(HRESULT,GetDirectDraw)(THIS_ IDirectDraw** ppDirectDraw) PURE;
882 HRESULT CALLBACK IDirectDrawMediaSampleAllocator_GetDirectDraw_Proxy(
883 IDirectDrawMediaSampleAllocator* This,
884 IDirectDraw** ppDirectDraw);
885 void __RPC_STUB IDirectDrawMediaSampleAllocator_GetDirectDraw_Stub(
886 struct IRpcStubBuffer* This,
887 struct IRpcChannelBuffer* pRpcChannelBuffer,
888 PRPC_MESSAGE pRpcMessage,
889 DWORD* pdwStubPhase);
891 #endif /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */
893 #ifndef __IDirectDrawMediaSample_FWD_DEFINED__
894 #define __IDirectDrawMediaSample_FWD_DEFINED__
895 typedef struct IDirectDrawMediaSample IDirectDrawMediaSample;
896 #endif
898 /*****************************************************************************
899 * IDirectDrawMediaSample interface
901 #ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__
902 #define __IDirectDrawMediaSample_INTERFACE_DEFINED__
904 DEFINE_GUID(IID_IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
905 #if defined(__cplusplus) && !defined(CINTERFACE)
906 struct IDirectDrawMediaSample : public IUnknown
908 virtual HRESULT STDMETHODCALLTYPE GetSurfaceAndReleaseLock(
909 IDirectDrawSurface** ppDirectDrawSurface,
910 RECT* pRect) = 0;
912 virtual HRESULT STDMETHODCALLTYPE LockMediaSamplePointer(
913 ) = 0;
916 #else
917 typedef struct IDirectDrawMediaSampleVtbl IDirectDrawMediaSampleVtbl;
918 struct IDirectDrawMediaSample {
919 const IDirectDrawMediaSampleVtbl* lpVtbl;
921 struct IDirectDrawMediaSampleVtbl {
922 ICOM_MSVTABLE_COMPAT_FIELDS
924 /*** IUnknown methods ***/
925 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
926 IDirectDrawMediaSample* This,
927 REFIID riid,
928 void** ppvObject);
930 ULONG (STDMETHODCALLTYPE *AddRef)(
931 IDirectDrawMediaSample* This);
933 ULONG (STDMETHODCALLTYPE *Release)(
934 IDirectDrawMediaSample* This);
936 /*** IDirectDrawMediaSample methods ***/
937 HRESULT (STDMETHODCALLTYPE *GetSurfaceAndReleaseLock)(
938 IDirectDrawMediaSample* This,
939 IDirectDrawSurface** ppDirectDrawSurface,
940 RECT* pRect);
942 HRESULT (STDMETHODCALLTYPE *LockMediaSamplePointer)(
943 IDirectDrawMediaSample* This);
947 /*** IUnknown methods ***/
948 #define IDirectDrawMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
949 #define IDirectDrawMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p)
950 #define IDirectDrawMediaSample_Release(p) (p)->lpVtbl->Release(p)
951 /*** IDirectDrawMediaSample methods ***/
952 #define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(p,a,b) (p)->lpVtbl->GetSurfaceAndReleaseLock(p,a,b)
953 #define IDirectDrawMediaSample_LockMediaSamplePointer(p) (p)->lpVtbl->LockMediaSamplePointer(p)
955 #endif
957 #define IDirectDrawMediaSample_METHODS \
958 ICOM_MSVTABLE_COMPAT_FIELDS \
959 /*** IUnknown methods ***/ \
960 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
961 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
962 STDMETHOD_(ULONG,Release)(THIS) PURE; \
963 /*** IDirectDrawMediaSample methods ***/ \
964 STDMETHOD_(HRESULT,GetSurfaceAndReleaseLock)(THIS_ IDirectDrawSurface** ppDirectDrawSurface, RECT* pRect) PURE; \
965 STDMETHOD_(HRESULT,LockMediaSamplePointer)(THIS) PURE;
967 HRESULT CALLBACK IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Proxy(
968 IDirectDrawMediaSample* This,
969 IDirectDrawSurface** ppDirectDrawSurface,
970 RECT* pRect);
971 void __RPC_STUB IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Stub(
972 struct IRpcStubBuffer* This,
973 struct IRpcChannelBuffer* pRpcChannelBuffer,
974 PRPC_MESSAGE pRpcMessage,
975 DWORD* pdwStubPhase);
976 HRESULT CALLBACK IDirectDrawMediaSample_LockMediaSamplePointer_Proxy(
977 IDirectDrawMediaSample* This);
978 void __RPC_STUB IDirectDrawMediaSample_LockMediaSamplePointer_Stub(
979 struct IRpcStubBuffer* This,
980 struct IRpcChannelBuffer* pRpcChannelBuffer,
981 PRPC_MESSAGE pRpcMessage,
982 DWORD* pdwStubPhase);
984 #endif /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */
986 /*****************************************************************************
987 * IAMMediaTypeStream interface
989 #ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__
990 #define __IAMMediaTypeStream_INTERFACE_DEFINED__
992 DEFINE_GUID(IID_IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
993 #if defined(__cplusplus) && !defined(CINTERFACE)
994 struct IAMMediaTypeStream : public IMediaStream
996 virtual HRESULT STDMETHODCALLTYPE GetFormat(
997 AM_MEDIA_TYPE* pMediaType,
998 DWORD dwFlags) = 0;
1000 virtual HRESULT STDMETHODCALLTYPE SetFormat(
1001 AM_MEDIA_TYPE* pMediaType,
1002 DWORD dwFlags) = 0;
1004 virtual HRESULT STDMETHODCALLTYPE CreateSample(
1005 long lSampleSize,
1006 BYTE* pbBuffer,
1007 DWORD dwFlags,
1008 IUnknown* pUnkOuter,
1009 IAMMediaTypeSample** ppAMMediaTypeSample) = 0;
1011 virtual HRESULT STDMETHODCALLTYPE GetStreamAllocatorRequirements(
1012 ALLOCATOR_PROPERTIES* pProps) = 0;
1014 virtual HRESULT STDMETHODCALLTYPE SetStreamAllocatorRequirements(
1015 ALLOCATOR_PROPERTIES* pProps) = 0;
1018 #else
1019 typedef struct IAMMediaTypeStreamVtbl IAMMediaTypeStreamVtbl;
1020 struct IAMMediaTypeStream {
1021 const IAMMediaTypeStreamVtbl* lpVtbl;
1023 struct IAMMediaTypeStreamVtbl {
1024 ICOM_MSVTABLE_COMPAT_FIELDS
1026 /*** IUnknown methods ***/
1027 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1028 IAMMediaTypeStream* This,
1029 REFIID riid,
1030 void** ppvObject);
1032 ULONG (STDMETHODCALLTYPE *AddRef)(
1033 IAMMediaTypeStream* This);
1035 ULONG (STDMETHODCALLTYPE *Release)(
1036 IAMMediaTypeStream* This);
1038 /*** IMediaStream methods ***/
1039 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
1040 IAMMediaTypeStream* This,
1041 IMultiMediaStream** ppMultiMediaStream);
1043 HRESULT (STDMETHODCALLTYPE *GetInformation)(
1044 IAMMediaTypeStream* This,
1045 MSPID* pPurposeId,
1046 STREAM_TYPE* pType);
1048 HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
1049 IAMMediaTypeStream* This,
1050 IMediaStream* pStreamThatHasDesiredFormat,
1051 DWORD dwFlags);
1053 HRESULT (STDMETHODCALLTYPE *AllocateSample)(
1054 IAMMediaTypeStream* This,
1055 DWORD dwFlags,
1056 IStreamSample** ppSample);
1058 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
1059 IAMMediaTypeStream* This,
1060 IStreamSample* pExistingSample,
1061 DWORD dwFlags,
1062 IStreamSample** ppNewSample);
1064 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
1065 IAMMediaTypeStream* This,
1066 DWORD dwFlags);
1068 /*** IAMMediaTypeStream methods ***/
1069 HRESULT (STDMETHODCALLTYPE *GetFormat)(
1070 IAMMediaTypeStream* This,
1071 AM_MEDIA_TYPE* pMediaType,
1072 DWORD dwFlags);
1074 HRESULT (STDMETHODCALLTYPE *SetFormat)(
1075 IAMMediaTypeStream* This,
1076 AM_MEDIA_TYPE* pMediaType,
1077 DWORD dwFlags);
1079 HRESULT (STDMETHODCALLTYPE *CreateSample)(
1080 IAMMediaTypeStream* This,
1081 long lSampleSize,
1082 BYTE* pbBuffer,
1083 DWORD dwFlags,
1084 IUnknown* pUnkOuter,
1085 IAMMediaTypeSample** ppAMMediaTypeSample);
1087 HRESULT (STDMETHODCALLTYPE *GetStreamAllocatorRequirements)(
1088 IAMMediaTypeStream* This,
1089 ALLOCATOR_PROPERTIES* pProps);
1091 HRESULT (STDMETHODCALLTYPE *SetStreamAllocatorRequirements)(
1092 IAMMediaTypeStream* This,
1093 ALLOCATOR_PROPERTIES* pProps);
1097 /*** IUnknown methods ***/
1098 #define IAMMediaTypeStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1099 #define IAMMediaTypeStream_AddRef(p) (p)->lpVtbl->AddRef(p)
1100 #define IAMMediaTypeStream_Release(p) (p)->lpVtbl->Release(p)
1101 /*** IMediaStream methods ***/
1102 #define IAMMediaTypeStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
1103 #define IAMMediaTypeStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
1104 #define IAMMediaTypeStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
1105 #define IAMMediaTypeStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
1106 #define IAMMediaTypeStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
1107 #define IAMMediaTypeStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
1108 /*** IAMMediaTypeStream methods ***/
1109 #define IAMMediaTypeStream_GetFormat(p,a,b) (p)->lpVtbl->GetFormat(p,a,b)
1110 #define IAMMediaTypeStream_SetFormat(p,a,b) (p)->lpVtbl->SetFormat(p,a,b)
1111 #define IAMMediaTypeStream_CreateSample(p,a,b,c,d,e) (p)->lpVtbl->CreateSample(p,a,b,c,d,e)
1112 #define IAMMediaTypeStream_GetStreamAllocatorRequirements(p,a) (p)->lpVtbl->GetStreamAllocatorRequirements(p,a)
1113 #define IAMMediaTypeStream_SetStreamAllocatorRequirements(p,a) (p)->lpVtbl->SetStreamAllocatorRequirements(p,a)
1115 #endif
1117 #define IAMMediaTypeStream_METHODS \
1118 ICOM_MSVTABLE_COMPAT_FIELDS \
1119 /*** IUnknown methods ***/ \
1120 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1121 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1122 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1123 /*** IMediaStream methods ***/ \
1124 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
1125 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
1126 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
1127 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
1128 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
1129 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE; \
1130 /*** IAMMediaTypeStream methods ***/ \
1131 STDMETHOD_(HRESULT,GetFormat)(THIS_ AM_MEDIA_TYPE* pMediaType, DWORD dwFlags) PURE; \
1132 STDMETHOD_(HRESULT,SetFormat)(THIS_ AM_MEDIA_TYPE* pMediaType, DWORD dwFlags) PURE; \
1133 STDMETHOD_(HRESULT,CreateSample)(THIS_ long lSampleSize, BYTE* pbBuffer, DWORD dwFlags, IUnknown* pUnkOuter, IAMMediaTypeSample** ppAMMediaTypeSample) PURE; \
1134 STDMETHOD_(HRESULT,GetStreamAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
1135 STDMETHOD_(HRESULT,SetStreamAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE;
1137 HRESULT CALLBACK IAMMediaTypeStream_GetFormat_Proxy(
1138 IAMMediaTypeStream* This,
1139 AM_MEDIA_TYPE* pMediaType,
1140 DWORD dwFlags);
1141 void __RPC_STUB IAMMediaTypeStream_GetFormat_Stub(
1142 struct IRpcStubBuffer* This,
1143 struct IRpcChannelBuffer* pRpcChannelBuffer,
1144 PRPC_MESSAGE pRpcMessage,
1145 DWORD* pdwStubPhase);
1146 HRESULT CALLBACK IAMMediaTypeStream_SetFormat_Proxy(
1147 IAMMediaTypeStream* This,
1148 AM_MEDIA_TYPE* pMediaType,
1149 DWORD dwFlags);
1150 void __RPC_STUB IAMMediaTypeStream_SetFormat_Stub(
1151 struct IRpcStubBuffer* This,
1152 struct IRpcChannelBuffer* pRpcChannelBuffer,
1153 PRPC_MESSAGE pRpcMessage,
1154 DWORD* pdwStubPhase);
1155 HRESULT CALLBACK IAMMediaTypeStream_CreateSample_Proxy(
1156 IAMMediaTypeStream* This,
1157 long lSampleSize,
1158 BYTE* pbBuffer,
1159 DWORD dwFlags,
1160 IUnknown* pUnkOuter,
1161 IAMMediaTypeSample** ppAMMediaTypeSample);
1162 void __RPC_STUB IAMMediaTypeStream_CreateSample_Stub(
1163 struct IRpcStubBuffer* This,
1164 struct IRpcChannelBuffer* pRpcChannelBuffer,
1165 PRPC_MESSAGE pRpcMessage,
1166 DWORD* pdwStubPhase);
1167 HRESULT CALLBACK IAMMediaTypeStream_GetStreamAllocatorRequirements_Proxy(
1168 IAMMediaTypeStream* This,
1169 ALLOCATOR_PROPERTIES* pProps);
1170 void __RPC_STUB IAMMediaTypeStream_GetStreamAllocatorRequirements_Stub(
1171 struct IRpcStubBuffer* This,
1172 struct IRpcChannelBuffer* pRpcChannelBuffer,
1173 PRPC_MESSAGE pRpcMessage,
1174 DWORD* pdwStubPhase);
1175 HRESULT CALLBACK IAMMediaTypeStream_SetStreamAllocatorRequirements_Proxy(
1176 IAMMediaTypeStream* This,
1177 ALLOCATOR_PROPERTIES* pProps);
1178 void __RPC_STUB IAMMediaTypeStream_SetStreamAllocatorRequirements_Stub(
1179 struct IRpcStubBuffer* This,
1180 struct IRpcChannelBuffer* pRpcChannelBuffer,
1181 PRPC_MESSAGE pRpcMessage,
1182 DWORD* pdwStubPhase);
1184 #endif /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */
1186 /*****************************************************************************
1187 * IAMMediaTypeSample interface
1189 #ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__
1190 #define __IAMMediaTypeSample_INTERFACE_DEFINED__
1192 DEFINE_GUID(IID_IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1193 #if defined(__cplusplus) && !defined(CINTERFACE)
1194 struct IAMMediaTypeSample : public IStreamSample
1196 virtual HRESULT STDMETHODCALLTYPE SetPointer(
1197 BYTE* pBuffer,
1198 long lSize) = 0;
1200 virtual HRESULT STDMETHODCALLTYPE GetPointer(
1201 BYTE** ppBuffer) = 0;
1203 virtual long STDMETHODCALLTYPE GetSize(
1204 ) = 0;
1206 virtual HRESULT STDMETHODCALLTYPE GetTime(
1207 REFERENCE_TIME* pTimeStart,
1208 REFERENCE_TIME* pTimeEnd) = 0;
1210 virtual HRESULT STDMETHODCALLTYPE SetTime(
1211 REFERENCE_TIME* pTimeStart,
1212 REFERENCE_TIME* pTimeEnd) = 0;
1214 virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
1215 ) = 0;
1217 virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
1218 BOOL bIsSyncPoint) = 0;
1220 virtual HRESULT STDMETHODCALLTYPE IsPreroll(
1221 ) = 0;
1223 virtual HRESULT STDMETHODCALLTYPE SetPreroll(
1224 BOOL bIsPreroll) = 0;
1226 virtual long STDMETHODCALLTYPE GetActualDataLength(
1227 ) = 0;
1229 virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
1230 long Len) = 0;
1232 virtual HRESULT STDMETHODCALLTYPE GetMediaType(
1233 AM_MEDIA_TYPE** ppMediaType) = 0;
1235 virtual HRESULT STDMETHODCALLTYPE SetMediaType(
1236 AM_MEDIA_TYPE* pMediaType) = 0;
1238 virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
1239 ) = 0;
1241 virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
1242 BOOL bDiscontinuity) = 0;
1244 virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
1245 LONGLONG* pTimeStart,
1246 LONGLONG* pTimeEnd) = 0;
1248 virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
1249 LONGLONG* pTimeStart,
1250 LONGLONG* pTimeEnd) = 0;
1253 #else
1254 typedef struct IAMMediaTypeSampleVtbl IAMMediaTypeSampleVtbl;
1255 struct IAMMediaTypeSample {
1256 const IAMMediaTypeSampleVtbl* lpVtbl;
1258 struct IAMMediaTypeSampleVtbl {
1259 ICOM_MSVTABLE_COMPAT_FIELDS
1261 /*** IUnknown methods ***/
1262 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1263 IAMMediaTypeSample* This,
1264 REFIID riid,
1265 void** ppvObject);
1267 ULONG (STDMETHODCALLTYPE *AddRef)(
1268 IAMMediaTypeSample* This);
1270 ULONG (STDMETHODCALLTYPE *Release)(
1271 IAMMediaTypeSample* This);
1273 /*** IStreamSample methods ***/
1274 HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
1275 IAMMediaTypeSample* This,
1276 IMediaStream** ppMediaStream);
1278 HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
1279 IAMMediaTypeSample* This,
1280 STREAM_TIME* pStartTime,
1281 STREAM_TIME* pEndTime,
1282 STREAM_TIME* pCurrentTime);
1284 HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
1285 IAMMediaTypeSample* This,
1286 const STREAM_TIME* pStartTime,
1287 const STREAM_TIME* pEndTime);
1289 HRESULT (STDMETHODCALLTYPE *Update)(
1290 IAMMediaTypeSample* This,
1291 DWORD dwFlags,
1292 HANDLE hEvent,
1293 PAPCFUNC pfnAPC,
1294 DWORD dwAPCData);
1296 HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
1297 IAMMediaTypeSample* This,
1298 DWORD dwFlags,
1299 DWORD dwMilliseconds);
1301 /*** IAMMediaTypeSample methods ***/
1302 HRESULT (STDMETHODCALLTYPE *SetPointer)(
1303 IAMMediaTypeSample* This,
1304 BYTE* pBuffer,
1305 long lSize);
1307 HRESULT (STDMETHODCALLTYPE *GetPointer)(
1308 IAMMediaTypeSample* This,
1309 BYTE** ppBuffer);
1311 long (STDMETHODCALLTYPE *GetSize)(
1312 IAMMediaTypeSample* This);
1314 HRESULT (STDMETHODCALLTYPE *GetTime)(
1315 IAMMediaTypeSample* This,
1316 REFERENCE_TIME* pTimeStart,
1317 REFERENCE_TIME* pTimeEnd);
1319 HRESULT (STDMETHODCALLTYPE *SetTime)(
1320 IAMMediaTypeSample* This,
1321 REFERENCE_TIME* pTimeStart,
1322 REFERENCE_TIME* pTimeEnd);
1324 HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
1325 IAMMediaTypeSample* This);
1327 HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
1328 IAMMediaTypeSample* This,
1329 BOOL bIsSyncPoint);
1331 HRESULT (STDMETHODCALLTYPE *IsPreroll)(
1332 IAMMediaTypeSample* This);
1334 HRESULT (STDMETHODCALLTYPE *SetPreroll)(
1335 IAMMediaTypeSample* This,
1336 BOOL bIsPreroll);
1338 long (STDMETHODCALLTYPE *GetActualDataLength)(
1339 IAMMediaTypeSample* This);
1341 HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
1342 IAMMediaTypeSample* This,
1343 long Len);
1345 HRESULT (STDMETHODCALLTYPE *GetMediaType)(
1346 IAMMediaTypeSample* This,
1347 AM_MEDIA_TYPE** ppMediaType);
1349 HRESULT (STDMETHODCALLTYPE *SetMediaType)(
1350 IAMMediaTypeSample* This,
1351 AM_MEDIA_TYPE* pMediaType);
1353 HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
1354 IAMMediaTypeSample* This);
1356 HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
1357 IAMMediaTypeSample* This,
1358 BOOL bDiscontinuity);
1360 HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
1361 IAMMediaTypeSample* This,
1362 LONGLONG* pTimeStart,
1363 LONGLONG* pTimeEnd);
1365 HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
1366 IAMMediaTypeSample* This,
1367 LONGLONG* pTimeStart,
1368 LONGLONG* pTimeEnd);
1372 /*** IUnknown methods ***/
1373 #define IAMMediaTypeSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1374 #define IAMMediaTypeSample_AddRef(p) (p)->lpVtbl->AddRef(p)
1375 #define IAMMediaTypeSample_Release(p) (p)->lpVtbl->Release(p)
1376 /*** IStreamSample methods ***/
1377 #define IAMMediaTypeSample_GetMediaStream(p,a) (p)->lpVtbl->GetMediaStream(p,a)
1378 #define IAMMediaTypeSample_GetSampleTimes(p,a,b,c) (p)->lpVtbl->GetSampleTimes(p,a,b,c)
1379 #define IAMMediaTypeSample_SetSampleTimes(p,a,b) (p)->lpVtbl->SetSampleTimes(p,a,b)
1380 #define IAMMediaTypeSample_Update(p,a,b,c,d) (p)->lpVtbl->Update(p,a,b,c,d)
1381 #define IAMMediaTypeSample_CompletionStatus(p,a,b) (p)->lpVtbl->CompletionStatus(p,a,b)
1382 /*** IAMMediaTypeSample methods ***/
1383 #define IAMMediaTypeSample_SetPointer(p,a,b) (p)->lpVtbl->SetPointer(p,a,b)
1384 #define IAMMediaTypeSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
1385 #define IAMMediaTypeSample_GetSize(p) (p)->lpVtbl->GetSize(p)
1386 #define IAMMediaTypeSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
1387 #define IAMMediaTypeSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
1388 #define IAMMediaTypeSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
1389 #define IAMMediaTypeSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
1390 #define IAMMediaTypeSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
1391 #define IAMMediaTypeSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
1392 #define IAMMediaTypeSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
1393 #define IAMMediaTypeSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
1394 #define IAMMediaTypeSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
1395 #define IAMMediaTypeSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
1396 #define IAMMediaTypeSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
1397 #define IAMMediaTypeSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
1398 #define IAMMediaTypeSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
1399 #define IAMMediaTypeSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
1401 #endif
1403 #define IAMMediaTypeSample_METHODS \
1404 ICOM_MSVTABLE_COMPAT_FIELDS \
1405 /*** IUnknown methods ***/ \
1406 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1407 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1408 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1409 /*** IStreamSample methods ***/ \
1410 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ IMediaStream** ppMediaStream) PURE; \
1411 STDMETHOD_(HRESULT,GetSampleTimes)(THIS_ STREAM_TIME* pStartTime, STREAM_TIME* pEndTime, STREAM_TIME* pCurrentTime) PURE; \
1412 STDMETHOD_(HRESULT,SetSampleTimes)(THIS_ const STREAM_TIME* pStartTime, const STREAM_TIME* pEndTime) PURE; \
1413 STDMETHOD_(HRESULT,Update)(THIS_ DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData) PURE; \
1414 STDMETHOD_(HRESULT,CompletionStatus)(THIS_ DWORD dwFlags, DWORD dwMilliseconds) PURE; \
1415 /*** IAMMediaTypeSample methods ***/ \
1416 STDMETHOD_(HRESULT,SetPointer)(THIS_ BYTE* pBuffer, long lSize) PURE; \
1417 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
1418 STDMETHOD_(long,GetSize)(THIS) PURE; \
1419 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1420 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1421 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
1422 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
1423 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
1424 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
1425 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
1426 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long Len) PURE; \
1427 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
1428 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
1429 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
1430 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
1431 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
1432 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE;
1434 HRESULT CALLBACK IAMMediaTypeSample_SetPointer_Proxy(
1435 IAMMediaTypeSample* This,
1436 BYTE* pBuffer,
1437 long lSize);
1438 void __RPC_STUB IAMMediaTypeSample_SetPointer_Stub(
1439 struct IRpcStubBuffer* This,
1440 struct IRpcChannelBuffer* pRpcChannelBuffer,
1441 PRPC_MESSAGE pRpcMessage,
1442 DWORD* pdwStubPhase);
1443 HRESULT CALLBACK IAMMediaTypeSample_GetPointer_Proxy(
1444 IAMMediaTypeSample* This,
1445 BYTE** ppBuffer);
1446 void __RPC_STUB IAMMediaTypeSample_GetPointer_Stub(
1447 struct IRpcStubBuffer* This,
1448 struct IRpcChannelBuffer* pRpcChannelBuffer,
1449 PRPC_MESSAGE pRpcMessage,
1450 DWORD* pdwStubPhase);
1451 long CALLBACK IAMMediaTypeSample_GetSize_Proxy(
1452 IAMMediaTypeSample* This);
1453 void __RPC_STUB IAMMediaTypeSample_GetSize_Stub(
1454 struct IRpcStubBuffer* This,
1455 struct IRpcChannelBuffer* pRpcChannelBuffer,
1456 PRPC_MESSAGE pRpcMessage,
1457 DWORD* pdwStubPhase);
1458 HRESULT CALLBACK IAMMediaTypeSample_GetTime_Proxy(
1459 IAMMediaTypeSample* This,
1460 REFERENCE_TIME* pTimeStart,
1461 REFERENCE_TIME* pTimeEnd);
1462 void __RPC_STUB IAMMediaTypeSample_GetTime_Stub(
1463 struct IRpcStubBuffer* This,
1464 struct IRpcChannelBuffer* pRpcChannelBuffer,
1465 PRPC_MESSAGE pRpcMessage,
1466 DWORD* pdwStubPhase);
1467 HRESULT CALLBACK IAMMediaTypeSample_SetTime_Proxy(
1468 IAMMediaTypeSample* This,
1469 REFERENCE_TIME* pTimeStart,
1470 REFERENCE_TIME* pTimeEnd);
1471 void __RPC_STUB IAMMediaTypeSample_SetTime_Stub(
1472 struct IRpcStubBuffer* This,
1473 struct IRpcChannelBuffer* pRpcChannelBuffer,
1474 PRPC_MESSAGE pRpcMessage,
1475 DWORD* pdwStubPhase);
1476 HRESULT CALLBACK IAMMediaTypeSample_IsSyncPoint_Proxy(
1477 IAMMediaTypeSample* This);
1478 void __RPC_STUB IAMMediaTypeSample_IsSyncPoint_Stub(
1479 struct IRpcStubBuffer* This,
1480 struct IRpcChannelBuffer* pRpcChannelBuffer,
1481 PRPC_MESSAGE pRpcMessage,
1482 DWORD* pdwStubPhase);
1483 HRESULT CALLBACK IAMMediaTypeSample_SetSyncPoint_Proxy(
1484 IAMMediaTypeSample* This,
1485 BOOL bIsSyncPoint);
1486 void __RPC_STUB IAMMediaTypeSample_SetSyncPoint_Stub(
1487 struct IRpcStubBuffer* This,
1488 struct IRpcChannelBuffer* pRpcChannelBuffer,
1489 PRPC_MESSAGE pRpcMessage,
1490 DWORD* pdwStubPhase);
1491 HRESULT CALLBACK IAMMediaTypeSample_IsPreroll_Proxy(
1492 IAMMediaTypeSample* This);
1493 void __RPC_STUB IAMMediaTypeSample_IsPreroll_Stub(
1494 struct IRpcStubBuffer* This,
1495 struct IRpcChannelBuffer* pRpcChannelBuffer,
1496 PRPC_MESSAGE pRpcMessage,
1497 DWORD* pdwStubPhase);
1498 HRESULT CALLBACK IAMMediaTypeSample_SetPreroll_Proxy(
1499 IAMMediaTypeSample* This,
1500 BOOL bIsPreroll);
1501 void __RPC_STUB IAMMediaTypeSample_SetPreroll_Stub(
1502 struct IRpcStubBuffer* This,
1503 struct IRpcChannelBuffer* pRpcChannelBuffer,
1504 PRPC_MESSAGE pRpcMessage,
1505 DWORD* pdwStubPhase);
1506 long CALLBACK IAMMediaTypeSample_GetActualDataLength_Proxy(
1507 IAMMediaTypeSample* This);
1508 void __RPC_STUB IAMMediaTypeSample_GetActualDataLength_Stub(
1509 struct IRpcStubBuffer* This,
1510 struct IRpcChannelBuffer* pRpcChannelBuffer,
1511 PRPC_MESSAGE pRpcMessage,
1512 DWORD* pdwStubPhase);
1513 HRESULT CALLBACK IAMMediaTypeSample_SetActualDataLength_Proxy(
1514 IAMMediaTypeSample* This,
1515 long Len);
1516 void __RPC_STUB IAMMediaTypeSample_SetActualDataLength_Stub(
1517 struct IRpcStubBuffer* This,
1518 struct IRpcChannelBuffer* pRpcChannelBuffer,
1519 PRPC_MESSAGE pRpcMessage,
1520 DWORD* pdwStubPhase);
1521 HRESULT CALLBACK IAMMediaTypeSample_GetMediaType_Proxy(
1522 IAMMediaTypeSample* This,
1523 AM_MEDIA_TYPE** ppMediaType);
1524 void __RPC_STUB IAMMediaTypeSample_GetMediaType_Stub(
1525 struct IRpcStubBuffer* This,
1526 struct IRpcChannelBuffer* pRpcChannelBuffer,
1527 PRPC_MESSAGE pRpcMessage,
1528 DWORD* pdwStubPhase);
1529 HRESULT CALLBACK IAMMediaTypeSample_SetMediaType_Proxy(
1530 IAMMediaTypeSample* This,
1531 AM_MEDIA_TYPE* pMediaType);
1532 void __RPC_STUB IAMMediaTypeSample_SetMediaType_Stub(
1533 struct IRpcStubBuffer* This,
1534 struct IRpcChannelBuffer* pRpcChannelBuffer,
1535 PRPC_MESSAGE pRpcMessage,
1536 DWORD* pdwStubPhase);
1537 HRESULT CALLBACK IAMMediaTypeSample_IsDiscontinuity_Proxy(
1538 IAMMediaTypeSample* This);
1539 void __RPC_STUB IAMMediaTypeSample_IsDiscontinuity_Stub(
1540 struct IRpcStubBuffer* This,
1541 struct IRpcChannelBuffer* pRpcChannelBuffer,
1542 PRPC_MESSAGE pRpcMessage,
1543 DWORD* pdwStubPhase);
1544 HRESULT CALLBACK IAMMediaTypeSample_SetDiscontinuity_Proxy(
1545 IAMMediaTypeSample* This,
1546 BOOL bDiscontinuity);
1547 void __RPC_STUB IAMMediaTypeSample_SetDiscontinuity_Stub(
1548 struct IRpcStubBuffer* This,
1549 struct IRpcChannelBuffer* pRpcChannelBuffer,
1550 PRPC_MESSAGE pRpcMessage,
1551 DWORD* pdwStubPhase);
1552 HRESULT CALLBACK IAMMediaTypeSample_GetMediaTime_Proxy(
1553 IAMMediaTypeSample* This,
1554 LONGLONG* pTimeStart,
1555 LONGLONG* pTimeEnd);
1556 void __RPC_STUB IAMMediaTypeSample_GetMediaTime_Stub(
1557 struct IRpcStubBuffer* This,
1558 struct IRpcChannelBuffer* pRpcChannelBuffer,
1559 PRPC_MESSAGE pRpcMessage,
1560 DWORD* pdwStubPhase);
1561 HRESULT CALLBACK IAMMediaTypeSample_SetMediaTime_Proxy(
1562 IAMMediaTypeSample* This,
1563 LONGLONG* pTimeStart,
1564 LONGLONG* pTimeEnd);
1565 void __RPC_STUB IAMMediaTypeSample_SetMediaTime_Stub(
1566 struct IRpcStubBuffer* This,
1567 struct IRpcChannelBuffer* pRpcChannelBuffer,
1568 PRPC_MESSAGE pRpcMessage,
1569 DWORD* pdwStubPhase);
1571 #endif /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */
1573 DEFINE_GUID(CLSID_AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1574 DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1575 DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1576 DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1577 DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
1578 #ifdef __cplusplus
1580 #endif
1581 #endif /* __WIDL_AMSTREAM_H */