1 /*** Autogenerated by WIDL 0.1 from strmif.idl - Do not edit ***/
5 #ifndef __WIDL_STRMIF_H
6 #define __WIDL_STRMIF_H
12 #define CDEF_CLASS_DEFAULT 0x0001
13 #define CDEF_BYPASS_CLASS_MANAGER 0x0002
14 #define CDEF_CLASS_LEGACY 0x0004
15 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
16 #ifndef __ICreateDevEnum_FWD_DEFINED__
17 #define __ICreateDevEnum_FWD_DEFINED__
18 typedef struct ICreateDevEnum ICreateDevEnum
;
21 /*****************************************************************************
22 * ICreateDevEnum interface
24 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
25 #define __ICreateDevEnum_INTERFACE_DEFINED__
27 DEFINE_GUID(IID_ICreateDevEnum
, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
28 #if defined(__cplusplus) && !defined(CINTERFACE)
29 struct ICreateDevEnum
: public IUnknown
31 virtual HRESULT STDMETHODCALLTYPE
CreateClassEnumerator(
32 REFCLSID clsidDeviceClass
,
33 IEnumMoniker
** ppEnumMoniker
,
38 typedef struct ICreateDevEnumVtbl ICreateDevEnumVtbl
;
39 struct ICreateDevEnum
{
40 const ICreateDevEnumVtbl
* lpVtbl
;
42 struct ICreateDevEnumVtbl
{
45 /*** IUnknown methods ***/
46 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
51 ULONG (STDMETHODCALLTYPE
*AddRef
)(
52 ICreateDevEnum
* This
);
54 ULONG (STDMETHODCALLTYPE
*Release
)(
55 ICreateDevEnum
* This
);
57 /*** ICreateDevEnum methods ***/
58 HRESULT (STDMETHODCALLTYPE
*CreateClassEnumerator
)(
60 REFCLSID clsidDeviceClass
,
61 IEnumMoniker
** ppEnumMoniker
,
68 /*** IUnknown methods ***/
69 #define ICreateDevEnum_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
70 #define ICreateDevEnum_AddRef(p) (p)->lpVtbl->AddRef(p)
71 #define ICreateDevEnum_Release(p) (p)->lpVtbl->Release(p)
72 /*** ICreateDevEnum methods ***/
73 #define ICreateDevEnum_CreateClassEnumerator(p,a,b,c) (p)->lpVtbl->CreateClassEnumerator(p,a,b,c)
78 #define ICreateDevEnum_METHODS \
79 /*** IUnknown methods ***/ \
80 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
81 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
82 STDMETHOD_(ULONG,Release)(THIS) PURE; \
83 /*** ICreateDevEnum methods ***/ \
84 STDMETHOD_(HRESULT,CreateClassEnumerator)(THIS_ REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags) PURE;
86 HRESULT CALLBACK
ICreateDevEnum_CreateClassEnumerator_Proxy(
88 REFCLSID clsidDeviceClass
,
89 IEnumMoniker
** ppEnumMoniker
,
91 void __RPC_STUB
ICreateDevEnum_CreateClassEnumerator_Stub(
92 struct IRpcStubBuffer
* This
,
93 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
94 PRPC_MESSAGE pRpcMessage
,
97 #endif /* __ICreateDevEnum_INTERFACE_DEFINED__ */
99 #define CHARS_IN_GUID 39
101 typedef struct _AMMediaType
{
104 BOOL bFixedSizeSamples
;
105 BOOL bTemporalCompression
;
113 typedef enum _PinDirection
{
118 #define MAX_PIN_NAME 128
119 #define MAX_FILTER_NAME 128
120 typedef LONGLONG REFERENCE_TIME
;
122 typedef DOUBLE REFTIME
;
124 typedef DWORD_PTR HSEMAPHORE
;
126 typedef DWORD_PTR HEVENT
;
128 typedef struct _AllocatorProperties
{
133 } ALLOCATOR_PROPERTIES
;
135 #ifndef __IAMovieSetup_FWD_DEFINED__
136 #define __IAMovieSetup_FWD_DEFINED__
137 typedef struct IAMovieSetup IAMovieSetup
;
140 #ifndef __IEnumFilters_FWD_DEFINED__
141 #define __IEnumFilters_FWD_DEFINED__
142 typedef struct IEnumFilters IEnumFilters
;
145 #ifndef __IEnumMediaTypes_FWD_DEFINED__
146 #define __IEnumMediaTypes_FWD_DEFINED__
147 typedef struct IEnumMediaTypes IEnumMediaTypes
;
150 #ifndef __IEnumPins_FWD_DEFINED__
151 #define __IEnumPins_FWD_DEFINED__
152 typedef struct IEnumPins IEnumPins
;
155 #ifndef __IBaseFilter_FWD_DEFINED__
156 #define __IBaseFilter_FWD_DEFINED__
157 typedef struct IBaseFilter IBaseFilter
;
160 #ifndef __IFilterGraph_FWD_DEFINED__
161 #define __IFilterGraph_FWD_DEFINED__
162 typedef struct IFilterGraph IFilterGraph
;
165 #ifndef __IMediaFilter_FWD_DEFINED__
166 #define __IMediaFilter_FWD_DEFINED__
167 typedef struct IMediaFilter IMediaFilter
;
170 #ifndef __IMediaSample_FWD_DEFINED__
171 #define __IMediaSample_FWD_DEFINED__
172 typedef struct IMediaSample IMediaSample
;
175 #ifndef __IMemAllocator_FWD_DEFINED__
176 #define __IMemAllocator_FWD_DEFINED__
177 typedef struct IMemAllocator IMemAllocator
;
180 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
181 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
182 typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp
;
185 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
186 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
187 typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp
;
190 #ifndef __IMemInputPin_FWD_DEFINED__
191 #define __IMemInputPin_FWD_DEFINED__
192 typedef struct IMemInputPin IMemInputPin
;
195 #ifndef __IPin_FWD_DEFINED__
196 #define __IPin_FWD_DEFINED__
197 typedef struct IPin IPin
;
200 #ifndef __IReferenceClock_FWD_DEFINED__
201 #define __IReferenceClock_FWD_DEFINED__
202 typedef struct IReferenceClock IReferenceClock
;
205 typedef struct _PinInfo
{
206 IBaseFilter
*pFilter
;
211 /*****************************************************************************
214 #ifndef __IPin_INTERFACE_DEFINED__
215 #define __IPin_INTERFACE_DEFINED__
217 DEFINE_GUID(IID_IPin
, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
218 #if defined(__cplusplus) && !defined(CINTERFACE)
219 struct IPin
: public IUnknown
221 virtual HRESULT STDMETHODCALLTYPE
Connect(
223 const AM_MEDIA_TYPE
* pmt
) = 0;
225 virtual HRESULT STDMETHODCALLTYPE
ReceiveConnection(
227 const AM_MEDIA_TYPE
* pmt
) = 0;
229 virtual HRESULT STDMETHODCALLTYPE
Disconnect(
232 virtual HRESULT STDMETHODCALLTYPE
ConnectedTo(
235 virtual HRESULT STDMETHODCALLTYPE
ConnectionMediaType(
236 AM_MEDIA_TYPE
* pmt
) = 0;
238 virtual HRESULT STDMETHODCALLTYPE
QueryPinInfo(
239 PIN_INFO
* pInfo
) = 0;
241 virtual HRESULT STDMETHODCALLTYPE
QueryDirection(
242 PIN_DIRECTION
* pPinDir
) = 0;
244 virtual HRESULT STDMETHODCALLTYPE
QueryId(
247 virtual HRESULT STDMETHODCALLTYPE
QueryAccept(
248 const AM_MEDIA_TYPE
* pmt
) = 0;
250 virtual HRESULT STDMETHODCALLTYPE
EnumMediaTypes(
251 IEnumMediaTypes
** ppEnum
) = 0;
253 virtual HRESULT STDMETHODCALLTYPE
QueryInternalConnections(
257 virtual HRESULT STDMETHODCALLTYPE
EndOfStream(
260 virtual HRESULT STDMETHODCALLTYPE
BeginFlush(
263 virtual HRESULT STDMETHODCALLTYPE
EndFlush(
266 virtual HRESULT STDMETHODCALLTYPE
NewSegment(
267 REFERENCE_TIME tStart
,
268 REFERENCE_TIME tStop
,
273 typedef struct IPinVtbl IPinVtbl
;
275 const IPinVtbl
* lpVtbl
;
280 /*** IUnknown methods ***/
281 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
286 ULONG (STDMETHODCALLTYPE
*AddRef
)(
289 ULONG (STDMETHODCALLTYPE
*Release
)(
292 /*** IPin methods ***/
293 HRESULT (STDMETHODCALLTYPE
*Connect
)(
296 const AM_MEDIA_TYPE
* pmt
);
298 HRESULT (STDMETHODCALLTYPE
*ReceiveConnection
)(
301 const AM_MEDIA_TYPE
* pmt
);
303 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
306 HRESULT (STDMETHODCALLTYPE
*ConnectedTo
)(
310 HRESULT (STDMETHODCALLTYPE
*ConnectionMediaType
)(
314 HRESULT (STDMETHODCALLTYPE
*QueryPinInfo
)(
318 HRESULT (STDMETHODCALLTYPE
*QueryDirection
)(
320 PIN_DIRECTION
* pPinDir
);
322 HRESULT (STDMETHODCALLTYPE
*QueryId
)(
326 HRESULT (STDMETHODCALLTYPE
*QueryAccept
)(
328 const AM_MEDIA_TYPE
* pmt
);
330 HRESULT (STDMETHODCALLTYPE
*EnumMediaTypes
)(
332 IEnumMediaTypes
** ppEnum
);
334 HRESULT (STDMETHODCALLTYPE
*QueryInternalConnections
)(
339 HRESULT (STDMETHODCALLTYPE
*EndOfStream
)(
342 HRESULT (STDMETHODCALLTYPE
*BeginFlush
)(
345 HRESULT (STDMETHODCALLTYPE
*EndFlush
)(
348 HRESULT (STDMETHODCALLTYPE
*NewSegment
)(
350 REFERENCE_TIME tStart
,
351 REFERENCE_TIME tStop
,
358 /*** IUnknown methods ***/
359 #define IPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
360 #define IPin_AddRef(p) (p)->lpVtbl->AddRef(p)
361 #define IPin_Release(p) (p)->lpVtbl->Release(p)
362 /*** IPin methods ***/
363 #define IPin_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
364 #define IPin_ReceiveConnection(p,a,b) (p)->lpVtbl->ReceiveConnection(p,a,b)
365 #define IPin_Disconnect(p) (p)->lpVtbl->Disconnect(p)
366 #define IPin_ConnectedTo(p,a) (p)->lpVtbl->ConnectedTo(p,a)
367 #define IPin_ConnectionMediaType(p,a) (p)->lpVtbl->ConnectionMediaType(p,a)
368 #define IPin_QueryPinInfo(p,a) (p)->lpVtbl->QueryPinInfo(p,a)
369 #define IPin_QueryDirection(p,a) (p)->lpVtbl->QueryDirection(p,a)
370 #define IPin_QueryId(p,a) (p)->lpVtbl->QueryId(p,a)
371 #define IPin_QueryAccept(p,a) (p)->lpVtbl->QueryAccept(p,a)
372 #define IPin_EnumMediaTypes(p,a) (p)->lpVtbl->EnumMediaTypes(p,a)
373 #define IPin_QueryInternalConnections(p,a,b) (p)->lpVtbl->QueryInternalConnections(p,a,b)
374 #define IPin_EndOfStream(p) (p)->lpVtbl->EndOfStream(p)
375 #define IPin_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
376 #define IPin_EndFlush(p) (p)->lpVtbl->EndFlush(p)
377 #define IPin_NewSegment(p,a,b,c) (p)->lpVtbl->NewSegment(p,a,b,c)
382 #define IPin_METHODS \
383 /*** IUnknown methods ***/ \
384 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
385 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
386 STDMETHOD_(ULONG,Release)(THIS) PURE; \
387 /*** IPin methods ***/ \
388 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* pReceivePin, const AM_MEDIA_TYPE* pmt) PURE; \
389 STDMETHOD_(HRESULT,ReceiveConnection)(THIS_ IPin* pConnector, const AM_MEDIA_TYPE* pmt) PURE; \
390 STDMETHOD_(HRESULT,Disconnect)(THIS) PURE; \
391 STDMETHOD_(HRESULT,ConnectedTo)(THIS_ IPin** pPin) PURE; \
392 STDMETHOD_(HRESULT,ConnectionMediaType)(THIS_ AM_MEDIA_TYPE* pmt) PURE; \
393 STDMETHOD_(HRESULT,QueryPinInfo)(THIS_ PIN_INFO* pInfo) PURE; \
394 STDMETHOD_(HRESULT,QueryDirection)(THIS_ PIN_DIRECTION* pPinDir) PURE; \
395 STDMETHOD_(HRESULT,QueryId)(THIS_ LPWSTR* Id) PURE; \
396 STDMETHOD_(HRESULT,QueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
397 STDMETHOD_(HRESULT,EnumMediaTypes)(THIS_ IEnumMediaTypes** ppEnum) PURE; \
398 STDMETHOD_(HRESULT,QueryInternalConnections)(THIS_ IPin** apPin, ULONG* nPin) PURE; \
399 STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE; \
400 STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
401 STDMETHOD_(HRESULT,EndFlush)(THIS) PURE; \
402 STDMETHOD_(HRESULT,NewSegment)(THIS_ REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) PURE;
404 HRESULT CALLBACK
IPin_Connect_Proxy(
407 const AM_MEDIA_TYPE
* pmt
);
408 void __RPC_STUB
IPin_Connect_Stub(
409 struct IRpcStubBuffer
* This
,
410 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
411 PRPC_MESSAGE pRpcMessage
,
412 DWORD
* pdwStubPhase
);
413 HRESULT CALLBACK
IPin_ReceiveConnection_Proxy(
416 const AM_MEDIA_TYPE
* pmt
);
417 void __RPC_STUB
IPin_ReceiveConnection_Stub(
418 struct IRpcStubBuffer
* This
,
419 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
420 PRPC_MESSAGE pRpcMessage
,
421 DWORD
* pdwStubPhase
);
422 HRESULT CALLBACK
IPin_Disconnect_Proxy(
424 void __RPC_STUB
IPin_Disconnect_Stub(
425 struct IRpcStubBuffer
* This
,
426 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
427 PRPC_MESSAGE pRpcMessage
,
428 DWORD
* pdwStubPhase
);
429 HRESULT CALLBACK
IPin_ConnectedTo_Proxy(
432 void __RPC_STUB
IPin_ConnectedTo_Stub(
433 struct IRpcStubBuffer
* This
,
434 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
435 PRPC_MESSAGE pRpcMessage
,
436 DWORD
* pdwStubPhase
);
437 HRESULT CALLBACK
IPin_ConnectionMediaType_Proxy(
440 void __RPC_STUB
IPin_ConnectionMediaType_Stub(
441 struct IRpcStubBuffer
* This
,
442 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
443 PRPC_MESSAGE pRpcMessage
,
444 DWORD
* pdwStubPhase
);
445 HRESULT CALLBACK
IPin_QueryPinInfo_Proxy(
448 void __RPC_STUB
IPin_QueryPinInfo_Stub(
449 struct IRpcStubBuffer
* This
,
450 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
451 PRPC_MESSAGE pRpcMessage
,
452 DWORD
* pdwStubPhase
);
453 HRESULT CALLBACK
IPin_QueryDirection_Proxy(
455 PIN_DIRECTION
* pPinDir
);
456 void __RPC_STUB
IPin_QueryDirection_Stub(
457 struct IRpcStubBuffer
* This
,
458 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
459 PRPC_MESSAGE pRpcMessage
,
460 DWORD
* pdwStubPhase
);
461 HRESULT CALLBACK
IPin_QueryId_Proxy(
464 void __RPC_STUB
IPin_QueryId_Stub(
465 struct IRpcStubBuffer
* This
,
466 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
467 PRPC_MESSAGE pRpcMessage
,
468 DWORD
* pdwStubPhase
);
469 HRESULT CALLBACK
IPin_QueryAccept_Proxy(
471 const AM_MEDIA_TYPE
* pmt
);
472 void __RPC_STUB
IPin_QueryAccept_Stub(
473 struct IRpcStubBuffer
* This
,
474 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
475 PRPC_MESSAGE pRpcMessage
,
476 DWORD
* pdwStubPhase
);
477 HRESULT CALLBACK
IPin_EnumMediaTypes_Proxy(
479 IEnumMediaTypes
** ppEnum
);
480 void __RPC_STUB
IPin_EnumMediaTypes_Stub(
481 struct IRpcStubBuffer
* This
,
482 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
483 PRPC_MESSAGE pRpcMessage
,
484 DWORD
* pdwStubPhase
);
485 HRESULT CALLBACK
IPin_QueryInternalConnections_Proxy(
489 void __RPC_STUB
IPin_QueryInternalConnections_Stub(
490 struct IRpcStubBuffer
* This
,
491 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
492 PRPC_MESSAGE pRpcMessage
,
493 DWORD
* pdwStubPhase
);
494 HRESULT CALLBACK
IPin_EndOfStream_Proxy(
496 void __RPC_STUB
IPin_EndOfStream_Stub(
497 struct IRpcStubBuffer
* This
,
498 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
499 PRPC_MESSAGE pRpcMessage
,
500 DWORD
* pdwStubPhase
);
501 HRESULT CALLBACK
IPin_BeginFlush_Proxy(
503 void __RPC_STUB
IPin_BeginFlush_Stub(
504 struct IRpcStubBuffer
* This
,
505 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
506 PRPC_MESSAGE pRpcMessage
,
507 DWORD
* pdwStubPhase
);
508 HRESULT CALLBACK
IPin_EndFlush_Proxy(
510 void __RPC_STUB
IPin_EndFlush_Stub(
511 struct IRpcStubBuffer
* This
,
512 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
513 PRPC_MESSAGE pRpcMessage
,
514 DWORD
* pdwStubPhase
);
515 HRESULT CALLBACK
IPin_NewSegment_Proxy(
517 REFERENCE_TIME tStart
,
518 REFERENCE_TIME tStop
,
520 void __RPC_STUB
IPin_NewSegment_Stub(
521 struct IRpcStubBuffer
* This
,
522 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
523 PRPC_MESSAGE pRpcMessage
,
524 DWORD
* pdwStubPhase
);
526 #endif /* __IPin_INTERFACE_DEFINED__ */
530 /*****************************************************************************
531 * IEnumPins interface
533 #ifndef __IEnumPins_INTERFACE_DEFINED__
534 #define __IEnumPins_INTERFACE_DEFINED__
536 DEFINE_GUID(IID_IEnumPins
, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
537 #if defined(__cplusplus) && !defined(CINTERFACE)
538 struct IEnumPins
: public IUnknown
540 virtual HRESULT STDMETHODCALLTYPE
Next(
543 ULONG
* pcFetched
) = 0;
545 virtual HRESULT STDMETHODCALLTYPE
Skip(
548 virtual HRESULT STDMETHODCALLTYPE
Reset(
551 virtual HRESULT STDMETHODCALLTYPE
Clone(
552 IEnumPins
** ppEnum
) = 0;
556 typedef struct IEnumPinsVtbl IEnumPinsVtbl
;
558 const IEnumPinsVtbl
* lpVtbl
;
560 struct IEnumPinsVtbl
{
563 /*** IUnknown methods ***/
564 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
569 ULONG (STDMETHODCALLTYPE
*AddRef
)(
572 ULONG (STDMETHODCALLTYPE
*Release
)(
575 /*** IEnumPins methods ***/
576 HRESULT (STDMETHODCALLTYPE
*Next
)(
582 HRESULT (STDMETHODCALLTYPE
*Skip
)(
586 HRESULT (STDMETHODCALLTYPE
*Reset
)(
589 HRESULT (STDMETHODCALLTYPE
*Clone
)(
597 /*** IUnknown methods ***/
598 #define IEnumPins_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
599 #define IEnumPins_AddRef(p) (p)->lpVtbl->AddRef(p)
600 #define IEnumPins_Release(p) (p)->lpVtbl->Release(p)
601 /*** IEnumPins methods ***/
602 #define IEnumPins_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
603 #define IEnumPins_Skip(p,a) (p)->lpVtbl->Skip(p,a)
604 #define IEnumPins_Reset(p) (p)->lpVtbl->Reset(p)
605 #define IEnumPins_Clone(p,a) (p)->lpVtbl->Clone(p,a)
610 #define IEnumPins_METHODS \
611 /*** IUnknown methods ***/ \
612 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
613 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
614 STDMETHOD_(ULONG,Release)(THIS) PURE; \
615 /*** IEnumPins methods ***/ \
616 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cPins, IPin** ppPins, ULONG* pcFetched) PURE; \
617 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cPins) PURE; \
618 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
619 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPins** ppEnum) PURE;
621 HRESULT CALLBACK
IEnumPins_Next_Proxy(
626 void __RPC_STUB
IEnumPins_Next_Stub(
627 struct IRpcStubBuffer
* This
,
628 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
629 PRPC_MESSAGE pRpcMessage
,
630 DWORD
* pdwStubPhase
);
631 HRESULT CALLBACK
IEnumPins_Skip_Proxy(
634 void __RPC_STUB
IEnumPins_Skip_Stub(
635 struct IRpcStubBuffer
* This
,
636 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
637 PRPC_MESSAGE pRpcMessage
,
638 DWORD
* pdwStubPhase
);
639 HRESULT CALLBACK
IEnumPins_Reset_Proxy(
641 void __RPC_STUB
IEnumPins_Reset_Stub(
642 struct IRpcStubBuffer
* This
,
643 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
644 PRPC_MESSAGE pRpcMessage
,
645 DWORD
* pdwStubPhase
);
646 HRESULT CALLBACK
IEnumPins_Clone_Proxy(
649 void __RPC_STUB
IEnumPins_Clone_Stub(
650 struct IRpcStubBuffer
* This
,
651 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
652 PRPC_MESSAGE pRpcMessage
,
653 DWORD
* pdwStubPhase
);
655 #endif /* __IEnumPins_INTERFACE_DEFINED__ */
657 typedef IEnumPins
*PENUMPINS
;
659 /*****************************************************************************
660 * IEnumMediaTypes interface
662 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
663 #define __IEnumMediaTypes_INTERFACE_DEFINED__
665 DEFINE_GUID(IID_IEnumMediaTypes
, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
666 #if defined(__cplusplus) && !defined(CINTERFACE)
667 struct IEnumMediaTypes
: public IUnknown
669 virtual HRESULT STDMETHODCALLTYPE
Next(
671 AM_MEDIA_TYPE
** ppMediaTypes
,
672 ULONG
* pcFetched
) = 0;
674 virtual HRESULT STDMETHODCALLTYPE
Skip(
675 ULONG cMediaTypes
) = 0;
677 virtual HRESULT STDMETHODCALLTYPE
Reset(
680 virtual HRESULT STDMETHODCALLTYPE
Clone(
681 IEnumMediaTypes
** ppEnum
) = 0;
685 typedef struct IEnumMediaTypesVtbl IEnumMediaTypesVtbl
;
686 struct IEnumMediaTypes
{
687 const IEnumMediaTypesVtbl
* lpVtbl
;
689 struct IEnumMediaTypesVtbl
{
692 /*** IUnknown methods ***/
693 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
694 IEnumMediaTypes
* This
,
698 ULONG (STDMETHODCALLTYPE
*AddRef
)(
699 IEnumMediaTypes
* This
);
701 ULONG (STDMETHODCALLTYPE
*Release
)(
702 IEnumMediaTypes
* This
);
704 /*** IEnumMediaTypes methods ***/
705 HRESULT (STDMETHODCALLTYPE
*Next
)(
706 IEnumMediaTypes
* This
,
708 AM_MEDIA_TYPE
** ppMediaTypes
,
711 HRESULT (STDMETHODCALLTYPE
*Skip
)(
712 IEnumMediaTypes
* This
,
715 HRESULT (STDMETHODCALLTYPE
*Reset
)(
716 IEnumMediaTypes
* This
);
718 HRESULT (STDMETHODCALLTYPE
*Clone
)(
719 IEnumMediaTypes
* This
,
720 IEnumMediaTypes
** ppEnum
);
726 /*** IUnknown methods ***/
727 #define IEnumMediaTypes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
728 #define IEnumMediaTypes_AddRef(p) (p)->lpVtbl->AddRef(p)
729 #define IEnumMediaTypes_Release(p) (p)->lpVtbl->Release(p)
730 /*** IEnumMediaTypes methods ***/
731 #define IEnumMediaTypes_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
732 #define IEnumMediaTypes_Skip(p,a) (p)->lpVtbl->Skip(p,a)
733 #define IEnumMediaTypes_Reset(p) (p)->lpVtbl->Reset(p)
734 #define IEnumMediaTypes_Clone(p,a) (p)->lpVtbl->Clone(p,a)
739 #define IEnumMediaTypes_METHODS \
740 /*** IUnknown methods ***/ \
741 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
742 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
743 STDMETHOD_(ULONG,Release)(THIS) PURE; \
744 /*** IEnumMediaTypes methods ***/ \
745 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched) PURE; \
746 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cMediaTypes) PURE; \
747 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
748 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMediaTypes** ppEnum) PURE;
750 HRESULT CALLBACK
IEnumMediaTypes_Next_Proxy(
751 IEnumMediaTypes
* This
,
753 AM_MEDIA_TYPE
** ppMediaTypes
,
755 void __RPC_STUB
IEnumMediaTypes_Next_Stub(
756 struct IRpcStubBuffer
* This
,
757 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
758 PRPC_MESSAGE pRpcMessage
,
759 DWORD
* pdwStubPhase
);
760 HRESULT CALLBACK
IEnumMediaTypes_Skip_Proxy(
761 IEnumMediaTypes
* This
,
763 void __RPC_STUB
IEnumMediaTypes_Skip_Stub(
764 struct IRpcStubBuffer
* This
,
765 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
766 PRPC_MESSAGE pRpcMessage
,
767 DWORD
* pdwStubPhase
);
768 HRESULT CALLBACK
IEnumMediaTypes_Reset_Proxy(
769 IEnumMediaTypes
* This
);
770 void __RPC_STUB
IEnumMediaTypes_Reset_Stub(
771 struct IRpcStubBuffer
* This
,
772 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
773 PRPC_MESSAGE pRpcMessage
,
774 DWORD
* pdwStubPhase
);
775 HRESULT CALLBACK
IEnumMediaTypes_Clone_Proxy(
776 IEnumMediaTypes
* This
,
777 IEnumMediaTypes
** ppEnum
);
778 void __RPC_STUB
IEnumMediaTypes_Clone_Stub(
779 struct IRpcStubBuffer
* This
,
780 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
781 PRPC_MESSAGE pRpcMessage
,
782 DWORD
* pdwStubPhase
);
784 #endif /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
786 typedef IEnumMediaTypes
*PENUMMEDIATYPES
;
788 /*****************************************************************************
789 * IFilterGraph interface
791 #ifndef __IFilterGraph_INTERFACE_DEFINED__
792 #define __IFilterGraph_INTERFACE_DEFINED__
794 DEFINE_GUID(IID_IFilterGraph
, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
795 #if defined(__cplusplus) && !defined(CINTERFACE)
796 struct IFilterGraph
: public IUnknown
798 virtual HRESULT STDMETHODCALLTYPE
AddFilter(
799 IBaseFilter
* pFilter
,
802 virtual HRESULT STDMETHODCALLTYPE
RemoveFilter(
803 IBaseFilter
* pFilter
) = 0;
805 virtual HRESULT STDMETHODCALLTYPE
EnumFilters(
806 IEnumFilters
** ppEnum
) = 0;
808 virtual HRESULT STDMETHODCALLTYPE
FindFilterByName(
810 IBaseFilter
** ppFilter
) = 0;
812 virtual HRESULT STDMETHODCALLTYPE
ConnectDirect(
815 const AM_MEDIA_TYPE
* pmt
) = 0;
817 virtual HRESULT STDMETHODCALLTYPE
Reconnect(
820 virtual HRESULT STDMETHODCALLTYPE
Disconnect(
823 virtual HRESULT STDMETHODCALLTYPE
SetDefaultSyncSource(
828 typedef struct IFilterGraphVtbl IFilterGraphVtbl
;
829 struct IFilterGraph
{
830 const IFilterGraphVtbl
* lpVtbl
;
832 struct IFilterGraphVtbl
{
835 /*** IUnknown methods ***/
836 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
841 ULONG (STDMETHODCALLTYPE
*AddRef
)(
844 ULONG (STDMETHODCALLTYPE
*Release
)(
847 /*** IFilterGraph methods ***/
848 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
850 IBaseFilter
* pFilter
,
853 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
855 IBaseFilter
* pFilter
);
857 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
859 IEnumFilters
** ppEnum
);
861 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
864 IBaseFilter
** ppFilter
);
866 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
870 const AM_MEDIA_TYPE
* pmt
);
872 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
876 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
880 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
887 /*** IUnknown methods ***/
888 #define IFilterGraph_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
889 #define IFilterGraph_AddRef(p) (p)->lpVtbl->AddRef(p)
890 #define IFilterGraph_Release(p) (p)->lpVtbl->Release(p)
891 /*** IFilterGraph methods ***/
892 #define IFilterGraph_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
893 #define IFilterGraph_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
894 #define IFilterGraph_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
895 #define IFilterGraph_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
896 #define IFilterGraph_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
897 #define IFilterGraph_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
898 #define IFilterGraph_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
899 #define IFilterGraph_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
904 #define IFilterGraph_METHODS \
905 /*** IUnknown methods ***/ \
906 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
907 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
908 STDMETHOD_(ULONG,Release)(THIS) PURE; \
909 /*** IFilterGraph methods ***/ \
910 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
911 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
912 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
913 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
914 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
915 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
916 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
917 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE;
919 HRESULT CALLBACK
IFilterGraph_AddFilter_Proxy(
921 IBaseFilter
* pFilter
,
923 void __RPC_STUB
IFilterGraph_AddFilter_Stub(
924 struct IRpcStubBuffer
* This
,
925 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
926 PRPC_MESSAGE pRpcMessage
,
927 DWORD
* pdwStubPhase
);
928 HRESULT CALLBACK
IFilterGraph_RemoveFilter_Proxy(
930 IBaseFilter
* pFilter
);
931 void __RPC_STUB
IFilterGraph_RemoveFilter_Stub(
932 struct IRpcStubBuffer
* This
,
933 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
934 PRPC_MESSAGE pRpcMessage
,
935 DWORD
* pdwStubPhase
);
936 HRESULT CALLBACK
IFilterGraph_EnumFilters_Proxy(
938 IEnumFilters
** ppEnum
);
939 void __RPC_STUB
IFilterGraph_EnumFilters_Stub(
940 struct IRpcStubBuffer
* This
,
941 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
942 PRPC_MESSAGE pRpcMessage
,
943 DWORD
* pdwStubPhase
);
944 HRESULT CALLBACK
IFilterGraph_FindFilterByName_Proxy(
947 IBaseFilter
** ppFilter
);
948 void __RPC_STUB
IFilterGraph_FindFilterByName_Stub(
949 struct IRpcStubBuffer
* This
,
950 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
951 PRPC_MESSAGE pRpcMessage
,
952 DWORD
* pdwStubPhase
);
953 HRESULT CALLBACK
IFilterGraph_ConnectDirect_Proxy(
957 const AM_MEDIA_TYPE
* pmt
);
958 void __RPC_STUB
IFilterGraph_ConnectDirect_Stub(
959 struct IRpcStubBuffer
* This
,
960 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
961 PRPC_MESSAGE pRpcMessage
,
962 DWORD
* pdwStubPhase
);
963 HRESULT CALLBACK
IFilterGraph_Reconnect_Proxy(
966 void __RPC_STUB
IFilterGraph_Reconnect_Stub(
967 struct IRpcStubBuffer
* This
,
968 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
969 PRPC_MESSAGE pRpcMessage
,
970 DWORD
* pdwStubPhase
);
971 HRESULT CALLBACK
IFilterGraph_Disconnect_Proxy(
974 void __RPC_STUB
IFilterGraph_Disconnect_Stub(
975 struct IRpcStubBuffer
* This
,
976 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
977 PRPC_MESSAGE pRpcMessage
,
978 DWORD
* pdwStubPhase
);
979 HRESULT CALLBACK
IFilterGraph_SetDefaultSyncSource_Proxy(
981 void __RPC_STUB
IFilterGraph_SetDefaultSyncSource_Stub(
982 struct IRpcStubBuffer
* This
,
983 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
984 PRPC_MESSAGE pRpcMessage
,
985 DWORD
* pdwStubPhase
);
987 #endif /* __IFilterGraph_INTERFACE_DEFINED__ */
989 typedef IFilterGraph
*PFILTERGRAPH
;
991 /*****************************************************************************
992 * IEnumFilters interface
994 #ifndef __IEnumFilters_INTERFACE_DEFINED__
995 #define __IEnumFilters_INTERFACE_DEFINED__
997 DEFINE_GUID(IID_IEnumFilters
, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
998 #if defined(__cplusplus) && !defined(CINTERFACE)
999 struct IEnumFilters
: public IUnknown
1001 virtual HRESULT STDMETHODCALLTYPE
Next(
1003 IBaseFilter
** ppFilter
,
1004 ULONG
* pcFetched
) = 0;
1006 virtual HRESULT STDMETHODCALLTYPE
Skip(
1007 ULONG cFilters
) = 0;
1009 virtual HRESULT STDMETHODCALLTYPE
Reset(
1012 virtual HRESULT STDMETHODCALLTYPE
Clone(
1013 IEnumFilters
** ppEnum
) = 0;
1017 typedef struct IEnumFiltersVtbl IEnumFiltersVtbl
;
1018 struct IEnumFilters
{
1019 const IEnumFiltersVtbl
* lpVtbl
;
1021 struct IEnumFiltersVtbl
{
1024 /*** IUnknown methods ***/
1025 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1030 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1031 IEnumFilters
* This
);
1033 ULONG (STDMETHODCALLTYPE
*Release
)(
1034 IEnumFilters
* This
);
1036 /*** IEnumFilters methods ***/
1037 HRESULT (STDMETHODCALLTYPE
*Next
)(
1040 IBaseFilter
** ppFilter
,
1043 HRESULT (STDMETHODCALLTYPE
*Skip
)(
1047 HRESULT (STDMETHODCALLTYPE
*Reset
)(
1048 IEnumFilters
* This
);
1050 HRESULT (STDMETHODCALLTYPE
*Clone
)(
1052 IEnumFilters
** ppEnum
);
1058 /*** IUnknown methods ***/
1059 #define IEnumFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1060 #define IEnumFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
1061 #define IEnumFilters_Release(p) (p)->lpVtbl->Release(p)
1062 /*** IEnumFilters methods ***/
1063 #define IEnumFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1064 #define IEnumFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1065 #define IEnumFilters_Reset(p) (p)->lpVtbl->Reset(p)
1066 #define IEnumFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1071 #define IEnumFilters_METHODS \
1072 /*** IUnknown methods ***/ \
1073 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1074 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1075 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1076 /*** IEnumFilters methods ***/ \
1077 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched) PURE; \
1078 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
1079 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1080 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFilters** ppEnum) PURE;
1082 HRESULT CALLBACK
IEnumFilters_Next_Proxy(
1085 IBaseFilter
** ppFilter
,
1087 void __RPC_STUB
IEnumFilters_Next_Stub(
1088 struct IRpcStubBuffer
* This
,
1089 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1090 PRPC_MESSAGE pRpcMessage
,
1091 DWORD
* pdwStubPhase
);
1092 HRESULT CALLBACK
IEnumFilters_Skip_Proxy(
1095 void __RPC_STUB
IEnumFilters_Skip_Stub(
1096 struct IRpcStubBuffer
* This
,
1097 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1098 PRPC_MESSAGE pRpcMessage
,
1099 DWORD
* pdwStubPhase
);
1100 HRESULT CALLBACK
IEnumFilters_Reset_Proxy(
1101 IEnumFilters
* This
);
1102 void __RPC_STUB
IEnumFilters_Reset_Stub(
1103 struct IRpcStubBuffer
* This
,
1104 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1105 PRPC_MESSAGE pRpcMessage
,
1106 DWORD
* pdwStubPhase
);
1107 HRESULT CALLBACK
IEnumFilters_Clone_Proxy(
1109 IEnumFilters
** ppEnum
);
1110 void __RPC_STUB
IEnumFilters_Clone_Stub(
1111 struct IRpcStubBuffer
* This
,
1112 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1113 PRPC_MESSAGE pRpcMessage
,
1114 DWORD
* pdwStubPhase
);
1116 #endif /* __IEnumFilters_INTERFACE_DEFINED__ */
1118 typedef IEnumFilters
*PENUMFILTERS
;
1120 typedef enum _FilterState
{
1126 /*****************************************************************************
1127 * IMediaFilter interface
1129 #ifndef __IMediaFilter_INTERFACE_DEFINED__
1130 #define __IMediaFilter_INTERFACE_DEFINED__
1132 DEFINE_GUID(IID_IMediaFilter
, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1133 #if defined(__cplusplus) && !defined(CINTERFACE)
1134 struct IMediaFilter
: public IPersist
1136 virtual HRESULT STDMETHODCALLTYPE
Stop(
1139 virtual HRESULT STDMETHODCALLTYPE
Pause(
1142 virtual HRESULT STDMETHODCALLTYPE
Run(
1143 REFERENCE_TIME tStart
) = 0;
1145 virtual HRESULT STDMETHODCALLTYPE
GetState(
1146 DWORD dwMilliSecsTimeout
,
1147 FILTER_STATE
* State
) = 0;
1149 virtual HRESULT STDMETHODCALLTYPE
SetSyncSource(
1150 IReferenceClock
* pClock
) = 0;
1152 virtual HRESULT STDMETHODCALLTYPE
GetSyncSource(
1153 IReferenceClock
** pClock
) = 0;
1157 typedef struct IMediaFilterVtbl IMediaFilterVtbl
;
1158 struct IMediaFilter
{
1159 const IMediaFilterVtbl
* lpVtbl
;
1161 struct IMediaFilterVtbl
{
1164 /*** IUnknown methods ***/
1165 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1170 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1171 IMediaFilter
* This
);
1173 ULONG (STDMETHODCALLTYPE
*Release
)(
1174 IMediaFilter
* This
);
1176 /*** IPersist methods ***/
1177 HRESULT (STDMETHODCALLTYPE
*GetClassID
)(
1181 /*** IMediaFilter methods ***/
1182 HRESULT (STDMETHODCALLTYPE
*Stop
)(
1183 IMediaFilter
* This
);
1185 HRESULT (STDMETHODCALLTYPE
*Pause
)(
1186 IMediaFilter
* This
);
1188 HRESULT (STDMETHODCALLTYPE
*Run
)(
1190 REFERENCE_TIME tStart
);
1192 HRESULT (STDMETHODCALLTYPE
*GetState
)(
1194 DWORD dwMilliSecsTimeout
,
1195 FILTER_STATE
* State
);
1197 HRESULT (STDMETHODCALLTYPE
*SetSyncSource
)(
1199 IReferenceClock
* pClock
);
1201 HRESULT (STDMETHODCALLTYPE
*GetSyncSource
)(
1203 IReferenceClock
** pClock
);
1209 /*** IUnknown methods ***/
1210 #define IMediaFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1211 #define IMediaFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
1212 #define IMediaFilter_Release(p) (p)->lpVtbl->Release(p)
1213 /*** IPersist methods ***/
1214 #define IMediaFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1215 /*** IMediaFilter methods ***/
1216 #define IMediaFilter_Stop(p) (p)->lpVtbl->Stop(p)
1217 #define IMediaFilter_Pause(p) (p)->lpVtbl->Pause(p)
1218 #define IMediaFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
1219 #define IMediaFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
1220 #define IMediaFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
1221 #define IMediaFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
1226 #define IMediaFilter_METHODS \
1227 /*** IUnknown methods ***/ \
1228 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1229 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1230 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1231 /*** IPersist methods ***/ \
1232 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
1233 /*** IMediaFilter methods ***/ \
1234 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
1235 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
1236 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
1237 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
1238 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
1239 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE;
1241 HRESULT CALLBACK
IMediaFilter_Stop_Proxy(
1242 IMediaFilter
* This
);
1243 void __RPC_STUB
IMediaFilter_Stop_Stub(
1244 struct IRpcStubBuffer
* This
,
1245 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1246 PRPC_MESSAGE pRpcMessage
,
1247 DWORD
* pdwStubPhase
);
1248 HRESULT CALLBACK
IMediaFilter_Pause_Proxy(
1249 IMediaFilter
* This
);
1250 void __RPC_STUB
IMediaFilter_Pause_Stub(
1251 struct IRpcStubBuffer
* This
,
1252 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1253 PRPC_MESSAGE pRpcMessage
,
1254 DWORD
* pdwStubPhase
);
1255 HRESULT CALLBACK
IMediaFilter_Run_Proxy(
1257 REFERENCE_TIME tStart
);
1258 void __RPC_STUB
IMediaFilter_Run_Stub(
1259 struct IRpcStubBuffer
* This
,
1260 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1261 PRPC_MESSAGE pRpcMessage
,
1262 DWORD
* pdwStubPhase
);
1263 HRESULT CALLBACK
IMediaFilter_GetState_Proxy(
1265 DWORD dwMilliSecsTimeout
,
1266 FILTER_STATE
* State
);
1267 void __RPC_STUB
IMediaFilter_GetState_Stub(
1268 struct IRpcStubBuffer
* This
,
1269 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1270 PRPC_MESSAGE pRpcMessage
,
1271 DWORD
* pdwStubPhase
);
1272 HRESULT CALLBACK
IMediaFilter_SetSyncSource_Proxy(
1274 IReferenceClock
* pClock
);
1275 void __RPC_STUB
IMediaFilter_SetSyncSource_Stub(
1276 struct IRpcStubBuffer
* This
,
1277 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1278 PRPC_MESSAGE pRpcMessage
,
1279 DWORD
* pdwStubPhase
);
1280 HRESULT CALLBACK
IMediaFilter_GetSyncSource_Proxy(
1282 IReferenceClock
** pClock
);
1283 void __RPC_STUB
IMediaFilter_GetSyncSource_Stub(
1284 struct IRpcStubBuffer
* This
,
1285 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1286 PRPC_MESSAGE pRpcMessage
,
1287 DWORD
* pdwStubPhase
);
1289 #endif /* __IMediaFilter_INTERFACE_DEFINED__ */
1291 typedef IMediaFilter
*PMEDIAFILTER
;
1293 typedef struct _FilterInfo
{
1295 IFilterGraph
*pGraph
;
1298 /*****************************************************************************
1299 * IBaseFilter interface
1301 #ifndef __IBaseFilter_INTERFACE_DEFINED__
1302 #define __IBaseFilter_INTERFACE_DEFINED__
1304 DEFINE_GUID(IID_IBaseFilter
, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1305 #if defined(__cplusplus) && !defined(CINTERFACE)
1306 struct IBaseFilter
: public IMediaFilter
1308 virtual HRESULT STDMETHODCALLTYPE
EnumPins(
1309 IEnumPins
** ppEnum
) = 0;
1311 virtual HRESULT STDMETHODCALLTYPE
FindPin(
1315 virtual HRESULT STDMETHODCALLTYPE
QueryFilterInfo(
1316 FILTER_INFO
* pInfo
) = 0;
1318 virtual HRESULT STDMETHODCALLTYPE
JoinFilterGraph(
1319 IFilterGraph
* pGraph
,
1322 virtual HRESULT STDMETHODCALLTYPE
QueryVendorInfo(
1323 LPWSTR
* pVendorInfo
) = 0;
1327 typedef struct IBaseFilterVtbl IBaseFilterVtbl
;
1328 struct IBaseFilter
{
1329 const IBaseFilterVtbl
* lpVtbl
;
1331 struct IBaseFilterVtbl
{
1334 /*** IUnknown methods ***/
1335 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1340 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1343 ULONG (STDMETHODCALLTYPE
*Release
)(
1346 /*** IPersist methods ***/
1347 HRESULT (STDMETHODCALLTYPE
*GetClassID
)(
1351 /*** IMediaFilter methods ***/
1352 HRESULT (STDMETHODCALLTYPE
*Stop
)(
1355 HRESULT (STDMETHODCALLTYPE
*Pause
)(
1358 HRESULT (STDMETHODCALLTYPE
*Run
)(
1360 REFERENCE_TIME tStart
);
1362 HRESULT (STDMETHODCALLTYPE
*GetState
)(
1364 DWORD dwMilliSecsTimeout
,
1365 FILTER_STATE
* State
);
1367 HRESULT (STDMETHODCALLTYPE
*SetSyncSource
)(
1369 IReferenceClock
* pClock
);
1371 HRESULT (STDMETHODCALLTYPE
*GetSyncSource
)(
1373 IReferenceClock
** pClock
);
1375 /*** IBaseFilter methods ***/
1376 HRESULT (STDMETHODCALLTYPE
*EnumPins
)(
1378 IEnumPins
** ppEnum
);
1380 HRESULT (STDMETHODCALLTYPE
*FindPin
)(
1385 HRESULT (STDMETHODCALLTYPE
*QueryFilterInfo
)(
1387 FILTER_INFO
* pInfo
);
1389 HRESULT (STDMETHODCALLTYPE
*JoinFilterGraph
)(
1391 IFilterGraph
* pGraph
,
1394 HRESULT (STDMETHODCALLTYPE
*QueryVendorInfo
)(
1396 LPWSTR
* pVendorInfo
);
1402 /*** IUnknown methods ***/
1403 #define IBaseFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1404 #define IBaseFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
1405 #define IBaseFilter_Release(p) (p)->lpVtbl->Release(p)
1406 /*** IPersist methods ***/
1407 #define IBaseFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1408 /*** IMediaFilter methods ***/
1409 #define IBaseFilter_Stop(p) (p)->lpVtbl->Stop(p)
1410 #define IBaseFilter_Pause(p) (p)->lpVtbl->Pause(p)
1411 #define IBaseFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
1412 #define IBaseFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
1413 #define IBaseFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
1414 #define IBaseFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
1415 /*** IBaseFilter methods ***/
1416 #define IBaseFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a)
1417 #define IBaseFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b)
1418 #define IBaseFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a)
1419 #define IBaseFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b)
1420 #define IBaseFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a)
1425 #define IBaseFilter_METHODS \
1426 /*** IUnknown methods ***/ \
1427 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1428 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1429 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1430 /*** IPersist methods ***/ \
1431 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
1432 /*** IMediaFilter methods ***/ \
1433 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
1434 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
1435 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
1436 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
1437 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
1438 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \
1439 /*** IBaseFilter methods ***/ \
1440 STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \
1441 STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \
1442 STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \
1443 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \
1444 STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE;
1446 HRESULT CALLBACK
IBaseFilter_EnumPins_Proxy(
1448 IEnumPins
** ppEnum
);
1449 void __RPC_STUB
IBaseFilter_EnumPins_Stub(
1450 struct IRpcStubBuffer
* This
,
1451 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1452 PRPC_MESSAGE pRpcMessage
,
1453 DWORD
* pdwStubPhase
);
1454 HRESULT CALLBACK
IBaseFilter_FindPin_Proxy(
1458 void __RPC_STUB
IBaseFilter_FindPin_Stub(
1459 struct IRpcStubBuffer
* This
,
1460 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1461 PRPC_MESSAGE pRpcMessage
,
1462 DWORD
* pdwStubPhase
);
1463 HRESULT CALLBACK
IBaseFilter_QueryFilterInfo_Proxy(
1465 FILTER_INFO
* pInfo
);
1466 void __RPC_STUB
IBaseFilter_QueryFilterInfo_Stub(
1467 struct IRpcStubBuffer
* This
,
1468 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1469 PRPC_MESSAGE pRpcMessage
,
1470 DWORD
* pdwStubPhase
);
1471 HRESULT CALLBACK
IBaseFilter_JoinFilterGraph_Proxy(
1473 IFilterGraph
* pGraph
,
1475 void __RPC_STUB
IBaseFilter_JoinFilterGraph_Stub(
1476 struct IRpcStubBuffer
* This
,
1477 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1478 PRPC_MESSAGE pRpcMessage
,
1479 DWORD
* pdwStubPhase
);
1480 HRESULT CALLBACK
IBaseFilter_QueryVendorInfo_Proxy(
1482 LPWSTR
* pVendorInfo
);
1483 void __RPC_STUB
IBaseFilter_QueryVendorInfo_Stub(
1484 struct IRpcStubBuffer
* This
,
1485 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1486 PRPC_MESSAGE pRpcMessage
,
1487 DWORD
* pdwStubPhase
);
1489 #endif /* __IBaseFilter_INTERFACE_DEFINED__ */
1491 typedef IBaseFilter
*PFILTER
;
1493 /*****************************************************************************
1494 * IReferenceClock interface
1496 #ifndef __IReferenceClock_INTERFACE_DEFINED__
1497 #define __IReferenceClock_INTERFACE_DEFINED__
1499 DEFINE_GUID(IID_IReferenceClock
, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1500 #if defined(__cplusplus) && !defined(CINTERFACE)
1501 struct IReferenceClock
: public IUnknown
1503 virtual HRESULT STDMETHODCALLTYPE
GetTime(
1504 REFERENCE_TIME
* pTime
) = 0;
1506 virtual HRESULT STDMETHODCALLTYPE
AdviseTime(
1507 REFERENCE_TIME baseTime
,
1508 REFERENCE_TIME streamTime
,
1510 DWORD_PTR
* pdwAdviseCookie
) = 0;
1512 virtual HRESULT STDMETHODCALLTYPE
AdvisePeriodic(
1513 REFERENCE_TIME startTime
,
1514 REFERENCE_TIME periodTime
,
1515 HSEMAPHORE hSemaphore
,
1516 DWORD_PTR
* pdwAdviseCookie
) = 0;
1518 virtual HRESULT STDMETHODCALLTYPE
Unadvise(
1519 DWORD_PTR dwAdviseCookie
) = 0;
1523 typedef struct IReferenceClockVtbl IReferenceClockVtbl
;
1524 struct IReferenceClock
{
1525 const IReferenceClockVtbl
* lpVtbl
;
1527 struct IReferenceClockVtbl
{
1530 /*** IUnknown methods ***/
1531 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1532 IReferenceClock
* This
,
1536 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1537 IReferenceClock
* This
);
1539 ULONG (STDMETHODCALLTYPE
*Release
)(
1540 IReferenceClock
* This
);
1542 /*** IReferenceClock methods ***/
1543 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
1544 IReferenceClock
* This
,
1545 REFERENCE_TIME
* pTime
);
1547 HRESULT (STDMETHODCALLTYPE
*AdviseTime
)(
1548 IReferenceClock
* This
,
1549 REFERENCE_TIME baseTime
,
1550 REFERENCE_TIME streamTime
,
1552 DWORD_PTR
* pdwAdviseCookie
);
1554 HRESULT (STDMETHODCALLTYPE
*AdvisePeriodic
)(
1555 IReferenceClock
* This
,
1556 REFERENCE_TIME startTime
,
1557 REFERENCE_TIME periodTime
,
1558 HSEMAPHORE hSemaphore
,
1559 DWORD_PTR
* pdwAdviseCookie
);
1561 HRESULT (STDMETHODCALLTYPE
*Unadvise
)(
1562 IReferenceClock
* This
,
1563 DWORD_PTR dwAdviseCookie
);
1569 /*** IUnknown methods ***/
1570 #define IReferenceClock_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1571 #define IReferenceClock_AddRef(p) (p)->lpVtbl->AddRef(p)
1572 #define IReferenceClock_Release(p) (p)->lpVtbl->Release(p)
1573 /*** IReferenceClock methods ***/
1574 #define IReferenceClock_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
1575 #define IReferenceClock_AdviseTime(p,a,b,c,d) (p)->lpVtbl->AdviseTime(p,a,b,c,d)
1576 #define IReferenceClock_AdvisePeriodic(p,a,b,c,d) (p)->lpVtbl->AdvisePeriodic(p,a,b,c,d)
1577 #define IReferenceClock_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
1582 #define IReferenceClock_METHODS \
1583 /*** IUnknown methods ***/ \
1584 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1585 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1586 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1587 /*** IReferenceClock methods ***/ \
1588 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTime) PURE; \
1589 STDMETHOD_(HRESULT,AdviseTime)(THIS_ REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie) PURE; \
1590 STDMETHOD_(HRESULT,AdvisePeriodic)(THIS_ REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie) PURE; \
1591 STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD_PTR dwAdviseCookie) PURE;
1593 HRESULT CALLBACK
IReferenceClock_GetTime_Proxy(
1594 IReferenceClock
* This
,
1595 REFERENCE_TIME
* pTime
);
1596 void __RPC_STUB
IReferenceClock_GetTime_Stub(
1597 struct IRpcStubBuffer
* This
,
1598 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1599 PRPC_MESSAGE pRpcMessage
,
1600 DWORD
* pdwStubPhase
);
1601 HRESULT CALLBACK
IReferenceClock_AdviseTime_Proxy(
1602 IReferenceClock
* This
,
1603 REFERENCE_TIME baseTime
,
1604 REFERENCE_TIME streamTime
,
1606 DWORD_PTR
* pdwAdviseCookie
);
1607 void __RPC_STUB
IReferenceClock_AdviseTime_Stub(
1608 struct IRpcStubBuffer
* This
,
1609 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1610 PRPC_MESSAGE pRpcMessage
,
1611 DWORD
* pdwStubPhase
);
1612 HRESULT CALLBACK
IReferenceClock_AdvisePeriodic_Proxy(
1613 IReferenceClock
* This
,
1614 REFERENCE_TIME startTime
,
1615 REFERENCE_TIME periodTime
,
1616 HSEMAPHORE hSemaphore
,
1617 DWORD_PTR
* pdwAdviseCookie
);
1618 void __RPC_STUB
IReferenceClock_AdvisePeriodic_Stub(
1619 struct IRpcStubBuffer
* This
,
1620 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1621 PRPC_MESSAGE pRpcMessage
,
1622 DWORD
* pdwStubPhase
);
1623 HRESULT CALLBACK
IReferenceClock_Unadvise_Proxy(
1624 IReferenceClock
* This
,
1625 DWORD_PTR dwAdviseCookie
);
1626 void __RPC_STUB
IReferenceClock_Unadvise_Stub(
1627 struct IRpcStubBuffer
* This
,
1628 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1629 PRPC_MESSAGE pRpcMessage
,
1630 DWORD
* pdwStubPhase
);
1632 #endif /* __IReferenceClock_INTERFACE_DEFINED__ */
1634 typedef IReferenceClock
*PREFERENCECLOCK
;
1636 /*****************************************************************************
1637 * IMediaSample interface
1639 #ifndef __IMediaSample_INTERFACE_DEFINED__
1640 #define __IMediaSample_INTERFACE_DEFINED__
1642 DEFINE_GUID(IID_IMediaSample
, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1643 #if defined(__cplusplus) && !defined(CINTERFACE)
1644 struct IMediaSample
: public IUnknown
1646 virtual HRESULT STDMETHODCALLTYPE
GetPointer(
1647 BYTE
** ppBuffer
) = 0;
1649 virtual long STDMETHODCALLTYPE
GetSize(
1652 virtual HRESULT STDMETHODCALLTYPE
GetTime(
1653 REFERENCE_TIME
* pTimeStart
,
1654 REFERENCE_TIME
* pTimeEnd
) = 0;
1656 virtual HRESULT STDMETHODCALLTYPE
SetTime(
1657 REFERENCE_TIME
* pTimeStart
,
1658 REFERENCE_TIME
* pTimeEnd
) = 0;
1660 virtual HRESULT STDMETHODCALLTYPE
IsSyncPoint(
1663 virtual HRESULT STDMETHODCALLTYPE
SetSyncPoint(
1664 BOOL bIsSyncPoint
) = 0;
1666 virtual HRESULT STDMETHODCALLTYPE
IsPreroll(
1669 virtual HRESULT STDMETHODCALLTYPE
SetPreroll(
1670 BOOL bIsPreroll
) = 0;
1672 virtual long STDMETHODCALLTYPE
GetActualDataLength(
1675 virtual HRESULT STDMETHODCALLTYPE
SetActualDataLength(
1678 virtual HRESULT STDMETHODCALLTYPE
GetMediaType(
1679 AM_MEDIA_TYPE
** ppMediaType
) = 0;
1681 virtual HRESULT STDMETHODCALLTYPE
SetMediaType(
1682 AM_MEDIA_TYPE
* pMediaType
) = 0;
1684 virtual HRESULT STDMETHODCALLTYPE
IsDiscontinuity(
1687 virtual HRESULT STDMETHODCALLTYPE
SetDiscontinuity(
1688 BOOL bDiscontinuity
) = 0;
1690 virtual HRESULT STDMETHODCALLTYPE
GetMediaTime(
1691 LONGLONG
* pTimeStart
,
1692 LONGLONG
* pTimeEnd
) = 0;
1694 virtual HRESULT STDMETHODCALLTYPE
SetMediaTime(
1695 LONGLONG
* pTimeStart
,
1696 LONGLONG
* pTimeEnd
) = 0;
1700 typedef struct IMediaSampleVtbl IMediaSampleVtbl
;
1701 struct IMediaSample
{
1702 const IMediaSampleVtbl
* lpVtbl
;
1704 struct IMediaSampleVtbl
{
1707 /*** IUnknown methods ***/
1708 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1713 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1714 IMediaSample
* This
);
1716 ULONG (STDMETHODCALLTYPE
*Release
)(
1717 IMediaSample
* This
);
1719 /*** IMediaSample methods ***/
1720 HRESULT (STDMETHODCALLTYPE
*GetPointer
)(
1724 long (STDMETHODCALLTYPE
*GetSize
)(
1725 IMediaSample
* This
);
1727 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
1729 REFERENCE_TIME
* pTimeStart
,
1730 REFERENCE_TIME
* pTimeEnd
);
1732 HRESULT (STDMETHODCALLTYPE
*SetTime
)(
1734 REFERENCE_TIME
* pTimeStart
,
1735 REFERENCE_TIME
* pTimeEnd
);
1737 HRESULT (STDMETHODCALLTYPE
*IsSyncPoint
)(
1738 IMediaSample
* This
);
1740 HRESULT (STDMETHODCALLTYPE
*SetSyncPoint
)(
1744 HRESULT (STDMETHODCALLTYPE
*IsPreroll
)(
1745 IMediaSample
* This
);
1747 HRESULT (STDMETHODCALLTYPE
*SetPreroll
)(
1751 long (STDMETHODCALLTYPE
*GetActualDataLength
)(
1752 IMediaSample
* This
);
1754 HRESULT (STDMETHODCALLTYPE
*SetActualDataLength
)(
1758 HRESULT (STDMETHODCALLTYPE
*GetMediaType
)(
1760 AM_MEDIA_TYPE
** ppMediaType
);
1762 HRESULT (STDMETHODCALLTYPE
*SetMediaType
)(
1764 AM_MEDIA_TYPE
* pMediaType
);
1766 HRESULT (STDMETHODCALLTYPE
*IsDiscontinuity
)(
1767 IMediaSample
* This
);
1769 HRESULT (STDMETHODCALLTYPE
*SetDiscontinuity
)(
1771 BOOL bDiscontinuity
);
1773 HRESULT (STDMETHODCALLTYPE
*GetMediaTime
)(
1775 LONGLONG
* pTimeStart
,
1776 LONGLONG
* pTimeEnd
);
1778 HRESULT (STDMETHODCALLTYPE
*SetMediaTime
)(
1780 LONGLONG
* pTimeStart
,
1781 LONGLONG
* pTimeEnd
);
1787 /*** IUnknown methods ***/
1788 #define IMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1789 #define IMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p)
1790 #define IMediaSample_Release(p) (p)->lpVtbl->Release(p)
1791 /*** IMediaSample methods ***/
1792 #define IMediaSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
1793 #define IMediaSample_GetSize(p) (p)->lpVtbl->GetSize(p)
1794 #define IMediaSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
1795 #define IMediaSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
1796 #define IMediaSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
1797 #define IMediaSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
1798 #define IMediaSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
1799 #define IMediaSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
1800 #define IMediaSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
1801 #define IMediaSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
1802 #define IMediaSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
1803 #define IMediaSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
1804 #define IMediaSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
1805 #define IMediaSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
1806 #define IMediaSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
1807 #define IMediaSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
1812 #define IMediaSample_METHODS \
1813 /*** IUnknown methods ***/ \
1814 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1815 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1816 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1817 /*** IMediaSample methods ***/ \
1818 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
1819 STDMETHOD_(long,GetSize)(THIS) PURE; \
1820 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1821 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1822 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
1823 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
1824 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
1825 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
1826 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
1827 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
1828 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
1829 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
1830 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
1831 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
1832 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
1833 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE;
1835 HRESULT CALLBACK
IMediaSample_GetPointer_Proxy(
1838 void __RPC_STUB
IMediaSample_GetPointer_Stub(
1839 struct IRpcStubBuffer
* This
,
1840 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1841 PRPC_MESSAGE pRpcMessage
,
1842 DWORD
* pdwStubPhase
);
1843 long CALLBACK
IMediaSample_GetSize_Proxy(
1844 IMediaSample
* This
);
1845 void __RPC_STUB
IMediaSample_GetSize_Stub(
1846 struct IRpcStubBuffer
* This
,
1847 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1848 PRPC_MESSAGE pRpcMessage
,
1849 DWORD
* pdwStubPhase
);
1850 HRESULT CALLBACK
IMediaSample_GetTime_Proxy(
1852 REFERENCE_TIME
* pTimeStart
,
1853 REFERENCE_TIME
* pTimeEnd
);
1854 void __RPC_STUB
IMediaSample_GetTime_Stub(
1855 struct IRpcStubBuffer
* This
,
1856 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1857 PRPC_MESSAGE pRpcMessage
,
1858 DWORD
* pdwStubPhase
);
1859 HRESULT CALLBACK
IMediaSample_SetTime_Proxy(
1861 REFERENCE_TIME
* pTimeStart
,
1862 REFERENCE_TIME
* pTimeEnd
);
1863 void __RPC_STUB
IMediaSample_SetTime_Stub(
1864 struct IRpcStubBuffer
* This
,
1865 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1866 PRPC_MESSAGE pRpcMessage
,
1867 DWORD
* pdwStubPhase
);
1868 HRESULT CALLBACK
IMediaSample_IsSyncPoint_Proxy(
1869 IMediaSample
* This
);
1870 void __RPC_STUB
IMediaSample_IsSyncPoint_Stub(
1871 struct IRpcStubBuffer
* This
,
1872 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1873 PRPC_MESSAGE pRpcMessage
,
1874 DWORD
* pdwStubPhase
);
1875 HRESULT CALLBACK
IMediaSample_SetSyncPoint_Proxy(
1878 void __RPC_STUB
IMediaSample_SetSyncPoint_Stub(
1879 struct IRpcStubBuffer
* This
,
1880 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1881 PRPC_MESSAGE pRpcMessage
,
1882 DWORD
* pdwStubPhase
);
1883 HRESULT CALLBACK
IMediaSample_IsPreroll_Proxy(
1884 IMediaSample
* This
);
1885 void __RPC_STUB
IMediaSample_IsPreroll_Stub(
1886 struct IRpcStubBuffer
* This
,
1887 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1888 PRPC_MESSAGE pRpcMessage
,
1889 DWORD
* pdwStubPhase
);
1890 HRESULT CALLBACK
IMediaSample_SetPreroll_Proxy(
1893 void __RPC_STUB
IMediaSample_SetPreroll_Stub(
1894 struct IRpcStubBuffer
* This
,
1895 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1896 PRPC_MESSAGE pRpcMessage
,
1897 DWORD
* pdwStubPhase
);
1898 long CALLBACK
IMediaSample_GetActualDataLength_Proxy(
1899 IMediaSample
* This
);
1900 void __RPC_STUB
IMediaSample_GetActualDataLength_Stub(
1901 struct IRpcStubBuffer
* This
,
1902 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1903 PRPC_MESSAGE pRpcMessage
,
1904 DWORD
* pdwStubPhase
);
1905 HRESULT CALLBACK
IMediaSample_SetActualDataLength_Proxy(
1908 void __RPC_STUB
IMediaSample_SetActualDataLength_Stub(
1909 struct IRpcStubBuffer
* This
,
1910 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1911 PRPC_MESSAGE pRpcMessage
,
1912 DWORD
* pdwStubPhase
);
1913 HRESULT CALLBACK
IMediaSample_GetMediaType_Proxy(
1915 AM_MEDIA_TYPE
** ppMediaType
);
1916 void __RPC_STUB
IMediaSample_GetMediaType_Stub(
1917 struct IRpcStubBuffer
* This
,
1918 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1919 PRPC_MESSAGE pRpcMessage
,
1920 DWORD
* pdwStubPhase
);
1921 HRESULT CALLBACK
IMediaSample_SetMediaType_Proxy(
1923 AM_MEDIA_TYPE
* pMediaType
);
1924 void __RPC_STUB
IMediaSample_SetMediaType_Stub(
1925 struct IRpcStubBuffer
* This
,
1926 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1927 PRPC_MESSAGE pRpcMessage
,
1928 DWORD
* pdwStubPhase
);
1929 HRESULT CALLBACK
IMediaSample_IsDiscontinuity_Proxy(
1930 IMediaSample
* This
);
1931 void __RPC_STUB
IMediaSample_IsDiscontinuity_Stub(
1932 struct IRpcStubBuffer
* This
,
1933 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1934 PRPC_MESSAGE pRpcMessage
,
1935 DWORD
* pdwStubPhase
);
1936 HRESULT CALLBACK
IMediaSample_SetDiscontinuity_Proxy(
1938 BOOL bDiscontinuity
);
1939 void __RPC_STUB
IMediaSample_SetDiscontinuity_Stub(
1940 struct IRpcStubBuffer
* This
,
1941 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1942 PRPC_MESSAGE pRpcMessage
,
1943 DWORD
* pdwStubPhase
);
1944 HRESULT CALLBACK
IMediaSample_GetMediaTime_Proxy(
1946 LONGLONG
* pTimeStart
,
1947 LONGLONG
* pTimeEnd
);
1948 void __RPC_STUB
IMediaSample_GetMediaTime_Stub(
1949 struct IRpcStubBuffer
* This
,
1950 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1951 PRPC_MESSAGE pRpcMessage
,
1952 DWORD
* pdwStubPhase
);
1953 HRESULT CALLBACK
IMediaSample_SetMediaTime_Proxy(
1955 LONGLONG
* pTimeStart
,
1956 LONGLONG
* pTimeEnd
);
1957 void __RPC_STUB
IMediaSample_SetMediaTime_Stub(
1958 struct IRpcStubBuffer
* This
,
1959 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1960 PRPC_MESSAGE pRpcMessage
,
1961 DWORD
* pdwStubPhase
);
1963 #endif /* __IMediaSample_INTERFACE_DEFINED__ */
1965 typedef IMediaSample
*PMEDIASAMPLE
;
1967 enum tagAM_SAMPLE_PROPERTY_FLAGS
{
1968 AM_SAMPLE_SPLICEPOINT
= 0x1,
1969 AM_SAMPLE_PREROLL
= 0x2,
1970 AM_SAMPLE_DATADISCONTINUITY
= 0x4,
1971 AM_SAMPLE_TYPECHANGED
= 0x8,
1972 AM_SAMPLE_TIMEVALID
= 0x10,
1973 AM_SAMPLE_TIMEDISCONTINUITY
= 0x40,
1974 AM_SAMPLE_FLUSH_ON_PAUSE
= 0x80,
1975 AM_SAMPLE_STOPVALID
= 0x100,
1976 AM_SAMPLE_ENDOFSTREAM
= 0x200,
1977 AM_STREAM_MEDIA
= 0,
1978 AM_STREAM_CONTROL
= 1
1981 typedef struct tagAM_SAMPLE2_PROPERTIES
{
1983 DWORD dwTypeSpecificFlags
;
1984 DWORD dwSampleFlags
;
1986 REFERENCE_TIME tStart
;
1987 REFERENCE_TIME tStop
;
1989 AM_MEDIA_TYPE
*pMediaType
;
1992 } AM_SAMPLE2_PROPERTIES
;
1994 #ifndef __IMediaSample2_FWD_DEFINED__
1995 #define __IMediaSample2_FWD_DEFINED__
1996 typedef struct IMediaSample2 IMediaSample2
;
1999 /*****************************************************************************
2000 * IMediaSample2 interface
2002 #ifndef __IMediaSample2_INTERFACE_DEFINED__
2003 #define __IMediaSample2_INTERFACE_DEFINED__
2005 DEFINE_GUID(IID_IMediaSample2
, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2006 #if defined(__cplusplus) && !defined(CINTERFACE)
2007 struct IMediaSample2
: public IMediaSample
2009 virtual HRESULT STDMETHODCALLTYPE
GetProperties(
2011 BYTE
* pbProperties
) = 0;
2013 virtual HRESULT STDMETHODCALLTYPE
SetProperties(
2015 const BYTE
* pbProperties
) = 0;
2019 typedef struct IMediaSample2Vtbl IMediaSample2Vtbl
;
2020 struct IMediaSample2
{
2021 const IMediaSample2Vtbl
* lpVtbl
;
2023 struct IMediaSample2Vtbl
{
2026 /*** IUnknown methods ***/
2027 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2028 IMediaSample2
* This
,
2032 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2033 IMediaSample2
* This
);
2035 ULONG (STDMETHODCALLTYPE
*Release
)(
2036 IMediaSample2
* This
);
2038 /*** IMediaSample methods ***/
2039 HRESULT (STDMETHODCALLTYPE
*GetPointer
)(
2040 IMediaSample2
* This
,
2043 long (STDMETHODCALLTYPE
*GetSize
)(
2044 IMediaSample2
* This
);
2046 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
2047 IMediaSample2
* This
,
2048 REFERENCE_TIME
* pTimeStart
,
2049 REFERENCE_TIME
* pTimeEnd
);
2051 HRESULT (STDMETHODCALLTYPE
*SetTime
)(
2052 IMediaSample2
* This
,
2053 REFERENCE_TIME
* pTimeStart
,
2054 REFERENCE_TIME
* pTimeEnd
);
2056 HRESULT (STDMETHODCALLTYPE
*IsSyncPoint
)(
2057 IMediaSample2
* This
);
2059 HRESULT (STDMETHODCALLTYPE
*SetSyncPoint
)(
2060 IMediaSample2
* This
,
2063 HRESULT (STDMETHODCALLTYPE
*IsPreroll
)(
2064 IMediaSample2
* This
);
2066 HRESULT (STDMETHODCALLTYPE
*SetPreroll
)(
2067 IMediaSample2
* This
,
2070 long (STDMETHODCALLTYPE
*GetActualDataLength
)(
2071 IMediaSample2
* This
);
2073 HRESULT (STDMETHODCALLTYPE
*SetActualDataLength
)(
2074 IMediaSample2
* This
,
2077 HRESULT (STDMETHODCALLTYPE
*GetMediaType
)(
2078 IMediaSample2
* This
,
2079 AM_MEDIA_TYPE
** ppMediaType
);
2081 HRESULT (STDMETHODCALLTYPE
*SetMediaType
)(
2082 IMediaSample2
* This
,
2083 AM_MEDIA_TYPE
* pMediaType
);
2085 HRESULT (STDMETHODCALLTYPE
*IsDiscontinuity
)(
2086 IMediaSample2
* This
);
2088 HRESULT (STDMETHODCALLTYPE
*SetDiscontinuity
)(
2089 IMediaSample2
* This
,
2090 BOOL bDiscontinuity
);
2092 HRESULT (STDMETHODCALLTYPE
*GetMediaTime
)(
2093 IMediaSample2
* This
,
2094 LONGLONG
* pTimeStart
,
2095 LONGLONG
* pTimeEnd
);
2097 HRESULT (STDMETHODCALLTYPE
*SetMediaTime
)(
2098 IMediaSample2
* This
,
2099 LONGLONG
* pTimeStart
,
2100 LONGLONG
* pTimeEnd
);
2102 /*** IMediaSample2 methods ***/
2103 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2104 IMediaSample2
* This
,
2106 BYTE
* pbProperties
);
2108 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2109 IMediaSample2
* This
,
2111 const BYTE
* pbProperties
);
2117 /*** IUnknown methods ***/
2118 #define IMediaSample2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2119 #define IMediaSample2_AddRef(p) (p)->lpVtbl->AddRef(p)
2120 #define IMediaSample2_Release(p) (p)->lpVtbl->Release(p)
2121 /*** IMediaSample methods ***/
2122 #define IMediaSample2_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
2123 #define IMediaSample2_GetSize(p) (p)->lpVtbl->GetSize(p)
2124 #define IMediaSample2_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
2125 #define IMediaSample2_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
2126 #define IMediaSample2_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
2127 #define IMediaSample2_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
2128 #define IMediaSample2_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
2129 #define IMediaSample2_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
2130 #define IMediaSample2_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
2131 #define IMediaSample2_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
2132 #define IMediaSample2_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
2133 #define IMediaSample2_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
2134 #define IMediaSample2_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
2135 #define IMediaSample2_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
2136 #define IMediaSample2_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
2137 #define IMediaSample2_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
2138 /*** IMediaSample2 methods ***/
2139 #define IMediaSample2_GetProperties(p,a,b) (p)->lpVtbl->GetProperties(p,a,b)
2140 #define IMediaSample2_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2145 #define IMediaSample2_METHODS \
2146 /*** IUnknown methods ***/ \
2147 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2148 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2149 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2150 /*** IMediaSample methods ***/ \
2151 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
2152 STDMETHOD_(long,GetSize)(THIS) PURE; \
2153 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
2154 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
2155 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
2156 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
2157 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
2158 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
2159 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
2160 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
2161 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
2162 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
2163 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
2164 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
2165 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
2166 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
2167 /*** IMediaSample2 methods ***/ \
2168 STDMETHOD_(HRESULT,GetProperties)(THIS_ DWORD cbProperties, BYTE* pbProperties) PURE; \
2169 STDMETHOD_(HRESULT,SetProperties)(THIS_ DWORD cbProperties, const BYTE* pbProperties) PURE;
2171 HRESULT CALLBACK
IMediaSample2_GetProperties_Proxy(
2172 IMediaSample2
* This
,
2174 BYTE
* pbProperties
);
2175 void __RPC_STUB
IMediaSample2_GetProperties_Stub(
2176 struct IRpcStubBuffer
* This
,
2177 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2178 PRPC_MESSAGE pRpcMessage
,
2179 DWORD
* pdwStubPhase
);
2180 HRESULT CALLBACK
IMediaSample2_SetProperties_Proxy(
2181 IMediaSample2
* This
,
2183 const BYTE
* pbProperties
);
2184 void __RPC_STUB
IMediaSample2_SetProperties_Stub(
2185 struct IRpcStubBuffer
* This
,
2186 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2187 PRPC_MESSAGE pRpcMessage
,
2188 DWORD
* pdwStubPhase
);
2190 #endif /* __IMediaSample2_INTERFACE_DEFINED__ */
2192 typedef IMediaSample2
*PMEDIASAMPLE2
;
2194 #define AM_GBF_PREVFRAMESKIPPED 1
2195 #define AM_GBF_NOTASYNCPOINT 2
2196 #define AM_GBF_NOWAIT 4
2197 /*****************************************************************************
2198 * IMemAllocator interface
2200 #ifndef __IMemAllocator_INTERFACE_DEFINED__
2201 #define __IMemAllocator_INTERFACE_DEFINED__
2203 DEFINE_GUID(IID_IMemAllocator
, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2204 #if defined(__cplusplus) && !defined(CINTERFACE)
2205 struct IMemAllocator
: public IUnknown
2207 virtual HRESULT STDMETHODCALLTYPE
SetProperties(
2208 ALLOCATOR_PROPERTIES
* pRequest
,
2209 ALLOCATOR_PROPERTIES
* pActual
) = 0;
2211 virtual HRESULT STDMETHODCALLTYPE
GetProperties(
2212 ALLOCATOR_PROPERTIES
* pProps
) = 0;
2214 virtual HRESULT STDMETHODCALLTYPE
Commit(
2217 virtual HRESULT STDMETHODCALLTYPE
Decommit(
2220 virtual HRESULT STDMETHODCALLTYPE
GetBuffer(
2221 IMediaSample
** ppBuffer
,
2222 REFERENCE_TIME
* pStartTime
,
2223 REFERENCE_TIME
* pEndTime
,
2226 virtual HRESULT STDMETHODCALLTYPE
ReleaseBuffer(
2227 IMediaSample
* pBuffer
) = 0;
2231 typedef struct IMemAllocatorVtbl IMemAllocatorVtbl
;
2232 struct IMemAllocator
{
2233 const IMemAllocatorVtbl
* lpVtbl
;
2235 struct IMemAllocatorVtbl
{
2238 /*** IUnknown methods ***/
2239 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2240 IMemAllocator
* This
,
2244 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2245 IMemAllocator
* This
);
2247 ULONG (STDMETHODCALLTYPE
*Release
)(
2248 IMemAllocator
* This
);
2250 /*** IMemAllocator methods ***/
2251 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2252 IMemAllocator
* This
,
2253 ALLOCATOR_PROPERTIES
* pRequest
,
2254 ALLOCATOR_PROPERTIES
* pActual
);
2256 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2257 IMemAllocator
* This
,
2258 ALLOCATOR_PROPERTIES
* pProps
);
2260 HRESULT (STDMETHODCALLTYPE
*Commit
)(
2261 IMemAllocator
* This
);
2263 HRESULT (STDMETHODCALLTYPE
*Decommit
)(
2264 IMemAllocator
* This
);
2266 HRESULT (STDMETHODCALLTYPE
*GetBuffer
)(
2267 IMemAllocator
* This
,
2268 IMediaSample
** ppBuffer
,
2269 REFERENCE_TIME
* pStartTime
,
2270 REFERENCE_TIME
* pEndTime
,
2273 HRESULT (STDMETHODCALLTYPE
*ReleaseBuffer
)(
2274 IMemAllocator
* This
,
2275 IMediaSample
* pBuffer
);
2281 /*** IUnknown methods ***/
2282 #define IMemAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2283 #define IMemAllocator_AddRef(p) (p)->lpVtbl->AddRef(p)
2284 #define IMemAllocator_Release(p) (p)->lpVtbl->Release(p)
2285 /*** IMemAllocator methods ***/
2286 #define IMemAllocator_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2287 #define IMemAllocator_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
2288 #define IMemAllocator_Commit(p) (p)->lpVtbl->Commit(p)
2289 #define IMemAllocator_Decommit(p) (p)->lpVtbl->Decommit(p)
2290 #define IMemAllocator_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
2291 #define IMemAllocator_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
2296 #define IMemAllocator_METHODS \
2297 /*** IUnknown methods ***/ \
2298 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2299 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2300 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2301 /*** IMemAllocator methods ***/ \
2302 STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
2303 STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2304 STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
2305 STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
2306 STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
2307 STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE;
2309 HRESULT CALLBACK
IMemAllocator_SetProperties_Proxy(
2310 IMemAllocator
* This
,
2311 ALLOCATOR_PROPERTIES
* pRequest
,
2312 ALLOCATOR_PROPERTIES
* pActual
);
2313 void __RPC_STUB
IMemAllocator_SetProperties_Stub(
2314 struct IRpcStubBuffer
* This
,
2315 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2316 PRPC_MESSAGE pRpcMessage
,
2317 DWORD
* pdwStubPhase
);
2318 HRESULT CALLBACK
IMemAllocator_GetProperties_Proxy(
2319 IMemAllocator
* This
,
2320 ALLOCATOR_PROPERTIES
* pProps
);
2321 void __RPC_STUB
IMemAllocator_GetProperties_Stub(
2322 struct IRpcStubBuffer
* This
,
2323 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2324 PRPC_MESSAGE pRpcMessage
,
2325 DWORD
* pdwStubPhase
);
2326 HRESULT CALLBACK
IMemAllocator_Commit_Proxy(
2327 IMemAllocator
* This
);
2328 void __RPC_STUB
IMemAllocator_Commit_Stub(
2329 struct IRpcStubBuffer
* This
,
2330 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2331 PRPC_MESSAGE pRpcMessage
,
2332 DWORD
* pdwStubPhase
);
2333 HRESULT CALLBACK
IMemAllocator_Decommit_Proxy(
2334 IMemAllocator
* This
);
2335 void __RPC_STUB
IMemAllocator_Decommit_Stub(
2336 struct IRpcStubBuffer
* This
,
2337 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2338 PRPC_MESSAGE pRpcMessage
,
2339 DWORD
* pdwStubPhase
);
2340 HRESULT CALLBACK
IMemAllocator_GetBuffer_Proxy(
2341 IMemAllocator
* This
,
2342 IMediaSample
** ppBuffer
,
2343 REFERENCE_TIME
* pStartTime
,
2344 REFERENCE_TIME
* pEndTime
,
2346 void __RPC_STUB
IMemAllocator_GetBuffer_Stub(
2347 struct IRpcStubBuffer
* This
,
2348 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2349 PRPC_MESSAGE pRpcMessage
,
2350 DWORD
* pdwStubPhase
);
2351 HRESULT CALLBACK
IMemAllocator_ReleaseBuffer_Proxy(
2352 IMemAllocator
* This
,
2353 IMediaSample
* pBuffer
);
2354 void __RPC_STUB
IMemAllocator_ReleaseBuffer_Stub(
2355 struct IRpcStubBuffer
* This
,
2356 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2357 PRPC_MESSAGE pRpcMessage
,
2358 DWORD
* pdwStubPhase
);
2360 #endif /* __IMemAllocator_INTERFACE_DEFINED__ */
2362 typedef IMemAllocator
*PMEMALLOCATOR
;
2364 /*****************************************************************************
2365 * IMemAllocatorCallbackTemp interface
2367 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2368 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2370 DEFINE_GUID(IID_IMemAllocatorCallbackTemp
, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
2371 #if defined(__cplusplus) && !defined(CINTERFACE)
2372 struct IMemAllocatorCallbackTemp
: public IMemAllocator
2374 virtual HRESULT STDMETHODCALLTYPE
SetNotify(
2375 IMemAllocatorNotifyCallbackTemp
* pNotify
) = 0;
2377 virtual HRESULT STDMETHODCALLTYPE
GetFreeCount(
2378 LONG
* plBuffersFree
) = 0;
2382 typedef struct IMemAllocatorCallbackTempVtbl IMemAllocatorCallbackTempVtbl
;
2383 struct IMemAllocatorCallbackTemp
{
2384 const IMemAllocatorCallbackTempVtbl
* lpVtbl
;
2386 struct IMemAllocatorCallbackTempVtbl
{
2389 /*** IUnknown methods ***/
2390 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2391 IMemAllocatorCallbackTemp
* This
,
2395 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2396 IMemAllocatorCallbackTemp
* This
);
2398 ULONG (STDMETHODCALLTYPE
*Release
)(
2399 IMemAllocatorCallbackTemp
* This
);
2401 /*** IMemAllocator methods ***/
2402 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2403 IMemAllocatorCallbackTemp
* This
,
2404 ALLOCATOR_PROPERTIES
* pRequest
,
2405 ALLOCATOR_PROPERTIES
* pActual
);
2407 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2408 IMemAllocatorCallbackTemp
* This
,
2409 ALLOCATOR_PROPERTIES
* pProps
);
2411 HRESULT (STDMETHODCALLTYPE
*Commit
)(
2412 IMemAllocatorCallbackTemp
* This
);
2414 HRESULT (STDMETHODCALLTYPE
*Decommit
)(
2415 IMemAllocatorCallbackTemp
* This
);
2417 HRESULT (STDMETHODCALLTYPE
*GetBuffer
)(
2418 IMemAllocatorCallbackTemp
* This
,
2419 IMediaSample
** ppBuffer
,
2420 REFERENCE_TIME
* pStartTime
,
2421 REFERENCE_TIME
* pEndTime
,
2424 HRESULT (STDMETHODCALLTYPE
*ReleaseBuffer
)(
2425 IMemAllocatorCallbackTemp
* This
,
2426 IMediaSample
* pBuffer
);
2428 /*** IMemAllocatorCallbackTemp methods ***/
2429 HRESULT (STDMETHODCALLTYPE
*SetNotify
)(
2430 IMemAllocatorCallbackTemp
* This
,
2431 IMemAllocatorNotifyCallbackTemp
* pNotify
);
2433 HRESULT (STDMETHODCALLTYPE
*GetFreeCount
)(
2434 IMemAllocatorCallbackTemp
* This
,
2435 LONG
* plBuffersFree
);
2441 /*** IUnknown methods ***/
2442 #define IMemAllocatorCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2443 #define IMemAllocatorCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
2444 #define IMemAllocatorCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
2445 /*** IMemAllocator methods ***/
2446 #define IMemAllocatorCallbackTemp_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2447 #define IMemAllocatorCallbackTemp_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
2448 #define IMemAllocatorCallbackTemp_Commit(p) (p)->lpVtbl->Commit(p)
2449 #define IMemAllocatorCallbackTemp_Decommit(p) (p)->lpVtbl->Decommit(p)
2450 #define IMemAllocatorCallbackTemp_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
2451 #define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
2452 /*** IMemAllocatorCallbackTemp methods ***/
2453 #define IMemAllocatorCallbackTemp_SetNotify(p,a) (p)->lpVtbl->SetNotify(p,a)
2454 #define IMemAllocatorCallbackTemp_GetFreeCount(p,a) (p)->lpVtbl->GetFreeCount(p,a)
2459 #define IMemAllocatorCallbackTemp_METHODS \
2460 /*** IUnknown methods ***/ \
2461 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2462 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2463 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2464 /*** IMemAllocator methods ***/ \
2465 STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
2466 STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2467 STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
2468 STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
2469 STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
2470 STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE; \
2471 /*** IMemAllocatorCallbackTemp methods ***/ \
2472 STDMETHOD_(HRESULT,SetNotify)(THIS_ IMemAllocatorNotifyCallbackTemp* pNotify) PURE; \
2473 STDMETHOD_(HRESULT,GetFreeCount)(THIS_ LONG* plBuffersFree) PURE;
2475 HRESULT CALLBACK
IMemAllocatorCallbackTemp_SetNotify_Proxy(
2476 IMemAllocatorCallbackTemp
* This
,
2477 IMemAllocatorNotifyCallbackTemp
* pNotify
);
2478 void __RPC_STUB
IMemAllocatorCallbackTemp_SetNotify_Stub(
2479 struct IRpcStubBuffer
* This
,
2480 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2481 PRPC_MESSAGE pRpcMessage
,
2482 DWORD
* pdwStubPhase
);
2483 HRESULT CALLBACK
IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
2484 IMemAllocatorCallbackTemp
* This
,
2485 LONG
* plBuffersFree
);
2486 void __RPC_STUB
IMemAllocatorCallbackTemp_GetFreeCount_Stub(
2487 struct IRpcStubBuffer
* This
,
2488 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2489 PRPC_MESSAGE pRpcMessage
,
2490 DWORD
* pdwStubPhase
);
2492 #endif /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
2494 /*****************************************************************************
2495 * IMemAllocatorNotifyCallbackTemp interface
2497 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
2498 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
2500 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp
, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
2501 #if defined(__cplusplus) && !defined(CINTERFACE)
2502 struct IMemAllocatorNotifyCallbackTemp
: public IUnknown
2504 virtual HRESULT STDMETHODCALLTYPE
NotifyRelease(
2509 typedef struct IMemAllocatorNotifyCallbackTempVtbl IMemAllocatorNotifyCallbackTempVtbl
;
2510 struct IMemAllocatorNotifyCallbackTemp
{
2511 const IMemAllocatorNotifyCallbackTempVtbl
* lpVtbl
;
2513 struct IMemAllocatorNotifyCallbackTempVtbl
{
2516 /*** IUnknown methods ***/
2517 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2518 IMemAllocatorNotifyCallbackTemp
* This
,
2522 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2523 IMemAllocatorNotifyCallbackTemp
* This
);
2525 ULONG (STDMETHODCALLTYPE
*Release
)(
2526 IMemAllocatorNotifyCallbackTemp
* This
);
2528 /*** IMemAllocatorNotifyCallbackTemp methods ***/
2529 HRESULT (STDMETHODCALLTYPE
*NotifyRelease
)(
2530 IMemAllocatorNotifyCallbackTemp
* This
);
2536 /*** IUnknown methods ***/
2537 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2538 #define IMemAllocatorNotifyCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
2539 #define IMemAllocatorNotifyCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
2540 /*** IMemAllocatorNotifyCallbackTemp methods ***/
2541 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) (p)->lpVtbl->NotifyRelease(p)
2546 #define IMemAllocatorNotifyCallbackTemp_METHODS \
2547 /*** IUnknown methods ***/ \
2548 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2549 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2550 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2551 /*** IMemAllocatorNotifyCallbackTemp methods ***/ \
2552 STDMETHOD_(HRESULT,NotifyRelease)(THIS) PURE;
2554 HRESULT CALLBACK
IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
2555 IMemAllocatorNotifyCallbackTemp
* This
);
2556 void __RPC_STUB
IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
2557 struct IRpcStubBuffer
* This
,
2558 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2559 PRPC_MESSAGE pRpcMessage
,
2560 DWORD
* pdwStubPhase
);
2562 #endif /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
2564 /*****************************************************************************
2565 * IMemInputPin interface
2567 #ifndef __IMemInputPin_INTERFACE_DEFINED__
2568 #define __IMemInputPin_INTERFACE_DEFINED__
2570 DEFINE_GUID(IID_IMemInputPin
, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2571 #if defined(__cplusplus) && !defined(CINTERFACE)
2572 struct IMemInputPin
: public IUnknown
2574 virtual HRESULT STDMETHODCALLTYPE
GetAllocator(
2575 IMemAllocator
** ppAllocator
) = 0;
2577 virtual HRESULT STDMETHODCALLTYPE
NotifyAllocator(
2578 IMemAllocator
* pAllocator
,
2579 BOOL bReadOnly
) = 0;
2581 virtual HRESULT STDMETHODCALLTYPE
GetAllocatorRequirements(
2582 ALLOCATOR_PROPERTIES
* pProps
) = 0;
2584 virtual HRESULT STDMETHODCALLTYPE
Receive(
2585 IMediaSample
* pSample
) = 0;
2587 virtual HRESULT STDMETHODCALLTYPE
ReceiveMultiple(
2588 IMediaSample
** pSamples
,
2590 long* nSamplesProcessed
) = 0;
2592 virtual HRESULT STDMETHODCALLTYPE
ReceiveCanBlock(
2597 typedef struct IMemInputPinVtbl IMemInputPinVtbl
;
2598 struct IMemInputPin
{
2599 const IMemInputPinVtbl
* lpVtbl
;
2601 struct IMemInputPinVtbl
{
2604 /*** IUnknown methods ***/
2605 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2610 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2611 IMemInputPin
* This
);
2613 ULONG (STDMETHODCALLTYPE
*Release
)(
2614 IMemInputPin
* This
);
2616 /*** IMemInputPin methods ***/
2617 HRESULT (STDMETHODCALLTYPE
*GetAllocator
)(
2619 IMemAllocator
** ppAllocator
);
2621 HRESULT (STDMETHODCALLTYPE
*NotifyAllocator
)(
2623 IMemAllocator
* pAllocator
,
2626 HRESULT (STDMETHODCALLTYPE
*GetAllocatorRequirements
)(
2628 ALLOCATOR_PROPERTIES
* pProps
);
2630 HRESULT (STDMETHODCALLTYPE
*Receive
)(
2632 IMediaSample
* pSample
);
2634 HRESULT (STDMETHODCALLTYPE
*ReceiveMultiple
)(
2636 IMediaSample
** pSamples
,
2638 long* nSamplesProcessed
);
2640 HRESULT (STDMETHODCALLTYPE
*ReceiveCanBlock
)(
2641 IMemInputPin
* This
);
2647 /*** IUnknown methods ***/
2648 #define IMemInputPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2649 #define IMemInputPin_AddRef(p) (p)->lpVtbl->AddRef(p)
2650 #define IMemInputPin_Release(p) (p)->lpVtbl->Release(p)
2651 /*** IMemInputPin methods ***/
2652 #define IMemInputPin_GetAllocator(p,a) (p)->lpVtbl->GetAllocator(p,a)
2653 #define IMemInputPin_NotifyAllocator(p,a,b) (p)->lpVtbl->NotifyAllocator(p,a,b)
2654 #define IMemInputPin_GetAllocatorRequirements(p,a) (p)->lpVtbl->GetAllocatorRequirements(p,a)
2655 #define IMemInputPin_Receive(p,a) (p)->lpVtbl->Receive(p,a)
2656 #define IMemInputPin_ReceiveMultiple(p,a,b,c) (p)->lpVtbl->ReceiveMultiple(p,a,b,c)
2657 #define IMemInputPin_ReceiveCanBlock(p) (p)->lpVtbl->ReceiveCanBlock(p)
2662 #define IMemInputPin_METHODS \
2663 /*** IUnknown methods ***/ \
2664 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2665 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2666 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2667 /*** IMemInputPin methods ***/ \
2668 STDMETHOD_(HRESULT,GetAllocator)(THIS_ IMemAllocator** ppAllocator) PURE; \
2669 STDMETHOD_(HRESULT,NotifyAllocator)(THIS_ IMemAllocator* pAllocator, BOOL bReadOnly) PURE; \
2670 STDMETHOD_(HRESULT,GetAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2671 STDMETHOD_(HRESULT,Receive)(THIS_ IMediaSample* pSample) PURE; \
2672 STDMETHOD_(HRESULT,ReceiveMultiple)(THIS_ IMediaSample** pSamples, long nSamples, long* nSamplesProcessed) PURE; \
2673 STDMETHOD_(HRESULT,ReceiveCanBlock)(THIS) PURE;
2675 HRESULT CALLBACK
IMemInputPin_GetAllocator_Proxy(
2677 IMemAllocator
** ppAllocator
);
2678 void __RPC_STUB
IMemInputPin_GetAllocator_Stub(
2679 struct IRpcStubBuffer
* This
,
2680 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2681 PRPC_MESSAGE pRpcMessage
,
2682 DWORD
* pdwStubPhase
);
2683 HRESULT CALLBACK
IMemInputPin_NotifyAllocator_Proxy(
2685 IMemAllocator
* pAllocator
,
2687 void __RPC_STUB
IMemInputPin_NotifyAllocator_Stub(
2688 struct IRpcStubBuffer
* This
,
2689 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2690 PRPC_MESSAGE pRpcMessage
,
2691 DWORD
* pdwStubPhase
);
2692 HRESULT CALLBACK
IMemInputPin_GetAllocatorRequirements_Proxy(
2694 ALLOCATOR_PROPERTIES
* pProps
);
2695 void __RPC_STUB
IMemInputPin_GetAllocatorRequirements_Stub(
2696 struct IRpcStubBuffer
* This
,
2697 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2698 PRPC_MESSAGE pRpcMessage
,
2699 DWORD
* pdwStubPhase
);
2700 HRESULT CALLBACK
IMemInputPin_Receive_Proxy(
2702 IMediaSample
* pSample
);
2703 void __RPC_STUB
IMemInputPin_Receive_Stub(
2704 struct IRpcStubBuffer
* This
,
2705 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2706 PRPC_MESSAGE pRpcMessage
,
2707 DWORD
* pdwStubPhase
);
2708 HRESULT CALLBACK
IMemInputPin_ReceiveMultiple_Proxy(
2710 IMediaSample
** pSamples
,
2712 long* nSamplesProcessed
);
2713 void __RPC_STUB
IMemInputPin_ReceiveMultiple_Stub(
2714 struct IRpcStubBuffer
* This
,
2715 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2716 PRPC_MESSAGE pRpcMessage
,
2717 DWORD
* pdwStubPhase
);
2718 HRESULT CALLBACK
IMemInputPin_ReceiveCanBlock_Proxy(
2719 IMemInputPin
* This
);
2720 void __RPC_STUB
IMemInputPin_ReceiveCanBlock_Stub(
2721 struct IRpcStubBuffer
* This
,
2722 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2723 PRPC_MESSAGE pRpcMessage
,
2724 DWORD
* pdwStubPhase
);
2726 #endif /* __IMemInputPin_INTERFACE_DEFINED__ */
2728 typedef IMemInputPin
*PMEMINPUTPIN
;
2730 /*****************************************************************************
2731 * IAMovieSetup interface
2733 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
2734 #define __IAMovieSetup_INTERFACE_DEFINED__
2736 DEFINE_GUID(IID_IAMovieSetup
, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
2737 #if defined(__cplusplus) && !defined(CINTERFACE)
2738 struct IAMovieSetup
: public IUnknown
2740 virtual HRESULT STDMETHODCALLTYPE
Register(
2743 virtual HRESULT STDMETHODCALLTYPE
Unregister(
2748 typedef struct IAMovieSetupVtbl IAMovieSetupVtbl
;
2749 struct IAMovieSetup
{
2750 const IAMovieSetupVtbl
* lpVtbl
;
2752 struct IAMovieSetupVtbl
{
2755 /*** IUnknown methods ***/
2756 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2761 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2762 IAMovieSetup
* This
);
2764 ULONG (STDMETHODCALLTYPE
*Release
)(
2765 IAMovieSetup
* This
);
2767 /*** IAMovieSetup methods ***/
2768 HRESULT (STDMETHODCALLTYPE
*Register
)(
2769 IAMovieSetup
* This
);
2771 HRESULT (STDMETHODCALLTYPE
*Unregister
)(
2772 IAMovieSetup
* This
);
2778 /*** IUnknown methods ***/
2779 #define IAMovieSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2780 #define IAMovieSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
2781 #define IAMovieSetup_Release(p) (p)->lpVtbl->Release(p)
2782 /*** IAMovieSetup methods ***/
2783 #define IAMovieSetup_Register(p) (p)->lpVtbl->Register(p)
2784 #define IAMovieSetup_Unregister(p) (p)->lpVtbl->Unregister(p)
2789 #define IAMovieSetup_METHODS \
2790 /*** IUnknown methods ***/ \
2791 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2792 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2793 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2794 /*** IAMovieSetup methods ***/ \
2795 STDMETHOD_(HRESULT,Register)(THIS) PURE; \
2796 STDMETHOD_(HRESULT,Unregister)(THIS) PURE;
2798 HRESULT CALLBACK
IAMovieSetup_Register_Proxy(
2799 IAMovieSetup
* This
);
2800 void __RPC_STUB
IAMovieSetup_Register_Stub(
2801 struct IRpcStubBuffer
* This
,
2802 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2803 PRPC_MESSAGE pRpcMessage
,
2804 DWORD
* pdwStubPhase
);
2805 HRESULT CALLBACK
IAMovieSetup_Unregister_Proxy(
2806 IAMovieSetup
* This
);
2807 void __RPC_STUB
IAMovieSetup_Unregister_Stub(
2808 struct IRpcStubBuffer
* This
,
2809 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2810 PRPC_MESSAGE pRpcMessage
,
2811 DWORD
* pdwStubPhase
);
2813 #endif /* __IAMovieSetup_INTERFACE_DEFINED__ */
2815 typedef IAMovieSetup
*PAMOVIESETUP
;
2817 typedef enum AM_SEEKING_SeekingFlags
{
2818 AM_SEEKING_NoPositioning
= 0x0,
2819 AM_SEEKING_AbsolutePositioning
= 0x1,
2820 AM_SEEKING_RelativePositioning
= 0x2,
2821 AM_SEEKING_IncrementalPositioning
= 0x3,
2822 AM_SEEKING_PositioningBitsMask
= 0x3,
2823 AM_SEEKING_SeekToKeyFrame
= 0x4,
2824 AM_SEEKING_ReturnTime
= 0x8,
2825 AM_SEEKING_Segment
= 0x10,
2826 AM_SEEKING_NoFlush
= 0x20
2827 } AM_SEEKING_SEEKING_FLAGS
;
2829 typedef enum AM_SEEKING_SeekingCapabilities
{
2830 AM_SEEKING_CanSeekAbsolute
= 0x1,
2831 AM_SEEKING_CanSeekForwards
= 0x2,
2832 AM_SEEKING_CanSeekBackwards
= 0x4,
2833 AM_SEEKING_CanGetCurrentPos
= 0x8,
2834 AM_SEEKING_CanGetStopPos
= 0x10,
2835 AM_SEEKING_CanGetDuration
= 0x20,
2836 AM_SEEKING_CanPlayBackwards
= 0x40,
2837 AM_SEEKING_CanDoSegments
= 0x80,
2838 AM_SEEKING_Source
= 0x100
2839 } AM_SEEKING_SEEKING_CAPABILITIES
;
2841 #ifndef __IMediaSeeking_FWD_DEFINED__
2842 #define __IMediaSeeking_FWD_DEFINED__
2843 typedef struct IMediaSeeking IMediaSeeking
;
2846 /*****************************************************************************
2847 * IMediaSeeking interface
2849 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
2850 #define __IMediaSeeking_INTERFACE_DEFINED__
2852 DEFINE_GUID(IID_IMediaSeeking
, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2853 #if defined(__cplusplus) && !defined(CINTERFACE)
2854 struct IMediaSeeking
: public IUnknown
2856 virtual HRESULT STDMETHODCALLTYPE
GetCapabilities(
2857 DWORD
* pCapabilities
) = 0;
2859 virtual HRESULT STDMETHODCALLTYPE
CheckCapabilities(
2860 DWORD
* pCapabilities
) = 0;
2862 virtual HRESULT STDMETHODCALLTYPE
IsFormatSupported(
2863 const GUID
* pFormat
) = 0;
2865 virtual HRESULT STDMETHODCALLTYPE
QueryPreferredFormat(
2868 virtual HRESULT STDMETHODCALLTYPE
GetTimeFormat(
2871 virtual HRESULT STDMETHODCALLTYPE
IsUsingTimeFormat(
2872 const GUID
* pFormat
) = 0;
2874 virtual HRESULT STDMETHODCALLTYPE
SetTimeFormat(
2875 const GUID
* pFormat
) = 0;
2877 virtual HRESULT STDMETHODCALLTYPE
GetDuration(
2878 LONGLONG
* pDuration
) = 0;
2880 virtual HRESULT STDMETHODCALLTYPE
GetStopPosition(
2881 LONGLONG
* pStop
) = 0;
2883 virtual HRESULT STDMETHODCALLTYPE
GetCurrentPosition(
2884 LONGLONG
* pCurrent
) = 0;
2886 virtual HRESULT STDMETHODCALLTYPE
ConvertTimeFormat(
2888 const GUID
* pTargetFormat
,
2890 const GUID
* pSourceFormat
) = 0;
2892 virtual HRESULT STDMETHODCALLTYPE
SetPositions(
2894 DWORD dwCurrentFlags
,
2896 DWORD dwStopFlags
) = 0;
2898 virtual HRESULT STDMETHODCALLTYPE
GetPositions(
2900 LONGLONG
* pStop
) = 0;
2902 virtual HRESULT STDMETHODCALLTYPE
GetAvailable(
2903 LONGLONG
* pEarliest
,
2904 LONGLONG
* pLatest
) = 0;
2906 virtual HRESULT STDMETHODCALLTYPE
SetRate(
2909 virtual HRESULT STDMETHODCALLTYPE
GetRate(
2910 double* pdRate
) = 0;
2912 virtual HRESULT STDMETHODCALLTYPE
GetPreroll(
2913 LONGLONG
* pllPreroll
) = 0;
2917 typedef struct IMediaSeekingVtbl IMediaSeekingVtbl
;
2918 struct IMediaSeeking
{
2919 const IMediaSeekingVtbl
* lpVtbl
;
2921 struct IMediaSeekingVtbl
{
2924 /*** IUnknown methods ***/
2925 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2926 IMediaSeeking
* This
,
2930 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2931 IMediaSeeking
* This
);
2933 ULONG (STDMETHODCALLTYPE
*Release
)(
2934 IMediaSeeking
* This
);
2936 /*** IMediaSeeking methods ***/
2937 HRESULT (STDMETHODCALLTYPE
*GetCapabilities
)(
2938 IMediaSeeking
* This
,
2939 DWORD
* pCapabilities
);
2941 HRESULT (STDMETHODCALLTYPE
*CheckCapabilities
)(
2942 IMediaSeeking
* This
,
2943 DWORD
* pCapabilities
);
2945 HRESULT (STDMETHODCALLTYPE
*IsFormatSupported
)(
2946 IMediaSeeking
* This
,
2947 const GUID
* pFormat
);
2949 HRESULT (STDMETHODCALLTYPE
*QueryPreferredFormat
)(
2950 IMediaSeeking
* This
,
2953 HRESULT (STDMETHODCALLTYPE
*GetTimeFormat
)(
2954 IMediaSeeking
* This
,
2957 HRESULT (STDMETHODCALLTYPE
*IsUsingTimeFormat
)(
2958 IMediaSeeking
* This
,
2959 const GUID
* pFormat
);
2961 HRESULT (STDMETHODCALLTYPE
*SetTimeFormat
)(
2962 IMediaSeeking
* This
,
2963 const GUID
* pFormat
);
2965 HRESULT (STDMETHODCALLTYPE
*GetDuration
)(
2966 IMediaSeeking
* This
,
2967 LONGLONG
* pDuration
);
2969 HRESULT (STDMETHODCALLTYPE
*GetStopPosition
)(
2970 IMediaSeeking
* This
,
2973 HRESULT (STDMETHODCALLTYPE
*GetCurrentPosition
)(
2974 IMediaSeeking
* This
,
2975 LONGLONG
* pCurrent
);
2977 HRESULT (STDMETHODCALLTYPE
*ConvertTimeFormat
)(
2978 IMediaSeeking
* This
,
2980 const GUID
* pTargetFormat
,
2982 const GUID
* pSourceFormat
);
2984 HRESULT (STDMETHODCALLTYPE
*SetPositions
)(
2985 IMediaSeeking
* This
,
2987 DWORD dwCurrentFlags
,
2991 HRESULT (STDMETHODCALLTYPE
*GetPositions
)(
2992 IMediaSeeking
* This
,
2996 HRESULT (STDMETHODCALLTYPE
*GetAvailable
)(
2997 IMediaSeeking
* This
,
2998 LONGLONG
* pEarliest
,
3001 HRESULT (STDMETHODCALLTYPE
*SetRate
)(
3002 IMediaSeeking
* This
,
3005 HRESULT (STDMETHODCALLTYPE
*GetRate
)(
3006 IMediaSeeking
* This
,
3009 HRESULT (STDMETHODCALLTYPE
*GetPreroll
)(
3010 IMediaSeeking
* This
,
3011 LONGLONG
* pllPreroll
);
3017 /*** IUnknown methods ***/
3018 #define IMediaSeeking_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3019 #define IMediaSeeking_AddRef(p) (p)->lpVtbl->AddRef(p)
3020 #define IMediaSeeking_Release(p) (p)->lpVtbl->Release(p)
3021 /*** IMediaSeeking methods ***/
3022 #define IMediaSeeking_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
3023 #define IMediaSeeking_CheckCapabilities(p,a) (p)->lpVtbl->CheckCapabilities(p,a)
3024 #define IMediaSeeking_IsFormatSupported(p,a) (p)->lpVtbl->IsFormatSupported(p,a)
3025 #define IMediaSeeking_QueryPreferredFormat(p,a) (p)->lpVtbl->QueryPreferredFormat(p,a)
3026 #define IMediaSeeking_GetTimeFormat(p,a) (p)->lpVtbl->GetTimeFormat(p,a)
3027 #define IMediaSeeking_IsUsingTimeFormat(p,a) (p)->lpVtbl->IsUsingTimeFormat(p,a)
3028 #define IMediaSeeking_SetTimeFormat(p,a) (p)->lpVtbl->SetTimeFormat(p,a)
3029 #define IMediaSeeking_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
3030 #define IMediaSeeking_GetStopPosition(p,a) (p)->lpVtbl->GetStopPosition(p,a)
3031 #define IMediaSeeking_GetCurrentPosition(p,a) (p)->lpVtbl->GetCurrentPosition(p,a)
3032 #define IMediaSeeking_ConvertTimeFormat(p,a,b,c,d) (p)->lpVtbl->ConvertTimeFormat(p,a,b,c,d)
3033 #define IMediaSeeking_SetPositions(p,a,b,c,d) (p)->lpVtbl->SetPositions(p,a,b,c,d)
3034 #define IMediaSeeking_GetPositions(p,a,b) (p)->lpVtbl->GetPositions(p,a,b)
3035 #define IMediaSeeking_GetAvailable(p,a,b) (p)->lpVtbl->GetAvailable(p,a,b)
3036 #define IMediaSeeking_SetRate(p,a) (p)->lpVtbl->SetRate(p,a)
3037 #define IMediaSeeking_GetRate(p,a) (p)->lpVtbl->GetRate(p,a)
3038 #define IMediaSeeking_GetPreroll(p,a) (p)->lpVtbl->GetPreroll(p,a)
3043 #define IMediaSeeking_METHODS \
3044 /*** IUnknown methods ***/ \
3045 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3046 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3047 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3048 /*** IMediaSeeking methods ***/ \
3049 STDMETHOD_(HRESULT,GetCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
3050 STDMETHOD_(HRESULT,CheckCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
3051 STDMETHOD_(HRESULT,IsFormatSupported)(THIS_ const GUID* pFormat) PURE; \
3052 STDMETHOD_(HRESULT,QueryPreferredFormat)(THIS_ GUID* pFormat) PURE; \
3053 STDMETHOD_(HRESULT,GetTimeFormat)(THIS_ GUID* pFormat) PURE; \
3054 STDMETHOD_(HRESULT,IsUsingTimeFormat)(THIS_ const GUID* pFormat) PURE; \
3055 STDMETHOD_(HRESULT,SetTimeFormat)(THIS_ const GUID* pFormat) PURE; \
3056 STDMETHOD_(HRESULT,GetDuration)(THIS_ LONGLONG* pDuration) PURE; \
3057 STDMETHOD_(HRESULT,GetStopPosition)(THIS_ LONGLONG* pStop) PURE; \
3058 STDMETHOD_(HRESULT,GetCurrentPosition)(THIS_ LONGLONG* pCurrent) PURE; \
3059 STDMETHOD_(HRESULT,ConvertTimeFormat)(THIS_ LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat) PURE; \
3060 STDMETHOD_(HRESULT,SetPositions)(THIS_ LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags) PURE; \
3061 STDMETHOD_(HRESULT,GetPositions)(THIS_ LONGLONG* pCurrent, LONGLONG* pStop) PURE; \
3062 STDMETHOD_(HRESULT,GetAvailable)(THIS_ LONGLONG* pEarliest, LONGLONG* pLatest) PURE; \
3063 STDMETHOD_(HRESULT,SetRate)(THIS_ double dRate) PURE; \
3064 STDMETHOD_(HRESULT,GetRate)(THIS_ double* pdRate) PURE; \
3065 STDMETHOD_(HRESULT,GetPreroll)(THIS_ LONGLONG* pllPreroll) PURE;
3067 HRESULT CALLBACK
IMediaSeeking_GetCapabilities_Proxy(
3068 IMediaSeeking
* This
,
3069 DWORD
* pCapabilities
);
3070 void __RPC_STUB
IMediaSeeking_GetCapabilities_Stub(
3071 struct IRpcStubBuffer
* This
,
3072 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3073 PRPC_MESSAGE pRpcMessage
,
3074 DWORD
* pdwStubPhase
);
3075 HRESULT CALLBACK
IMediaSeeking_CheckCapabilities_Proxy(
3076 IMediaSeeking
* This
,
3077 DWORD
* pCapabilities
);
3078 void __RPC_STUB
IMediaSeeking_CheckCapabilities_Stub(
3079 struct IRpcStubBuffer
* This
,
3080 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3081 PRPC_MESSAGE pRpcMessage
,
3082 DWORD
* pdwStubPhase
);
3083 HRESULT CALLBACK
IMediaSeeking_IsFormatSupported_Proxy(
3084 IMediaSeeking
* This
,
3085 const GUID
* pFormat
);
3086 void __RPC_STUB
IMediaSeeking_IsFormatSupported_Stub(
3087 struct IRpcStubBuffer
* This
,
3088 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3089 PRPC_MESSAGE pRpcMessage
,
3090 DWORD
* pdwStubPhase
);
3091 HRESULT CALLBACK
IMediaSeeking_QueryPreferredFormat_Proxy(
3092 IMediaSeeking
* This
,
3094 void __RPC_STUB
IMediaSeeking_QueryPreferredFormat_Stub(
3095 struct IRpcStubBuffer
* This
,
3096 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3097 PRPC_MESSAGE pRpcMessage
,
3098 DWORD
* pdwStubPhase
);
3099 HRESULT CALLBACK
IMediaSeeking_GetTimeFormat_Proxy(
3100 IMediaSeeking
* This
,
3102 void __RPC_STUB
IMediaSeeking_GetTimeFormat_Stub(
3103 struct IRpcStubBuffer
* This
,
3104 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3105 PRPC_MESSAGE pRpcMessage
,
3106 DWORD
* pdwStubPhase
);
3107 HRESULT CALLBACK
IMediaSeeking_IsUsingTimeFormat_Proxy(
3108 IMediaSeeking
* This
,
3109 const GUID
* pFormat
);
3110 void __RPC_STUB
IMediaSeeking_IsUsingTimeFormat_Stub(
3111 struct IRpcStubBuffer
* This
,
3112 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3113 PRPC_MESSAGE pRpcMessage
,
3114 DWORD
* pdwStubPhase
);
3115 HRESULT CALLBACK
IMediaSeeking_SetTimeFormat_Proxy(
3116 IMediaSeeking
* This
,
3117 const GUID
* pFormat
);
3118 void __RPC_STUB
IMediaSeeking_SetTimeFormat_Stub(
3119 struct IRpcStubBuffer
* This
,
3120 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3121 PRPC_MESSAGE pRpcMessage
,
3122 DWORD
* pdwStubPhase
);
3123 HRESULT CALLBACK
IMediaSeeking_GetDuration_Proxy(
3124 IMediaSeeking
* This
,
3125 LONGLONG
* pDuration
);
3126 void __RPC_STUB
IMediaSeeking_GetDuration_Stub(
3127 struct IRpcStubBuffer
* This
,
3128 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3129 PRPC_MESSAGE pRpcMessage
,
3130 DWORD
* pdwStubPhase
);
3131 HRESULT CALLBACK
IMediaSeeking_GetStopPosition_Proxy(
3132 IMediaSeeking
* This
,
3134 void __RPC_STUB
IMediaSeeking_GetStopPosition_Stub(
3135 struct IRpcStubBuffer
* This
,
3136 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3137 PRPC_MESSAGE pRpcMessage
,
3138 DWORD
* pdwStubPhase
);
3139 HRESULT CALLBACK
IMediaSeeking_GetCurrentPosition_Proxy(
3140 IMediaSeeking
* This
,
3141 LONGLONG
* pCurrent
);
3142 void __RPC_STUB
IMediaSeeking_GetCurrentPosition_Stub(
3143 struct IRpcStubBuffer
* This
,
3144 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3145 PRPC_MESSAGE pRpcMessage
,
3146 DWORD
* pdwStubPhase
);
3147 HRESULT CALLBACK
IMediaSeeking_ConvertTimeFormat_Proxy(
3148 IMediaSeeking
* This
,
3150 const GUID
* pTargetFormat
,
3152 const GUID
* pSourceFormat
);
3153 void __RPC_STUB
IMediaSeeking_ConvertTimeFormat_Stub(
3154 struct IRpcStubBuffer
* This
,
3155 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3156 PRPC_MESSAGE pRpcMessage
,
3157 DWORD
* pdwStubPhase
);
3158 HRESULT CALLBACK
IMediaSeeking_SetPositions_Proxy(
3159 IMediaSeeking
* This
,
3161 DWORD dwCurrentFlags
,
3164 void __RPC_STUB
IMediaSeeking_SetPositions_Stub(
3165 struct IRpcStubBuffer
* This
,
3166 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3167 PRPC_MESSAGE pRpcMessage
,
3168 DWORD
* pdwStubPhase
);
3169 HRESULT CALLBACK
IMediaSeeking_GetPositions_Proxy(
3170 IMediaSeeking
* This
,
3173 void __RPC_STUB
IMediaSeeking_GetPositions_Stub(
3174 struct IRpcStubBuffer
* This
,
3175 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3176 PRPC_MESSAGE pRpcMessage
,
3177 DWORD
* pdwStubPhase
);
3178 HRESULT CALLBACK
IMediaSeeking_GetAvailable_Proxy(
3179 IMediaSeeking
* This
,
3180 LONGLONG
* pEarliest
,
3182 void __RPC_STUB
IMediaSeeking_GetAvailable_Stub(
3183 struct IRpcStubBuffer
* This
,
3184 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3185 PRPC_MESSAGE pRpcMessage
,
3186 DWORD
* pdwStubPhase
);
3187 HRESULT CALLBACK
IMediaSeeking_SetRate_Proxy(
3188 IMediaSeeking
* This
,
3190 void __RPC_STUB
IMediaSeeking_SetRate_Stub(
3191 struct IRpcStubBuffer
* This
,
3192 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3193 PRPC_MESSAGE pRpcMessage
,
3194 DWORD
* pdwStubPhase
);
3195 HRESULT CALLBACK
IMediaSeeking_GetRate_Proxy(
3196 IMediaSeeking
* This
,
3198 void __RPC_STUB
IMediaSeeking_GetRate_Stub(
3199 struct IRpcStubBuffer
* This
,
3200 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3201 PRPC_MESSAGE pRpcMessage
,
3202 DWORD
* pdwStubPhase
);
3203 HRESULT CALLBACK
IMediaSeeking_GetPreroll_Proxy(
3204 IMediaSeeking
* This
,
3205 LONGLONG
* pllPreroll
);
3206 void __RPC_STUB
IMediaSeeking_GetPreroll_Stub(
3207 struct IRpcStubBuffer
* This
,
3208 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3209 PRPC_MESSAGE pRpcMessage
,
3210 DWORD
* pdwStubPhase
);
3212 #endif /* __IMediaSeeking_INTERFACE_DEFINED__ */
3214 typedef IMediaSeeking
*PMEDIASEEKING
;
3216 enum tagAM_MEDIAEVENT_FLAGS
{
3217 AM_MEDIAEVENT_NONOTIFY
= 0x1
3220 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
3221 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
3222 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder
;
3225 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
3226 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
3227 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder
;
3230 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
3231 #define __IAMAudioInputMixer_FWD_DEFINED__
3232 typedef struct IAMAudioInputMixer IAMAudioInputMixer
;
3235 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
3236 #define __IAMAudioRendererStats_FWD_DEFINED__
3237 typedef struct IAMAudioRendererStats IAMAudioRendererStats
;
3240 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
3241 #define __IAMBufferNegotiation_FWD_DEFINED__
3242 typedef struct IAMBufferNegotiation IAMBufferNegotiation
;
3245 #ifndef __IAMCameraControl_FWD_DEFINED__
3246 #define __IAMCameraControl_FWD_DEFINED__
3247 typedef struct IAMCameraControl IAMCameraControl
;
3250 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
3251 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
3252 typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress
;
3255 #ifndef __IAMCrossbar_FWD_DEFINED__
3256 #define __IAMCrossbar_FWD_DEFINED__
3257 typedef struct IAMCrossbar IAMCrossbar
;
3260 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
3261 #define __IAMDevMemoryAllocator_FWD_DEFINED__
3262 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator
;
3265 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
3266 #define __IAMDevMemoryControl_FWD_DEFINED__
3267 typedef struct IAMDevMemoryControl IAMDevMemoryControl
;
3270 #ifndef __IAMDroppedFrames_FWD_DEFINED__
3271 #define __IAMDroppedFrames_FWD_DEFINED__
3272 typedef struct IAMDroppedFrames IAMDroppedFrames
;
3275 #ifndef __IAMExtDevice_FWD_DEFINED__
3276 #define __IAMExtDevice_FWD_DEFINED__
3277 typedef struct IAMExtDevice IAMExtDevice
;
3280 #ifndef __IAMExtTransport_FWD_DEFINED__
3281 #define __IAMExtTransport_FWD_DEFINED__
3282 typedef struct IAMExtTransport IAMExtTransport
;
3285 #ifndef __IAMGraphStreams_FWD_DEFINED__
3286 #define __IAMGraphStreams_FWD_DEFINED__
3287 typedef struct IAMGraphStreams IAMGraphStreams
;
3290 #ifndef __IAMLatency_FWD_DEFINED__
3291 #define __IAMLatency_FWD_DEFINED__
3292 typedef struct IAMLatency IAMLatency
;
3295 #ifndef __IAMOpenProgress_FWD_DEFINED__
3296 #define __IAMOpenProgress_FWD_DEFINED__
3297 typedef struct IAMOpenProgress IAMOpenProgress
;
3300 #ifndef __IAMOverlayFX_FWD_DEFINED__
3301 #define __IAMOverlayFX_FWD_DEFINED__
3302 typedef struct IAMOverlayFX IAMOverlayFX
;
3305 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
3306 #define __IAMPhysicalPinInfo_FWD_DEFINED__
3307 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo
;
3310 #ifndef __IAMPushSource_FWD_DEFINED__
3311 #define __IAMPushSource_FWD_DEFINED__
3312 typedef struct IAMPushSource IAMPushSource
;
3315 #ifndef __IAMStreamConfig_FWD_DEFINED__
3316 #define __IAMStreamConfig_FWD_DEFINED__
3317 typedef struct IAMStreamConfig IAMStreamConfig
;
3320 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
3321 #define __IAMTimecodeDisplay_FWD_DEFINED__
3322 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay
;
3325 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
3326 #define __IAMTimecodeGenerator_FWD_DEFINED__
3327 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator
;
3330 #ifndef __IAMTimecodeReader_FWD_DEFINED__
3331 #define __IAMTimecodeReader_FWD_DEFINED__
3332 typedef struct IAMTimecodeReader IAMTimecodeReader
;
3335 #ifndef __IAMTVTuner_FWD_DEFINED__
3336 #define __IAMTVTuner_FWD_DEFINED__
3337 typedef struct IAMTVTuner IAMTVTuner
;
3340 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
3341 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
3342 typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs
;
3345 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
3346 #define __IAMVfwCompressDialogs_FWD_DEFINED__
3347 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs
;
3350 #ifndef __IAMVideoCompression_FWD_DEFINED__
3351 #define __IAMVideoCompression_FWD_DEFINED__
3352 typedef struct IAMVideoCompression IAMVideoCompression
;
3355 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
3356 #define __IAMVideoDecimationProperties_FWD_DEFINED__
3357 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties
;
3360 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
3361 #define __IAMVideoProcAmp_FWD_DEFINED__
3362 typedef struct IAMVideoProcAmp IAMVideoProcAmp
;
3365 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
3366 #define __ICaptureGraphBuilder_FWD_DEFINED__
3367 typedef struct ICaptureGraphBuilder ICaptureGraphBuilder
;
3370 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
3371 #define __ICaptureGraphBuilder2_FWD_DEFINED__
3372 typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2
;
3375 #ifndef __IConfigAviMux_FWD_DEFINED__
3376 #define __IConfigAviMux_FWD_DEFINED__
3377 typedef struct IConfigAviMux IConfigAviMux
;
3380 #ifndef __IConfigInterleaving_FWD_DEFINED__
3381 #define __IConfigInterleaving_FWD_DEFINED__
3382 typedef struct IConfigInterleaving IConfigInterleaving
;
3385 #ifndef __IDecimateVideoImage_FWD_DEFINED__
3386 #define __IDecimateVideoImage_FWD_DEFINED__
3387 typedef struct IDecimateVideoImage IDecimateVideoImage
;
3390 #ifndef __IDrawVideoImage_FWD_DEFINED__
3391 #define __IDrawVideoImage_FWD_DEFINED__
3392 typedef struct IDrawVideoImage IDrawVideoImage
;
3395 #ifndef __IEnumRegFilters_FWD_DEFINED__
3396 #define __IEnumRegFilters_FWD_DEFINED__
3397 typedef struct IEnumRegFilters IEnumRegFilters
;
3400 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
3401 #define __IEnumStreamIdMap_FWD_DEFINED__
3402 typedef struct IEnumStreamIdMap IEnumStreamIdMap
;
3405 #ifndef __IFileSourceFilter_FWD_DEFINED__
3406 #define __IFileSourceFilter_FWD_DEFINED__
3407 typedef struct IFileSourceFilter IFileSourceFilter
;
3410 #ifndef __IFileSinkFilter_FWD_DEFINED__
3411 #define __IFileSinkFilter_FWD_DEFINED__
3412 typedef struct IFileSinkFilter IFileSinkFilter
;
3415 #ifndef __IFileSinkFilter2_FWD_DEFINED__
3416 #define __IFileSinkFilter2_FWD_DEFINED__
3417 typedef struct IFileSinkFilter2 IFileSinkFilter2
;
3420 #ifndef __IFilterMapper_FWD_DEFINED__
3421 #define __IFilterMapper_FWD_DEFINED__
3422 typedef struct IFilterMapper IFilterMapper
;
3425 #ifndef __IFilterMapper2_FWD_DEFINED__
3426 #define __IFilterMapper2_FWD_DEFINED__
3427 typedef struct IFilterMapper2 IFilterMapper2
;
3430 #ifndef __IGraphBuilder_FWD_DEFINED__
3431 #define __IGraphBuilder_FWD_DEFINED__
3432 typedef struct IGraphBuilder IGraphBuilder
;
3435 #ifndef __IKsPropertySet_FWD_DEFINED__
3436 #define __IKsPropertySet_FWD_DEFINED__
3437 typedef struct IKsPropertySet IKsPropertySet
;
3440 #ifndef __IMediaEventSink_FWD_DEFINED__
3441 #define __IMediaEventSink_FWD_DEFINED__
3442 typedef struct IMediaEventSink IMediaEventSink
;
3445 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
3446 #define __IMpeg2Demultiplexer_FWD_DEFINED__
3447 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer
;
3450 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
3451 #define __IMPEG2StreamIdMap_FWD_DEFINED__
3452 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap
;
3455 #ifndef __IOverlay_FWD_DEFINED__
3456 #define __IOverlay_FWD_DEFINED__
3457 typedef struct IOverlay IOverlay
;
3460 #ifndef __IOverlayNotify_FWD_DEFINED__
3461 #define __IOverlayNotify_FWD_DEFINED__
3462 typedef struct IOverlayNotify IOverlayNotify
;
3465 #ifndef __IOverlayNotify2_FWD_DEFINED__
3466 #define __IOverlayNotify2_FWD_DEFINED__
3467 typedef struct IOverlayNotify2 IOverlayNotify2
;
3470 #ifndef __IQualityControl_FWD_DEFINED__
3471 #define __IQualityControl_FWD_DEFINED__
3472 typedef struct IQualityControl IQualityControl
;
3475 #ifndef __ISeekingPassThru_FWD_DEFINED__
3476 #define __ISeekingPassThru_FWD_DEFINED__
3477 typedef struct ISeekingPassThru ISeekingPassThru
;
3485 /*****************************************************************************
3486 * IEnumRegFilters interface
3488 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
3489 #define __IEnumRegFilters_INTERFACE_DEFINED__
3491 DEFINE_GUID(IID_IEnumRegFilters
, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3492 #if defined(__cplusplus) && !defined(CINTERFACE)
3493 struct IEnumRegFilters
: public IUnknown
3495 virtual HRESULT STDMETHODCALLTYPE
Next(
3497 REGFILTER
** apRegFilter
,
3498 ULONG
* pcFetched
) = 0;
3500 virtual HRESULT STDMETHODCALLTYPE
Skip(
3501 ULONG cFilters
) = 0;
3503 virtual HRESULT STDMETHODCALLTYPE
Reset(
3506 virtual HRESULT STDMETHODCALLTYPE
Clone(
3507 IEnumRegFilters
** ppEnum
) = 0;
3511 typedef struct IEnumRegFiltersVtbl IEnumRegFiltersVtbl
;
3512 struct IEnumRegFilters
{
3513 const IEnumRegFiltersVtbl
* lpVtbl
;
3515 struct IEnumRegFiltersVtbl
{
3518 /*** IUnknown methods ***/
3519 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3520 IEnumRegFilters
* This
,
3524 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3525 IEnumRegFilters
* This
);
3527 ULONG (STDMETHODCALLTYPE
*Release
)(
3528 IEnumRegFilters
* This
);
3530 /*** IEnumRegFilters methods ***/
3531 HRESULT (STDMETHODCALLTYPE
*Next
)(
3532 IEnumRegFilters
* This
,
3534 REGFILTER
** apRegFilter
,
3537 HRESULT (STDMETHODCALLTYPE
*Skip
)(
3538 IEnumRegFilters
* This
,
3541 HRESULT (STDMETHODCALLTYPE
*Reset
)(
3542 IEnumRegFilters
* This
);
3544 HRESULT (STDMETHODCALLTYPE
*Clone
)(
3545 IEnumRegFilters
* This
,
3546 IEnumRegFilters
** ppEnum
);
3552 /*** IUnknown methods ***/
3553 #define IEnumRegFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3554 #define IEnumRegFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
3555 #define IEnumRegFilters_Release(p) (p)->lpVtbl->Release(p)
3556 /*** IEnumRegFilters methods ***/
3557 #define IEnumRegFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3558 #define IEnumRegFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3559 #define IEnumRegFilters_Reset(p) (p)->lpVtbl->Reset(p)
3560 #define IEnumRegFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3565 #define IEnumRegFilters_METHODS \
3566 /*** IUnknown methods ***/ \
3567 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3568 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3569 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3570 /*** IEnumRegFilters methods ***/ \
3571 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched) PURE; \
3572 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
3573 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3574 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumRegFilters** ppEnum) PURE;
3576 HRESULT CALLBACK
IEnumRegFilters_Next_Proxy(
3577 IEnumRegFilters
* This
,
3579 REGFILTER
** apRegFilter
,
3581 void __RPC_STUB
IEnumRegFilters_Next_Stub(
3582 struct IRpcStubBuffer
* This
,
3583 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3584 PRPC_MESSAGE pRpcMessage
,
3585 DWORD
* pdwStubPhase
);
3586 HRESULT CALLBACK
IEnumRegFilters_Skip_Proxy(
3587 IEnumRegFilters
* This
,
3589 void __RPC_STUB
IEnumRegFilters_Skip_Stub(
3590 struct IRpcStubBuffer
* This
,
3591 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3592 PRPC_MESSAGE pRpcMessage
,
3593 DWORD
* pdwStubPhase
);
3594 HRESULT CALLBACK
IEnumRegFilters_Reset_Proxy(
3595 IEnumRegFilters
* This
);
3596 void __RPC_STUB
IEnumRegFilters_Reset_Stub(
3597 struct IRpcStubBuffer
* This
,
3598 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3599 PRPC_MESSAGE pRpcMessage
,
3600 DWORD
* pdwStubPhase
);
3601 HRESULT CALLBACK
IEnumRegFilters_Clone_Proxy(
3602 IEnumRegFilters
* This
,
3603 IEnumRegFilters
** ppEnum
);
3604 void __RPC_STUB
IEnumRegFilters_Clone_Stub(
3605 struct IRpcStubBuffer
* This
,
3606 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3607 PRPC_MESSAGE pRpcMessage
,
3608 DWORD
* pdwStubPhase
);
3610 #endif /* __IEnumRegFilters_INTERFACE_DEFINED__ */
3612 typedef IEnumRegFilters
*PENUMREGFILTERS
;
3615 MERIT_PREFERRED
= 0x800000,
3616 MERIT_NORMAL
= 0x600000,
3617 MERIT_UNLIKELY
= 0x400000,
3618 MERIT_DO_NOT_USE
= 0x200000,
3619 MERIT_SW_COMPRESSOR
= 0x100000,
3620 MERIT_HW_COMPRESSOR
= 0x100050
3623 /*****************************************************************************
3624 * IFilterMapper interface
3626 #ifndef __IFilterMapper_INTERFACE_DEFINED__
3627 #define __IFilterMapper_INTERFACE_DEFINED__
3629 DEFINE_GUID(IID_IFilterMapper
, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3630 #if defined(__cplusplus) && !defined(CINTERFACE)
3631 struct IFilterMapper
: public IUnknown
3633 virtual HRESULT STDMETHODCALLTYPE
RegisterFilter(
3638 virtual HRESULT STDMETHODCALLTYPE
RegisterFilterInstance(
3643 virtual HRESULT STDMETHODCALLTYPE
RegisterPin(
3650 CLSID ConnectsToFilter
,
3651 LPCWSTR ConnectsToPin
) = 0;
3653 virtual HRESULT STDMETHODCALLTYPE
RegisterPinType(
3657 CLSID clsSubType
) = 0;
3659 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilter(
3662 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilterInstance(
3665 virtual HRESULT STDMETHODCALLTYPE
UnregisterPin(
3669 virtual HRESULT STDMETHODCALLTYPE
EnumMatchingFilters(
3670 IEnumRegFilters
** ppEnum
,
3678 CLSID clsOutSub
) = 0;
3682 typedef struct IFilterMapperVtbl IFilterMapperVtbl
;
3683 struct IFilterMapper
{
3684 const IFilterMapperVtbl
* lpVtbl
;
3686 struct IFilterMapperVtbl
{
3689 /*** IUnknown methods ***/
3690 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3691 IFilterMapper
* This
,
3695 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3696 IFilterMapper
* This
);
3698 ULONG (STDMETHODCALLTYPE
*Release
)(
3699 IFilterMapper
* This
);
3701 /*** IFilterMapper methods ***/
3702 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
3703 IFilterMapper
* This
,
3708 HRESULT (STDMETHODCALLTYPE
*RegisterFilterInstance
)(
3709 IFilterMapper
* This
,
3714 HRESULT (STDMETHODCALLTYPE
*RegisterPin
)(
3715 IFilterMapper
* This
,
3722 CLSID ConnectsToFilter
,
3723 LPCWSTR ConnectsToPin
);
3725 HRESULT (STDMETHODCALLTYPE
*RegisterPinType
)(
3726 IFilterMapper
* This
,
3732 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
3733 IFilterMapper
* This
,
3736 HRESULT (STDMETHODCALLTYPE
*UnregisterFilterInstance
)(
3737 IFilterMapper
* This
,
3740 HRESULT (STDMETHODCALLTYPE
*UnregisterPin
)(
3741 IFilterMapper
* This
,
3745 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
3746 IFilterMapper
* This
,
3747 IEnumRegFilters
** ppEnum
,
3761 /*** IUnknown methods ***/
3762 #define IFilterMapper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3763 #define IFilterMapper_AddRef(p) (p)->lpVtbl->AddRef(p)
3764 #define IFilterMapper_Release(p) (p)->lpVtbl->Release(p)
3765 /*** IFilterMapper methods ***/
3766 #define IFilterMapper_RegisterFilter(p,a,b,c) (p)->lpVtbl->RegisterFilter(p,a,b,c)
3767 #define IFilterMapper_RegisterFilterInstance(p,a,b,c) (p)->lpVtbl->RegisterFilterInstance(p,a,b,c)
3768 #define IFilterMapper_RegisterPin(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->RegisterPin(p,a,b,c,d,e,f,g,h)
3769 #define IFilterMapper_RegisterPinType(p,a,b,c,d) (p)->lpVtbl->RegisterPinType(p,a,b,c,d)
3770 #define IFilterMapper_UnregisterFilter(p,a) (p)->lpVtbl->UnregisterFilter(p,a)
3771 #define IFilterMapper_UnregisterFilterInstance(p,a) (p)->lpVtbl->UnregisterFilterInstance(p,a)
3772 #define IFilterMapper_UnregisterPin(p,a,b) (p)->lpVtbl->UnregisterPin(p,a,b)
3773 #define IFilterMapper_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i)
3778 #define IFilterMapper_METHODS \
3779 /*** IUnknown methods ***/ \
3780 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3781 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3782 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3783 /*** IFilterMapper methods ***/ \
3784 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ CLSID clsid, LPCWSTR Name, DWORD dwMerit) PURE; \
3785 STDMETHOD_(HRESULT,RegisterFilterInstance)(THIS_ CLSID clsid, LPCWSTR Name, CLSID* MRId) PURE; \
3786 STDMETHOD_(HRESULT,RegisterPin)(THIS_ CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin) PURE; \
3787 STDMETHOD_(HRESULT,RegisterPinType)(THIS_ CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType) PURE; \
3788 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ CLSID Filter) PURE; \
3789 STDMETHOD_(HRESULT,UnregisterFilterInstance)(THIS_ CLSID MRId) PURE; \
3790 STDMETHOD_(HRESULT,UnregisterPin)(THIS_ CLSID Filter, LPCWSTR Name) PURE; \
3791 STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub) PURE;
3793 HRESULT CALLBACK
IFilterMapper_RegisterFilter_Proxy(
3794 IFilterMapper
* This
,
3798 void __RPC_STUB
IFilterMapper_RegisterFilter_Stub(
3799 struct IRpcStubBuffer
* This
,
3800 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3801 PRPC_MESSAGE pRpcMessage
,
3802 DWORD
* pdwStubPhase
);
3803 HRESULT CALLBACK
IFilterMapper_RegisterFilterInstance_Proxy(
3804 IFilterMapper
* This
,
3808 void __RPC_STUB
IFilterMapper_RegisterFilterInstance_Stub(
3809 struct IRpcStubBuffer
* This
,
3810 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3811 PRPC_MESSAGE pRpcMessage
,
3812 DWORD
* pdwStubPhase
);
3813 HRESULT CALLBACK
IFilterMapper_RegisterPin_Proxy(
3814 IFilterMapper
* This
,
3821 CLSID ConnectsToFilter
,
3822 LPCWSTR ConnectsToPin
);
3823 void __RPC_STUB
IFilterMapper_RegisterPin_Stub(
3824 struct IRpcStubBuffer
* This
,
3825 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3826 PRPC_MESSAGE pRpcMessage
,
3827 DWORD
* pdwStubPhase
);
3828 HRESULT CALLBACK
IFilterMapper_RegisterPinType_Proxy(
3829 IFilterMapper
* This
,
3834 void __RPC_STUB
IFilterMapper_RegisterPinType_Stub(
3835 struct IRpcStubBuffer
* This
,
3836 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3837 PRPC_MESSAGE pRpcMessage
,
3838 DWORD
* pdwStubPhase
);
3839 HRESULT CALLBACK
IFilterMapper_UnregisterFilter_Proxy(
3840 IFilterMapper
* This
,
3842 void __RPC_STUB
IFilterMapper_UnregisterFilter_Stub(
3843 struct IRpcStubBuffer
* This
,
3844 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3845 PRPC_MESSAGE pRpcMessage
,
3846 DWORD
* pdwStubPhase
);
3847 HRESULT CALLBACK
IFilterMapper_UnregisterFilterInstance_Proxy(
3848 IFilterMapper
* This
,
3850 void __RPC_STUB
IFilterMapper_UnregisterFilterInstance_Stub(
3851 struct IRpcStubBuffer
* This
,
3852 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3853 PRPC_MESSAGE pRpcMessage
,
3854 DWORD
* pdwStubPhase
);
3855 HRESULT CALLBACK
IFilterMapper_UnregisterPin_Proxy(
3856 IFilterMapper
* This
,
3859 void __RPC_STUB
IFilterMapper_UnregisterPin_Stub(
3860 struct IRpcStubBuffer
* This
,
3861 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3862 PRPC_MESSAGE pRpcMessage
,
3863 DWORD
* pdwStubPhase
);
3864 HRESULT CALLBACK
IFilterMapper_EnumMatchingFilters_Proxy(
3865 IFilterMapper
* This
,
3866 IEnumRegFilters
** ppEnum
,
3875 void __RPC_STUB
IFilterMapper_EnumMatchingFilters_Stub(
3876 struct IRpcStubBuffer
* This
,
3877 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3878 PRPC_MESSAGE pRpcMessage
,
3879 DWORD
* pdwStubPhase
);
3881 #endif /* __IFilterMapper_INTERFACE_DEFINED__ */
3884 const CLSID
*clsMajorType
;
3885 const CLSID
*clsMinorType
;
3894 const CLSID
*clsConnectsToFilter
;
3895 const WCHAR
*strConnectsToPin
;
3897 const REGPINTYPES
*lpMediaType
;
3907 REG_PINFLAG_B_ZERO
= 0x1,
3908 REG_PINFLAG_B_RENDERER
= 0x2,
3909 REG_PINFLAG_B_MANY
= 0x4,
3910 REG_PINFLAG_B_OUTPUT
= 0x8
3917 const REGPINTYPES
*lpMediaType
;
3919 const REGPINMEDIUM
*lpMedium
;
3920 const CLSID
*clsPinCategory
;
3929 const REGFILTERPINS
*rgPins
;
3933 const REGFILTERPINS2
*rgPins2
;
3938 /*****************************************************************************
3939 * IFilterMapper2 interface
3941 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
3942 #define __IFilterMapper2_INTERFACE_DEFINED__
3944 DEFINE_GUID(IID_IFilterMapper2
, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3945 #if defined(__cplusplus) && !defined(CINTERFACE)
3946 struct IFilterMapper2
: public IUnknown
3948 virtual HRESULT STDMETHODCALLTYPE
CreateCategory(
3949 REFCLSID clsidCategory
,
3950 DWORD dwCategoryMerit
,
3951 LPCWSTR Description
) = 0;
3953 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilter(
3954 const CLSID
* pclsidCategory
,
3955 const OLECHAR
* szInstance
,
3956 REFCLSID Filter
) = 0;
3958 virtual HRESULT STDMETHODCALLTYPE
RegisterFilter(
3959 REFCLSID clsidFilter
,
3961 IMoniker
** ppMoniker
,
3962 const CLSID
* pclsidCategory
,
3963 const OLECHAR
* szInstance
,
3964 const REGFILTER2
* prf2
) = 0;
3966 virtual HRESULT STDMETHODCALLTYPE
EnumMatchingFilters(
3967 IEnumMoniker
** ppEnum
,
3973 const GUID
* pInputTypes
,
3974 const REGPINMEDIUM
* pMedIn
,
3975 const CLSID
* pPinCategoryIn
,
3979 const GUID
* pOutputTypes
,
3980 const REGPINMEDIUM
* pMedOut
,
3981 const CLSID
* pPinCategoryOut
) = 0;
3985 typedef struct IFilterMapper2Vtbl IFilterMapper2Vtbl
;
3986 struct IFilterMapper2
{
3987 const IFilterMapper2Vtbl
* lpVtbl
;
3989 struct IFilterMapper2Vtbl
{
3992 /*** IUnknown methods ***/
3993 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3994 IFilterMapper2
* This
,
3998 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3999 IFilterMapper2
* This
);
4001 ULONG (STDMETHODCALLTYPE
*Release
)(
4002 IFilterMapper2
* This
);
4004 /*** IFilterMapper2 methods ***/
4005 HRESULT (STDMETHODCALLTYPE
*CreateCategory
)(
4006 IFilterMapper2
* This
,
4007 REFCLSID clsidCategory
,
4008 DWORD dwCategoryMerit
,
4009 LPCWSTR Description
);
4011 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
4012 IFilterMapper2
* This
,
4013 const CLSID
* pclsidCategory
,
4014 const OLECHAR
* szInstance
,
4017 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
4018 IFilterMapper2
* This
,
4019 REFCLSID clsidFilter
,
4021 IMoniker
** ppMoniker
,
4022 const CLSID
* pclsidCategory
,
4023 const OLECHAR
* szInstance
,
4024 const REGFILTER2
* prf2
);
4026 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
4027 IFilterMapper2
* This
,
4028 IEnumMoniker
** ppEnum
,
4034 const GUID
* pInputTypes
,
4035 const REGPINMEDIUM
* pMedIn
,
4036 const CLSID
* pPinCategoryIn
,
4040 const GUID
* pOutputTypes
,
4041 const REGPINMEDIUM
* pMedOut
,
4042 const CLSID
* pPinCategoryOut
);
4048 /*** IUnknown methods ***/
4049 #define IFilterMapper2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4050 #define IFilterMapper2_AddRef(p) (p)->lpVtbl->AddRef(p)
4051 #define IFilterMapper2_Release(p) (p)->lpVtbl->Release(p)
4052 /*** IFilterMapper2 methods ***/
4053 #define IFilterMapper2_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
4054 #define IFilterMapper2_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
4055 #define IFilterMapper2_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
4056 #define IFilterMapper2_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
4061 #define IFilterMapper2_METHODS \
4062 /*** IUnknown methods ***/ \
4063 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4064 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4065 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4066 /*** IFilterMapper2 methods ***/ \
4067 STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
4068 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
4069 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
4070 STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut) PURE;
4072 HRESULT CALLBACK
IFilterMapper2_CreateCategory_Proxy(
4073 IFilterMapper2
* This
,
4074 REFCLSID clsidCategory
,
4075 DWORD dwCategoryMerit
,
4076 LPCWSTR Description
);
4077 void __RPC_STUB
IFilterMapper2_CreateCategory_Stub(
4078 struct IRpcStubBuffer
* This
,
4079 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4080 PRPC_MESSAGE pRpcMessage
,
4081 DWORD
* pdwStubPhase
);
4082 HRESULT CALLBACK
IFilterMapper2_UnregisterFilter_Proxy(
4083 IFilterMapper2
* This
,
4084 const CLSID
* pclsidCategory
,
4085 const OLECHAR
* szInstance
,
4087 void __RPC_STUB
IFilterMapper2_UnregisterFilter_Stub(
4088 struct IRpcStubBuffer
* This
,
4089 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4090 PRPC_MESSAGE pRpcMessage
,
4091 DWORD
* pdwStubPhase
);
4092 HRESULT CALLBACK
IFilterMapper2_RegisterFilter_Proxy(
4093 IFilterMapper2
* This
,
4094 REFCLSID clsidFilter
,
4096 IMoniker
** ppMoniker
,
4097 const CLSID
* pclsidCategory
,
4098 const OLECHAR
* szInstance
,
4099 const REGFILTER2
* prf2
);
4100 void __RPC_STUB
IFilterMapper2_RegisterFilter_Stub(
4101 struct IRpcStubBuffer
* This
,
4102 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4103 PRPC_MESSAGE pRpcMessage
,
4104 DWORD
* pdwStubPhase
);
4105 HRESULT CALLBACK
IFilterMapper2_EnumMatchingFilters_Proxy(
4106 IFilterMapper2
* This
,
4107 IEnumMoniker
** ppEnum
,
4113 const GUID
* pInputTypes
,
4114 const REGPINMEDIUM
* pMedIn
,
4115 const CLSID
* pPinCategoryIn
,
4119 const GUID
* pOutputTypes
,
4120 const REGPINMEDIUM
* pMedOut
,
4121 const CLSID
* pPinCategoryOut
);
4122 void __RPC_STUB
IFilterMapper2_EnumMatchingFilters_Stub(
4123 struct IRpcStubBuffer
* This
,
4124 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4125 PRPC_MESSAGE pRpcMessage
,
4126 DWORD
* pdwStubPhase
);
4128 #endif /* __IFilterMapper2_INTERFACE_DEFINED__ */
4130 #ifndef __IFilterMapper3_FWD_DEFINED__
4131 #define __IFilterMapper3_FWD_DEFINED__
4132 typedef struct IFilterMapper3 IFilterMapper3
;
4135 /*****************************************************************************
4136 * IFilterMapper3 interface
4138 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
4139 #define __IFilterMapper3_INTERFACE_DEFINED__
4141 DEFINE_GUID(IID_IFilterMapper3
, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
4142 #if defined(__cplusplus) && !defined(CINTERFACE)
4143 struct IFilterMapper3
: public IFilterMapper2
4145 virtual HRESULT STDMETHODCALLTYPE
GetICreateDevEnum(
4146 ICreateDevEnum
** ppEnum
) = 0;
4150 typedef struct IFilterMapper3Vtbl IFilterMapper3Vtbl
;
4151 struct IFilterMapper3
{
4152 const IFilterMapper3Vtbl
* lpVtbl
;
4154 struct IFilterMapper3Vtbl
{
4157 /*** IUnknown methods ***/
4158 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4159 IFilterMapper3
* This
,
4163 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4164 IFilterMapper3
* This
);
4166 ULONG (STDMETHODCALLTYPE
*Release
)(
4167 IFilterMapper3
* This
);
4169 /*** IFilterMapper2 methods ***/
4170 HRESULT (STDMETHODCALLTYPE
*CreateCategory
)(
4171 IFilterMapper3
* This
,
4172 REFCLSID clsidCategory
,
4173 DWORD dwCategoryMerit
,
4174 LPCWSTR Description
);
4176 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
4177 IFilterMapper3
* This
,
4178 const CLSID
* pclsidCategory
,
4179 const OLECHAR
* szInstance
,
4182 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
4183 IFilterMapper3
* This
,
4184 REFCLSID clsidFilter
,
4186 IMoniker
** ppMoniker
,
4187 const CLSID
* pclsidCategory
,
4188 const OLECHAR
* szInstance
,
4189 const REGFILTER2
* prf2
);
4191 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
4192 IFilterMapper3
* This
,
4193 IEnumMoniker
** ppEnum
,
4199 const GUID
* pInputTypes
,
4200 const REGPINMEDIUM
* pMedIn
,
4201 const CLSID
* pPinCategoryIn
,
4205 const GUID
* pOutputTypes
,
4206 const REGPINMEDIUM
* pMedOut
,
4207 const CLSID
* pPinCategoryOut
);
4209 /*** IFilterMapper3 methods ***/
4210 HRESULT (STDMETHODCALLTYPE
*GetICreateDevEnum
)(
4211 IFilterMapper3
* This
,
4212 ICreateDevEnum
** ppEnum
);
4218 /*** IUnknown methods ***/
4219 #define IFilterMapper3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4220 #define IFilterMapper3_AddRef(p) (p)->lpVtbl->AddRef(p)
4221 #define IFilterMapper3_Release(p) (p)->lpVtbl->Release(p)
4222 /*** IFilterMapper2 methods ***/
4223 #define IFilterMapper3_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
4224 #define IFilterMapper3_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
4225 #define IFilterMapper3_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
4226 #define IFilterMapper3_EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->EnumMatchingFilters(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
4227 /*** IFilterMapper3 methods ***/
4228 #define IFilterMapper3_GetICreateDevEnum(p,a) (p)->lpVtbl->GetICreateDevEnum(p,a)
4233 #define IFilterMapper3_METHODS \
4234 /*** IUnknown methods ***/ \
4235 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4236 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4237 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4238 /*** IFilterMapper2 methods ***/ \
4239 STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
4240 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
4241 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
4242 STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumMoniker** ppEnum, DWORD dwFlags, BOOL bExactMatch, DWORD dwMerit, BOOL bInputNeeded, DWORD cInputTypes, const GUID* pInputTypes, const REGPINMEDIUM* pMedIn, const CLSID* pPinCategoryIn, BOOL bRender, BOOL bOutputNeeded, DWORD cOutputTypes, const GUID* pOutputTypes, const REGPINMEDIUM* pMedOut, const CLSID* pPinCategoryOut) PURE; \
4243 /*** IFilterMapper3 methods ***/ \
4244 STDMETHOD_(HRESULT,GetICreateDevEnum)(THIS_ ICreateDevEnum** ppEnum) PURE;
4246 HRESULT CALLBACK
IFilterMapper3_GetICreateDevEnum_Proxy(
4247 IFilterMapper3
* This
,
4248 ICreateDevEnum
** ppEnum
);
4249 void __RPC_STUB
IFilterMapper3_GetICreateDevEnum_Stub(
4250 struct IRpcStubBuffer
* This
,
4251 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4252 PRPC_MESSAGE pRpcMessage
,
4253 DWORD
* pdwStubPhase
);
4255 #endif /* __IFilterMapper3_INTERFACE_DEFINED__ */
4257 typedef enum tagQualityMessageType
{
4260 } QualityMessageType
;
4262 typedef struct tagQuality
{
4263 QualityMessageType Type
;
4265 REFERENCE_TIME Late
;
4266 REFERENCE_TIME TimeStamp
;
4269 typedef IQualityControl
*PQUALITYCONTROL
;
4271 /*****************************************************************************
4272 * IQualityControl interface
4274 #ifndef __IQualityControl_INTERFACE_DEFINED__
4275 #define __IQualityControl_INTERFACE_DEFINED__
4277 DEFINE_GUID(IID_IQualityControl
, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4278 #if defined(__cplusplus) && !defined(CINTERFACE)
4279 struct IQualityControl
: public IUnknown
4281 virtual HRESULT STDMETHODCALLTYPE
Notify(
4285 virtual HRESULT STDMETHODCALLTYPE
SetSink(
4286 IQualityControl
* piqc
) = 0;
4290 typedef struct IQualityControlVtbl IQualityControlVtbl
;
4291 struct IQualityControl
{
4292 const IQualityControlVtbl
* lpVtbl
;
4294 struct IQualityControlVtbl
{
4297 /*** IUnknown methods ***/
4298 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4299 IQualityControl
* This
,
4303 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4304 IQualityControl
* This
);
4306 ULONG (STDMETHODCALLTYPE
*Release
)(
4307 IQualityControl
* This
);
4309 /*** IQualityControl methods ***/
4310 HRESULT (STDMETHODCALLTYPE
*Notify
)(
4311 IQualityControl
* This
,
4315 HRESULT (STDMETHODCALLTYPE
*SetSink
)(
4316 IQualityControl
* This
,
4317 IQualityControl
* piqc
);
4323 /*** IUnknown methods ***/
4324 #define IQualityControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4325 #define IQualityControl_AddRef(p) (p)->lpVtbl->AddRef(p)
4326 #define IQualityControl_Release(p) (p)->lpVtbl->Release(p)
4327 /*** IQualityControl methods ***/
4328 #define IQualityControl_Notify(p,a,b) (p)->lpVtbl->Notify(p,a,b)
4329 #define IQualityControl_SetSink(p,a) (p)->lpVtbl->SetSink(p,a)
4334 #define IQualityControl_METHODS \
4335 /*** IUnknown methods ***/ \
4336 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4337 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4338 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4339 /*** IQualityControl methods ***/ \
4340 STDMETHOD_(HRESULT,Notify)(THIS_ IBaseFilter* pSelf, Quality q) PURE; \
4341 STDMETHOD_(HRESULT,SetSink)(THIS_ IQualityControl* piqc) PURE;
4343 HRESULT CALLBACK
IQualityControl_Notify_Proxy(
4344 IQualityControl
* This
,
4347 void __RPC_STUB
IQualityControl_Notify_Stub(
4348 struct IRpcStubBuffer
* This
,
4349 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4350 PRPC_MESSAGE pRpcMessage
,
4351 DWORD
* pdwStubPhase
);
4352 HRESULT CALLBACK
IQualityControl_SetSink_Proxy(
4353 IQualityControl
* This
,
4354 IQualityControl
* piqc
);
4355 void __RPC_STUB
IQualityControl_SetSink_Stub(
4356 struct IRpcStubBuffer
* This
,
4357 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4358 PRPC_MESSAGE pRpcMessage
,
4359 DWORD
* pdwStubPhase
);
4361 #endif /* __IQualityControl_INTERFACE_DEFINED__ */
4364 CK_NOCOLORKEY
= 0x0,
4369 typedef struct tagCOLORKEY
{
4372 COLORREF LowColorValue
;
4373 COLORREF HighColorValue
;
4378 ADVISE_CLIPPING
= 0x1,
4379 ADVISE_PALETTE
= 0x2,
4380 ADVISE_COLORKEY
= 0x4,
4381 ADVISE_POSITION
= 0x8,
4382 ADVISE_DISPLAY_CHANGE
= 0x10
4385 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
4387 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
4390 typedef struct _RGNDATAHEADER
{
4398 typedef struct _RGNDATA
{
4403 #endif /* _WINGDI_ */
4404 /*****************************************************************************
4405 * IOverlayNotify interface
4407 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
4408 #define __IOverlayNotify_INTERFACE_DEFINED__
4410 DEFINE_GUID(IID_IOverlayNotify
, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4411 #if defined(__cplusplus) && !defined(CINTERFACE)
4412 struct IOverlayNotify
: public IUnknown
4414 virtual HRESULT STDMETHODCALLTYPE
OnPaletteChange(
4416 const PALETTEENTRY
* pPalette
) = 0;
4418 virtual HRESULT STDMETHODCALLTYPE
OnClipChange(
4419 const RECT
* pSourceRect
,
4420 const RECT
* pDestinationRect
,
4421 const RGNDATA
* pRgnData
) = 0;
4423 virtual HRESULT STDMETHODCALLTYPE
OnColorKeyChange(
4424 const COLORKEY
* pColorKey
) = 0;
4426 virtual HRESULT STDMETHODCALLTYPE
OnPositionChange(
4427 const RECT
* pSourceRect
,
4428 const RECT
* pDestinationRect
) = 0;
4432 typedef struct IOverlayNotifyVtbl IOverlayNotifyVtbl
;
4433 struct IOverlayNotify
{
4434 const IOverlayNotifyVtbl
* lpVtbl
;
4436 struct IOverlayNotifyVtbl
{
4439 /*** IUnknown methods ***/
4440 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4441 IOverlayNotify
* This
,
4445 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4446 IOverlayNotify
* This
);
4448 ULONG (STDMETHODCALLTYPE
*Release
)(
4449 IOverlayNotify
* This
);
4451 /*** IOverlayNotify methods ***/
4452 HRESULT (STDMETHODCALLTYPE
*OnPaletteChange
)(
4453 IOverlayNotify
* This
,
4455 const PALETTEENTRY
* pPalette
);
4457 HRESULT (STDMETHODCALLTYPE
*OnClipChange
)(
4458 IOverlayNotify
* This
,
4459 const RECT
* pSourceRect
,
4460 const RECT
* pDestinationRect
,
4461 const RGNDATA
* pRgnData
);
4463 HRESULT (STDMETHODCALLTYPE
*OnColorKeyChange
)(
4464 IOverlayNotify
* This
,
4465 const COLORKEY
* pColorKey
);
4467 HRESULT (STDMETHODCALLTYPE
*OnPositionChange
)(
4468 IOverlayNotify
* This
,
4469 const RECT
* pSourceRect
,
4470 const RECT
* pDestinationRect
);
4476 /*** IUnknown methods ***/
4477 #define IOverlayNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4478 #define IOverlayNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
4479 #define IOverlayNotify_Release(p) (p)->lpVtbl->Release(p)
4480 /*** IOverlayNotify methods ***/
4481 #define IOverlayNotify_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
4482 #define IOverlayNotify_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
4483 #define IOverlayNotify_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
4484 #define IOverlayNotify_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
4489 #define IOverlayNotify_METHODS \
4490 /*** IUnknown methods ***/ \
4491 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4492 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4493 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4494 /*** IOverlayNotify methods ***/ \
4495 STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
4496 STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
4497 STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
4498 STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE;
4500 HRESULT CALLBACK
IOverlayNotify_OnPaletteChange_Proxy(
4501 IOverlayNotify
* This
,
4503 const PALETTEENTRY
* pPalette
);
4504 void __RPC_STUB
IOverlayNotify_OnPaletteChange_Stub(
4505 struct IRpcStubBuffer
* This
,
4506 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4507 PRPC_MESSAGE pRpcMessage
,
4508 DWORD
* pdwStubPhase
);
4509 HRESULT CALLBACK
IOverlayNotify_OnClipChange_Proxy(
4510 IOverlayNotify
* This
,
4511 const RECT
* pSourceRect
,
4512 const RECT
* pDestinationRect
,
4513 const RGNDATA
* pRgnData
);
4514 void __RPC_STUB
IOverlayNotify_OnClipChange_Stub(
4515 struct IRpcStubBuffer
* This
,
4516 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4517 PRPC_MESSAGE pRpcMessage
,
4518 DWORD
* pdwStubPhase
);
4519 HRESULT CALLBACK
IOverlayNotify_OnColorKeyChange_Proxy(
4520 IOverlayNotify
* This
,
4521 const COLORKEY
* pColorKey
);
4522 void __RPC_STUB
IOverlayNotify_OnColorKeyChange_Stub(
4523 struct IRpcStubBuffer
* This
,
4524 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4525 PRPC_MESSAGE pRpcMessage
,
4526 DWORD
* pdwStubPhase
);
4527 HRESULT CALLBACK
IOverlayNotify_OnPositionChange_Proxy(
4528 IOverlayNotify
* This
,
4529 const RECT
* pSourceRect
,
4530 const RECT
* pDestinationRect
);
4531 void __RPC_STUB
IOverlayNotify_OnPositionChange_Stub(
4532 struct IRpcStubBuffer
* This
,
4533 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4534 PRPC_MESSAGE pRpcMessage
,
4535 DWORD
* pdwStubPhase
);
4537 #endif /* __IOverlayNotify_INTERFACE_DEFINED__ */
4539 typedef IOverlayNotify
*POVERLAYNOTIFY
;
4542 typedef HANDLE HMONITOR
;
4545 /*****************************************************************************
4546 * IOverlayNotify2 interface
4548 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
4549 #define __IOverlayNotify2_INTERFACE_DEFINED__
4551 DEFINE_GUID(IID_IOverlayNotify2
, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
4552 #if defined(__cplusplus) && !defined(CINTERFACE)
4553 struct IOverlayNotify2
: public IOverlayNotify
4555 virtual HRESULT STDMETHODCALLTYPE
OnDisplayChange(
4556 HMONITOR hMonitor
) = 0;
4560 typedef struct IOverlayNotify2Vtbl IOverlayNotify2Vtbl
;
4561 struct IOverlayNotify2
{
4562 const IOverlayNotify2Vtbl
* lpVtbl
;
4564 struct IOverlayNotify2Vtbl
{
4567 /*** IUnknown methods ***/
4568 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4569 IOverlayNotify2
* This
,
4573 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4574 IOverlayNotify2
* This
);
4576 ULONG (STDMETHODCALLTYPE
*Release
)(
4577 IOverlayNotify2
* This
);
4579 /*** IOverlayNotify methods ***/
4580 HRESULT (STDMETHODCALLTYPE
*OnPaletteChange
)(
4581 IOverlayNotify2
* This
,
4583 const PALETTEENTRY
* pPalette
);
4585 HRESULT (STDMETHODCALLTYPE
*OnClipChange
)(
4586 IOverlayNotify2
* This
,
4587 const RECT
* pSourceRect
,
4588 const RECT
* pDestinationRect
,
4589 const RGNDATA
* pRgnData
);
4591 HRESULT (STDMETHODCALLTYPE
*OnColorKeyChange
)(
4592 IOverlayNotify2
* This
,
4593 const COLORKEY
* pColorKey
);
4595 HRESULT (STDMETHODCALLTYPE
*OnPositionChange
)(
4596 IOverlayNotify2
* This
,
4597 const RECT
* pSourceRect
,
4598 const RECT
* pDestinationRect
);
4600 /*** IOverlayNotify2 methods ***/
4601 HRESULT (STDMETHODCALLTYPE
*OnDisplayChange
)(
4602 IOverlayNotify2
* This
,
4609 /*** IUnknown methods ***/
4610 #define IOverlayNotify2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4611 #define IOverlayNotify2_AddRef(p) (p)->lpVtbl->AddRef(p)
4612 #define IOverlayNotify2_Release(p) (p)->lpVtbl->Release(p)
4613 /*** IOverlayNotify methods ***/
4614 #define IOverlayNotify2_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
4615 #define IOverlayNotify2_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
4616 #define IOverlayNotify2_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
4617 #define IOverlayNotify2_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
4618 /*** IOverlayNotify2 methods ***/
4619 #define IOverlayNotify2_OnDisplayChange(p,a) (p)->lpVtbl->OnDisplayChange(p,a)
4624 #define IOverlayNotify2_METHODS \
4625 /*** IUnknown methods ***/ \
4626 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4627 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4628 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4629 /*** IOverlayNotify methods ***/ \
4630 STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
4631 STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
4632 STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
4633 STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE; \
4634 /*** IOverlayNotify2 methods ***/ \
4635 STDMETHOD_(HRESULT,OnDisplayChange)(THIS_ HMONITOR hMonitor) PURE;
4637 HRESULT CALLBACK
IOverlayNotify2_OnDisplayChange_Proxy(
4638 IOverlayNotify2
* This
,
4640 void __RPC_STUB
IOverlayNotify2_OnDisplayChange_Stub(
4641 struct IRpcStubBuffer
* This
,
4642 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4643 PRPC_MESSAGE pRpcMessage
,
4644 DWORD
* pdwStubPhase
);
4646 #endif /* __IOverlayNotify2_INTERFACE_DEFINED__ */
4648 typedef IOverlayNotify2
*POVERLAYNOTIFY2
;
4650 /*****************************************************************************
4651 * IOverlay interface
4653 #ifndef __IOverlay_INTERFACE_DEFINED__
4654 #define __IOverlay_INTERFACE_DEFINED__
4656 DEFINE_GUID(IID_IOverlay
, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4657 #if defined(__cplusplus) && !defined(CINTERFACE)
4658 struct IOverlay
: public IUnknown
4660 virtual HRESULT STDMETHODCALLTYPE
GetPalette(
4662 PALETTEENTRY
** ppPalette
) = 0;
4664 virtual HRESULT STDMETHODCALLTYPE
SetPalette(
4666 PALETTEENTRY
* pPalette
) = 0;
4668 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColorKey(
4669 COLORKEY
* pColorKey
) = 0;
4671 virtual HRESULT STDMETHODCALLTYPE
GetColorKey(
4672 COLORKEY
* pColorKey
) = 0;
4674 virtual HRESULT STDMETHODCALLTYPE
SetColorKey(
4675 COLORKEY
* pColorKey
) = 0;
4677 virtual HRESULT STDMETHODCALLTYPE
GetWindowHandle(
4680 virtual HRESULT STDMETHODCALLTYPE
GetClipList(
4682 RECT
* pDestinationRect
,
4683 RGNDATA
** ppRgnData
) = 0;
4685 virtual HRESULT STDMETHODCALLTYPE
GetVideoPosition(
4687 RECT
* pDestinationRect
) = 0;
4689 virtual HRESULT STDMETHODCALLTYPE
Advise(
4690 IOverlayNotify
* pOverlayNotify
,
4691 DWORD dwInterests
) = 0;
4693 virtual HRESULT STDMETHODCALLTYPE
Unadvise(
4698 typedef struct IOverlayVtbl IOverlayVtbl
;
4700 const IOverlayVtbl
* lpVtbl
;
4702 struct IOverlayVtbl
{
4705 /*** IUnknown methods ***/
4706 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4711 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4714 ULONG (STDMETHODCALLTYPE
*Release
)(
4717 /*** IOverlay methods ***/
4718 HRESULT (STDMETHODCALLTYPE
*GetPalette
)(
4721 PALETTEENTRY
** ppPalette
);
4723 HRESULT (STDMETHODCALLTYPE
*SetPalette
)(
4726 PALETTEENTRY
* pPalette
);
4728 HRESULT (STDMETHODCALLTYPE
*GetDefaultColorKey
)(
4730 COLORKEY
* pColorKey
);
4732 HRESULT (STDMETHODCALLTYPE
*GetColorKey
)(
4734 COLORKEY
* pColorKey
);
4736 HRESULT (STDMETHODCALLTYPE
*SetColorKey
)(
4738 COLORKEY
* pColorKey
);
4740 HRESULT (STDMETHODCALLTYPE
*GetWindowHandle
)(
4744 HRESULT (STDMETHODCALLTYPE
*GetClipList
)(
4747 RECT
* pDestinationRect
,
4748 RGNDATA
** ppRgnData
);
4750 HRESULT (STDMETHODCALLTYPE
*GetVideoPosition
)(
4753 RECT
* pDestinationRect
);
4755 HRESULT (STDMETHODCALLTYPE
*Advise
)(
4757 IOverlayNotify
* pOverlayNotify
,
4760 HRESULT (STDMETHODCALLTYPE
*Unadvise
)(
4767 /*** IUnknown methods ***/
4768 #define IOverlay_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4769 #define IOverlay_AddRef(p) (p)->lpVtbl->AddRef(p)
4770 #define IOverlay_Release(p) (p)->lpVtbl->Release(p)
4771 /*** IOverlay methods ***/
4772 #define IOverlay_GetPalette(p,a,b) (p)->lpVtbl->GetPalette(p,a,b)
4773 #define IOverlay_SetPalette(p,a,b) (p)->lpVtbl->SetPalette(p,a,b)
4774 #define IOverlay_GetDefaultColorKey(p,a) (p)->lpVtbl->GetDefaultColorKey(p,a)
4775 #define IOverlay_GetColorKey(p,a) (p)->lpVtbl->GetColorKey(p,a)
4776 #define IOverlay_SetColorKey(p,a) (p)->lpVtbl->SetColorKey(p,a)
4777 #define IOverlay_GetWindowHandle(p,a) (p)->lpVtbl->GetWindowHandle(p,a)
4778 #define IOverlay_GetClipList(p,a,b,c) (p)->lpVtbl->GetClipList(p,a,b,c)
4779 #define IOverlay_GetVideoPosition(p,a,b) (p)->lpVtbl->GetVideoPosition(p,a,b)
4780 #define IOverlay_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b)
4781 #define IOverlay_Unadvise(p) (p)->lpVtbl->Unadvise(p)
4786 #define IOverlay_METHODS \
4787 /*** IUnknown methods ***/ \
4788 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4789 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4790 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4791 /*** IOverlay methods ***/ \
4792 STDMETHOD_(HRESULT,GetPalette)(THIS_ DWORD* pdwColors, PALETTEENTRY** ppPalette) PURE; \
4793 STDMETHOD_(HRESULT,SetPalette)(THIS_ DWORD dwColors, PALETTEENTRY* pPalette) PURE; \
4794 STDMETHOD_(HRESULT,GetDefaultColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4795 STDMETHOD_(HRESULT,GetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4796 STDMETHOD_(HRESULT,SetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4797 STDMETHOD_(HRESULT,GetWindowHandle)(THIS_ HWND* pHwnd) PURE; \
4798 STDMETHOD_(HRESULT,GetClipList)(THIS_ RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData) PURE; \
4799 STDMETHOD_(HRESULT,GetVideoPosition)(THIS_ RECT* pSourceRect, RECT* pDestinationRect) PURE; \
4800 STDMETHOD_(HRESULT,Advise)(THIS_ IOverlayNotify* pOverlayNotify, DWORD dwInterests) PURE; \
4801 STDMETHOD_(HRESULT,Unadvise)(THIS) PURE;
4803 HRESULT CALLBACK
IOverlay_GetPalette_Proxy(
4806 PALETTEENTRY
** ppPalette
);
4807 void __RPC_STUB
IOverlay_GetPalette_Stub(
4808 struct IRpcStubBuffer
* This
,
4809 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4810 PRPC_MESSAGE pRpcMessage
,
4811 DWORD
* pdwStubPhase
);
4812 HRESULT CALLBACK
IOverlay_SetPalette_Proxy(
4815 PALETTEENTRY
* pPalette
);
4816 void __RPC_STUB
IOverlay_SetPalette_Stub(
4817 struct IRpcStubBuffer
* This
,
4818 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4819 PRPC_MESSAGE pRpcMessage
,
4820 DWORD
* pdwStubPhase
);
4821 HRESULT CALLBACK
IOverlay_GetDefaultColorKey_Proxy(
4823 COLORKEY
* pColorKey
);
4824 void __RPC_STUB
IOverlay_GetDefaultColorKey_Stub(
4825 struct IRpcStubBuffer
* This
,
4826 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4827 PRPC_MESSAGE pRpcMessage
,
4828 DWORD
* pdwStubPhase
);
4829 HRESULT CALLBACK
IOverlay_GetColorKey_Proxy(
4831 COLORKEY
* pColorKey
);
4832 void __RPC_STUB
IOverlay_GetColorKey_Stub(
4833 struct IRpcStubBuffer
* This
,
4834 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4835 PRPC_MESSAGE pRpcMessage
,
4836 DWORD
* pdwStubPhase
);
4837 HRESULT CALLBACK
IOverlay_SetColorKey_Proxy(
4839 COLORKEY
* pColorKey
);
4840 void __RPC_STUB
IOverlay_SetColorKey_Stub(
4841 struct IRpcStubBuffer
* This
,
4842 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4843 PRPC_MESSAGE pRpcMessage
,
4844 DWORD
* pdwStubPhase
);
4845 HRESULT CALLBACK
IOverlay_GetWindowHandle_Proxy(
4848 void __RPC_STUB
IOverlay_GetWindowHandle_Stub(
4849 struct IRpcStubBuffer
* This
,
4850 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4851 PRPC_MESSAGE pRpcMessage
,
4852 DWORD
* pdwStubPhase
);
4853 HRESULT CALLBACK
IOverlay_GetClipList_Proxy(
4856 RECT
* pDestinationRect
,
4857 RGNDATA
** ppRgnData
);
4858 void __RPC_STUB
IOverlay_GetClipList_Stub(
4859 struct IRpcStubBuffer
* This
,
4860 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4861 PRPC_MESSAGE pRpcMessage
,
4862 DWORD
* pdwStubPhase
);
4863 HRESULT CALLBACK
IOverlay_GetVideoPosition_Proxy(
4866 RECT
* pDestinationRect
);
4867 void __RPC_STUB
IOverlay_GetVideoPosition_Stub(
4868 struct IRpcStubBuffer
* This
,
4869 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4870 PRPC_MESSAGE pRpcMessage
,
4871 DWORD
* pdwStubPhase
);
4872 HRESULT CALLBACK
IOverlay_Advise_Proxy(
4874 IOverlayNotify
* pOverlayNotify
,
4876 void __RPC_STUB
IOverlay_Advise_Stub(
4877 struct IRpcStubBuffer
* This
,
4878 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4879 PRPC_MESSAGE pRpcMessage
,
4880 DWORD
* pdwStubPhase
);
4881 HRESULT CALLBACK
IOverlay_Unadvise_Proxy(
4883 void __RPC_STUB
IOverlay_Unadvise_Stub(
4884 struct IRpcStubBuffer
* This
,
4885 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4886 PRPC_MESSAGE pRpcMessage
,
4887 DWORD
* pdwStubPhase
);
4889 #endif /* __IOverlay_INTERFACE_DEFINED__ */
4891 typedef IOverlay
*POVERLAY
;
4893 /*****************************************************************************
4894 * IMediaEventSink interface
4896 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
4897 #define __IMediaEventSink_INTERFACE_DEFINED__
4899 DEFINE_GUID(IID_IMediaEventSink
, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4900 #if defined(__cplusplus) && !defined(CINTERFACE)
4901 struct IMediaEventSink
: public IUnknown
4903 virtual HRESULT STDMETHODCALLTYPE
Notify(
4905 LONG_PTR EventParam1
,
4906 LONG_PTR EventParam2
) = 0;
4910 typedef struct IMediaEventSinkVtbl IMediaEventSinkVtbl
;
4911 struct IMediaEventSink
{
4912 const IMediaEventSinkVtbl
* lpVtbl
;
4914 struct IMediaEventSinkVtbl
{
4917 /*** IUnknown methods ***/
4918 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4919 IMediaEventSink
* This
,
4923 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4924 IMediaEventSink
* This
);
4926 ULONG (STDMETHODCALLTYPE
*Release
)(
4927 IMediaEventSink
* This
);
4929 /*** IMediaEventSink methods ***/
4930 HRESULT (STDMETHODCALLTYPE
*Notify
)(
4931 IMediaEventSink
* This
,
4933 LONG_PTR EventParam1
,
4934 LONG_PTR EventParam2
);
4940 /*** IUnknown methods ***/
4941 #define IMediaEventSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4942 #define IMediaEventSink_AddRef(p) (p)->lpVtbl->AddRef(p)
4943 #define IMediaEventSink_Release(p) (p)->lpVtbl->Release(p)
4944 /*** IMediaEventSink methods ***/
4945 #define IMediaEventSink_Notify(p,a,b,c) (p)->lpVtbl->Notify(p,a,b,c)
4950 #define IMediaEventSink_METHODS \
4951 /*** IUnknown methods ***/ \
4952 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4953 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4954 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4955 /*** IMediaEventSink methods ***/ \
4956 STDMETHOD_(HRESULT,Notify)(THIS_ long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2) PURE;
4958 HRESULT CALLBACK
IMediaEventSink_Notify_Proxy(
4959 IMediaEventSink
* This
,
4961 LONG_PTR EventParam1
,
4962 LONG_PTR EventParam2
);
4963 void __RPC_STUB
IMediaEventSink_Notify_Stub(
4964 struct IRpcStubBuffer
* This
,
4965 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4966 PRPC_MESSAGE pRpcMessage
,
4967 DWORD
* pdwStubPhase
);
4969 #endif /* __IMediaEventSink_INTERFACE_DEFINED__ */
4971 typedef IMediaEventSink
*PMEDIAEVENTSINK
;
4973 /*****************************************************************************
4974 * IFileSourceFilter interface
4976 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
4977 #define __IFileSourceFilter_INTERFACE_DEFINED__
4979 DEFINE_GUID(IID_IFileSourceFilter
, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4980 #if defined(__cplusplus) && !defined(CINTERFACE)
4981 struct IFileSourceFilter
: public IUnknown
4983 virtual HRESULT STDMETHODCALLTYPE
Load(
4984 LPCOLESTR pszFileName
,
4985 const AM_MEDIA_TYPE
* pmt
) = 0;
4987 virtual HRESULT STDMETHODCALLTYPE
GetCurFile(
4988 LPOLESTR
* ppszFileName
,
4989 AM_MEDIA_TYPE
* pmt
) = 0;
4993 typedef struct IFileSourceFilterVtbl IFileSourceFilterVtbl
;
4994 struct IFileSourceFilter
{
4995 const IFileSourceFilterVtbl
* lpVtbl
;
4997 struct IFileSourceFilterVtbl
{
5000 /*** IUnknown methods ***/
5001 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5002 IFileSourceFilter
* This
,
5006 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5007 IFileSourceFilter
* This
);
5009 ULONG (STDMETHODCALLTYPE
*Release
)(
5010 IFileSourceFilter
* This
);
5012 /*** IFileSourceFilter methods ***/
5013 HRESULT (STDMETHODCALLTYPE
*Load
)(
5014 IFileSourceFilter
* This
,
5015 LPCOLESTR pszFileName
,
5016 const AM_MEDIA_TYPE
* pmt
);
5018 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
5019 IFileSourceFilter
* This
,
5020 LPOLESTR
* ppszFileName
,
5021 AM_MEDIA_TYPE
* pmt
);
5027 /*** IUnknown methods ***/
5028 #define IFileSourceFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5029 #define IFileSourceFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
5030 #define IFileSourceFilter_Release(p) (p)->lpVtbl->Release(p)
5031 /*** IFileSourceFilter methods ***/
5032 #define IFileSourceFilter_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
5033 #define IFileSourceFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
5038 #define IFileSourceFilter_METHODS \
5039 /*** IUnknown methods ***/ \
5040 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5041 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5042 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5043 /*** IFileSourceFilter methods ***/ \
5044 STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
5045 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
5047 HRESULT CALLBACK
IFileSourceFilter_Load_Proxy(
5048 IFileSourceFilter
* This
,
5049 LPCOLESTR pszFileName
,
5050 const AM_MEDIA_TYPE
* pmt
);
5051 void __RPC_STUB
IFileSourceFilter_Load_Stub(
5052 struct IRpcStubBuffer
* This
,
5053 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5054 PRPC_MESSAGE pRpcMessage
,
5055 DWORD
* pdwStubPhase
);
5056 HRESULT CALLBACK
IFileSourceFilter_GetCurFile_Proxy(
5057 IFileSourceFilter
* This
,
5058 LPOLESTR
* ppszFileName
,
5059 AM_MEDIA_TYPE
* pmt
);
5060 void __RPC_STUB
IFileSourceFilter_GetCurFile_Stub(
5061 struct IRpcStubBuffer
* This
,
5062 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5063 PRPC_MESSAGE pRpcMessage
,
5064 DWORD
* pdwStubPhase
);
5066 #endif /* __IFileSourceFilter_INTERFACE_DEFINED__ */
5068 typedef IFileSourceFilter
*PFILTERFILESOURCE
;
5070 /*****************************************************************************
5071 * IFileSinkFilter interface
5073 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
5074 #define __IFileSinkFilter_INTERFACE_DEFINED__
5076 DEFINE_GUID(IID_IFileSinkFilter
, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
5077 #if defined(__cplusplus) && !defined(CINTERFACE)
5078 struct IFileSinkFilter
: public IUnknown
5080 virtual HRESULT STDMETHODCALLTYPE
SetFileName(
5081 LPCOLESTR pszFileName
,
5082 const AM_MEDIA_TYPE
* pmt
) = 0;
5084 virtual HRESULT STDMETHODCALLTYPE
GetCurFile(
5085 LPOLESTR
* ppszFileName
,
5086 AM_MEDIA_TYPE
* pmt
) = 0;
5090 typedef struct IFileSinkFilterVtbl IFileSinkFilterVtbl
;
5091 struct IFileSinkFilter
{
5092 const IFileSinkFilterVtbl
* lpVtbl
;
5094 struct IFileSinkFilterVtbl
{
5097 /*** IUnknown methods ***/
5098 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5099 IFileSinkFilter
* This
,
5103 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5104 IFileSinkFilter
* This
);
5106 ULONG (STDMETHODCALLTYPE
*Release
)(
5107 IFileSinkFilter
* This
);
5109 /*** IFileSinkFilter methods ***/
5110 HRESULT (STDMETHODCALLTYPE
*SetFileName
)(
5111 IFileSinkFilter
* This
,
5112 LPCOLESTR pszFileName
,
5113 const AM_MEDIA_TYPE
* pmt
);
5115 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
5116 IFileSinkFilter
* This
,
5117 LPOLESTR
* ppszFileName
,
5118 AM_MEDIA_TYPE
* pmt
);
5124 /*** IUnknown methods ***/
5125 #define IFileSinkFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5126 #define IFileSinkFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
5127 #define IFileSinkFilter_Release(p) (p)->lpVtbl->Release(p)
5128 /*** IFileSinkFilter methods ***/
5129 #define IFileSinkFilter_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
5130 #define IFileSinkFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
5135 #define IFileSinkFilter_METHODS \
5136 /*** IUnknown methods ***/ \
5137 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5138 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5139 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5140 /*** IFileSinkFilter methods ***/ \
5141 STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
5142 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
5144 HRESULT CALLBACK
IFileSinkFilter_SetFileName_Proxy(
5145 IFileSinkFilter
* This
,
5146 LPCOLESTR pszFileName
,
5147 const AM_MEDIA_TYPE
* pmt
);
5148 void __RPC_STUB
IFileSinkFilter_SetFileName_Stub(
5149 struct IRpcStubBuffer
* This
,
5150 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5151 PRPC_MESSAGE pRpcMessage
,
5152 DWORD
* pdwStubPhase
);
5153 HRESULT CALLBACK
IFileSinkFilter_GetCurFile_Proxy(
5154 IFileSinkFilter
* This
,
5155 LPOLESTR
* ppszFileName
,
5156 AM_MEDIA_TYPE
* pmt
);
5157 void __RPC_STUB
IFileSinkFilter_GetCurFile_Stub(
5158 struct IRpcStubBuffer
* This
,
5159 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5160 PRPC_MESSAGE pRpcMessage
,
5161 DWORD
* pdwStubPhase
);
5163 #endif /* __IFileSinkFilter_INTERFACE_DEFINED__ */
5165 typedef IFileSinkFilter
*PFILTERFILESINK
;
5167 /*****************************************************************************
5168 * IFileSinkFilter2 interface
5170 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
5171 #define __IFileSinkFilter2_INTERFACE_DEFINED__
5173 DEFINE_GUID(IID_IFileSinkFilter2
, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
5174 #if defined(__cplusplus) && !defined(CINTERFACE)
5175 struct IFileSinkFilter2
: public IFileSinkFilter
5177 virtual HRESULT STDMETHODCALLTYPE
SetMode(
5180 virtual HRESULT STDMETHODCALLTYPE
GetMode(
5181 DWORD
* pdwFlags
) = 0;
5185 typedef struct IFileSinkFilter2Vtbl IFileSinkFilter2Vtbl
;
5186 struct IFileSinkFilter2
{
5187 const IFileSinkFilter2Vtbl
* lpVtbl
;
5189 struct IFileSinkFilter2Vtbl
{
5192 /*** IUnknown methods ***/
5193 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5194 IFileSinkFilter2
* This
,
5198 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5199 IFileSinkFilter2
* This
);
5201 ULONG (STDMETHODCALLTYPE
*Release
)(
5202 IFileSinkFilter2
* This
);
5204 /*** IFileSinkFilter methods ***/
5205 HRESULT (STDMETHODCALLTYPE
*SetFileName
)(
5206 IFileSinkFilter2
* This
,
5207 LPCOLESTR pszFileName
,
5208 const AM_MEDIA_TYPE
* pmt
);
5210 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
5211 IFileSinkFilter2
* This
,
5212 LPOLESTR
* ppszFileName
,
5213 AM_MEDIA_TYPE
* pmt
);
5215 /*** IFileSinkFilter2 methods ***/
5216 HRESULT (STDMETHODCALLTYPE
*SetMode
)(
5217 IFileSinkFilter2
* This
,
5220 HRESULT (STDMETHODCALLTYPE
*GetMode
)(
5221 IFileSinkFilter2
* This
,
5228 /*** IUnknown methods ***/
5229 #define IFileSinkFilter2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5230 #define IFileSinkFilter2_AddRef(p) (p)->lpVtbl->AddRef(p)
5231 #define IFileSinkFilter2_Release(p) (p)->lpVtbl->Release(p)
5232 /*** IFileSinkFilter methods ***/
5233 #define IFileSinkFilter2_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
5234 #define IFileSinkFilter2_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
5235 /*** IFileSinkFilter2 methods ***/
5236 #define IFileSinkFilter2_SetMode(p,a) (p)->lpVtbl->SetMode(p,a)
5237 #define IFileSinkFilter2_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
5242 #define IFileSinkFilter2_METHODS \
5243 /*** IUnknown methods ***/ \
5244 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5245 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5246 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5247 /*** IFileSinkFilter methods ***/ \
5248 STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
5249 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE; \
5250 /*** IFileSinkFilter2 methods ***/ \
5251 STDMETHOD_(HRESULT,SetMode)(THIS_ DWORD dwFlags) PURE; \
5252 STDMETHOD_(HRESULT,GetMode)(THIS_ DWORD* pdwFlags) PURE;
5254 HRESULT CALLBACK
IFileSinkFilter2_SetMode_Proxy(
5255 IFileSinkFilter2
* This
,
5257 void __RPC_STUB
IFileSinkFilter2_SetMode_Stub(
5258 struct IRpcStubBuffer
* This
,
5259 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5260 PRPC_MESSAGE pRpcMessage
,
5261 DWORD
* pdwStubPhase
);
5262 HRESULT CALLBACK
IFileSinkFilter2_GetMode_Proxy(
5263 IFileSinkFilter2
* This
,
5265 void __RPC_STUB
IFileSinkFilter2_GetMode_Stub(
5266 struct IRpcStubBuffer
* This
,
5267 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5268 PRPC_MESSAGE pRpcMessage
,
5269 DWORD
* pdwStubPhase
);
5271 #endif /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
5273 typedef IFileSinkFilter2
*PFILESINKFILTER2
;
5276 AM_FILE_OVERWRITE
= 0x1
5277 } AM_FILESINK_FLAGS
;
5279 /*****************************************************************************
5280 * IGraphBuilder interface
5282 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
5283 #define __IGraphBuilder_INTERFACE_DEFINED__
5285 DEFINE_GUID(IID_IGraphBuilder
, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5286 #if defined(__cplusplus) && !defined(CINTERFACE)
5287 struct IGraphBuilder
: public IFilterGraph
5289 virtual HRESULT STDMETHODCALLTYPE
Connect(
5293 virtual HRESULT STDMETHODCALLTYPE
Render(
5296 virtual HRESULT STDMETHODCALLTYPE
RenderFile(
5297 LPCWSTR lpcwstrFile
,
5298 LPCWSTR lpcwstrPlayList
) = 0;
5300 virtual HRESULT STDMETHODCALLTYPE
AddSourceFilter(
5301 LPCWSTR lpcwstrFileName
,
5302 LPCWSTR lpcwstrFilterName
,
5303 IBaseFilter
** ppFilter
) = 0;
5305 virtual HRESULT STDMETHODCALLTYPE
SetLogFile(
5306 DWORD_PTR hFile
) = 0;
5308 virtual HRESULT STDMETHODCALLTYPE
Abort(
5311 virtual HRESULT STDMETHODCALLTYPE
ShouldOperationContinue(
5316 typedef struct IGraphBuilderVtbl IGraphBuilderVtbl
;
5317 struct IGraphBuilder
{
5318 const IGraphBuilderVtbl
* lpVtbl
;
5320 struct IGraphBuilderVtbl
{
5323 /*** IUnknown methods ***/
5324 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5325 IGraphBuilder
* This
,
5329 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5330 IGraphBuilder
* This
);
5332 ULONG (STDMETHODCALLTYPE
*Release
)(
5333 IGraphBuilder
* This
);
5335 /*** IFilterGraph methods ***/
5336 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
5337 IGraphBuilder
* This
,
5338 IBaseFilter
* pFilter
,
5341 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
5342 IGraphBuilder
* This
,
5343 IBaseFilter
* pFilter
);
5345 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
5346 IGraphBuilder
* This
,
5347 IEnumFilters
** ppEnum
);
5349 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
5350 IGraphBuilder
* This
,
5352 IBaseFilter
** ppFilter
);
5354 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
5355 IGraphBuilder
* This
,
5358 const AM_MEDIA_TYPE
* pmt
);
5360 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
5361 IGraphBuilder
* This
,
5364 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
5365 IGraphBuilder
* This
,
5368 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
5369 IGraphBuilder
* This
);
5371 /*** IGraphBuilder methods ***/
5372 HRESULT (STDMETHODCALLTYPE
*Connect
)(
5373 IGraphBuilder
* This
,
5377 HRESULT (STDMETHODCALLTYPE
*Render
)(
5378 IGraphBuilder
* This
,
5381 HRESULT (STDMETHODCALLTYPE
*RenderFile
)(
5382 IGraphBuilder
* This
,
5383 LPCWSTR lpcwstrFile
,
5384 LPCWSTR lpcwstrPlayList
);
5386 HRESULT (STDMETHODCALLTYPE
*AddSourceFilter
)(
5387 IGraphBuilder
* This
,
5388 LPCWSTR lpcwstrFileName
,
5389 LPCWSTR lpcwstrFilterName
,
5390 IBaseFilter
** ppFilter
);
5392 HRESULT (STDMETHODCALLTYPE
*SetLogFile
)(
5393 IGraphBuilder
* This
,
5396 HRESULT (STDMETHODCALLTYPE
*Abort
)(
5397 IGraphBuilder
* This
);
5399 HRESULT (STDMETHODCALLTYPE
*ShouldOperationContinue
)(
5400 IGraphBuilder
* This
);
5406 /*** IUnknown methods ***/
5407 #define IGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5408 #define IGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
5409 #define IGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
5410 /*** IFilterGraph methods ***/
5411 #define IGraphBuilder_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
5412 #define IGraphBuilder_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
5413 #define IGraphBuilder_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
5414 #define IGraphBuilder_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
5415 #define IGraphBuilder_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
5416 #define IGraphBuilder_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
5417 #define IGraphBuilder_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
5418 #define IGraphBuilder_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
5419 /*** IGraphBuilder methods ***/
5420 #define IGraphBuilder_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
5421 #define IGraphBuilder_Render(p,a) (p)->lpVtbl->Render(p,a)
5422 #define IGraphBuilder_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
5423 #define IGraphBuilder_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
5424 #define IGraphBuilder_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
5425 #define IGraphBuilder_Abort(p) (p)->lpVtbl->Abort(p)
5426 #define IGraphBuilder_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
5431 #define IGraphBuilder_METHODS \
5432 /*** IUnknown methods ***/ \
5433 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5434 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5435 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5436 /*** IFilterGraph methods ***/ \
5437 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
5438 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
5439 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
5440 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
5441 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
5442 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
5443 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
5444 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
5445 /*** IGraphBuilder methods ***/ \
5446 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
5447 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
5448 STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
5449 STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
5450 STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
5451 STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
5452 STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE;
5454 HRESULT CALLBACK
IGraphBuilder_Connect_Proxy(
5455 IGraphBuilder
* This
,
5458 void __RPC_STUB
IGraphBuilder_Connect_Stub(
5459 struct IRpcStubBuffer
* This
,
5460 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5461 PRPC_MESSAGE pRpcMessage
,
5462 DWORD
* pdwStubPhase
);
5463 HRESULT CALLBACK
IGraphBuilder_Render_Proxy(
5464 IGraphBuilder
* This
,
5466 void __RPC_STUB
IGraphBuilder_Render_Stub(
5467 struct IRpcStubBuffer
* This
,
5468 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5469 PRPC_MESSAGE pRpcMessage
,
5470 DWORD
* pdwStubPhase
);
5471 HRESULT CALLBACK
IGraphBuilder_RenderFile_Proxy(
5472 IGraphBuilder
* This
,
5473 LPCWSTR lpcwstrFile
,
5474 LPCWSTR lpcwstrPlayList
);
5475 void __RPC_STUB
IGraphBuilder_RenderFile_Stub(
5476 struct IRpcStubBuffer
* This
,
5477 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5478 PRPC_MESSAGE pRpcMessage
,
5479 DWORD
* pdwStubPhase
);
5480 HRESULT CALLBACK
IGraphBuilder_AddSourceFilter_Proxy(
5481 IGraphBuilder
* This
,
5482 LPCWSTR lpcwstrFileName
,
5483 LPCWSTR lpcwstrFilterName
,
5484 IBaseFilter
** ppFilter
);
5485 void __RPC_STUB
IGraphBuilder_AddSourceFilter_Stub(
5486 struct IRpcStubBuffer
* This
,
5487 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5488 PRPC_MESSAGE pRpcMessage
,
5489 DWORD
* pdwStubPhase
);
5490 HRESULT CALLBACK
IGraphBuilder_SetLogFile_Proxy(
5491 IGraphBuilder
* This
,
5493 void __RPC_STUB
IGraphBuilder_SetLogFile_Stub(
5494 struct IRpcStubBuffer
* This
,
5495 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5496 PRPC_MESSAGE pRpcMessage
,
5497 DWORD
* pdwStubPhase
);
5498 HRESULT CALLBACK
IGraphBuilder_Abort_Proxy(
5499 IGraphBuilder
* This
);
5500 void __RPC_STUB
IGraphBuilder_Abort_Stub(
5501 struct IRpcStubBuffer
* This
,
5502 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5503 PRPC_MESSAGE pRpcMessage
,
5504 DWORD
* pdwStubPhase
);
5505 HRESULT CALLBACK
IGraphBuilder_ShouldOperationContinue_Proxy(
5506 IGraphBuilder
* This
);
5507 void __RPC_STUB
IGraphBuilder_ShouldOperationContinue_Stub(
5508 struct IRpcStubBuffer
* This
,
5509 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5510 PRPC_MESSAGE pRpcMessage
,
5511 DWORD
* pdwStubPhase
);
5513 #endif /* __IGraphBuilder_INTERFACE_DEFINED__ */
5515 /*****************************************************************************
5516 * ICaptureGraphBuilder interface
5518 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
5519 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
5521 DEFINE_GUID(IID_ICaptureGraphBuilder
, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
5522 #if defined(__cplusplus) && !defined(CINTERFACE)
5523 struct ICaptureGraphBuilder
: public IUnknown
5525 virtual HRESULT STDMETHODCALLTYPE
SetFiltergraph(
5526 IGraphBuilder
* pfg
) = 0;
5528 virtual HRESULT STDMETHODCALLTYPE
GetFiltergraph(
5529 IGraphBuilder
** ppfg
) = 0;
5531 virtual HRESULT STDMETHODCALLTYPE
SetOutputFileName(
5533 LPCOLESTR lpstrFile
,
5535 IFileSinkFilter
** ppSink
) = 0;
5537 virtual HRESULT STDMETHODCALLTYPE
FindInterface(
5538 const GUID
* pCategory
,
5543 virtual HRESULT STDMETHODCALLTYPE
RenderStream(
5544 const GUID
* pCategory
,
5546 IBaseFilter
* pfCompressor
,
5547 IBaseFilter
* pfRenderer
) = 0;
5549 virtual HRESULT STDMETHODCALLTYPE
ControlStream(
5550 const GUID
* pCategory
,
5551 IBaseFilter
* pFilter
,
5552 REFERENCE_TIME
* pstart
,
5553 REFERENCE_TIME
* pstop
,
5555 WORD wStopCookie
) = 0;
5557 virtual HRESULT STDMETHODCALLTYPE
AllocCapFile(
5559 DWORDLONG dwlSize
) = 0;
5561 virtual HRESULT STDMETHODCALLTYPE
CopyCaptureFile(
5565 IAMCopyCaptureFileProgress
* pCallback
) = 0;
5569 typedef struct ICaptureGraphBuilderVtbl ICaptureGraphBuilderVtbl
;
5570 struct ICaptureGraphBuilder
{
5571 const ICaptureGraphBuilderVtbl
* lpVtbl
;
5573 struct ICaptureGraphBuilderVtbl
{
5576 /*** IUnknown methods ***/
5577 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5578 ICaptureGraphBuilder
* This
,
5582 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5583 ICaptureGraphBuilder
* This
);
5585 ULONG (STDMETHODCALLTYPE
*Release
)(
5586 ICaptureGraphBuilder
* This
);
5588 /*** ICaptureGraphBuilder methods ***/
5589 HRESULT (STDMETHODCALLTYPE
*SetFiltergraph
)(
5590 ICaptureGraphBuilder
* This
,
5591 IGraphBuilder
* pfg
);
5593 HRESULT (STDMETHODCALLTYPE
*GetFiltergraph
)(
5594 ICaptureGraphBuilder
* This
,
5595 IGraphBuilder
** ppfg
);
5597 HRESULT (STDMETHODCALLTYPE
*SetOutputFileName
)(
5598 ICaptureGraphBuilder
* This
,
5600 LPCOLESTR lpstrFile
,
5602 IFileSinkFilter
** ppSink
);
5604 HRESULT (STDMETHODCALLTYPE
*FindInterface
)(
5605 ICaptureGraphBuilder
* This
,
5606 const GUID
* pCategory
,
5611 HRESULT (STDMETHODCALLTYPE
*RenderStream
)(
5612 ICaptureGraphBuilder
* This
,
5613 const GUID
* pCategory
,
5615 IBaseFilter
* pfCompressor
,
5616 IBaseFilter
* pfRenderer
);
5618 HRESULT (STDMETHODCALLTYPE
*ControlStream
)(
5619 ICaptureGraphBuilder
* This
,
5620 const GUID
* pCategory
,
5621 IBaseFilter
* pFilter
,
5622 REFERENCE_TIME
* pstart
,
5623 REFERENCE_TIME
* pstop
,
5627 HRESULT (STDMETHODCALLTYPE
*AllocCapFile
)(
5628 ICaptureGraphBuilder
* This
,
5632 HRESULT (STDMETHODCALLTYPE
*CopyCaptureFile
)(
5633 ICaptureGraphBuilder
* This
,
5637 IAMCopyCaptureFileProgress
* pCallback
);
5643 /*** IUnknown methods ***/
5644 #define ICaptureGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5645 #define ICaptureGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
5646 #define ICaptureGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
5647 /*** ICaptureGraphBuilder methods ***/
5648 #define ICaptureGraphBuilder_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
5649 #define ICaptureGraphBuilder_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
5650 #define ICaptureGraphBuilder_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
5651 #define ICaptureGraphBuilder_FindInterface(p,a,b,c,d) (p)->lpVtbl->FindInterface(p,a,b,c,d)
5652 #define ICaptureGraphBuilder_RenderStream(p,a,b,c,d) (p)->lpVtbl->RenderStream(p,a,b,c,d)
5653 #define ICaptureGraphBuilder_ControlStream(p,a,b,c,d,e,f) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f)
5654 #define ICaptureGraphBuilder_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
5655 #define ICaptureGraphBuilder_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
5660 #define ICaptureGraphBuilder_METHODS \
5661 /*** IUnknown methods ***/ \
5662 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5663 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5664 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5665 /*** ICaptureGraphBuilder methods ***/ \
5666 STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
5667 STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
5668 STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
5669 STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
5670 STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
5671 STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
5672 STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
5673 STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE;
5675 HRESULT CALLBACK
ICaptureGraphBuilder_SetFiltergraph_Proxy(
5676 ICaptureGraphBuilder
* This
,
5677 IGraphBuilder
* pfg
);
5678 void __RPC_STUB
ICaptureGraphBuilder_SetFiltergraph_Stub(
5679 struct IRpcStubBuffer
* This
,
5680 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5681 PRPC_MESSAGE pRpcMessage
,
5682 DWORD
* pdwStubPhase
);
5683 HRESULT CALLBACK
ICaptureGraphBuilder_GetFiltergraph_Proxy(
5684 ICaptureGraphBuilder
* This
,
5685 IGraphBuilder
** ppfg
);
5686 void __RPC_STUB
ICaptureGraphBuilder_GetFiltergraph_Stub(
5687 struct IRpcStubBuffer
* This
,
5688 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5689 PRPC_MESSAGE pRpcMessage
,
5690 DWORD
* pdwStubPhase
);
5691 HRESULT CALLBACK
ICaptureGraphBuilder_SetOutputFileName_Proxy(
5692 ICaptureGraphBuilder
* This
,
5694 LPCOLESTR lpstrFile
,
5696 IFileSinkFilter
** ppSink
);
5697 void __RPC_STUB
ICaptureGraphBuilder_SetOutputFileName_Stub(
5698 struct IRpcStubBuffer
* This
,
5699 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5700 PRPC_MESSAGE pRpcMessage
,
5701 DWORD
* pdwStubPhase
);
5702 HRESULT CALLBACK
ICaptureGraphBuilder_RemoteFindInterface_Proxy(
5703 ICaptureGraphBuilder
* This
,
5704 const GUID
* pCategory
,
5708 void __RPC_STUB
ICaptureGraphBuilder_RemoteFindInterface_Stub(
5709 struct IRpcStubBuffer
* This
,
5710 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5711 PRPC_MESSAGE pRpcMessage
,
5712 DWORD
* pdwStubPhase
);
5713 HRESULT CALLBACK
ICaptureGraphBuilder_FindInterface_Proxy(
5714 ICaptureGraphBuilder
* This
,
5715 const GUID
* pCategory
,
5719 HRESULT __RPC_STUB
ICaptureGraphBuilder_FindInterface_Stub(
5720 ICaptureGraphBuilder
* This
,
5721 const GUID
* pCategory
,
5725 HRESULT CALLBACK
ICaptureGraphBuilder_RenderStream_Proxy(
5726 ICaptureGraphBuilder
* This
,
5727 const GUID
* pCategory
,
5729 IBaseFilter
* pfCompressor
,
5730 IBaseFilter
* pfRenderer
);
5731 void __RPC_STUB
ICaptureGraphBuilder_RenderStream_Stub(
5732 struct IRpcStubBuffer
* This
,
5733 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5734 PRPC_MESSAGE pRpcMessage
,
5735 DWORD
* pdwStubPhase
);
5736 HRESULT CALLBACK
ICaptureGraphBuilder_ControlStream_Proxy(
5737 ICaptureGraphBuilder
* This
,
5738 const GUID
* pCategory
,
5739 IBaseFilter
* pFilter
,
5740 REFERENCE_TIME
* pstart
,
5741 REFERENCE_TIME
* pstop
,
5744 void __RPC_STUB
ICaptureGraphBuilder_ControlStream_Stub(
5745 struct IRpcStubBuffer
* This
,
5746 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5747 PRPC_MESSAGE pRpcMessage
,
5748 DWORD
* pdwStubPhase
);
5749 HRESULT CALLBACK
ICaptureGraphBuilder_AllocCapFile_Proxy(
5750 ICaptureGraphBuilder
* This
,
5753 void __RPC_STUB
ICaptureGraphBuilder_AllocCapFile_Stub(
5754 struct IRpcStubBuffer
* This
,
5755 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5756 PRPC_MESSAGE pRpcMessage
,
5757 DWORD
* pdwStubPhase
);
5758 HRESULT CALLBACK
ICaptureGraphBuilder_CopyCaptureFile_Proxy(
5759 ICaptureGraphBuilder
* This
,
5763 IAMCopyCaptureFileProgress
* pCallback
);
5764 void __RPC_STUB
ICaptureGraphBuilder_CopyCaptureFile_Stub(
5765 struct IRpcStubBuffer
* This
,
5766 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5767 PRPC_MESSAGE pRpcMessage
,
5768 DWORD
* pdwStubPhase
);
5770 #endif /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
5772 /*****************************************************************************
5773 * IAMCopyCaptureFileProgress interface
5775 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
5776 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
5778 DEFINE_GUID(IID_IAMCopyCaptureFileProgress
, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
5779 #if defined(__cplusplus) && !defined(CINTERFACE)
5780 struct IAMCopyCaptureFileProgress
: public IUnknown
5782 virtual HRESULT STDMETHODCALLTYPE
Progress(
5787 typedef struct IAMCopyCaptureFileProgressVtbl IAMCopyCaptureFileProgressVtbl
;
5788 struct IAMCopyCaptureFileProgress
{
5789 const IAMCopyCaptureFileProgressVtbl
* lpVtbl
;
5791 struct IAMCopyCaptureFileProgressVtbl
{
5794 /*** IUnknown methods ***/
5795 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5796 IAMCopyCaptureFileProgress
* This
,
5800 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5801 IAMCopyCaptureFileProgress
* This
);
5803 ULONG (STDMETHODCALLTYPE
*Release
)(
5804 IAMCopyCaptureFileProgress
* This
);
5806 /*** IAMCopyCaptureFileProgress methods ***/
5807 HRESULT (STDMETHODCALLTYPE
*Progress
)(
5808 IAMCopyCaptureFileProgress
* This
,
5815 /*** IUnknown methods ***/
5816 #define IAMCopyCaptureFileProgress_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5817 #define IAMCopyCaptureFileProgress_AddRef(p) (p)->lpVtbl->AddRef(p)
5818 #define IAMCopyCaptureFileProgress_Release(p) (p)->lpVtbl->Release(p)
5819 /*** IAMCopyCaptureFileProgress methods ***/
5820 #define IAMCopyCaptureFileProgress_Progress(p,a) (p)->lpVtbl->Progress(p,a)
5825 #define IAMCopyCaptureFileProgress_METHODS \
5826 /*** IUnknown methods ***/ \
5827 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5828 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5829 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5830 /*** IAMCopyCaptureFileProgress methods ***/ \
5831 STDMETHOD_(HRESULT,Progress)(THIS_ int iProgress) PURE;
5833 HRESULT CALLBACK
IAMCopyCaptureFileProgress_Progress_Proxy(
5834 IAMCopyCaptureFileProgress
* This
,
5836 void __RPC_STUB
IAMCopyCaptureFileProgress_Progress_Stub(
5837 struct IRpcStubBuffer
* This
,
5838 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5839 PRPC_MESSAGE pRpcMessage
,
5840 DWORD
* pdwStubPhase
);
5842 #endif /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
5844 /*****************************************************************************
5845 * ICaptureGraphBuilder2 interface
5847 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
5848 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
5850 DEFINE_GUID(IID_ICaptureGraphBuilder2
, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
5851 #if defined(__cplusplus) && !defined(CINTERFACE)
5852 struct ICaptureGraphBuilder2
: public IUnknown
5854 virtual HRESULT STDMETHODCALLTYPE
SetFiltergraph(
5855 IGraphBuilder
* pfg
) = 0;
5857 virtual HRESULT STDMETHODCALLTYPE
GetFiltergraph(
5858 IGraphBuilder
** ppfg
) = 0;
5860 virtual HRESULT STDMETHODCALLTYPE
SetOutputFileName(
5862 LPCOLESTR lpstrFile
,
5864 IFileSinkFilter
** ppSink
) = 0;
5866 virtual HRESULT STDMETHODCALLTYPE
FindInterface(
5867 const GUID
* pCategory
,
5873 virtual HRESULT STDMETHODCALLTYPE
RenderStream(
5874 const GUID
* pCategory
,
5877 IBaseFilter
* pfCompressor
,
5878 IBaseFilter
* pfRenderer
) = 0;
5880 virtual HRESULT STDMETHODCALLTYPE
ControlStream(
5881 const GUID
* pCategory
,
5883 IBaseFilter
* pFilter
,
5884 REFERENCE_TIME
* pstart
,
5885 REFERENCE_TIME
* pstop
,
5887 WORD wStopCookie
) = 0;
5889 virtual HRESULT STDMETHODCALLTYPE
AllocCapFile(
5891 DWORDLONG dwlSize
) = 0;
5893 virtual HRESULT STDMETHODCALLTYPE
CopyCaptureFile(
5897 IAMCopyCaptureFileProgress
* pCallback
) = 0;
5899 virtual HRESULT STDMETHODCALLTYPE
FindPin(
5901 PIN_DIRECTION pindir
,
5902 const GUID
* pCategory
,
5910 typedef struct ICaptureGraphBuilder2Vtbl ICaptureGraphBuilder2Vtbl
;
5911 struct ICaptureGraphBuilder2
{
5912 const ICaptureGraphBuilder2Vtbl
* lpVtbl
;
5914 struct ICaptureGraphBuilder2Vtbl
{
5917 /*** IUnknown methods ***/
5918 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5919 ICaptureGraphBuilder2
* This
,
5923 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5924 ICaptureGraphBuilder2
* This
);
5926 ULONG (STDMETHODCALLTYPE
*Release
)(
5927 ICaptureGraphBuilder2
* This
);
5929 /*** ICaptureGraphBuilder2 methods ***/
5930 HRESULT (STDMETHODCALLTYPE
*SetFiltergraph
)(
5931 ICaptureGraphBuilder2
* This
,
5932 IGraphBuilder
* pfg
);
5934 HRESULT (STDMETHODCALLTYPE
*GetFiltergraph
)(
5935 ICaptureGraphBuilder2
* This
,
5936 IGraphBuilder
** ppfg
);
5938 HRESULT (STDMETHODCALLTYPE
*SetOutputFileName
)(
5939 ICaptureGraphBuilder2
* This
,
5941 LPCOLESTR lpstrFile
,
5943 IFileSinkFilter
** ppSink
);
5945 HRESULT (STDMETHODCALLTYPE
*FindInterface
)(
5946 ICaptureGraphBuilder2
* This
,
5947 const GUID
* pCategory
,
5953 HRESULT (STDMETHODCALLTYPE
*RenderStream
)(
5954 ICaptureGraphBuilder2
* This
,
5955 const GUID
* pCategory
,
5958 IBaseFilter
* pfCompressor
,
5959 IBaseFilter
* pfRenderer
);
5961 HRESULT (STDMETHODCALLTYPE
*ControlStream
)(
5962 ICaptureGraphBuilder2
* This
,
5963 const GUID
* pCategory
,
5965 IBaseFilter
* pFilter
,
5966 REFERENCE_TIME
* pstart
,
5967 REFERENCE_TIME
* pstop
,
5971 HRESULT (STDMETHODCALLTYPE
*AllocCapFile
)(
5972 ICaptureGraphBuilder2
* This
,
5976 HRESULT (STDMETHODCALLTYPE
*CopyCaptureFile
)(
5977 ICaptureGraphBuilder2
* This
,
5981 IAMCopyCaptureFileProgress
* pCallback
);
5983 HRESULT (STDMETHODCALLTYPE
*FindPin
)(
5984 ICaptureGraphBuilder2
* This
,
5986 PIN_DIRECTION pindir
,
5987 const GUID
* pCategory
,
5997 /*** IUnknown methods ***/
5998 #define ICaptureGraphBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5999 #define ICaptureGraphBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p)
6000 #define ICaptureGraphBuilder2_Release(p) (p)->lpVtbl->Release(p)
6001 /*** ICaptureGraphBuilder2 methods ***/
6002 #define ICaptureGraphBuilder2_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
6003 #define ICaptureGraphBuilder2_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
6004 #define ICaptureGraphBuilder2_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
6005 #define ICaptureGraphBuilder2_FindInterface(p,a,b,c,d,e) (p)->lpVtbl->FindInterface(p,a,b,c,d,e)
6006 #define ICaptureGraphBuilder2_RenderStream(p,a,b,c,d,e) (p)->lpVtbl->RenderStream(p,a,b,c,d,e)
6007 #define ICaptureGraphBuilder2_ControlStream(p,a,b,c,d,e,f,g) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f,g)
6008 #define ICaptureGraphBuilder2_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
6009 #define ICaptureGraphBuilder2_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
6010 #define ICaptureGraphBuilder2_FindPin(p,a,b,c,d,e,f,g) (p)->lpVtbl->FindPin(p,a,b,c,d,e,f,g)
6015 #define ICaptureGraphBuilder2_METHODS \
6016 /*** IUnknown methods ***/ \
6017 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6018 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6019 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6020 /*** ICaptureGraphBuilder2 methods ***/ \
6021 STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
6022 STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
6023 STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
6024 STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
6025 STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
6026 STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
6027 STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
6028 STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE; \
6029 STDMETHOD_(HRESULT,FindPin)(THIS_ IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin) PURE;
6031 HRESULT CALLBACK
ICaptureGraphBuilder2_SetFiltergraph_Proxy(
6032 ICaptureGraphBuilder2
* This
,
6033 IGraphBuilder
* pfg
);
6034 void __RPC_STUB
ICaptureGraphBuilder2_SetFiltergraph_Stub(
6035 struct IRpcStubBuffer
* This
,
6036 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6037 PRPC_MESSAGE pRpcMessage
,
6038 DWORD
* pdwStubPhase
);
6039 HRESULT CALLBACK
ICaptureGraphBuilder2_GetFiltergraph_Proxy(
6040 ICaptureGraphBuilder2
* This
,
6041 IGraphBuilder
** ppfg
);
6042 void __RPC_STUB
ICaptureGraphBuilder2_GetFiltergraph_Stub(
6043 struct IRpcStubBuffer
* This
,
6044 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6045 PRPC_MESSAGE pRpcMessage
,
6046 DWORD
* pdwStubPhase
);
6047 HRESULT CALLBACK
ICaptureGraphBuilder2_SetOutputFileName_Proxy(
6048 ICaptureGraphBuilder2
* This
,
6050 LPCOLESTR lpstrFile
,
6052 IFileSinkFilter
** ppSink
);
6053 void __RPC_STUB
ICaptureGraphBuilder2_SetOutputFileName_Stub(
6054 struct IRpcStubBuffer
* This
,
6055 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6056 PRPC_MESSAGE pRpcMessage
,
6057 DWORD
* pdwStubPhase
);
6058 HRESULT CALLBACK
ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
6059 ICaptureGraphBuilder2
* This
,
6060 const GUID
* pCategory
,
6065 void __RPC_STUB
ICaptureGraphBuilder2_RemoteFindInterface_Stub(
6066 struct IRpcStubBuffer
* This
,
6067 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6068 PRPC_MESSAGE pRpcMessage
,
6069 DWORD
* pdwStubPhase
);
6070 HRESULT CALLBACK
ICaptureGraphBuilder2_FindInterface_Proxy(
6071 ICaptureGraphBuilder2
* This
,
6072 const GUID
* pCategory
,
6077 HRESULT __RPC_STUB
ICaptureGraphBuilder2_FindInterface_Stub(
6078 ICaptureGraphBuilder2
* This
,
6079 const GUID
* pCategory
,
6084 HRESULT CALLBACK
ICaptureGraphBuilder2_RenderStream_Proxy(
6085 ICaptureGraphBuilder2
* This
,
6086 const GUID
* pCategory
,
6089 IBaseFilter
* pfCompressor
,
6090 IBaseFilter
* pfRenderer
);
6091 void __RPC_STUB
ICaptureGraphBuilder2_RenderStream_Stub(
6092 struct IRpcStubBuffer
* This
,
6093 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6094 PRPC_MESSAGE pRpcMessage
,
6095 DWORD
* pdwStubPhase
);
6096 HRESULT CALLBACK
ICaptureGraphBuilder2_ControlStream_Proxy(
6097 ICaptureGraphBuilder2
* This
,
6098 const GUID
* pCategory
,
6100 IBaseFilter
* pFilter
,
6101 REFERENCE_TIME
* pstart
,
6102 REFERENCE_TIME
* pstop
,
6105 void __RPC_STUB
ICaptureGraphBuilder2_ControlStream_Stub(
6106 struct IRpcStubBuffer
* This
,
6107 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6108 PRPC_MESSAGE pRpcMessage
,
6109 DWORD
* pdwStubPhase
);
6110 HRESULT CALLBACK
ICaptureGraphBuilder2_AllocCapFile_Proxy(
6111 ICaptureGraphBuilder2
* This
,
6114 void __RPC_STUB
ICaptureGraphBuilder2_AllocCapFile_Stub(
6115 struct IRpcStubBuffer
* This
,
6116 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6117 PRPC_MESSAGE pRpcMessage
,
6118 DWORD
* pdwStubPhase
);
6119 HRESULT CALLBACK
ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
6120 ICaptureGraphBuilder2
* This
,
6124 IAMCopyCaptureFileProgress
* pCallback
);
6125 void __RPC_STUB
ICaptureGraphBuilder2_CopyCaptureFile_Stub(
6126 struct IRpcStubBuffer
* This
,
6127 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6128 PRPC_MESSAGE pRpcMessage
,
6129 DWORD
* pdwStubPhase
);
6130 HRESULT CALLBACK
ICaptureGraphBuilder2_FindPin_Proxy(
6131 ICaptureGraphBuilder2
* This
,
6133 PIN_DIRECTION pindir
,
6134 const GUID
* pCategory
,
6139 void __RPC_STUB
ICaptureGraphBuilder2_FindPin_Stub(
6140 struct IRpcStubBuffer
* This
,
6141 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6142 PRPC_MESSAGE pRpcMessage
,
6143 DWORD
* pdwStubPhase
);
6145 #endif /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
6147 enum _AM_RENSDEREXFLAGS
{
6148 AM_RENDEREX_RENDERTOEXISTINGRENDERERS
= 0x1
6151 #ifndef __IFilterGraph2_FWD_DEFINED__
6152 #define __IFilterGraph2_FWD_DEFINED__
6153 typedef struct IFilterGraph2 IFilterGraph2
;
6156 /*****************************************************************************
6157 * IFilterGraph2 interface
6159 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
6160 #define __IFilterGraph2_INTERFACE_DEFINED__
6162 DEFINE_GUID(IID_IFilterGraph2
, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
6163 #if defined(__cplusplus) && !defined(CINTERFACE)
6164 struct IFilterGraph2
: public IGraphBuilder
6166 virtual HRESULT STDMETHODCALLTYPE
AddSourceFilterForMoniker(
6169 LPCWSTR lpcwstrFilterName
,
6170 IBaseFilter
** ppFilter
) = 0;
6172 virtual HRESULT STDMETHODCALLTYPE
ReconnectEx(
6174 const AM_MEDIA_TYPE
* pmt
) = 0;
6176 virtual HRESULT STDMETHODCALLTYPE
RenderEx(
6179 DWORD
* pvContext
) = 0;
6183 typedef struct IFilterGraph2Vtbl IFilterGraph2Vtbl
;
6184 struct IFilterGraph2
{
6185 const IFilterGraph2Vtbl
* lpVtbl
;
6187 struct IFilterGraph2Vtbl
{
6190 /*** IUnknown methods ***/
6191 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6192 IFilterGraph2
* This
,
6196 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6197 IFilterGraph2
* This
);
6199 ULONG (STDMETHODCALLTYPE
*Release
)(
6200 IFilterGraph2
* This
);
6202 /*** IFilterGraph methods ***/
6203 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
6204 IFilterGraph2
* This
,
6205 IBaseFilter
* pFilter
,
6208 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
6209 IFilterGraph2
* This
,
6210 IBaseFilter
* pFilter
);
6212 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
6213 IFilterGraph2
* This
,
6214 IEnumFilters
** ppEnum
);
6216 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
6217 IFilterGraph2
* This
,
6219 IBaseFilter
** ppFilter
);
6221 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
6222 IFilterGraph2
* This
,
6225 const AM_MEDIA_TYPE
* pmt
);
6227 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
6228 IFilterGraph2
* This
,
6231 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
6232 IFilterGraph2
* This
,
6235 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
6236 IFilterGraph2
* This
);
6238 /*** IGraphBuilder methods ***/
6239 HRESULT (STDMETHODCALLTYPE
*Connect
)(
6240 IFilterGraph2
* This
,
6244 HRESULT (STDMETHODCALLTYPE
*Render
)(
6245 IFilterGraph2
* This
,
6248 HRESULT (STDMETHODCALLTYPE
*RenderFile
)(
6249 IFilterGraph2
* This
,
6250 LPCWSTR lpcwstrFile
,
6251 LPCWSTR lpcwstrPlayList
);
6253 HRESULT (STDMETHODCALLTYPE
*AddSourceFilter
)(
6254 IFilterGraph2
* This
,
6255 LPCWSTR lpcwstrFileName
,
6256 LPCWSTR lpcwstrFilterName
,
6257 IBaseFilter
** ppFilter
);
6259 HRESULT (STDMETHODCALLTYPE
*SetLogFile
)(
6260 IFilterGraph2
* This
,
6263 HRESULT (STDMETHODCALLTYPE
*Abort
)(
6264 IFilterGraph2
* This
);
6266 HRESULT (STDMETHODCALLTYPE
*ShouldOperationContinue
)(
6267 IFilterGraph2
* This
);
6269 /*** IFilterGraph2 methods ***/
6270 HRESULT (STDMETHODCALLTYPE
*AddSourceFilterForMoniker
)(
6271 IFilterGraph2
* This
,
6274 LPCWSTR lpcwstrFilterName
,
6275 IBaseFilter
** ppFilter
);
6277 HRESULT (STDMETHODCALLTYPE
*ReconnectEx
)(
6278 IFilterGraph2
* This
,
6280 const AM_MEDIA_TYPE
* pmt
);
6282 HRESULT (STDMETHODCALLTYPE
*RenderEx
)(
6283 IFilterGraph2
* This
,
6292 /*** IUnknown methods ***/
6293 #define IFilterGraph2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6294 #define IFilterGraph2_AddRef(p) (p)->lpVtbl->AddRef(p)
6295 #define IFilterGraph2_Release(p) (p)->lpVtbl->Release(p)
6296 /*** IFilterGraph methods ***/
6297 #define IFilterGraph2_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
6298 #define IFilterGraph2_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
6299 #define IFilterGraph2_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
6300 #define IFilterGraph2_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
6301 #define IFilterGraph2_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
6302 #define IFilterGraph2_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
6303 #define IFilterGraph2_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
6304 #define IFilterGraph2_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
6305 /*** IGraphBuilder methods ***/
6306 #define IFilterGraph2_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
6307 #define IFilterGraph2_Render(p,a) (p)->lpVtbl->Render(p,a)
6308 #define IFilterGraph2_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
6309 #define IFilterGraph2_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
6310 #define IFilterGraph2_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
6311 #define IFilterGraph2_Abort(p) (p)->lpVtbl->Abort(p)
6312 #define IFilterGraph2_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
6313 /*** IFilterGraph2 methods ***/
6314 #define IFilterGraph2_AddSourceFilterForMoniker(p,a,b,c,d) (p)->lpVtbl->AddSourceFilterForMoniker(p,a,b,c,d)
6315 #define IFilterGraph2_ReconnectEx(p,a,b) (p)->lpVtbl->ReconnectEx(p,a,b)
6316 #define IFilterGraph2_RenderEx(p,a,b,c) (p)->lpVtbl->RenderEx(p,a,b,c)
6321 #define IFilterGraph2_METHODS \
6322 /*** IUnknown methods ***/ \
6323 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6324 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6325 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6326 /*** IFilterGraph methods ***/ \
6327 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
6328 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
6329 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
6330 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
6331 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
6332 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
6333 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
6334 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
6335 /*** IGraphBuilder methods ***/ \
6336 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
6337 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
6338 STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
6339 STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
6340 STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
6341 STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
6342 STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE; \
6343 /*** IFilterGraph2 methods ***/ \
6344 STDMETHOD_(HRESULT,AddSourceFilterForMoniker)(THIS_ IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
6345 STDMETHOD_(HRESULT,ReconnectEx)(THIS_ IPin* ppin, const AM_MEDIA_TYPE* pmt) PURE; \
6346 STDMETHOD_(HRESULT,RenderEx)(THIS_ IPin* pPinOut, DWORD dwFlags, DWORD* pvContext) PURE;
6348 HRESULT CALLBACK
IFilterGraph2_AddSourceFilterForMoniker_Proxy(
6349 IFilterGraph2
* This
,
6352 LPCWSTR lpcwstrFilterName
,
6353 IBaseFilter
** ppFilter
);
6354 void __RPC_STUB
IFilterGraph2_AddSourceFilterForMoniker_Stub(
6355 struct IRpcStubBuffer
* This
,
6356 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6357 PRPC_MESSAGE pRpcMessage
,
6358 DWORD
* pdwStubPhase
);
6359 HRESULT CALLBACK
IFilterGraph2_ReconnectEx_Proxy(
6360 IFilterGraph2
* This
,
6362 const AM_MEDIA_TYPE
* pmt
);
6363 void __RPC_STUB
IFilterGraph2_ReconnectEx_Stub(
6364 struct IRpcStubBuffer
* This
,
6365 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6366 PRPC_MESSAGE pRpcMessage
,
6367 DWORD
* pdwStubPhase
);
6368 HRESULT CALLBACK
IFilterGraph2_RenderEx_Proxy(
6369 IFilterGraph2
* This
,
6373 void __RPC_STUB
IFilterGraph2_RenderEx_Stub(
6374 struct IRpcStubBuffer
* This
,
6375 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6376 PRPC_MESSAGE pRpcMessage
,
6377 DWORD
* pdwStubPhase
);
6379 #endif /* __IFilterGraph2_INTERFACE_DEFINED__ */
6381 #ifndef __IStreamBuilder_FWD_DEFINED__
6382 #define __IStreamBuilder_FWD_DEFINED__
6383 typedef struct IStreamBuilder IStreamBuilder
;
6386 /*****************************************************************************
6387 * IStreamBuilder interface
6389 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
6390 #define __IStreamBuilder_INTERFACE_DEFINED__
6392 DEFINE_GUID(IID_IStreamBuilder
, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6393 #if defined(__cplusplus) && !defined(CINTERFACE)
6394 struct IStreamBuilder
: public IUnknown
6396 virtual HRESULT STDMETHODCALLTYPE
Render(
6398 IGraphBuilder
* pGraph
) = 0;
6400 virtual HRESULT STDMETHODCALLTYPE
Backout(
6402 IGraphBuilder
* pGraph
) = 0;
6406 typedef struct IStreamBuilderVtbl IStreamBuilderVtbl
;
6407 struct IStreamBuilder
{
6408 const IStreamBuilderVtbl
* lpVtbl
;
6410 struct IStreamBuilderVtbl
{
6413 /*** IUnknown methods ***/
6414 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6415 IStreamBuilder
* This
,
6419 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6420 IStreamBuilder
* This
);
6422 ULONG (STDMETHODCALLTYPE
*Release
)(
6423 IStreamBuilder
* This
);
6425 /*** IStreamBuilder methods ***/
6426 HRESULT (STDMETHODCALLTYPE
*Render
)(
6427 IStreamBuilder
* This
,
6429 IGraphBuilder
* pGraph
);
6431 HRESULT (STDMETHODCALLTYPE
*Backout
)(
6432 IStreamBuilder
* This
,
6434 IGraphBuilder
* pGraph
);
6440 /*** IUnknown methods ***/
6441 #define IStreamBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6442 #define IStreamBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
6443 #define IStreamBuilder_Release(p) (p)->lpVtbl->Release(p)
6444 /*** IStreamBuilder methods ***/
6445 #define IStreamBuilder_Render(p,a,b) (p)->lpVtbl->Render(p,a,b)
6446 #define IStreamBuilder_Backout(p,a,b) (p)->lpVtbl->Backout(p,a,b)
6451 #define IStreamBuilder_METHODS \
6452 /*** IUnknown methods ***/ \
6453 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6454 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6455 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6456 /*** IStreamBuilder methods ***/ \
6457 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE; \
6458 STDMETHOD_(HRESULT,Backout)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE;
6460 HRESULT CALLBACK
IStreamBuilder_Render_Proxy(
6461 IStreamBuilder
* This
,
6463 IGraphBuilder
* pGraph
);
6464 void __RPC_STUB
IStreamBuilder_Render_Stub(
6465 struct IRpcStubBuffer
* This
,
6466 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6467 PRPC_MESSAGE pRpcMessage
,
6468 DWORD
* pdwStubPhase
);
6469 HRESULT CALLBACK
IStreamBuilder_Backout_Proxy(
6470 IStreamBuilder
* This
,
6472 IGraphBuilder
* pGraph
);
6473 void __RPC_STUB
IStreamBuilder_Backout_Stub(
6474 struct IRpcStubBuffer
* This
,
6475 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6476 PRPC_MESSAGE pRpcMessage
,
6477 DWORD
* pdwStubPhase
);
6479 #endif /* __IStreamBuilder_INTERFACE_DEFINED__ */
6481 #ifndef __IAsyncReader_FWD_DEFINED__
6482 #define __IAsyncReader_FWD_DEFINED__
6483 typedef struct IAsyncReader IAsyncReader
;
6486 /*****************************************************************************
6487 * IAsyncReader interface
6489 #ifndef __IAsyncReader_INTERFACE_DEFINED__
6490 #define __IAsyncReader_INTERFACE_DEFINED__
6492 DEFINE_GUID(IID_IAsyncReader
, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6493 #if defined(__cplusplus) && !defined(CINTERFACE)
6494 struct IAsyncReader
: public IUnknown
6496 virtual HRESULT STDMETHODCALLTYPE
RequestAllocator(
6497 IMemAllocator
* pPreferred
,
6498 ALLOCATOR_PROPERTIES
* pProps
,
6499 IMemAllocator
** ppActual
) = 0;
6501 virtual HRESULT STDMETHODCALLTYPE
Request(
6502 IMediaSample
* pSample
,
6503 DWORD_PTR dwUser
) = 0;
6505 virtual HRESULT STDMETHODCALLTYPE
WaitForNext(
6507 IMediaSample
** ppSample
,
6508 DWORD_PTR
* pdwUser
) = 0;
6510 virtual HRESULT STDMETHODCALLTYPE
SyncReadAligned(
6511 IMediaSample
* pSample
) = 0;
6513 virtual HRESULT STDMETHODCALLTYPE
SyncRead(
6514 LONGLONG llPosition
,
6518 virtual HRESULT STDMETHODCALLTYPE
Length(
6520 LONGLONG
* pAvailable
) = 0;
6522 virtual HRESULT STDMETHODCALLTYPE
BeginFlush(
6525 virtual HRESULT STDMETHODCALLTYPE
EndFlush(
6530 typedef struct IAsyncReaderVtbl IAsyncReaderVtbl
;
6531 struct IAsyncReader
{
6532 const IAsyncReaderVtbl
* lpVtbl
;
6534 struct IAsyncReaderVtbl
{
6537 /*** IUnknown methods ***/
6538 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6543 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6544 IAsyncReader
* This
);
6546 ULONG (STDMETHODCALLTYPE
*Release
)(
6547 IAsyncReader
* This
);
6549 /*** IAsyncReader methods ***/
6550 HRESULT (STDMETHODCALLTYPE
*RequestAllocator
)(
6552 IMemAllocator
* pPreferred
,
6553 ALLOCATOR_PROPERTIES
* pProps
,
6554 IMemAllocator
** ppActual
);
6556 HRESULT (STDMETHODCALLTYPE
*Request
)(
6558 IMediaSample
* pSample
,
6561 HRESULT (STDMETHODCALLTYPE
*WaitForNext
)(
6564 IMediaSample
** ppSample
,
6565 DWORD_PTR
* pdwUser
);
6567 HRESULT (STDMETHODCALLTYPE
*SyncReadAligned
)(
6569 IMediaSample
* pSample
);
6571 HRESULT (STDMETHODCALLTYPE
*SyncRead
)(
6573 LONGLONG llPosition
,
6577 HRESULT (STDMETHODCALLTYPE
*Length
)(
6580 LONGLONG
* pAvailable
);
6582 HRESULT (STDMETHODCALLTYPE
*BeginFlush
)(
6583 IAsyncReader
* This
);
6585 HRESULT (STDMETHODCALLTYPE
*EndFlush
)(
6586 IAsyncReader
* This
);
6592 /*** IUnknown methods ***/
6593 #define IAsyncReader_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6594 #define IAsyncReader_AddRef(p) (p)->lpVtbl->AddRef(p)
6595 #define IAsyncReader_Release(p) (p)->lpVtbl->Release(p)
6596 /*** IAsyncReader methods ***/
6597 #define IAsyncReader_RequestAllocator(p,a,b,c) (p)->lpVtbl->RequestAllocator(p,a,b,c)
6598 #define IAsyncReader_Request(p,a,b) (p)->lpVtbl->Request(p,a,b)
6599 #define IAsyncReader_WaitForNext(p,a,b,c) (p)->lpVtbl->WaitForNext(p,a,b,c)
6600 #define IAsyncReader_SyncReadAligned(p,a) (p)->lpVtbl->SyncReadAligned(p,a)
6601 #define IAsyncReader_SyncRead(p,a,b,c) (p)->lpVtbl->SyncRead(p,a,b,c)
6602 #define IAsyncReader_Length(p,a,b) (p)->lpVtbl->Length(p,a,b)
6603 #define IAsyncReader_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
6604 #define IAsyncReader_EndFlush(p) (p)->lpVtbl->EndFlush(p)
6609 #define IAsyncReader_METHODS \
6610 /*** IUnknown methods ***/ \
6611 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6612 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6613 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6614 /*** IAsyncReader methods ***/ \
6615 STDMETHOD_(HRESULT,RequestAllocator)(THIS_ IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual) PURE; \
6616 STDMETHOD_(HRESULT,Request)(THIS_ IMediaSample* pSample, DWORD_PTR dwUser) PURE; \
6617 STDMETHOD_(HRESULT,WaitForNext)(THIS_ DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser) PURE; \
6618 STDMETHOD_(HRESULT,SyncReadAligned)(THIS_ IMediaSample* pSample) PURE; \
6619 STDMETHOD_(HRESULT,SyncRead)(THIS_ LONGLONG llPosition, LONG lLength, BYTE* pBuffer) PURE; \
6620 STDMETHOD_(HRESULT,Length)(THIS_ LONGLONG* pTotal, LONGLONG* pAvailable) PURE; \
6621 STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
6622 STDMETHOD_(HRESULT,EndFlush)(THIS) PURE;
6624 HRESULT CALLBACK
IAsyncReader_RequestAllocator_Proxy(
6626 IMemAllocator
* pPreferred
,
6627 ALLOCATOR_PROPERTIES
* pProps
,
6628 IMemAllocator
** ppActual
);
6629 void __RPC_STUB
IAsyncReader_RequestAllocator_Stub(
6630 struct IRpcStubBuffer
* This
,
6631 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6632 PRPC_MESSAGE pRpcMessage
,
6633 DWORD
* pdwStubPhase
);
6634 HRESULT CALLBACK
IAsyncReader_Request_Proxy(
6636 IMediaSample
* pSample
,
6638 void __RPC_STUB
IAsyncReader_Request_Stub(
6639 struct IRpcStubBuffer
* This
,
6640 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6641 PRPC_MESSAGE pRpcMessage
,
6642 DWORD
* pdwStubPhase
);
6643 HRESULT CALLBACK
IAsyncReader_WaitForNext_Proxy(
6646 IMediaSample
** ppSample
,
6647 DWORD_PTR
* pdwUser
);
6648 void __RPC_STUB
IAsyncReader_WaitForNext_Stub(
6649 struct IRpcStubBuffer
* This
,
6650 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6651 PRPC_MESSAGE pRpcMessage
,
6652 DWORD
* pdwStubPhase
);
6653 HRESULT CALLBACK
IAsyncReader_SyncReadAligned_Proxy(
6655 IMediaSample
* pSample
);
6656 void __RPC_STUB
IAsyncReader_SyncReadAligned_Stub(
6657 struct IRpcStubBuffer
* This
,
6658 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6659 PRPC_MESSAGE pRpcMessage
,
6660 DWORD
* pdwStubPhase
);
6661 HRESULT CALLBACK
IAsyncReader_SyncRead_Proxy(
6663 LONGLONG llPosition
,
6666 void __RPC_STUB
IAsyncReader_SyncRead_Stub(
6667 struct IRpcStubBuffer
* This
,
6668 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6669 PRPC_MESSAGE pRpcMessage
,
6670 DWORD
* pdwStubPhase
);
6671 HRESULT CALLBACK
IAsyncReader_Length_Proxy(
6674 LONGLONG
* pAvailable
);
6675 void __RPC_STUB
IAsyncReader_Length_Stub(
6676 struct IRpcStubBuffer
* This
,
6677 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6678 PRPC_MESSAGE pRpcMessage
,
6679 DWORD
* pdwStubPhase
);
6680 HRESULT CALLBACK
IAsyncReader_BeginFlush_Proxy(
6681 IAsyncReader
* This
);
6682 void __RPC_STUB
IAsyncReader_BeginFlush_Stub(
6683 struct IRpcStubBuffer
* This
,
6684 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6685 PRPC_MESSAGE pRpcMessage
,
6686 DWORD
* pdwStubPhase
);
6687 HRESULT CALLBACK
IAsyncReader_EndFlush_Proxy(
6688 IAsyncReader
* This
);
6689 void __RPC_STUB
IAsyncReader_EndFlush_Stub(
6690 struct IRpcStubBuffer
* This
,
6691 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6692 PRPC_MESSAGE pRpcMessage
,
6693 DWORD
* pdwStubPhase
);
6695 #endif /* __IAsyncReader_INTERFACE_DEFINED__ */
6697 #ifndef __IGraphVersion_FWD_DEFINED__
6698 #define __IGraphVersion_FWD_DEFINED__
6699 typedef struct IGraphVersion IGraphVersion
;
6702 /*****************************************************************************
6703 * IGraphVersion interface
6705 #ifndef __IGraphVersion_INTERFACE_DEFINED__
6706 #define __IGraphVersion_INTERFACE_DEFINED__
6708 DEFINE_GUID(IID_IGraphVersion
, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6709 #if defined(__cplusplus) && !defined(CINTERFACE)
6710 struct IGraphVersion
: public IUnknown
6712 virtual HRESULT STDMETHODCALLTYPE
QueryVersion(
6713 LONG
* pVersion
) = 0;
6717 typedef struct IGraphVersionVtbl IGraphVersionVtbl
;
6718 struct IGraphVersion
{
6719 const IGraphVersionVtbl
* lpVtbl
;
6721 struct IGraphVersionVtbl
{
6724 /*** IUnknown methods ***/
6725 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6726 IGraphVersion
* This
,
6730 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6731 IGraphVersion
* This
);
6733 ULONG (STDMETHODCALLTYPE
*Release
)(
6734 IGraphVersion
* This
);
6736 /*** IGraphVersion methods ***/
6737 HRESULT (STDMETHODCALLTYPE
*QueryVersion
)(
6738 IGraphVersion
* This
,
6745 /*** IUnknown methods ***/
6746 #define IGraphVersion_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6747 #define IGraphVersion_AddRef(p) (p)->lpVtbl->AddRef(p)
6748 #define IGraphVersion_Release(p) (p)->lpVtbl->Release(p)
6749 /*** IGraphVersion methods ***/
6750 #define IGraphVersion_QueryVersion(p,a) (p)->lpVtbl->QueryVersion(p,a)
6755 #define IGraphVersion_METHODS \
6756 /*** IUnknown methods ***/ \
6757 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6758 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6759 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6760 /*** IGraphVersion methods ***/ \
6761 STDMETHOD_(HRESULT,QueryVersion)(THIS_ LONG* pVersion) PURE;
6763 HRESULT CALLBACK
IGraphVersion_QueryVersion_Proxy(
6764 IGraphVersion
* This
,
6766 void __RPC_STUB
IGraphVersion_QueryVersion_Stub(
6767 struct IRpcStubBuffer
* This
,
6768 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6769 PRPC_MESSAGE pRpcMessage
,
6770 DWORD
* pdwStubPhase
);
6772 #endif /* __IGraphVersion_INTERFACE_DEFINED__ */
6774 #ifndef __IResourceConsumer_FWD_DEFINED__
6775 #define __IResourceConsumer_FWD_DEFINED__
6776 typedef struct IResourceConsumer IResourceConsumer
;
6779 /*****************************************************************************
6780 * IResourceConsumer interface
6782 #ifndef __IResourceConsumer_INTERFACE_DEFINED__
6783 #define __IResourceConsumer_INTERFACE_DEFINED__
6785 DEFINE_GUID(IID_IResourceConsumer
, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6786 #if defined(__cplusplus) && !defined(CINTERFACE)
6787 struct IResourceConsumer
: public IUnknown
6789 virtual HRESULT STDMETHODCALLTYPE
AcquireResource(
6790 LONG idResource
) = 0;
6792 virtual HRESULT STDMETHODCALLTYPE
ReleaseResource(
6793 LONG idResource
) = 0;
6797 typedef struct IResourceConsumerVtbl IResourceConsumerVtbl
;
6798 struct IResourceConsumer
{
6799 const IResourceConsumerVtbl
* lpVtbl
;
6801 struct IResourceConsumerVtbl
{
6804 /*** IUnknown methods ***/
6805 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6806 IResourceConsumer
* This
,
6810 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6811 IResourceConsumer
* This
);
6813 ULONG (STDMETHODCALLTYPE
*Release
)(
6814 IResourceConsumer
* This
);
6816 /*** IResourceConsumer methods ***/
6817 HRESULT (STDMETHODCALLTYPE
*AcquireResource
)(
6818 IResourceConsumer
* This
,
6821 HRESULT (STDMETHODCALLTYPE
*ReleaseResource
)(
6822 IResourceConsumer
* This
,
6829 /*** IUnknown methods ***/
6830 #define IResourceConsumer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6831 #define IResourceConsumer_AddRef(p) (p)->lpVtbl->AddRef(p)
6832 #define IResourceConsumer_Release(p) (p)->lpVtbl->Release(p)
6833 /*** IResourceConsumer methods ***/
6834 #define IResourceConsumer_AcquireResource(p,a) (p)->lpVtbl->AcquireResource(p,a)
6835 #define IResourceConsumer_ReleaseResource(p,a) (p)->lpVtbl->ReleaseResource(p,a)
6840 #define IResourceConsumer_METHODS \
6841 /*** IUnknown methods ***/ \
6842 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6843 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6844 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6845 /*** IResourceConsumer methods ***/ \
6846 STDMETHOD_(HRESULT,AcquireResource)(THIS_ LONG idResource) PURE; \
6847 STDMETHOD_(HRESULT,ReleaseResource)(THIS_ LONG idResource) PURE;
6849 HRESULT CALLBACK
IResourceConsumer_AcquireResource_Proxy(
6850 IResourceConsumer
* This
,
6852 void __RPC_STUB
IResourceConsumer_AcquireResource_Stub(
6853 struct IRpcStubBuffer
* This
,
6854 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6855 PRPC_MESSAGE pRpcMessage
,
6856 DWORD
* pdwStubPhase
);
6857 HRESULT CALLBACK
IResourceConsumer_ReleaseResource_Proxy(
6858 IResourceConsumer
* This
,
6860 void __RPC_STUB
IResourceConsumer_ReleaseResource_Stub(
6861 struct IRpcStubBuffer
* This
,
6862 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6863 PRPC_MESSAGE pRpcMessage
,
6864 DWORD
* pdwStubPhase
);
6866 #endif /* __IResourceConsumer_INTERFACE_DEFINED__ */
6868 #ifndef __IResourceManager_FWD_DEFINED__
6869 #define __IResourceManager_FWD_DEFINED__
6870 typedef struct IResourceManager IResourceManager
;
6873 /*****************************************************************************
6874 * IResourceManager interface
6876 #ifndef __IResourceManager_INTERFACE_DEFINED__
6877 #define __IResourceManager_INTERFACE_DEFINED__
6879 DEFINE_GUID(IID_IResourceManager
, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6880 #if defined(__cplusplus) && !defined(CINTERFACE)
6881 struct IResourceManager
: public IUnknown
6883 virtual HRESULT STDMETHODCALLTYPE
Register(
6888 virtual HRESULT STDMETHODCALLTYPE
RegisterGroup(
6894 virtual HRESULT STDMETHODCALLTYPE
RequestResource(
6896 IUnknown
* pFocusObject
,
6897 IResourceConsumer
* pConsumer
) = 0;
6899 virtual HRESULT STDMETHODCALLTYPE
NotifyAcquire(
6901 IResourceConsumer
* pConsumer
,
6904 virtual HRESULT STDMETHODCALLTYPE
NotifyRelease(
6906 IResourceConsumer
* pConsumer
,
6907 BOOL bStillWant
) = 0;
6909 virtual HRESULT STDMETHODCALLTYPE
CancelRequest(
6911 IResourceConsumer
* pConsumer
) = 0;
6913 virtual HRESULT STDMETHODCALLTYPE
SetFocus(
6914 IUnknown
* pFocusObject
) = 0;
6916 virtual HRESULT STDMETHODCALLTYPE
ReleaseFocus(
6917 IUnknown
* pFocusObject
) = 0;
6921 typedef struct IResourceManagerVtbl IResourceManagerVtbl
;
6922 struct IResourceManager
{
6923 const IResourceManagerVtbl
* lpVtbl
;
6925 struct IResourceManagerVtbl
{
6928 /*** IUnknown methods ***/
6929 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6930 IResourceManager
* This
,
6934 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6935 IResourceManager
* This
);
6937 ULONG (STDMETHODCALLTYPE
*Release
)(
6938 IResourceManager
* This
);
6940 /*** IResourceManager methods ***/
6941 HRESULT (STDMETHODCALLTYPE
*Register
)(
6942 IResourceManager
* This
,
6947 HRESULT (STDMETHODCALLTYPE
*RegisterGroup
)(
6948 IResourceManager
* This
,
6954 HRESULT (STDMETHODCALLTYPE
*RequestResource
)(
6955 IResourceManager
* This
,
6957 IUnknown
* pFocusObject
,
6958 IResourceConsumer
* pConsumer
);
6960 HRESULT (STDMETHODCALLTYPE
*NotifyAcquire
)(
6961 IResourceManager
* This
,
6963 IResourceConsumer
* pConsumer
,
6966 HRESULT (STDMETHODCALLTYPE
*NotifyRelease
)(
6967 IResourceManager
* This
,
6969 IResourceConsumer
* pConsumer
,
6972 HRESULT (STDMETHODCALLTYPE
*CancelRequest
)(
6973 IResourceManager
* This
,
6975 IResourceConsumer
* pConsumer
);
6977 HRESULT (STDMETHODCALLTYPE
*SetFocus
)(
6978 IResourceManager
* This
,
6979 IUnknown
* pFocusObject
);
6981 HRESULT (STDMETHODCALLTYPE
*ReleaseFocus
)(
6982 IResourceManager
* This
,
6983 IUnknown
* pFocusObject
);
6989 /*** IUnknown methods ***/
6990 #define IResourceManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6991 #define IResourceManager_AddRef(p) (p)->lpVtbl->AddRef(p)
6992 #define IResourceManager_Release(p) (p)->lpVtbl->Release(p)
6993 /*** IResourceManager methods ***/
6994 #define IResourceManager_Register(p,a,b,c) (p)->lpVtbl->Register(p,a,b,c)
6995 #define IResourceManager_RegisterGroup(p,a,b,c,d) (p)->lpVtbl->RegisterGroup(p,a,b,c,d)
6996 #define IResourceManager_RequestResource(p,a,b,c) (p)->lpVtbl->RequestResource(p,a,b,c)
6997 #define IResourceManager_NotifyAcquire(p,a,b,c) (p)->lpVtbl->NotifyAcquire(p,a,b,c)
6998 #define IResourceManager_NotifyRelease(p,a,b,c) (p)->lpVtbl->NotifyRelease(p,a,b,c)
6999 #define IResourceManager_CancelRequest(p,a,b) (p)->lpVtbl->CancelRequest(p,a,b)
7000 #define IResourceManager_SetFocus(p,a) (p)->lpVtbl->SetFocus(p,a)
7001 #define IResourceManager_ReleaseFocus(p,a) (p)->lpVtbl->ReleaseFocus(p,a)
7006 #define IResourceManager_METHODS \
7007 /*** IUnknown methods ***/ \
7008 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7009 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7010 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7011 /*** IResourceManager methods ***/ \
7012 STDMETHOD_(HRESULT,Register)(THIS_ LPCWSTR pName, LONG cResource, LONG* plToken) PURE; \
7013 STDMETHOD_(HRESULT,RegisterGroup)(THIS_ LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken) PURE; \
7014 STDMETHOD_(HRESULT,RequestResource)(THIS_ LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer) PURE; \
7015 STDMETHOD_(HRESULT,NotifyAcquire)(THIS_ LONG idResource, IResourceConsumer* pConsumer, HRESULT hr) PURE; \
7016 STDMETHOD_(HRESULT,NotifyRelease)(THIS_ LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant) PURE; \
7017 STDMETHOD_(HRESULT,CancelRequest)(THIS_ LONG idResource, IResourceConsumer* pConsumer) PURE; \
7018 STDMETHOD_(HRESULT,SetFocus)(THIS_ IUnknown* pFocusObject) PURE; \
7019 STDMETHOD_(HRESULT,ReleaseFocus)(THIS_ IUnknown* pFocusObject) PURE;
7021 HRESULT CALLBACK
IResourceManager_Register_Proxy(
7022 IResourceManager
* This
,
7026 void __RPC_STUB
IResourceManager_Register_Stub(
7027 struct IRpcStubBuffer
* This
,
7028 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7029 PRPC_MESSAGE pRpcMessage
,
7030 DWORD
* pdwStubPhase
);
7031 HRESULT CALLBACK
IResourceManager_RegisterGroup_Proxy(
7032 IResourceManager
* This
,
7037 void __RPC_STUB
IResourceManager_RegisterGroup_Stub(
7038 struct IRpcStubBuffer
* This
,
7039 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7040 PRPC_MESSAGE pRpcMessage
,
7041 DWORD
* pdwStubPhase
);
7042 HRESULT CALLBACK
IResourceManager_RequestResource_Proxy(
7043 IResourceManager
* This
,
7045 IUnknown
* pFocusObject
,
7046 IResourceConsumer
* pConsumer
);
7047 void __RPC_STUB
IResourceManager_RequestResource_Stub(
7048 struct IRpcStubBuffer
* This
,
7049 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7050 PRPC_MESSAGE pRpcMessage
,
7051 DWORD
* pdwStubPhase
);
7052 HRESULT CALLBACK
IResourceManager_NotifyAcquire_Proxy(
7053 IResourceManager
* This
,
7055 IResourceConsumer
* pConsumer
,
7057 void __RPC_STUB
IResourceManager_NotifyAcquire_Stub(
7058 struct IRpcStubBuffer
* This
,
7059 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7060 PRPC_MESSAGE pRpcMessage
,
7061 DWORD
* pdwStubPhase
);
7062 HRESULT CALLBACK
IResourceManager_NotifyRelease_Proxy(
7063 IResourceManager
* This
,
7065 IResourceConsumer
* pConsumer
,
7067 void __RPC_STUB
IResourceManager_NotifyRelease_Stub(
7068 struct IRpcStubBuffer
* This
,
7069 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7070 PRPC_MESSAGE pRpcMessage
,
7071 DWORD
* pdwStubPhase
);
7072 HRESULT CALLBACK
IResourceManager_CancelRequest_Proxy(
7073 IResourceManager
* This
,
7075 IResourceConsumer
* pConsumer
);
7076 void __RPC_STUB
IResourceManager_CancelRequest_Stub(
7077 struct IRpcStubBuffer
* This
,
7078 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7079 PRPC_MESSAGE pRpcMessage
,
7080 DWORD
* pdwStubPhase
);
7081 HRESULT CALLBACK
IResourceManager_SetFocus_Proxy(
7082 IResourceManager
* This
,
7083 IUnknown
* pFocusObject
);
7084 void __RPC_STUB
IResourceManager_SetFocus_Stub(
7085 struct IRpcStubBuffer
* This
,
7086 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7087 PRPC_MESSAGE pRpcMessage
,
7088 DWORD
* pdwStubPhase
);
7089 HRESULT CALLBACK
IResourceManager_ReleaseFocus_Proxy(
7090 IResourceManager
* This
,
7091 IUnknown
* pFocusObject
);
7092 void __RPC_STUB
IResourceManager_ReleaseFocus_Stub(
7093 struct IRpcStubBuffer
* This
,
7094 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7095 PRPC_MESSAGE pRpcMessage
,
7096 DWORD
* pdwStubPhase
);
7098 #endif /* __IResourceManager_INTERFACE_DEFINED__ */
7100 #ifndef _IKsPropertySet_
7101 #define _IKsPropertySet_
7102 #define KSPROPERTY_SUPPORT_GET 1
7103 #define KSPROPERTY_SUPPORT_SET 2
7104 /*****************************************************************************
7105 * IKsPropertySet interface
7107 #ifndef __IKsPropertySet_INTERFACE_DEFINED__
7108 #define __IKsPropertySet_INTERFACE_DEFINED__
7110 DEFINE_GUID(IID_IKsPropertySet
, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
7111 #if defined(__cplusplus) && !defined(CINTERFACE)
7112 struct IKsPropertySet
: public IUnknown
7114 virtual HRESULT STDMETHODCALLTYPE
Set(
7115 REFGUID guidPropSet
,
7117 LPVOID pInstanceData
,
7118 DWORD cbInstanceData
,
7120 DWORD cbPropData
) = 0;
7122 virtual HRESULT STDMETHODCALLTYPE
Get(
7123 REFGUID guidPropSet
,
7125 LPVOID pInstanceData
,
7126 DWORD cbInstanceData
,
7129 DWORD
* pcbReturned
) = 0;
7131 virtual HRESULT STDMETHODCALLTYPE
QuerySupported(
7132 REFGUID guidPropSet
,
7134 DWORD
* pTypeSupport
) = 0;
7138 typedef struct IKsPropertySetVtbl IKsPropertySetVtbl
;
7139 struct IKsPropertySet
{
7140 const IKsPropertySetVtbl
* lpVtbl
;
7142 struct IKsPropertySetVtbl
{
7145 /*** IUnknown methods ***/
7146 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7147 IKsPropertySet
* This
,
7151 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7152 IKsPropertySet
* This
);
7154 ULONG (STDMETHODCALLTYPE
*Release
)(
7155 IKsPropertySet
* This
);
7157 /*** IKsPropertySet methods ***/
7158 HRESULT (STDMETHODCALLTYPE
*Set
)(
7159 IKsPropertySet
* This
,
7160 REFGUID guidPropSet
,
7162 LPVOID pInstanceData
,
7163 DWORD cbInstanceData
,
7167 HRESULT (STDMETHODCALLTYPE
*Get
)(
7168 IKsPropertySet
* This
,
7169 REFGUID guidPropSet
,
7171 LPVOID pInstanceData
,
7172 DWORD cbInstanceData
,
7175 DWORD
* pcbReturned
);
7177 HRESULT (STDMETHODCALLTYPE
*QuerySupported
)(
7178 IKsPropertySet
* This
,
7179 REFGUID guidPropSet
,
7181 DWORD
* pTypeSupport
);
7187 /*** IUnknown methods ***/
7188 #define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7189 #define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
7190 #define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p)
7191 /*** IKsPropertySet methods ***/
7192 #define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
7193 #define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
7194 #define IKsPropertySet_QuerySupported(p,a,b,c) (p)->lpVtbl->QuerySupported(p,a,b,c)
7199 #define IKsPropertySet_METHODS \
7200 /*** IUnknown methods ***/ \
7201 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7202 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7203 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7204 /*** IKsPropertySet methods ***/ \
7205 STDMETHOD_(HRESULT,Set)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData) PURE; \
7206 STDMETHOD_(HRESULT,Get)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned) PURE; \
7207 STDMETHOD_(HRESULT,QuerySupported)(THIS_ REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport) PURE;
7209 HRESULT CALLBACK
IKsPropertySet_Set_Proxy(
7210 IKsPropertySet
* This
,
7211 REFGUID guidPropSet
,
7213 LPVOID pInstanceData
,
7214 DWORD cbInstanceData
,
7217 void __RPC_STUB
IKsPropertySet_Set_Stub(
7218 struct IRpcStubBuffer
* This
,
7219 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7220 PRPC_MESSAGE pRpcMessage
,
7221 DWORD
* pdwStubPhase
);
7222 HRESULT CALLBACK
IKsPropertySet_Get_Proxy(
7223 IKsPropertySet
* This
,
7224 REFGUID guidPropSet
,
7226 LPVOID pInstanceData
,
7227 DWORD cbInstanceData
,
7230 DWORD
* pcbReturned
);
7231 void __RPC_STUB
IKsPropertySet_Get_Stub(
7232 struct IRpcStubBuffer
* This
,
7233 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7234 PRPC_MESSAGE pRpcMessage
,
7235 DWORD
* pdwStubPhase
);
7236 HRESULT CALLBACK
IKsPropertySet_QuerySupported_Proxy(
7237 IKsPropertySet
* This
,
7238 REFGUID guidPropSet
,
7240 DWORD
* pTypeSupport
);
7241 void __RPC_STUB
IKsPropertySet_QuerySupported_Stub(
7242 struct IRpcStubBuffer
* This
,
7243 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7244 PRPC_MESSAGE pRpcMessage
,
7245 DWORD
* pdwStubPhase
);
7247 #endif /* __IKsPropertySet_INTERFACE_DEFINED__ */
7249 #endif /* _IKsPropertySet_ */
7250 #ifndef __IPinConnection_FWD_DEFINED__
7251 #define __IPinConnection_FWD_DEFINED__
7252 typedef struct IPinConnection IPinConnection
;
7255 #ifndef __IPinFlowControl_FWD_DEFINED__
7256 #define __IPinFlowControl_FWD_DEFINED__
7257 typedef struct IPinFlowControl IPinFlowControl
;
7260 #ifndef __IGraphConfig_FWD_DEFINED__
7261 #define __IGraphConfig_FWD_DEFINED__
7262 typedef struct IGraphConfig IGraphConfig
;
7265 #ifndef __IGraphConfigCallback_FWD_DEFINED__
7266 #define __IGraphConfigCallback_FWD_DEFINED__
7267 typedef struct IGraphConfigCallback IGraphConfigCallback
;
7270 /*****************************************************************************
7271 * IPinConnection interface
7273 #ifndef __IPinConnection_INTERFACE_DEFINED__
7274 #define __IPinConnection_INTERFACE_DEFINED__
7276 DEFINE_GUID(IID_IPinConnection
, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34);
7277 #if defined(__cplusplus) && !defined(CINTERFACE)
7278 struct IPinConnection
: public IUnknown
7280 virtual HRESULT STDMETHODCALLTYPE
DynamicQueryAccept(
7281 const AM_MEDIA_TYPE
* pmt
) = 0;
7283 virtual HRESULT STDMETHODCALLTYPE
NotifyEndOfStream(
7284 HANDLE hNotifyEvent
) = 0;
7286 virtual HRESULT STDMETHODCALLTYPE
IsEndPin(
7289 virtual HRESULT STDMETHODCALLTYPE
DynamicDisconnect(
7294 typedef struct IPinConnectionVtbl IPinConnectionVtbl
;
7295 struct IPinConnection
{
7296 const IPinConnectionVtbl
* lpVtbl
;
7298 struct IPinConnectionVtbl
{
7301 /*** IUnknown methods ***/
7302 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7303 IPinConnection
* This
,
7307 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7308 IPinConnection
* This
);
7310 ULONG (STDMETHODCALLTYPE
*Release
)(
7311 IPinConnection
* This
);
7313 /*** IPinConnection methods ***/
7314 HRESULT (STDMETHODCALLTYPE
*DynamicQueryAccept
)(
7315 IPinConnection
* This
,
7316 const AM_MEDIA_TYPE
* pmt
);
7318 HRESULT (STDMETHODCALLTYPE
*NotifyEndOfStream
)(
7319 IPinConnection
* This
,
7320 HANDLE hNotifyEvent
);
7322 HRESULT (STDMETHODCALLTYPE
*IsEndPin
)(
7323 IPinConnection
* This
);
7325 HRESULT (STDMETHODCALLTYPE
*DynamicDisconnect
)(
7326 IPinConnection
* This
);
7332 /*** IUnknown methods ***/
7333 #define IPinConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7334 #define IPinConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
7335 #define IPinConnection_Release(p) (p)->lpVtbl->Release(p)
7336 /*** IPinConnection methods ***/
7337 #define IPinConnection_DynamicQueryAccept(p,a) (p)->lpVtbl->DynamicQueryAccept(p,a)
7338 #define IPinConnection_NotifyEndOfStream(p,a) (p)->lpVtbl->NotifyEndOfStream(p,a)
7339 #define IPinConnection_IsEndPin(p) (p)->lpVtbl->IsEndPin(p)
7340 #define IPinConnection_DynamicDisconnect(p) (p)->lpVtbl->DynamicDisconnect(p)
7345 #define IPinConnection_METHODS \
7346 /*** IUnknown methods ***/ \
7347 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7348 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7349 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7350 /*** IPinConnection methods ***/ \
7351 STDMETHOD_(HRESULT,DynamicQueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
7352 STDMETHOD_(HRESULT,NotifyEndOfStream)(THIS_ HANDLE hNotifyEvent) PURE; \
7353 STDMETHOD_(HRESULT,IsEndPin)(THIS) PURE; \
7354 STDMETHOD_(HRESULT,DynamicDisconnect)(THIS) PURE;
7356 HRESULT CALLBACK
IPinConnection_DynamicQueryAccept_Proxy(
7357 IPinConnection
* This
,
7358 const AM_MEDIA_TYPE
* pmt
);
7359 void __RPC_STUB
IPinConnection_DynamicQueryAccept_Stub(
7360 struct IRpcStubBuffer
* This
,
7361 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7362 PRPC_MESSAGE pRpcMessage
,
7363 DWORD
* pdwStubPhase
);
7364 HRESULT CALLBACK
IPinConnection_NotifyEndOfStream_Proxy(
7365 IPinConnection
* This
,
7366 HANDLE hNotifyEvent
);
7367 void __RPC_STUB
IPinConnection_NotifyEndOfStream_Stub(
7368 struct IRpcStubBuffer
* This
,
7369 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7370 PRPC_MESSAGE pRpcMessage
,
7371 DWORD
* pdwStubPhase
);
7372 HRESULT CALLBACK
IPinConnection_IsEndPin_Proxy(
7373 IPinConnection
* This
);
7374 void __RPC_STUB
IPinConnection_IsEndPin_Stub(
7375 struct IRpcStubBuffer
* This
,
7376 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7377 PRPC_MESSAGE pRpcMessage
,
7378 DWORD
* pdwStubPhase
);
7379 HRESULT CALLBACK
IPinConnection_DynamicDisconnect_Proxy(
7380 IPinConnection
* This
);
7381 void __RPC_STUB
IPinConnection_DynamicDisconnect_Stub(
7382 struct IRpcStubBuffer
* This
,
7383 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7384 PRPC_MESSAGE pRpcMessage
,
7385 DWORD
* pdwStubPhase
);
7387 #endif /* __IPinConnection_INTERFACE_DEFINED__ */
7389 /*****************************************************************************
7390 * IPinFlowControl interface
7392 #ifndef __IPinFlowControl_INTERFACE_DEFINED__
7393 #define __IPinFlowControl_INTERFACE_DEFINED__
7395 DEFINE_GUID(IID_IPinFlowControl
, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb);
7396 #if defined(__cplusplus) && !defined(CINTERFACE)
7397 struct IPinFlowControl
: public IUnknown
7399 virtual HRESULT STDMETHODCALLTYPE
Block(
7405 typedef struct IPinFlowControlVtbl IPinFlowControlVtbl
;
7406 struct IPinFlowControl
{
7407 const IPinFlowControlVtbl
* lpVtbl
;
7409 struct IPinFlowControlVtbl
{
7412 /*** IUnknown methods ***/
7413 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7414 IPinFlowControl
* This
,
7418 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7419 IPinFlowControl
* This
);
7421 ULONG (STDMETHODCALLTYPE
*Release
)(
7422 IPinFlowControl
* This
);
7424 /*** IPinFlowControl methods ***/
7425 HRESULT (STDMETHODCALLTYPE
*Block
)(
7426 IPinFlowControl
* This
,
7434 /*** IUnknown methods ***/
7435 #define IPinFlowControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7436 #define IPinFlowControl_AddRef(p) (p)->lpVtbl->AddRef(p)
7437 #define IPinFlowControl_Release(p) (p)->lpVtbl->Release(p)
7438 /*** IPinFlowControl methods ***/
7439 #define IPinFlowControl_Block(p,a,b) (p)->lpVtbl->Block(p,a,b)
7444 #define IPinFlowControl_METHODS \
7445 /*** IUnknown methods ***/ \
7446 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7447 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7448 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7449 /*** IPinFlowControl methods ***/ \
7450 STDMETHOD_(HRESULT,Block)(THIS_ DWORD dwBlockFlags, HANDLE hEvent) PURE;
7452 HRESULT CALLBACK
IPinFlowControl_Block_Proxy(
7453 IPinFlowControl
* This
,
7456 void __RPC_STUB
IPinFlowControl_Block_Stub(
7457 struct IRpcStubBuffer
* This
,
7458 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7459 PRPC_MESSAGE pRpcMessage
,
7460 DWORD
* pdwStubPhase
);
7462 #endif /* __IPinFlowControl_INTERFACE_DEFINED__ */
7464 enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS
{
7465 AM_PIN_FLOW_CONTROL_BLOCK
= 0x1
7468 typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS
{
7469 AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT
= 0x1,
7470 AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS
= 0x2,
7471 AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS
= 0x4
7472 } AM_GRAPH_CONFIG_RECONNECT_FLAGS
;
7474 enum _REM_FILTER_FLAGS
{
7475 REMFILTERF_LEAVECONNECTED
= 0x1
7478 typedef enum _AM_FILTER_FLAGS
{
7479 AM_FILTER_FLAGS_REMOVABLE
= 0x1
7482 /*****************************************************************************
7483 * IGraphConfig interface
7485 #ifndef __IGraphConfig_INTERFACE_DEFINED__
7486 #define __IGraphConfig_INTERFACE_DEFINED__
7488 DEFINE_GUID(IID_IGraphConfig
, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88);
7489 #if defined(__cplusplus) && !defined(CINTERFACE)
7490 struct IGraphConfig
: public IUnknown
7492 virtual HRESULT STDMETHODCALLTYPE
Reconnect(
7495 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7496 IBaseFilter
* pUsingFilter
,
7500 virtual HRESULT STDMETHODCALLTYPE
Reconfigure(
7501 IGraphConfigCallback
* pCallback
,
7504 HANDLE hAbortEvent
) = 0;
7506 virtual HRESULT STDMETHODCALLTYPE
AddFilterToCache(
7507 IBaseFilter
* pFilter
) = 0;
7509 virtual HRESULT STDMETHODCALLTYPE
EnumCacheFilter(
7510 IEnumFilters
** pEnum
) = 0;
7512 virtual HRESULT STDMETHODCALLTYPE
RemoveFilterFromCache(
7513 IBaseFilter
* pFilter
) = 0;
7515 virtual HRESULT STDMETHODCALLTYPE
GetStartTime(
7516 REFERENCE_TIME
* prtStart
) = 0;
7518 virtual HRESULT STDMETHODCALLTYPE
PushThroughData(
7520 IPinConnection
* pConnection
,
7521 HANDLE hEventAbort
) = 0;
7523 virtual HRESULT STDMETHODCALLTYPE
SetFilterFlags(
7524 IBaseFilter
* pFilter
,
7527 virtual HRESULT STDMETHODCALLTYPE
GetFilterFlags(
7528 IBaseFilter
* pFilter
,
7529 DWORD
* pdwFlags
) = 0;
7531 virtual HRESULT STDMETHODCALLTYPE
RemoveFilterEx(
7532 IBaseFilter
* pFilter
,
7537 typedef struct IGraphConfigVtbl IGraphConfigVtbl
;
7538 struct IGraphConfig
{
7539 const IGraphConfigVtbl
* lpVtbl
;
7541 struct IGraphConfigVtbl
{
7544 /*** IUnknown methods ***/
7545 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7550 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7551 IGraphConfig
* This
);
7553 ULONG (STDMETHODCALLTYPE
*Release
)(
7554 IGraphConfig
* This
);
7556 /*** IGraphConfig methods ***/
7557 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
7561 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7562 IBaseFilter
* pUsingFilter
,
7566 HRESULT (STDMETHODCALLTYPE
*Reconfigure
)(
7568 IGraphConfigCallback
* pCallback
,
7571 HANDLE hAbortEvent
);
7573 HRESULT (STDMETHODCALLTYPE
*AddFilterToCache
)(
7575 IBaseFilter
* pFilter
);
7577 HRESULT (STDMETHODCALLTYPE
*EnumCacheFilter
)(
7579 IEnumFilters
** pEnum
);
7581 HRESULT (STDMETHODCALLTYPE
*RemoveFilterFromCache
)(
7583 IBaseFilter
* pFilter
);
7585 HRESULT (STDMETHODCALLTYPE
*GetStartTime
)(
7587 REFERENCE_TIME
* prtStart
);
7589 HRESULT (STDMETHODCALLTYPE
*PushThroughData
)(
7592 IPinConnection
* pConnection
,
7593 HANDLE hEventAbort
);
7595 HRESULT (STDMETHODCALLTYPE
*SetFilterFlags
)(
7597 IBaseFilter
* pFilter
,
7600 HRESULT (STDMETHODCALLTYPE
*GetFilterFlags
)(
7602 IBaseFilter
* pFilter
,
7605 HRESULT (STDMETHODCALLTYPE
*RemoveFilterEx
)(
7607 IBaseFilter
* pFilter
,
7614 /*** IUnknown methods ***/
7615 #define IGraphConfig_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7616 #define IGraphConfig_AddRef(p) (p)->lpVtbl->AddRef(p)
7617 #define IGraphConfig_Release(p) (p)->lpVtbl->Release(p)
7618 /*** IGraphConfig methods ***/
7619 #define IGraphConfig_Reconnect(p,a,b,c,d,e,f) (p)->lpVtbl->Reconnect(p,a,b,c,d,e,f)
7620 #define IGraphConfig_Reconfigure(p,a,b,c,d) (p)->lpVtbl->Reconfigure(p,a,b,c,d)
7621 #define IGraphConfig_AddFilterToCache(p,a) (p)->lpVtbl->AddFilterToCache(p,a)
7622 #define IGraphConfig_EnumCacheFilter(p,a) (p)->lpVtbl->EnumCacheFilter(p,a)
7623 #define IGraphConfig_RemoveFilterFromCache(p,a) (p)->lpVtbl->RemoveFilterFromCache(p,a)
7624 #define IGraphConfig_GetStartTime(p,a) (p)->lpVtbl->GetStartTime(p,a)
7625 #define IGraphConfig_PushThroughData(p,a,b,c) (p)->lpVtbl->PushThroughData(p,a,b,c)
7626 #define IGraphConfig_SetFilterFlags(p,a,b) (p)->lpVtbl->SetFilterFlags(p,a,b)
7627 #define IGraphConfig_GetFilterFlags(p,a,b) (p)->lpVtbl->GetFilterFlags(p,a,b)
7628 #define IGraphConfig_RemoveFilterEx(p,a,b) (p)->lpVtbl->RemoveFilterEx(p,a,b)
7633 #define IGraphConfig_METHODS \
7634 /*** IUnknown methods ***/ \
7635 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7636 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7637 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7638 /*** IGraphConfig methods ***/ \
7639 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags) PURE; \
7640 STDMETHOD_(HRESULT,Reconfigure)(THIS_ IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent) PURE; \
7641 STDMETHOD_(HRESULT,AddFilterToCache)(THIS_ IBaseFilter* pFilter) PURE; \
7642 STDMETHOD_(HRESULT,EnumCacheFilter)(THIS_ IEnumFilters** pEnum) PURE; \
7643 STDMETHOD_(HRESULT,RemoveFilterFromCache)(THIS_ IBaseFilter* pFilter) PURE; \
7644 STDMETHOD_(HRESULT,GetStartTime)(THIS_ REFERENCE_TIME* prtStart) PURE; \
7645 STDMETHOD_(HRESULT,PushThroughData)(THIS_ IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort) PURE; \
7646 STDMETHOD_(HRESULT,SetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD dwFlags) PURE; \
7647 STDMETHOD_(HRESULT,GetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD* pdwFlags) PURE; \
7648 STDMETHOD_(HRESULT,RemoveFilterEx)(THIS_ IBaseFilter* pFilter, DWORD Flags) PURE;
7650 HRESULT CALLBACK
IGraphConfig_Reconnect_Proxy(
7654 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7655 IBaseFilter
* pUsingFilter
,
7658 void __RPC_STUB
IGraphConfig_Reconnect_Stub(
7659 struct IRpcStubBuffer
* This
,
7660 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7661 PRPC_MESSAGE pRpcMessage
,
7662 DWORD
* pdwStubPhase
);
7663 HRESULT CALLBACK
IGraphConfig_Reconfigure_Proxy(
7665 IGraphConfigCallback
* pCallback
,
7668 HANDLE hAbortEvent
);
7669 void __RPC_STUB
IGraphConfig_Reconfigure_Stub(
7670 struct IRpcStubBuffer
* This
,
7671 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7672 PRPC_MESSAGE pRpcMessage
,
7673 DWORD
* pdwStubPhase
);
7674 HRESULT CALLBACK
IGraphConfig_AddFilterToCache_Proxy(
7676 IBaseFilter
* pFilter
);
7677 void __RPC_STUB
IGraphConfig_AddFilterToCache_Stub(
7678 struct IRpcStubBuffer
* This
,
7679 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7680 PRPC_MESSAGE pRpcMessage
,
7681 DWORD
* pdwStubPhase
);
7682 HRESULT CALLBACK
IGraphConfig_EnumCacheFilter_Proxy(
7684 IEnumFilters
** pEnum
);
7685 void __RPC_STUB
IGraphConfig_EnumCacheFilter_Stub(
7686 struct IRpcStubBuffer
* This
,
7687 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7688 PRPC_MESSAGE pRpcMessage
,
7689 DWORD
* pdwStubPhase
);
7690 HRESULT CALLBACK
IGraphConfig_RemoveFilterFromCache_Proxy(
7692 IBaseFilter
* pFilter
);
7693 void __RPC_STUB
IGraphConfig_RemoveFilterFromCache_Stub(
7694 struct IRpcStubBuffer
* This
,
7695 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7696 PRPC_MESSAGE pRpcMessage
,
7697 DWORD
* pdwStubPhase
);
7698 HRESULT CALLBACK
IGraphConfig_GetStartTime_Proxy(
7700 REFERENCE_TIME
* prtStart
);
7701 void __RPC_STUB
IGraphConfig_GetStartTime_Stub(
7702 struct IRpcStubBuffer
* This
,
7703 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7704 PRPC_MESSAGE pRpcMessage
,
7705 DWORD
* pdwStubPhase
);
7706 HRESULT CALLBACK
IGraphConfig_PushThroughData_Proxy(
7709 IPinConnection
* pConnection
,
7710 HANDLE hEventAbort
);
7711 void __RPC_STUB
IGraphConfig_PushThroughData_Stub(
7712 struct IRpcStubBuffer
* This
,
7713 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7714 PRPC_MESSAGE pRpcMessage
,
7715 DWORD
* pdwStubPhase
);
7716 HRESULT CALLBACK
IGraphConfig_SetFilterFlags_Proxy(
7718 IBaseFilter
* pFilter
,
7720 void __RPC_STUB
IGraphConfig_SetFilterFlags_Stub(
7721 struct IRpcStubBuffer
* This
,
7722 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7723 PRPC_MESSAGE pRpcMessage
,
7724 DWORD
* pdwStubPhase
);
7725 HRESULT CALLBACK
IGraphConfig_GetFilterFlags_Proxy(
7727 IBaseFilter
* pFilter
,
7729 void __RPC_STUB
IGraphConfig_GetFilterFlags_Stub(
7730 struct IRpcStubBuffer
* This
,
7731 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7732 PRPC_MESSAGE pRpcMessage
,
7733 DWORD
* pdwStubPhase
);
7734 HRESULT CALLBACK
IGraphConfig_RemoveFilterEx_Proxy(
7736 IBaseFilter
* pFilter
,
7738 void __RPC_STUB
IGraphConfig_RemoveFilterEx_Stub(
7739 struct IRpcStubBuffer
* This
,
7740 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7741 PRPC_MESSAGE pRpcMessage
,
7742 DWORD
* pdwStubPhase
);
7744 #endif /* __IGraphConfig_INTERFACE_DEFINED__ */
7746 /*****************************************************************************
7747 * IGraphConfigCallback interface
7749 #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
7750 #define __IGraphConfigCallback_INTERFACE_DEFINED__
7752 DEFINE_GUID(IID_IGraphConfigCallback
, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
7753 #if defined(__cplusplus) && !defined(CINTERFACE)
7754 struct IGraphConfigCallback
: public IUnknown
7756 virtual HRESULT STDMETHODCALLTYPE
Reconfigure(
7762 typedef struct IGraphConfigCallbackVtbl IGraphConfigCallbackVtbl
;
7763 struct IGraphConfigCallback
{
7764 const IGraphConfigCallbackVtbl
* lpVtbl
;
7766 struct IGraphConfigCallbackVtbl
{
7769 /*** IUnknown methods ***/
7770 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7771 IGraphConfigCallback
* This
,
7775 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7776 IGraphConfigCallback
* This
);
7778 ULONG (STDMETHODCALLTYPE
*Release
)(
7779 IGraphConfigCallback
* This
);
7781 /*** IGraphConfigCallback methods ***/
7782 HRESULT (STDMETHODCALLTYPE
*Reconfigure
)(
7783 IGraphConfigCallback
* This
,
7791 /*** IUnknown methods ***/
7792 #define IGraphConfigCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7793 #define IGraphConfigCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
7794 #define IGraphConfigCallback_Release(p) (p)->lpVtbl->Release(p)
7795 /*** IGraphConfigCallback methods ***/
7796 #define IGraphConfigCallback_Reconfigure(p,a,b) (p)->lpVtbl->Reconfigure(p,a,b)
7801 #define IGraphConfigCallback_METHODS \
7802 /*** IUnknown methods ***/ \
7803 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7804 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7805 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7806 /*** IGraphConfigCallback methods ***/ \
7807 STDMETHOD_(HRESULT,Reconfigure)(THIS_ PVOID pvContext, DWORD dwFlags) PURE;
7809 HRESULT CALLBACK
IGraphConfigCallback_Reconfigure_Proxy(
7810 IGraphConfigCallback
* This
,
7813 void __RPC_STUB
IGraphConfigCallback_Reconfigure_Stub(
7814 struct IRpcStubBuffer
* This
,
7815 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7816 PRPC_MESSAGE pRpcMessage
,
7817 DWORD
* pdwStubPhase
);
7819 #endif /* __IGraphConfigCallback_INTERFACE_DEFINED__ */
7821 #ifndef __IFilterChain_FWD_DEFINED__
7822 #define __IFilterChain_FWD_DEFINED__
7823 typedef struct IFilterChain IFilterChain
;
7826 /*****************************************************************************
7827 * IFilterChain interface
7829 #ifndef __IFilterChain_INTERFACE_DEFINED__
7830 #define __IFilterChain_INTERFACE_DEFINED__
7832 DEFINE_GUID(IID_IFilterChain
, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29);
7833 #if defined(__cplusplus) && !defined(CINTERFACE)
7834 struct IFilterChain
: public IUnknown
7836 virtual HRESULT STDMETHODCALLTYPE
StartChain(
7837 IBaseFilter
* pStartFilter
,
7838 IBaseFilter
* pEndFilter
) = 0;
7840 virtual HRESULT STDMETHODCALLTYPE
PauseChain(
7841 IBaseFilter
* pStartFilter
,
7842 IBaseFilter
* pEndFilter
) = 0;
7844 virtual HRESULT STDMETHODCALLTYPE
StopChain(
7845 IBaseFilter
* pStartFilter
,
7846 IBaseFilter
* pEndFilter
) = 0;
7848 virtual HRESULT STDMETHODCALLTYPE
RemoveChain(
7849 IBaseFilter
* pStartFilter
,
7850 IBaseFilter
* pEndFilter
) = 0;
7854 typedef struct IFilterChainVtbl IFilterChainVtbl
;
7855 struct IFilterChain
{
7856 const IFilterChainVtbl
* lpVtbl
;
7858 struct IFilterChainVtbl
{
7861 /*** IUnknown methods ***/
7862 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7867 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7868 IFilterChain
* This
);
7870 ULONG (STDMETHODCALLTYPE
*Release
)(
7871 IFilterChain
* This
);
7873 /*** IFilterChain methods ***/
7874 HRESULT (STDMETHODCALLTYPE
*StartChain
)(
7876 IBaseFilter
* pStartFilter
,
7877 IBaseFilter
* pEndFilter
);
7879 HRESULT (STDMETHODCALLTYPE
*PauseChain
)(
7881 IBaseFilter
* pStartFilter
,
7882 IBaseFilter
* pEndFilter
);
7884 HRESULT (STDMETHODCALLTYPE
*StopChain
)(
7886 IBaseFilter
* pStartFilter
,
7887 IBaseFilter
* pEndFilter
);
7889 HRESULT (STDMETHODCALLTYPE
*RemoveChain
)(
7891 IBaseFilter
* pStartFilter
,
7892 IBaseFilter
* pEndFilter
);
7898 /*** IUnknown methods ***/
7899 #define IFilterChain_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7900 #define IFilterChain_AddRef(p) (p)->lpVtbl->AddRef(p)
7901 #define IFilterChain_Release(p) (p)->lpVtbl->Release(p)
7902 /*** IFilterChain methods ***/
7903 #define IFilterChain_StartChain(p,a,b) (p)->lpVtbl->StartChain(p,a,b)
7904 #define IFilterChain_PauseChain(p,a,b) (p)->lpVtbl->PauseChain(p,a,b)
7905 #define IFilterChain_StopChain(p,a,b) (p)->lpVtbl->StopChain(p,a,b)
7906 #define IFilterChain_RemoveChain(p,a,b) (p)->lpVtbl->RemoveChain(p,a,b)
7911 #define IFilterChain_METHODS \
7912 /*** IUnknown methods ***/ \
7913 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7914 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7915 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7916 /*** IFilterChain methods ***/ \
7917 STDMETHOD_(HRESULT,StartChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7918 STDMETHOD_(HRESULT,PauseChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7919 STDMETHOD_(HRESULT,StopChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7920 STDMETHOD_(HRESULT,RemoveChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE;
7922 HRESULT CALLBACK
IFilterChain_StartChain_Proxy(
7924 IBaseFilter
* pStartFilter
,
7925 IBaseFilter
* pEndFilter
);
7926 void __RPC_STUB
IFilterChain_StartChain_Stub(
7927 struct IRpcStubBuffer
* This
,
7928 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7929 PRPC_MESSAGE pRpcMessage
,
7930 DWORD
* pdwStubPhase
);
7931 HRESULT CALLBACK
IFilterChain_PauseChain_Proxy(
7933 IBaseFilter
* pStartFilter
,
7934 IBaseFilter
* pEndFilter
);
7935 void __RPC_STUB
IFilterChain_PauseChain_Stub(
7936 struct IRpcStubBuffer
* This
,
7937 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7938 PRPC_MESSAGE pRpcMessage
,
7939 DWORD
* pdwStubPhase
);
7940 HRESULT CALLBACK
IFilterChain_StopChain_Proxy(
7942 IBaseFilter
* pStartFilter
,
7943 IBaseFilter
* pEndFilter
);
7944 void __RPC_STUB
IFilterChain_StopChain_Stub(
7945 struct IRpcStubBuffer
* This
,
7946 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7947 PRPC_MESSAGE pRpcMessage
,
7948 DWORD
* pdwStubPhase
);
7949 HRESULT CALLBACK
IFilterChain_RemoveChain_Proxy(
7951 IBaseFilter
* pStartFilter
,
7952 IBaseFilter
* pEndFilter
);
7953 void __RPC_STUB
IFilterChain_RemoveChain_Stub(
7954 struct IRpcStubBuffer
* This
,
7955 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7956 PRPC_MESSAGE pRpcMessage
,
7957 DWORD
* pdwStubPhase
);
7959 #endif /* __IFilterChain_INTERFACE_DEFINED__ */
7964 #endif /* __WIDL_STRMIF_H */