- Use FDI functions like native instead of advpack.ExtractFiles and
[wine.git] / include / amstream.h
blobe764d8960715b59f6e5f9e479918c8fd9a9985ea
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 BEGIN_INTERFACE
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);
216 END_INTERFACE
219 #ifdef COBJMACROS
220 /*** IUnknown methods ***/
221 #define IAMMultiMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
222 #define IAMMultiMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
223 #define IAMMultiMediaStream_Release(p) (p)->lpVtbl->Release(p)
224 /*** IMultiMediaStream methods ***/
225 #define IAMMultiMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
226 #define IAMMultiMediaStream_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
227 #define IAMMultiMediaStream_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
228 #define IAMMultiMediaStream_GetState(p,a) (p)->lpVtbl->GetState(p,a)
229 #define IAMMultiMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
230 #define IAMMultiMediaStream_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
231 #define IAMMultiMediaStream_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
232 #define IAMMultiMediaStream_Seek(p,a) (p)->lpVtbl->Seek(p,a)
233 #define IAMMultiMediaStream_GetEndOfStreamEventHandle(p,a) (p)->lpVtbl->GetEndOfStreamEventHandle(p,a)
234 /*** IAMMultiMediaStream methods ***/
235 #define IAMMultiMediaStream_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
236 #define IAMMultiMediaStream_GetFilterGraph(p,a) (p)->lpVtbl->GetFilterGraph(p,a)
237 #define IAMMultiMediaStream_GetFilter(p,a) (p)->lpVtbl->GetFilter(p,a)
238 #define IAMMultiMediaStream_AddMediaStream(p,a,b,c,d) (p)->lpVtbl->AddMediaStream(p,a,b,c,d)
239 #define IAMMultiMediaStream_OpenFile(p,a,b) (p)->lpVtbl->OpenFile(p,a,b)
240 #define IAMMultiMediaStream_OpenMoniker(p,a,b,c) (p)->lpVtbl->OpenMoniker(p,a,b,c)
241 #define IAMMultiMediaStream_Render(p,a) (p)->lpVtbl->Render(p,a)
242 #endif
244 #endif
246 #define IAMMultiMediaStream_METHODS \
247 /*** IUnknown methods ***/ \
248 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
249 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
250 STDMETHOD_(ULONG,Release)(THIS) PURE; \
251 /*** IMultiMediaStream methods ***/ \
252 STDMETHOD_(HRESULT,GetInformation)(THIS_ char* pdwFlags, STREAM_TYPE* pStreamType) PURE; \
253 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
254 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
255 STDMETHOD_(HRESULT,GetState)(THIS_ STREAM_STATE* pCurrentState) PURE; \
256 STDMETHOD_(HRESULT,SetState)(THIS_ STREAM_STATE NewState) PURE; \
257 STDMETHOD_(HRESULT,GetTime)(THIS_ STREAM_TIME* pCurrentTime) PURE; \
258 STDMETHOD_(HRESULT,GetDuration)(THIS_ STREAM_TIME* pDuration) PURE; \
259 STDMETHOD_(HRESULT,Seek)(THIS_ STREAM_TIME SeekTime) PURE; \
260 STDMETHOD_(HRESULT,GetEndOfStreamEventHandle)(THIS_ HANDLE* phEOS) PURE; \
261 /*** IAMMultiMediaStream methods ***/ \
262 STDMETHOD_(HRESULT,Initialize)(THIS_ STREAM_TYPE StreamType, DWORD dwFlags, IGraphBuilder* pFilterGraph) PURE; \
263 STDMETHOD_(HRESULT,GetFilterGraph)(THIS_ IGraphBuilder** ppGraphBuilder) PURE; \
264 STDMETHOD_(HRESULT,GetFilter)(THIS_ IMediaStreamFilter** ppFilter) PURE; \
265 STDMETHOD_(HRESULT,AddMediaStream)(THIS_ IUnknown* pStreamObject, const MSPID* PurposeId, DWORD dwFlags, IMediaStream** ppNewStream) PURE; \
266 STDMETHOD_(HRESULT,OpenFile)(THIS_ LPCWSTR pszFileName, DWORD dwFlags) PURE; \
267 STDMETHOD_(HRESULT,OpenMoniker)(THIS_ IBindCtx* pCtx, IMoniker* pMoniker, DWORD dwFlags) PURE; \
268 STDMETHOD_(HRESULT,Render)(THIS_ DWORD dwFlags) PURE;
270 HRESULT CALLBACK IAMMultiMediaStream_Initialize_Proxy(
271 IAMMultiMediaStream* This,
272 STREAM_TYPE StreamType,
273 DWORD dwFlags,
274 IGraphBuilder* pFilterGraph);
275 void __RPC_STUB IAMMultiMediaStream_Initialize_Stub(
276 struct IRpcStubBuffer* This,
277 struct IRpcChannelBuffer* pRpcChannelBuffer,
278 PRPC_MESSAGE pRpcMessage,
279 DWORD* pdwStubPhase);
280 HRESULT CALLBACK IAMMultiMediaStream_GetFilterGraph_Proxy(
281 IAMMultiMediaStream* This,
282 IGraphBuilder** ppGraphBuilder);
283 void __RPC_STUB IAMMultiMediaStream_GetFilterGraph_Stub(
284 struct IRpcStubBuffer* This,
285 struct IRpcChannelBuffer* pRpcChannelBuffer,
286 PRPC_MESSAGE pRpcMessage,
287 DWORD* pdwStubPhase);
288 HRESULT CALLBACK IAMMultiMediaStream_GetFilter_Proxy(
289 IAMMultiMediaStream* This,
290 IMediaStreamFilter** ppFilter);
291 void __RPC_STUB IAMMultiMediaStream_GetFilter_Stub(
292 struct IRpcStubBuffer* This,
293 struct IRpcChannelBuffer* pRpcChannelBuffer,
294 PRPC_MESSAGE pRpcMessage,
295 DWORD* pdwStubPhase);
296 HRESULT CALLBACK IAMMultiMediaStream_AddMediaStream_Proxy(
297 IAMMultiMediaStream* This,
298 IUnknown* pStreamObject,
299 const MSPID* PurposeId,
300 DWORD dwFlags,
301 IMediaStream** ppNewStream);
302 void __RPC_STUB IAMMultiMediaStream_AddMediaStream_Stub(
303 struct IRpcStubBuffer* This,
304 struct IRpcChannelBuffer* pRpcChannelBuffer,
305 PRPC_MESSAGE pRpcMessage,
306 DWORD* pdwStubPhase);
307 HRESULT CALLBACK IAMMultiMediaStream_OpenFile_Proxy(
308 IAMMultiMediaStream* This,
309 LPCWSTR pszFileName,
310 DWORD dwFlags);
311 void __RPC_STUB IAMMultiMediaStream_OpenFile_Stub(
312 struct IRpcStubBuffer* This,
313 struct IRpcChannelBuffer* pRpcChannelBuffer,
314 PRPC_MESSAGE pRpcMessage,
315 DWORD* pdwStubPhase);
316 HRESULT CALLBACK IAMMultiMediaStream_OpenMoniker_Proxy(
317 IAMMultiMediaStream* This,
318 IBindCtx* pCtx,
319 IMoniker* pMoniker,
320 DWORD dwFlags);
321 void __RPC_STUB IAMMultiMediaStream_OpenMoniker_Stub(
322 struct IRpcStubBuffer* This,
323 struct IRpcChannelBuffer* pRpcChannelBuffer,
324 PRPC_MESSAGE pRpcMessage,
325 DWORD* pdwStubPhase);
326 HRESULT CALLBACK IAMMultiMediaStream_Render_Proxy(
327 IAMMultiMediaStream* This,
328 DWORD dwFlags);
329 void __RPC_STUB IAMMultiMediaStream_Render_Stub(
330 struct IRpcStubBuffer* This,
331 struct IRpcChannelBuffer* pRpcChannelBuffer,
332 PRPC_MESSAGE pRpcMessage,
333 DWORD* pdwStubPhase);
335 #endif /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */
337 /*****************************************************************************
338 * IAMMediaStream interface
340 #ifndef __IAMMediaStream_INTERFACE_DEFINED__
341 #define __IAMMediaStream_INTERFACE_DEFINED__
343 DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
344 #if defined(__cplusplus) && !defined(CINTERFACE)
345 struct IAMMediaStream : public IMediaStream
347 virtual HRESULT STDMETHODCALLTYPE Initialize(
348 IUnknown* pSourceObject,
349 DWORD dwFlags,
350 REFMSPID PurposeId,
351 const STREAM_TYPE StreamType) = 0;
353 virtual HRESULT STDMETHODCALLTYPE SetState(
354 FILTER_STATE State) = 0;
356 virtual HRESULT STDMETHODCALLTYPE JoinAMMultiMediaStream(
357 IAMMultiMediaStream* pAMMultiMediaStream) = 0;
359 virtual HRESULT STDMETHODCALLTYPE JoinFilter(
360 IMediaStreamFilter* pMediaStreamFilter) = 0;
362 virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
363 IFilterGraph* pFilterGraph) = 0;
366 #else
367 typedef struct IAMMediaStreamVtbl IAMMediaStreamVtbl;
368 struct IAMMediaStream {
369 const IAMMediaStreamVtbl* lpVtbl;
371 struct IAMMediaStreamVtbl {
372 BEGIN_INTERFACE
374 /*** IUnknown methods ***/
375 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
376 IAMMediaStream* This,
377 REFIID riid,
378 void** ppvObject);
380 ULONG (STDMETHODCALLTYPE *AddRef)(
381 IAMMediaStream* This);
383 ULONG (STDMETHODCALLTYPE *Release)(
384 IAMMediaStream* This);
386 /*** IMediaStream methods ***/
387 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
388 IAMMediaStream* This,
389 IMultiMediaStream** ppMultiMediaStream);
391 HRESULT (STDMETHODCALLTYPE *GetInformation)(
392 IAMMediaStream* This,
393 MSPID* pPurposeId,
394 STREAM_TYPE* pType);
396 HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
397 IAMMediaStream* This,
398 IMediaStream* pStreamThatHasDesiredFormat,
399 DWORD dwFlags);
401 HRESULT (STDMETHODCALLTYPE *AllocateSample)(
402 IAMMediaStream* This,
403 DWORD dwFlags,
404 IStreamSample** ppSample);
406 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
407 IAMMediaStream* This,
408 IStreamSample* pExistingSample,
409 DWORD dwFlags,
410 IStreamSample** ppNewSample);
412 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
413 IAMMediaStream* This,
414 DWORD dwFlags);
416 /*** IAMMediaStream methods ***/
417 HRESULT (STDMETHODCALLTYPE *Initialize)(
418 IAMMediaStream* This,
419 IUnknown* pSourceObject,
420 DWORD dwFlags,
421 REFMSPID PurposeId,
422 const STREAM_TYPE StreamType);
424 HRESULT (STDMETHODCALLTYPE *SetState)(
425 IAMMediaStream* This,
426 FILTER_STATE State);
428 HRESULT (STDMETHODCALLTYPE *JoinAMMultiMediaStream)(
429 IAMMediaStream* This,
430 IAMMultiMediaStream* pAMMultiMediaStream);
432 HRESULT (STDMETHODCALLTYPE *JoinFilter)(
433 IAMMediaStream* This,
434 IMediaStreamFilter* pMediaStreamFilter);
436 HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
437 IAMMediaStream* This,
438 IFilterGraph* pFilterGraph);
440 END_INTERFACE
443 #ifdef COBJMACROS
444 /*** IUnknown methods ***/
445 #define IAMMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
446 #define IAMMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
447 #define IAMMediaStream_Release(p) (p)->lpVtbl->Release(p)
448 /*** IMediaStream methods ***/
449 #define IAMMediaStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
450 #define IAMMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
451 #define IAMMediaStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
452 #define IAMMediaStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
453 #define IAMMediaStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
454 #define IAMMediaStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
455 /*** IAMMediaStream methods ***/
456 #define IAMMediaStream_Initialize(p,a,b,c,d) (p)->lpVtbl->Initialize(p,a,b,c,d)
457 #define IAMMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
458 #define IAMMediaStream_JoinAMMultiMediaStream(p,a) (p)->lpVtbl->JoinAMMultiMediaStream(p,a)
459 #define IAMMediaStream_JoinFilter(p,a) (p)->lpVtbl->JoinFilter(p,a)
460 #define IAMMediaStream_JoinFilterGraph(p,a) (p)->lpVtbl->JoinFilterGraph(p,a)
461 #endif
463 #endif
465 #define IAMMediaStream_METHODS \
466 /*** IUnknown methods ***/ \
467 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
468 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
469 STDMETHOD_(ULONG,Release)(THIS) PURE; \
470 /*** IMediaStream methods ***/ \
471 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
472 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
473 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
474 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
475 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
476 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE; \
477 /*** IAMMediaStream methods ***/ \
478 STDMETHOD_(HRESULT,Initialize)(THIS_ IUnknown* pSourceObject, DWORD dwFlags, REFMSPID PurposeId, const STREAM_TYPE StreamType) PURE; \
479 STDMETHOD_(HRESULT,SetState)(THIS_ FILTER_STATE State) PURE; \
480 STDMETHOD_(HRESULT,JoinAMMultiMediaStream)(THIS_ IAMMultiMediaStream* pAMMultiMediaStream) PURE; \
481 STDMETHOD_(HRESULT,JoinFilter)(THIS_ IMediaStreamFilter* pMediaStreamFilter) PURE; \
482 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pFilterGraph) PURE;
484 HRESULT CALLBACK IAMMediaStream_Initialize_Proxy(
485 IAMMediaStream* This,
486 IUnknown* pSourceObject,
487 DWORD dwFlags,
488 REFMSPID PurposeId,
489 const STREAM_TYPE StreamType);
490 void __RPC_STUB IAMMediaStream_Initialize_Stub(
491 struct IRpcStubBuffer* This,
492 struct IRpcChannelBuffer* pRpcChannelBuffer,
493 PRPC_MESSAGE pRpcMessage,
494 DWORD* pdwStubPhase);
495 HRESULT CALLBACK IAMMediaStream_SetState_Proxy(
496 IAMMediaStream* This,
497 FILTER_STATE State);
498 void __RPC_STUB IAMMediaStream_SetState_Stub(
499 struct IRpcStubBuffer* This,
500 struct IRpcChannelBuffer* pRpcChannelBuffer,
501 PRPC_MESSAGE pRpcMessage,
502 DWORD* pdwStubPhase);
503 HRESULT CALLBACK IAMMediaStream_JoinAMMultiMediaStream_Proxy(
504 IAMMediaStream* This,
505 IAMMultiMediaStream* pAMMultiMediaStream);
506 void __RPC_STUB IAMMediaStream_JoinAMMultiMediaStream_Stub(
507 struct IRpcStubBuffer* This,
508 struct IRpcChannelBuffer* pRpcChannelBuffer,
509 PRPC_MESSAGE pRpcMessage,
510 DWORD* pdwStubPhase);
511 HRESULT CALLBACK IAMMediaStream_JoinFilter_Proxy(
512 IAMMediaStream* This,
513 IMediaStreamFilter* pMediaStreamFilter);
514 void __RPC_STUB IAMMediaStream_JoinFilter_Stub(
515 struct IRpcStubBuffer* This,
516 struct IRpcChannelBuffer* pRpcChannelBuffer,
517 PRPC_MESSAGE pRpcMessage,
518 DWORD* pdwStubPhase);
519 HRESULT CALLBACK IAMMediaStream_JoinFilterGraph_Proxy(
520 IAMMediaStream* This,
521 IFilterGraph* pFilterGraph);
522 void __RPC_STUB IAMMediaStream_JoinFilterGraph_Stub(
523 struct IRpcStubBuffer* This,
524 struct IRpcChannelBuffer* pRpcChannelBuffer,
525 PRPC_MESSAGE pRpcMessage,
526 DWORD* pdwStubPhase);
528 #endif /* __IAMMediaStream_INTERFACE_DEFINED__ */
530 /*****************************************************************************
531 * IMediaStreamFilter interface
533 #ifndef __IMediaStreamFilter_INTERFACE_DEFINED__
534 #define __IMediaStreamFilter_INTERFACE_DEFINED__
536 DEFINE_GUID(IID_IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
537 #if defined(__cplusplus) && !defined(CINTERFACE)
538 struct IMediaStreamFilter : public IBaseFilter
540 virtual HRESULT STDMETHODCALLTYPE AddMediaStream(
541 IAMMediaStream* pAMMediaStream) = 0;
543 virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
544 REFMSPID idPurpose,
545 IMediaStream** ppMediaStream) = 0;
547 virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
548 long Index,
549 IMediaStream** ppMediaStream) = 0;
551 virtual HRESULT STDMETHODCALLTYPE SupportSeeking(
552 BOOL bRenderer) = 0;
554 virtual HRESULT STDMETHODCALLTYPE ReferenceTimeToStreamTime(
555 REFERENCE_TIME* pTime) = 0;
557 virtual HRESULT STDMETHODCALLTYPE GetCurrentStreamTime(
558 REFERENCE_TIME* pCurrentStreamTime) = 0;
560 virtual HRESULT STDMETHODCALLTYPE WaitUntil(
561 REFERENCE_TIME WaitStreamTime) = 0;
563 virtual HRESULT STDMETHODCALLTYPE Flush(
564 BOOL bCancelEOS) = 0;
566 virtual HRESULT STDMETHODCALLTYPE EndOfStream(
567 ) = 0;
570 #else
571 typedef struct IMediaStreamFilterVtbl IMediaStreamFilterVtbl;
572 struct IMediaStreamFilter {
573 const IMediaStreamFilterVtbl* lpVtbl;
575 struct IMediaStreamFilterVtbl {
576 BEGIN_INTERFACE
578 /*** IUnknown methods ***/
579 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
580 IMediaStreamFilter* This,
581 REFIID riid,
582 void** ppvObject);
584 ULONG (STDMETHODCALLTYPE *AddRef)(
585 IMediaStreamFilter* This);
587 ULONG (STDMETHODCALLTYPE *Release)(
588 IMediaStreamFilter* This);
590 /*** IPersist methods ***/
591 HRESULT (STDMETHODCALLTYPE *GetClassID)(
592 IMediaStreamFilter* This,
593 CLSID* pClassID);
595 /*** IMediaFilter methods ***/
596 HRESULT (STDMETHODCALLTYPE *Stop)(
597 IMediaStreamFilter* This);
599 HRESULT (STDMETHODCALLTYPE *Pause)(
600 IMediaStreamFilter* This);
602 HRESULT (STDMETHODCALLTYPE *Run)(
603 IMediaStreamFilter* This,
604 REFERENCE_TIME tStart);
606 HRESULT (STDMETHODCALLTYPE *GetState)(
607 IMediaStreamFilter* This,
608 DWORD dwMilliSecsTimeout,
609 FILTER_STATE* State);
611 HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
612 IMediaStreamFilter* This,
613 IReferenceClock* pClock);
615 HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
616 IMediaStreamFilter* This,
617 IReferenceClock** pClock);
619 /*** IBaseFilter methods ***/
620 HRESULT (STDMETHODCALLTYPE *EnumPins)(
621 IMediaStreamFilter* This,
622 IEnumPins** ppEnum);
624 HRESULT (STDMETHODCALLTYPE *FindPin)(
625 IMediaStreamFilter* This,
626 LPCWSTR Id,
627 IPin** ppPin);
629 HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
630 IMediaStreamFilter* This,
631 FILTER_INFO* pInfo);
633 HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
634 IMediaStreamFilter* This,
635 IFilterGraph* pGraph,
636 LPCWSTR pName);
638 HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
639 IMediaStreamFilter* This,
640 LPWSTR* pVendorInfo);
642 /*** IMediaStreamFilter methods ***/
643 HRESULT (STDMETHODCALLTYPE *AddMediaStream)(
644 IMediaStreamFilter* This,
645 IAMMediaStream* pAMMediaStream);
647 HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
648 IMediaStreamFilter* This,
649 REFMSPID idPurpose,
650 IMediaStream** ppMediaStream);
652 HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
653 IMediaStreamFilter* This,
654 long Index,
655 IMediaStream** ppMediaStream);
657 HRESULT (STDMETHODCALLTYPE *SupportSeeking)(
658 IMediaStreamFilter* This,
659 BOOL bRenderer);
661 HRESULT (STDMETHODCALLTYPE *ReferenceTimeToStreamTime)(
662 IMediaStreamFilter* This,
663 REFERENCE_TIME* pTime);
665 HRESULT (STDMETHODCALLTYPE *GetCurrentStreamTime)(
666 IMediaStreamFilter* This,
667 REFERENCE_TIME* pCurrentStreamTime);
669 HRESULT (STDMETHODCALLTYPE *WaitUntil)(
670 IMediaStreamFilter* This,
671 REFERENCE_TIME WaitStreamTime);
673 HRESULT (STDMETHODCALLTYPE *Flush)(
674 IMediaStreamFilter* This,
675 BOOL bCancelEOS);
677 HRESULT (STDMETHODCALLTYPE *EndOfStream)(
678 IMediaStreamFilter* This);
680 END_INTERFACE
683 #ifdef COBJMACROS
684 /*** IUnknown methods ***/
685 #define IMediaStreamFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
686 #define IMediaStreamFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
687 #define IMediaStreamFilter_Release(p) (p)->lpVtbl->Release(p)
688 /*** IPersist methods ***/
689 #define IMediaStreamFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
690 /*** IMediaFilter methods ***/
691 #define IMediaStreamFilter_Stop(p) (p)->lpVtbl->Stop(p)
692 #define IMediaStreamFilter_Pause(p) (p)->lpVtbl->Pause(p)
693 #define IMediaStreamFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
694 #define IMediaStreamFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
695 #define IMediaStreamFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
696 #define IMediaStreamFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
697 /*** IBaseFilter methods ***/
698 #define IMediaStreamFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a)
699 #define IMediaStreamFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b)
700 #define IMediaStreamFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a)
701 #define IMediaStreamFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b)
702 #define IMediaStreamFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a)
703 /*** IMediaStreamFilter methods ***/
704 #define IMediaStreamFilter_AddMediaStream(p,a) (p)->lpVtbl->AddMediaStream(p,a)
705 #define IMediaStreamFilter_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
706 #define IMediaStreamFilter_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
707 #define IMediaStreamFilter_SupportSeeking(p,a) (p)->lpVtbl->SupportSeeking(p,a)
708 #define IMediaStreamFilter_ReferenceTimeToStreamTime(p,a) (p)->lpVtbl->ReferenceTimeToStreamTime(p,a)
709 #define IMediaStreamFilter_GetCurrentStreamTime(p,a) (p)->lpVtbl->GetCurrentStreamTime(p,a)
710 #define IMediaStreamFilter_WaitUntil(p,a) (p)->lpVtbl->WaitUntil(p,a)
711 #define IMediaStreamFilter_Flush(p,a) (p)->lpVtbl->Flush(p,a)
712 #define IMediaStreamFilter_EndOfStream(p) (p)->lpVtbl->EndOfStream(p)
713 #endif
715 #endif
717 #define IMediaStreamFilter_METHODS \
718 /*** IUnknown methods ***/ \
719 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
720 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
721 STDMETHOD_(ULONG,Release)(THIS) PURE; \
722 /*** IPersist methods ***/ \
723 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
724 /*** IMediaFilter methods ***/ \
725 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
726 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
727 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
728 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
729 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
730 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \
731 /*** IBaseFilter methods ***/ \
732 STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \
733 STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \
734 STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \
735 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \
736 STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE; \
737 /*** IMediaStreamFilter methods ***/ \
738 STDMETHOD_(HRESULT,AddMediaStream)(THIS_ IAMMediaStream* pAMMediaStream) PURE; \
739 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
740 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
741 STDMETHOD_(HRESULT,SupportSeeking)(THIS_ BOOL bRenderer) PURE; \
742 STDMETHOD_(HRESULT,ReferenceTimeToStreamTime)(THIS_ REFERENCE_TIME* pTime) PURE; \
743 STDMETHOD_(HRESULT,GetCurrentStreamTime)(THIS_ REFERENCE_TIME* pCurrentStreamTime) PURE; \
744 STDMETHOD_(HRESULT,WaitUntil)(THIS_ REFERENCE_TIME WaitStreamTime) PURE; \
745 STDMETHOD_(HRESULT,Flush)(THIS_ BOOL bCancelEOS) PURE; \
746 STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE;
748 HRESULT CALLBACK IMediaStreamFilter_AddMediaStream_Proxy(
749 IMediaStreamFilter* This,
750 IAMMediaStream* pAMMediaStream);
751 void __RPC_STUB IMediaStreamFilter_AddMediaStream_Stub(
752 struct IRpcStubBuffer* This,
753 struct IRpcChannelBuffer* pRpcChannelBuffer,
754 PRPC_MESSAGE pRpcMessage,
755 DWORD* pdwStubPhase);
756 HRESULT CALLBACK IMediaStreamFilter_GetMediaStream_Proxy(
757 IMediaStreamFilter* This,
758 REFMSPID idPurpose,
759 IMediaStream** ppMediaStream);
760 void __RPC_STUB IMediaStreamFilter_GetMediaStream_Stub(
761 struct IRpcStubBuffer* This,
762 struct IRpcChannelBuffer* pRpcChannelBuffer,
763 PRPC_MESSAGE pRpcMessage,
764 DWORD* pdwStubPhase);
765 HRESULT CALLBACK IMediaStreamFilter_EnumMediaStreams_Proxy(
766 IMediaStreamFilter* This,
767 long Index,
768 IMediaStream** ppMediaStream);
769 void __RPC_STUB IMediaStreamFilter_EnumMediaStreams_Stub(
770 struct IRpcStubBuffer* This,
771 struct IRpcChannelBuffer* pRpcChannelBuffer,
772 PRPC_MESSAGE pRpcMessage,
773 DWORD* pdwStubPhase);
774 HRESULT CALLBACK IMediaStreamFilter_SupportSeeking_Proxy(
775 IMediaStreamFilter* This,
776 BOOL bRenderer);
777 void __RPC_STUB IMediaStreamFilter_SupportSeeking_Stub(
778 struct IRpcStubBuffer* This,
779 struct IRpcChannelBuffer* pRpcChannelBuffer,
780 PRPC_MESSAGE pRpcMessage,
781 DWORD* pdwStubPhase);
782 HRESULT CALLBACK IMediaStreamFilter_ReferenceTimeToStreamTime_Proxy(
783 IMediaStreamFilter* This,
784 REFERENCE_TIME* pTime);
785 void __RPC_STUB IMediaStreamFilter_ReferenceTimeToStreamTime_Stub(
786 struct IRpcStubBuffer* This,
787 struct IRpcChannelBuffer* pRpcChannelBuffer,
788 PRPC_MESSAGE pRpcMessage,
789 DWORD* pdwStubPhase);
790 HRESULT CALLBACK IMediaStreamFilter_GetCurrentStreamTime_Proxy(
791 IMediaStreamFilter* This,
792 REFERENCE_TIME* pCurrentStreamTime);
793 void __RPC_STUB IMediaStreamFilter_GetCurrentStreamTime_Stub(
794 struct IRpcStubBuffer* This,
795 struct IRpcChannelBuffer* pRpcChannelBuffer,
796 PRPC_MESSAGE pRpcMessage,
797 DWORD* pdwStubPhase);
798 HRESULT CALLBACK IMediaStreamFilter_WaitUntil_Proxy(
799 IMediaStreamFilter* This,
800 REFERENCE_TIME WaitStreamTime);
801 void __RPC_STUB IMediaStreamFilter_WaitUntil_Stub(
802 struct IRpcStubBuffer* This,
803 struct IRpcChannelBuffer* pRpcChannelBuffer,
804 PRPC_MESSAGE pRpcMessage,
805 DWORD* pdwStubPhase);
806 HRESULT CALLBACK IMediaStreamFilter_Flush_Proxy(
807 IMediaStreamFilter* This,
808 BOOL bCancelEOS);
809 void __RPC_STUB IMediaStreamFilter_Flush_Stub(
810 struct IRpcStubBuffer* This,
811 struct IRpcChannelBuffer* pRpcChannelBuffer,
812 PRPC_MESSAGE pRpcMessage,
813 DWORD* pdwStubPhase);
814 HRESULT CALLBACK IMediaStreamFilter_EndOfStream_Proxy(
815 IMediaStreamFilter* This);
816 void __RPC_STUB IMediaStreamFilter_EndOfStream_Stub(
817 struct IRpcStubBuffer* This,
818 struct IRpcChannelBuffer* pRpcChannelBuffer,
819 PRPC_MESSAGE pRpcMessage,
820 DWORD* pdwStubPhase);
822 #endif /* __IMediaStreamFilter_INTERFACE_DEFINED__ */
824 #ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
825 #define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
826 typedef struct IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator;
827 #endif
829 /*****************************************************************************
830 * IDirectDrawMediaSampleAllocator interface
832 #ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
833 #define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
835 DEFINE_GUID(IID_IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
836 #if defined(__cplusplus) && !defined(CINTERFACE)
837 struct IDirectDrawMediaSampleAllocator : public IUnknown
839 virtual HRESULT STDMETHODCALLTYPE GetDirectDraw(
840 IDirectDraw** ppDirectDraw) = 0;
843 #else
844 typedef struct IDirectDrawMediaSampleAllocatorVtbl IDirectDrawMediaSampleAllocatorVtbl;
845 struct IDirectDrawMediaSampleAllocator {
846 const IDirectDrawMediaSampleAllocatorVtbl* lpVtbl;
848 struct IDirectDrawMediaSampleAllocatorVtbl {
849 BEGIN_INTERFACE
851 /*** IUnknown methods ***/
852 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
853 IDirectDrawMediaSampleAllocator* This,
854 REFIID riid,
855 void** ppvObject);
857 ULONG (STDMETHODCALLTYPE *AddRef)(
858 IDirectDrawMediaSampleAllocator* This);
860 ULONG (STDMETHODCALLTYPE *Release)(
861 IDirectDrawMediaSampleAllocator* This);
863 /*** IDirectDrawMediaSampleAllocator methods ***/
864 HRESULT (STDMETHODCALLTYPE *GetDirectDraw)(
865 IDirectDrawMediaSampleAllocator* This,
866 IDirectDraw** ppDirectDraw);
868 END_INTERFACE
871 #ifdef COBJMACROS
872 /*** IUnknown methods ***/
873 #define IDirectDrawMediaSampleAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
874 #define IDirectDrawMediaSampleAllocator_AddRef(p) (p)->lpVtbl->AddRef(p)
875 #define IDirectDrawMediaSampleAllocator_Release(p) (p)->lpVtbl->Release(p)
876 /*** IDirectDrawMediaSampleAllocator methods ***/
877 #define IDirectDrawMediaSampleAllocator_GetDirectDraw(p,a) (p)->lpVtbl->GetDirectDraw(p,a)
878 #endif
880 #endif
882 #define IDirectDrawMediaSampleAllocator_METHODS \
883 /*** IUnknown methods ***/ \
884 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
885 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
886 STDMETHOD_(ULONG,Release)(THIS) PURE; \
887 /*** IDirectDrawMediaSampleAllocator methods ***/ \
888 STDMETHOD_(HRESULT,GetDirectDraw)(THIS_ IDirectDraw** ppDirectDraw) PURE;
890 HRESULT CALLBACK IDirectDrawMediaSampleAllocator_GetDirectDraw_Proxy(
891 IDirectDrawMediaSampleAllocator* This,
892 IDirectDraw** ppDirectDraw);
893 void __RPC_STUB IDirectDrawMediaSampleAllocator_GetDirectDraw_Stub(
894 struct IRpcStubBuffer* This,
895 struct IRpcChannelBuffer* pRpcChannelBuffer,
896 PRPC_MESSAGE pRpcMessage,
897 DWORD* pdwStubPhase);
899 #endif /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */
901 #ifndef __IDirectDrawMediaSample_FWD_DEFINED__
902 #define __IDirectDrawMediaSample_FWD_DEFINED__
903 typedef struct IDirectDrawMediaSample IDirectDrawMediaSample;
904 #endif
906 /*****************************************************************************
907 * IDirectDrawMediaSample interface
909 #ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__
910 #define __IDirectDrawMediaSample_INTERFACE_DEFINED__
912 DEFINE_GUID(IID_IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
913 #if defined(__cplusplus) && !defined(CINTERFACE)
914 struct IDirectDrawMediaSample : public IUnknown
916 virtual HRESULT STDMETHODCALLTYPE GetSurfaceAndReleaseLock(
917 IDirectDrawSurface** ppDirectDrawSurface,
918 RECT* pRect) = 0;
920 virtual HRESULT STDMETHODCALLTYPE LockMediaSamplePointer(
921 ) = 0;
924 #else
925 typedef struct IDirectDrawMediaSampleVtbl IDirectDrawMediaSampleVtbl;
926 struct IDirectDrawMediaSample {
927 const IDirectDrawMediaSampleVtbl* lpVtbl;
929 struct IDirectDrawMediaSampleVtbl {
930 BEGIN_INTERFACE
932 /*** IUnknown methods ***/
933 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
934 IDirectDrawMediaSample* This,
935 REFIID riid,
936 void** ppvObject);
938 ULONG (STDMETHODCALLTYPE *AddRef)(
939 IDirectDrawMediaSample* This);
941 ULONG (STDMETHODCALLTYPE *Release)(
942 IDirectDrawMediaSample* This);
944 /*** IDirectDrawMediaSample methods ***/
945 HRESULT (STDMETHODCALLTYPE *GetSurfaceAndReleaseLock)(
946 IDirectDrawMediaSample* This,
947 IDirectDrawSurface** ppDirectDrawSurface,
948 RECT* pRect);
950 HRESULT (STDMETHODCALLTYPE *LockMediaSamplePointer)(
951 IDirectDrawMediaSample* This);
953 END_INTERFACE
956 #ifdef COBJMACROS
957 /*** IUnknown methods ***/
958 #define IDirectDrawMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
959 #define IDirectDrawMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p)
960 #define IDirectDrawMediaSample_Release(p) (p)->lpVtbl->Release(p)
961 /*** IDirectDrawMediaSample methods ***/
962 #define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(p,a,b) (p)->lpVtbl->GetSurfaceAndReleaseLock(p,a,b)
963 #define IDirectDrawMediaSample_LockMediaSamplePointer(p) (p)->lpVtbl->LockMediaSamplePointer(p)
964 #endif
966 #endif
968 #define IDirectDrawMediaSample_METHODS \
969 /*** IUnknown methods ***/ \
970 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
971 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
972 STDMETHOD_(ULONG,Release)(THIS) PURE; \
973 /*** IDirectDrawMediaSample methods ***/ \
974 STDMETHOD_(HRESULT,GetSurfaceAndReleaseLock)(THIS_ IDirectDrawSurface** ppDirectDrawSurface, RECT* pRect) PURE; \
975 STDMETHOD_(HRESULT,LockMediaSamplePointer)(THIS) PURE;
977 HRESULT CALLBACK IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Proxy(
978 IDirectDrawMediaSample* This,
979 IDirectDrawSurface** ppDirectDrawSurface,
980 RECT* pRect);
981 void __RPC_STUB IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Stub(
982 struct IRpcStubBuffer* This,
983 struct IRpcChannelBuffer* pRpcChannelBuffer,
984 PRPC_MESSAGE pRpcMessage,
985 DWORD* pdwStubPhase);
986 HRESULT CALLBACK IDirectDrawMediaSample_LockMediaSamplePointer_Proxy(
987 IDirectDrawMediaSample* This);
988 void __RPC_STUB IDirectDrawMediaSample_LockMediaSamplePointer_Stub(
989 struct IRpcStubBuffer* This,
990 struct IRpcChannelBuffer* pRpcChannelBuffer,
991 PRPC_MESSAGE pRpcMessage,
992 DWORD* pdwStubPhase);
994 #endif /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */
996 /*****************************************************************************
997 * IAMMediaTypeStream interface
999 #ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__
1000 #define __IAMMediaTypeStream_INTERFACE_DEFINED__
1002 DEFINE_GUID(IID_IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1003 #if defined(__cplusplus) && !defined(CINTERFACE)
1004 struct IAMMediaTypeStream : public IMediaStream
1006 virtual HRESULT STDMETHODCALLTYPE GetFormat(
1007 AM_MEDIA_TYPE* pMediaType,
1008 DWORD dwFlags) = 0;
1010 virtual HRESULT STDMETHODCALLTYPE SetFormat(
1011 AM_MEDIA_TYPE* pMediaType,
1012 DWORD dwFlags) = 0;
1014 virtual HRESULT STDMETHODCALLTYPE CreateSample(
1015 long lSampleSize,
1016 BYTE* pbBuffer,
1017 DWORD dwFlags,
1018 IUnknown* pUnkOuter,
1019 IAMMediaTypeSample** ppAMMediaTypeSample) = 0;
1021 virtual HRESULT STDMETHODCALLTYPE GetStreamAllocatorRequirements(
1022 ALLOCATOR_PROPERTIES* pProps) = 0;
1024 virtual HRESULT STDMETHODCALLTYPE SetStreamAllocatorRequirements(
1025 ALLOCATOR_PROPERTIES* pProps) = 0;
1028 #else
1029 typedef struct IAMMediaTypeStreamVtbl IAMMediaTypeStreamVtbl;
1030 struct IAMMediaTypeStream {
1031 const IAMMediaTypeStreamVtbl* lpVtbl;
1033 struct IAMMediaTypeStreamVtbl {
1034 BEGIN_INTERFACE
1036 /*** IUnknown methods ***/
1037 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1038 IAMMediaTypeStream* This,
1039 REFIID riid,
1040 void** ppvObject);
1042 ULONG (STDMETHODCALLTYPE *AddRef)(
1043 IAMMediaTypeStream* This);
1045 ULONG (STDMETHODCALLTYPE *Release)(
1046 IAMMediaTypeStream* This);
1048 /*** IMediaStream methods ***/
1049 HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
1050 IAMMediaTypeStream* This,
1051 IMultiMediaStream** ppMultiMediaStream);
1053 HRESULT (STDMETHODCALLTYPE *GetInformation)(
1054 IAMMediaTypeStream* This,
1055 MSPID* pPurposeId,
1056 STREAM_TYPE* pType);
1058 HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
1059 IAMMediaTypeStream* This,
1060 IMediaStream* pStreamThatHasDesiredFormat,
1061 DWORD dwFlags);
1063 HRESULT (STDMETHODCALLTYPE *AllocateSample)(
1064 IAMMediaTypeStream* This,
1065 DWORD dwFlags,
1066 IStreamSample** ppSample);
1068 HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
1069 IAMMediaTypeStream* This,
1070 IStreamSample* pExistingSample,
1071 DWORD dwFlags,
1072 IStreamSample** ppNewSample);
1074 HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
1075 IAMMediaTypeStream* This,
1076 DWORD dwFlags);
1078 /*** IAMMediaTypeStream methods ***/
1079 HRESULT (STDMETHODCALLTYPE *GetFormat)(
1080 IAMMediaTypeStream* This,
1081 AM_MEDIA_TYPE* pMediaType,
1082 DWORD dwFlags);
1084 HRESULT (STDMETHODCALLTYPE *SetFormat)(
1085 IAMMediaTypeStream* This,
1086 AM_MEDIA_TYPE* pMediaType,
1087 DWORD dwFlags);
1089 HRESULT (STDMETHODCALLTYPE *CreateSample)(
1090 IAMMediaTypeStream* This,
1091 long lSampleSize,
1092 BYTE* pbBuffer,
1093 DWORD dwFlags,
1094 IUnknown* pUnkOuter,
1095 IAMMediaTypeSample** ppAMMediaTypeSample);
1097 HRESULT (STDMETHODCALLTYPE *GetStreamAllocatorRequirements)(
1098 IAMMediaTypeStream* This,
1099 ALLOCATOR_PROPERTIES* pProps);
1101 HRESULT (STDMETHODCALLTYPE *SetStreamAllocatorRequirements)(
1102 IAMMediaTypeStream* This,
1103 ALLOCATOR_PROPERTIES* pProps);
1105 END_INTERFACE
1108 #ifdef COBJMACROS
1109 /*** IUnknown methods ***/
1110 #define IAMMediaTypeStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1111 #define IAMMediaTypeStream_AddRef(p) (p)->lpVtbl->AddRef(p)
1112 #define IAMMediaTypeStream_Release(p) (p)->lpVtbl->Release(p)
1113 /*** IMediaStream methods ***/
1114 #define IAMMediaTypeStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
1115 #define IAMMediaTypeStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
1116 #define IAMMediaTypeStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
1117 #define IAMMediaTypeStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
1118 #define IAMMediaTypeStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
1119 #define IAMMediaTypeStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
1120 /*** IAMMediaTypeStream methods ***/
1121 #define IAMMediaTypeStream_GetFormat(p,a,b) (p)->lpVtbl->GetFormat(p,a,b)
1122 #define IAMMediaTypeStream_SetFormat(p,a,b) (p)->lpVtbl->SetFormat(p,a,b)
1123 #define IAMMediaTypeStream_CreateSample(p,a,b,c,d,e) (p)->lpVtbl->CreateSample(p,a,b,c,d,e)
1124 #define IAMMediaTypeStream_GetStreamAllocatorRequirements(p,a) (p)->lpVtbl->GetStreamAllocatorRequirements(p,a)
1125 #define IAMMediaTypeStream_SetStreamAllocatorRequirements(p,a) (p)->lpVtbl->SetStreamAllocatorRequirements(p,a)
1126 #endif
1128 #endif
1130 #define IAMMediaTypeStream_METHODS \
1131 /*** IUnknown methods ***/ \
1132 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1133 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1134 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1135 /*** IMediaStream methods ***/ \
1136 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
1137 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
1138 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
1139 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
1140 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
1141 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE; \
1142 /*** IAMMediaTypeStream methods ***/ \
1143 STDMETHOD_(HRESULT,GetFormat)(THIS_ AM_MEDIA_TYPE* pMediaType, DWORD dwFlags) PURE; \
1144 STDMETHOD_(HRESULT,SetFormat)(THIS_ AM_MEDIA_TYPE* pMediaType, DWORD dwFlags) PURE; \
1145 STDMETHOD_(HRESULT,CreateSample)(THIS_ long lSampleSize, BYTE* pbBuffer, DWORD dwFlags, IUnknown* pUnkOuter, IAMMediaTypeSample** ppAMMediaTypeSample) PURE; \
1146 STDMETHOD_(HRESULT,GetStreamAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
1147 STDMETHOD_(HRESULT,SetStreamAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE;
1149 HRESULT CALLBACK IAMMediaTypeStream_GetFormat_Proxy(
1150 IAMMediaTypeStream* This,
1151 AM_MEDIA_TYPE* pMediaType,
1152 DWORD dwFlags);
1153 void __RPC_STUB IAMMediaTypeStream_GetFormat_Stub(
1154 struct IRpcStubBuffer* This,
1155 struct IRpcChannelBuffer* pRpcChannelBuffer,
1156 PRPC_MESSAGE pRpcMessage,
1157 DWORD* pdwStubPhase);
1158 HRESULT CALLBACK IAMMediaTypeStream_SetFormat_Proxy(
1159 IAMMediaTypeStream* This,
1160 AM_MEDIA_TYPE* pMediaType,
1161 DWORD dwFlags);
1162 void __RPC_STUB IAMMediaTypeStream_SetFormat_Stub(
1163 struct IRpcStubBuffer* This,
1164 struct IRpcChannelBuffer* pRpcChannelBuffer,
1165 PRPC_MESSAGE pRpcMessage,
1166 DWORD* pdwStubPhase);
1167 HRESULT CALLBACK IAMMediaTypeStream_CreateSample_Proxy(
1168 IAMMediaTypeStream* This,
1169 long lSampleSize,
1170 BYTE* pbBuffer,
1171 DWORD dwFlags,
1172 IUnknown* pUnkOuter,
1173 IAMMediaTypeSample** ppAMMediaTypeSample);
1174 void __RPC_STUB IAMMediaTypeStream_CreateSample_Stub(
1175 struct IRpcStubBuffer* This,
1176 struct IRpcChannelBuffer* pRpcChannelBuffer,
1177 PRPC_MESSAGE pRpcMessage,
1178 DWORD* pdwStubPhase);
1179 HRESULT CALLBACK IAMMediaTypeStream_GetStreamAllocatorRequirements_Proxy(
1180 IAMMediaTypeStream* This,
1181 ALLOCATOR_PROPERTIES* pProps);
1182 void __RPC_STUB IAMMediaTypeStream_GetStreamAllocatorRequirements_Stub(
1183 struct IRpcStubBuffer* This,
1184 struct IRpcChannelBuffer* pRpcChannelBuffer,
1185 PRPC_MESSAGE pRpcMessage,
1186 DWORD* pdwStubPhase);
1187 HRESULT CALLBACK IAMMediaTypeStream_SetStreamAllocatorRequirements_Proxy(
1188 IAMMediaTypeStream* This,
1189 ALLOCATOR_PROPERTIES* pProps);
1190 void __RPC_STUB IAMMediaTypeStream_SetStreamAllocatorRequirements_Stub(
1191 struct IRpcStubBuffer* This,
1192 struct IRpcChannelBuffer* pRpcChannelBuffer,
1193 PRPC_MESSAGE pRpcMessage,
1194 DWORD* pdwStubPhase);
1196 #endif /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */
1198 /*****************************************************************************
1199 * IAMMediaTypeSample interface
1201 #ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__
1202 #define __IAMMediaTypeSample_INTERFACE_DEFINED__
1204 DEFINE_GUID(IID_IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1205 #if defined(__cplusplus) && !defined(CINTERFACE)
1206 struct IAMMediaTypeSample : public IStreamSample
1208 virtual HRESULT STDMETHODCALLTYPE SetPointer(
1209 BYTE* pBuffer,
1210 long lSize) = 0;
1212 virtual HRESULT STDMETHODCALLTYPE GetPointer(
1213 BYTE** ppBuffer) = 0;
1215 virtual long STDMETHODCALLTYPE GetSize(
1216 ) = 0;
1218 virtual HRESULT STDMETHODCALLTYPE GetTime(
1219 REFERENCE_TIME* pTimeStart,
1220 REFERENCE_TIME* pTimeEnd) = 0;
1222 virtual HRESULT STDMETHODCALLTYPE SetTime(
1223 REFERENCE_TIME* pTimeStart,
1224 REFERENCE_TIME* pTimeEnd) = 0;
1226 virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
1227 ) = 0;
1229 virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
1230 BOOL bIsSyncPoint) = 0;
1232 virtual HRESULT STDMETHODCALLTYPE IsPreroll(
1233 ) = 0;
1235 virtual HRESULT STDMETHODCALLTYPE SetPreroll(
1236 BOOL bIsPreroll) = 0;
1238 virtual long STDMETHODCALLTYPE GetActualDataLength(
1239 ) = 0;
1241 virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
1242 long Len) = 0;
1244 virtual HRESULT STDMETHODCALLTYPE GetMediaType(
1245 AM_MEDIA_TYPE** ppMediaType) = 0;
1247 virtual HRESULT STDMETHODCALLTYPE SetMediaType(
1248 AM_MEDIA_TYPE* pMediaType) = 0;
1250 virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
1251 ) = 0;
1253 virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
1254 BOOL bDiscontinuity) = 0;
1256 virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
1257 LONGLONG* pTimeStart,
1258 LONGLONG* pTimeEnd) = 0;
1260 virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
1261 LONGLONG* pTimeStart,
1262 LONGLONG* pTimeEnd) = 0;
1265 #else
1266 typedef struct IAMMediaTypeSampleVtbl IAMMediaTypeSampleVtbl;
1267 struct IAMMediaTypeSample {
1268 const IAMMediaTypeSampleVtbl* lpVtbl;
1270 struct IAMMediaTypeSampleVtbl {
1271 BEGIN_INTERFACE
1273 /*** IUnknown methods ***/
1274 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1275 IAMMediaTypeSample* This,
1276 REFIID riid,
1277 void** ppvObject);
1279 ULONG (STDMETHODCALLTYPE *AddRef)(
1280 IAMMediaTypeSample* This);
1282 ULONG (STDMETHODCALLTYPE *Release)(
1283 IAMMediaTypeSample* This);
1285 /*** IStreamSample methods ***/
1286 HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
1287 IAMMediaTypeSample* This,
1288 IMediaStream** ppMediaStream);
1290 HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
1291 IAMMediaTypeSample* This,
1292 STREAM_TIME* pStartTime,
1293 STREAM_TIME* pEndTime,
1294 STREAM_TIME* pCurrentTime);
1296 HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
1297 IAMMediaTypeSample* This,
1298 const STREAM_TIME* pStartTime,
1299 const STREAM_TIME* pEndTime);
1301 HRESULT (STDMETHODCALLTYPE *Update)(
1302 IAMMediaTypeSample* This,
1303 DWORD dwFlags,
1304 HANDLE hEvent,
1305 PAPCFUNC pfnAPC,
1306 DWORD dwAPCData);
1308 HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
1309 IAMMediaTypeSample* This,
1310 DWORD dwFlags,
1311 DWORD dwMilliseconds);
1313 /*** IAMMediaTypeSample methods ***/
1314 HRESULT (STDMETHODCALLTYPE *SetPointer)(
1315 IAMMediaTypeSample* This,
1316 BYTE* pBuffer,
1317 long lSize);
1319 HRESULT (STDMETHODCALLTYPE *GetPointer)(
1320 IAMMediaTypeSample* This,
1321 BYTE** ppBuffer);
1323 long (STDMETHODCALLTYPE *GetSize)(
1324 IAMMediaTypeSample* This);
1326 HRESULT (STDMETHODCALLTYPE *GetTime)(
1327 IAMMediaTypeSample* This,
1328 REFERENCE_TIME* pTimeStart,
1329 REFERENCE_TIME* pTimeEnd);
1331 HRESULT (STDMETHODCALLTYPE *SetTime)(
1332 IAMMediaTypeSample* This,
1333 REFERENCE_TIME* pTimeStart,
1334 REFERENCE_TIME* pTimeEnd);
1336 HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
1337 IAMMediaTypeSample* This);
1339 HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
1340 IAMMediaTypeSample* This,
1341 BOOL bIsSyncPoint);
1343 HRESULT (STDMETHODCALLTYPE *IsPreroll)(
1344 IAMMediaTypeSample* This);
1346 HRESULT (STDMETHODCALLTYPE *SetPreroll)(
1347 IAMMediaTypeSample* This,
1348 BOOL bIsPreroll);
1350 long (STDMETHODCALLTYPE *GetActualDataLength)(
1351 IAMMediaTypeSample* This);
1353 HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
1354 IAMMediaTypeSample* This,
1355 long Len);
1357 HRESULT (STDMETHODCALLTYPE *GetMediaType)(
1358 IAMMediaTypeSample* This,
1359 AM_MEDIA_TYPE** ppMediaType);
1361 HRESULT (STDMETHODCALLTYPE *SetMediaType)(
1362 IAMMediaTypeSample* This,
1363 AM_MEDIA_TYPE* pMediaType);
1365 HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
1366 IAMMediaTypeSample* This);
1368 HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
1369 IAMMediaTypeSample* This,
1370 BOOL bDiscontinuity);
1372 HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
1373 IAMMediaTypeSample* This,
1374 LONGLONG* pTimeStart,
1375 LONGLONG* pTimeEnd);
1377 HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
1378 IAMMediaTypeSample* This,
1379 LONGLONG* pTimeStart,
1380 LONGLONG* pTimeEnd);
1382 END_INTERFACE
1385 #ifdef COBJMACROS
1386 /*** IUnknown methods ***/
1387 #define IAMMediaTypeSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1388 #define IAMMediaTypeSample_AddRef(p) (p)->lpVtbl->AddRef(p)
1389 #define IAMMediaTypeSample_Release(p) (p)->lpVtbl->Release(p)
1390 /*** IStreamSample methods ***/
1391 #define IAMMediaTypeSample_GetMediaStream(p,a) (p)->lpVtbl->GetMediaStream(p,a)
1392 #define IAMMediaTypeSample_GetSampleTimes(p,a,b,c) (p)->lpVtbl->GetSampleTimes(p,a,b,c)
1393 #define IAMMediaTypeSample_SetSampleTimes(p,a,b) (p)->lpVtbl->SetSampleTimes(p,a,b)
1394 #define IAMMediaTypeSample_Update(p,a,b,c,d) (p)->lpVtbl->Update(p,a,b,c,d)
1395 #define IAMMediaTypeSample_CompletionStatus(p,a,b) (p)->lpVtbl->CompletionStatus(p,a,b)
1396 /*** IAMMediaTypeSample methods ***/
1397 #define IAMMediaTypeSample_SetPointer(p,a,b) (p)->lpVtbl->SetPointer(p,a,b)
1398 #define IAMMediaTypeSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
1399 #define IAMMediaTypeSample_GetSize(p) (p)->lpVtbl->GetSize(p)
1400 #define IAMMediaTypeSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
1401 #define IAMMediaTypeSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
1402 #define IAMMediaTypeSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
1403 #define IAMMediaTypeSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
1404 #define IAMMediaTypeSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
1405 #define IAMMediaTypeSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
1406 #define IAMMediaTypeSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
1407 #define IAMMediaTypeSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
1408 #define IAMMediaTypeSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
1409 #define IAMMediaTypeSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
1410 #define IAMMediaTypeSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
1411 #define IAMMediaTypeSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
1412 #define IAMMediaTypeSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
1413 #define IAMMediaTypeSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
1414 #endif
1416 #endif
1418 #define IAMMediaTypeSample_METHODS \
1419 /*** IUnknown methods ***/ \
1420 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1421 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1422 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1423 /*** IStreamSample methods ***/ \
1424 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ IMediaStream** ppMediaStream) PURE; \
1425 STDMETHOD_(HRESULT,GetSampleTimes)(THIS_ STREAM_TIME* pStartTime, STREAM_TIME* pEndTime, STREAM_TIME* pCurrentTime) PURE; \
1426 STDMETHOD_(HRESULT,SetSampleTimes)(THIS_ const STREAM_TIME* pStartTime, const STREAM_TIME* pEndTime) PURE; \
1427 STDMETHOD_(HRESULT,Update)(THIS_ DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData) PURE; \
1428 STDMETHOD_(HRESULT,CompletionStatus)(THIS_ DWORD dwFlags, DWORD dwMilliseconds) PURE; \
1429 /*** IAMMediaTypeSample methods ***/ \
1430 STDMETHOD_(HRESULT,SetPointer)(THIS_ BYTE* pBuffer, long lSize) PURE; \
1431 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
1432 STDMETHOD_(long,GetSize)(THIS) PURE; \
1433 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1434 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1435 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
1436 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
1437 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
1438 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
1439 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
1440 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long Len) PURE; \
1441 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
1442 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
1443 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
1444 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
1445 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
1446 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE;
1448 HRESULT CALLBACK IAMMediaTypeSample_SetPointer_Proxy(
1449 IAMMediaTypeSample* This,
1450 BYTE* pBuffer,
1451 long lSize);
1452 void __RPC_STUB IAMMediaTypeSample_SetPointer_Stub(
1453 struct IRpcStubBuffer* This,
1454 struct IRpcChannelBuffer* pRpcChannelBuffer,
1455 PRPC_MESSAGE pRpcMessage,
1456 DWORD* pdwStubPhase);
1457 HRESULT CALLBACK IAMMediaTypeSample_GetPointer_Proxy(
1458 IAMMediaTypeSample* This,
1459 BYTE** ppBuffer);
1460 void __RPC_STUB IAMMediaTypeSample_GetPointer_Stub(
1461 struct IRpcStubBuffer* This,
1462 struct IRpcChannelBuffer* pRpcChannelBuffer,
1463 PRPC_MESSAGE pRpcMessage,
1464 DWORD* pdwStubPhase);
1465 long CALLBACK IAMMediaTypeSample_GetSize_Proxy(
1466 IAMMediaTypeSample* This);
1467 void __RPC_STUB IAMMediaTypeSample_GetSize_Stub(
1468 struct IRpcStubBuffer* This,
1469 struct IRpcChannelBuffer* pRpcChannelBuffer,
1470 PRPC_MESSAGE pRpcMessage,
1471 DWORD* pdwStubPhase);
1472 HRESULT CALLBACK IAMMediaTypeSample_GetTime_Proxy(
1473 IAMMediaTypeSample* This,
1474 REFERENCE_TIME* pTimeStart,
1475 REFERENCE_TIME* pTimeEnd);
1476 void __RPC_STUB IAMMediaTypeSample_GetTime_Stub(
1477 struct IRpcStubBuffer* This,
1478 struct IRpcChannelBuffer* pRpcChannelBuffer,
1479 PRPC_MESSAGE pRpcMessage,
1480 DWORD* pdwStubPhase);
1481 HRESULT CALLBACK IAMMediaTypeSample_SetTime_Proxy(
1482 IAMMediaTypeSample* This,
1483 REFERENCE_TIME* pTimeStart,
1484 REFERENCE_TIME* pTimeEnd);
1485 void __RPC_STUB IAMMediaTypeSample_SetTime_Stub(
1486 struct IRpcStubBuffer* This,
1487 struct IRpcChannelBuffer* pRpcChannelBuffer,
1488 PRPC_MESSAGE pRpcMessage,
1489 DWORD* pdwStubPhase);
1490 HRESULT CALLBACK IAMMediaTypeSample_IsSyncPoint_Proxy(
1491 IAMMediaTypeSample* This);
1492 void __RPC_STUB IAMMediaTypeSample_IsSyncPoint_Stub(
1493 struct IRpcStubBuffer* This,
1494 struct IRpcChannelBuffer* pRpcChannelBuffer,
1495 PRPC_MESSAGE pRpcMessage,
1496 DWORD* pdwStubPhase);
1497 HRESULT CALLBACK IAMMediaTypeSample_SetSyncPoint_Proxy(
1498 IAMMediaTypeSample* This,
1499 BOOL bIsSyncPoint);
1500 void __RPC_STUB IAMMediaTypeSample_SetSyncPoint_Stub(
1501 struct IRpcStubBuffer* This,
1502 struct IRpcChannelBuffer* pRpcChannelBuffer,
1503 PRPC_MESSAGE pRpcMessage,
1504 DWORD* pdwStubPhase);
1505 HRESULT CALLBACK IAMMediaTypeSample_IsPreroll_Proxy(
1506 IAMMediaTypeSample* This);
1507 void __RPC_STUB IAMMediaTypeSample_IsPreroll_Stub(
1508 struct IRpcStubBuffer* This,
1509 struct IRpcChannelBuffer* pRpcChannelBuffer,
1510 PRPC_MESSAGE pRpcMessage,
1511 DWORD* pdwStubPhase);
1512 HRESULT CALLBACK IAMMediaTypeSample_SetPreroll_Proxy(
1513 IAMMediaTypeSample* This,
1514 BOOL bIsPreroll);
1515 void __RPC_STUB IAMMediaTypeSample_SetPreroll_Stub(
1516 struct IRpcStubBuffer* This,
1517 struct IRpcChannelBuffer* pRpcChannelBuffer,
1518 PRPC_MESSAGE pRpcMessage,
1519 DWORD* pdwStubPhase);
1520 long CALLBACK IAMMediaTypeSample_GetActualDataLength_Proxy(
1521 IAMMediaTypeSample* This);
1522 void __RPC_STUB IAMMediaTypeSample_GetActualDataLength_Stub(
1523 struct IRpcStubBuffer* This,
1524 struct IRpcChannelBuffer* pRpcChannelBuffer,
1525 PRPC_MESSAGE pRpcMessage,
1526 DWORD* pdwStubPhase);
1527 HRESULT CALLBACK IAMMediaTypeSample_SetActualDataLength_Proxy(
1528 IAMMediaTypeSample* This,
1529 long Len);
1530 void __RPC_STUB IAMMediaTypeSample_SetActualDataLength_Stub(
1531 struct IRpcStubBuffer* This,
1532 struct IRpcChannelBuffer* pRpcChannelBuffer,
1533 PRPC_MESSAGE pRpcMessage,
1534 DWORD* pdwStubPhase);
1535 HRESULT CALLBACK IAMMediaTypeSample_GetMediaType_Proxy(
1536 IAMMediaTypeSample* This,
1537 AM_MEDIA_TYPE** ppMediaType);
1538 void __RPC_STUB IAMMediaTypeSample_GetMediaType_Stub(
1539 struct IRpcStubBuffer* This,
1540 struct IRpcChannelBuffer* pRpcChannelBuffer,
1541 PRPC_MESSAGE pRpcMessage,
1542 DWORD* pdwStubPhase);
1543 HRESULT CALLBACK IAMMediaTypeSample_SetMediaType_Proxy(
1544 IAMMediaTypeSample* This,
1545 AM_MEDIA_TYPE* pMediaType);
1546 void __RPC_STUB IAMMediaTypeSample_SetMediaType_Stub(
1547 struct IRpcStubBuffer* This,
1548 struct IRpcChannelBuffer* pRpcChannelBuffer,
1549 PRPC_MESSAGE pRpcMessage,
1550 DWORD* pdwStubPhase);
1551 HRESULT CALLBACK IAMMediaTypeSample_IsDiscontinuity_Proxy(
1552 IAMMediaTypeSample* This);
1553 void __RPC_STUB IAMMediaTypeSample_IsDiscontinuity_Stub(
1554 struct IRpcStubBuffer* This,
1555 struct IRpcChannelBuffer* pRpcChannelBuffer,
1556 PRPC_MESSAGE pRpcMessage,
1557 DWORD* pdwStubPhase);
1558 HRESULT CALLBACK IAMMediaTypeSample_SetDiscontinuity_Proxy(
1559 IAMMediaTypeSample* This,
1560 BOOL bDiscontinuity);
1561 void __RPC_STUB IAMMediaTypeSample_SetDiscontinuity_Stub(
1562 struct IRpcStubBuffer* This,
1563 struct IRpcChannelBuffer* pRpcChannelBuffer,
1564 PRPC_MESSAGE pRpcMessage,
1565 DWORD* pdwStubPhase);
1566 HRESULT CALLBACK IAMMediaTypeSample_GetMediaTime_Proxy(
1567 IAMMediaTypeSample* This,
1568 LONGLONG* pTimeStart,
1569 LONGLONG* pTimeEnd);
1570 void __RPC_STUB IAMMediaTypeSample_GetMediaTime_Stub(
1571 struct IRpcStubBuffer* This,
1572 struct IRpcChannelBuffer* pRpcChannelBuffer,
1573 PRPC_MESSAGE pRpcMessage,
1574 DWORD* pdwStubPhase);
1575 HRESULT CALLBACK IAMMediaTypeSample_SetMediaTime_Proxy(
1576 IAMMediaTypeSample* This,
1577 LONGLONG* pTimeStart,
1578 LONGLONG* pTimeEnd);
1579 void __RPC_STUB IAMMediaTypeSample_SetMediaTime_Stub(
1580 struct IRpcStubBuffer* This,
1581 struct IRpcChannelBuffer* pRpcChannelBuffer,
1582 PRPC_MESSAGE pRpcMessage,
1583 DWORD* pdwStubPhase);
1585 #endif /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */
1587 DEFINE_GUID(CLSID_AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1588 DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1589 DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1590 DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1591 DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
1592 #ifdef __cplusplus
1594 #endif
1595 #endif /* __WIDL_AMSTREAM_H */