1 /*** Autogenerated by WIDL 0.1 from strmif.idl - Do not edit ***/
5 #ifndef __WIDL_STRMIF_H
6 #define __WIDL_STRMIF_H
13 #define CDEF_CLASS_DEFAULT 0x0001
14 #define CDEF_BYPASS_CLASS_MANAGER 0x0002
15 #define CDEF_CLASS_LEGACY 0x0004
16 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
17 #ifndef __ICreateDevEnum_FWD_DEFINED__
18 #define __ICreateDevEnum_FWD_DEFINED__
19 typedef struct ICreateDevEnum ICreateDevEnum
;
22 /*****************************************************************************
23 * ICreateDevEnum interface
25 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
26 #define __ICreateDevEnum_INTERFACE_DEFINED__
28 DEFINE_GUID(IID_ICreateDevEnum
, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
29 #if defined(__cplusplus) && !defined(CINTERFACE)
30 struct ICreateDevEnum
: public IUnknown
32 virtual HRESULT STDMETHODCALLTYPE
CreateClassEnumerator(
33 REFCLSID clsidDeviceClass
,
34 IEnumMoniker
** ppEnumMoniker
,
39 typedef struct ICreateDevEnumVtbl ICreateDevEnumVtbl
;
40 struct ICreateDevEnum
{
41 const ICreateDevEnumVtbl
* lpVtbl
;
43 struct ICreateDevEnumVtbl
{
44 ICOM_MSVTABLE_COMPAT_FIELDS
46 /*** IUnknown methods ***/
47 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
52 ULONG (STDMETHODCALLTYPE
*AddRef
)(
53 ICreateDevEnum
* This
);
55 ULONG (STDMETHODCALLTYPE
*Release
)(
56 ICreateDevEnum
* This
);
58 /*** ICreateDevEnum methods ***/
59 HRESULT (STDMETHODCALLTYPE
*CreateClassEnumerator
)(
61 REFCLSID clsidDeviceClass
,
62 IEnumMoniker
** ppEnumMoniker
,
67 /*** IUnknown methods ***/
68 #define ICreateDevEnum_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
69 #define ICreateDevEnum_AddRef(p) (p)->lpVtbl->AddRef(p)
70 #define ICreateDevEnum_Release(p) (p)->lpVtbl->Release(p)
71 /*** ICreateDevEnum methods ***/
72 #define ICreateDevEnum_CreateClassEnumerator(p,a,b,c) (p)->lpVtbl->CreateClassEnumerator(p,a,b,c)
76 #define ICreateDevEnum_METHODS \
77 ICOM_MSVTABLE_COMPAT_FIELDS \
78 /*** IUnknown methods ***/ \
79 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
80 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
81 STDMETHOD_(ULONG,Release)(THIS) PURE; \
82 /*** ICreateDevEnum methods ***/ \
83 STDMETHOD_(HRESULT,CreateClassEnumerator)(THIS_ REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags) PURE;
85 HRESULT CALLBACK
ICreateDevEnum_CreateClassEnumerator_Proxy(
87 REFCLSID clsidDeviceClass
,
88 IEnumMoniker
** ppEnumMoniker
,
90 void __RPC_STUB
ICreateDevEnum_CreateClassEnumerator_Stub(
91 struct IRpcStubBuffer
* This
,
92 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
93 PRPC_MESSAGE pRpcMessage
,
96 #endif /* __ICreateDevEnum_INTERFACE_DEFINED__ */
98 #define CHARS_IN_GUID 39
100 typedef struct _AMMediaType
{
103 BOOL bFixedSizeSamples
;
104 BOOL bTemporalCompression
;
112 typedef enum _PinDirection
{
117 #define MAX_PIN_NAME 128
118 #define MAX_FILTER_NAME 128
119 typedef LONGLONG REFERENCE_TIME
;
121 typedef double REFTIME
;
123 typedef DWORD_PTR HSEMAPHORE
;
125 typedef DWORD_PTR HEVENT
;
127 typedef struct _AllocatorProperties
{
132 } ALLOCATOR_PROPERTIES
;
134 #ifndef __IAMovieSetup_FWD_DEFINED__
135 #define __IAMovieSetup_FWD_DEFINED__
136 typedef struct IAMovieSetup IAMovieSetup
;
139 #ifndef __IEnumFilters_FWD_DEFINED__
140 #define __IEnumFilters_FWD_DEFINED__
141 typedef struct IEnumFilters IEnumFilters
;
144 #ifndef __IEnumMediaTypes_FWD_DEFINED__
145 #define __IEnumMediaTypes_FWD_DEFINED__
146 typedef struct IEnumMediaTypes IEnumMediaTypes
;
149 #ifndef __IEnumPins_FWD_DEFINED__
150 #define __IEnumPins_FWD_DEFINED__
151 typedef struct IEnumPins IEnumPins
;
154 #ifndef __IBaseFilter_FWD_DEFINED__
155 #define __IBaseFilter_FWD_DEFINED__
156 typedef struct IBaseFilter IBaseFilter
;
159 #ifndef __IFilterGraph_FWD_DEFINED__
160 #define __IFilterGraph_FWD_DEFINED__
161 typedef struct IFilterGraph IFilterGraph
;
164 #ifndef __IMediaFilter_FWD_DEFINED__
165 #define __IMediaFilter_FWD_DEFINED__
166 typedef struct IMediaFilter IMediaFilter
;
169 #ifndef __IMediaSample_FWD_DEFINED__
170 #define __IMediaSample_FWD_DEFINED__
171 typedef struct IMediaSample IMediaSample
;
174 #ifndef __IMemAllocator_FWD_DEFINED__
175 #define __IMemAllocator_FWD_DEFINED__
176 typedef struct IMemAllocator IMemAllocator
;
179 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
180 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
181 typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp
;
184 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
185 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
186 typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp
;
189 #ifndef __IMemInputPin_FWD_DEFINED__
190 #define __IMemInputPin_FWD_DEFINED__
191 typedef struct IMemInputPin IMemInputPin
;
194 #ifndef __IPin_FWD_DEFINED__
195 #define __IPin_FWD_DEFINED__
196 typedef struct IPin IPin
;
199 #ifndef __IReferenceClock_FWD_DEFINED__
200 #define __IReferenceClock_FWD_DEFINED__
201 typedef struct IReferenceClock IReferenceClock
;
204 typedef struct _PinInfo
{
205 IBaseFilter
*pFilter
;
210 /*****************************************************************************
213 #ifndef __IPin_INTERFACE_DEFINED__
214 #define __IPin_INTERFACE_DEFINED__
216 DEFINE_GUID(IID_IPin
, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
217 #if defined(__cplusplus) && !defined(CINTERFACE)
218 struct IPin
: public IUnknown
220 virtual HRESULT STDMETHODCALLTYPE
Connect(
222 const AM_MEDIA_TYPE
* pmt
) = 0;
224 virtual HRESULT STDMETHODCALLTYPE
ReceiveConnection(
226 const AM_MEDIA_TYPE
* pmt
) = 0;
228 virtual HRESULT STDMETHODCALLTYPE
Disconnect(
231 virtual HRESULT STDMETHODCALLTYPE
ConnectedTo(
234 virtual HRESULT STDMETHODCALLTYPE
ConnectionMediaType(
235 AM_MEDIA_TYPE
* pmt
) = 0;
237 virtual HRESULT STDMETHODCALLTYPE
QueryPinInfo(
238 PIN_INFO
* pInfo
) = 0;
240 virtual HRESULT STDMETHODCALLTYPE
QueryDirection(
241 PIN_DIRECTION
* pPinDir
) = 0;
243 virtual HRESULT STDMETHODCALLTYPE
QueryId(
246 virtual HRESULT STDMETHODCALLTYPE
QueryAccept(
247 const AM_MEDIA_TYPE
* pmt
) = 0;
249 virtual HRESULT STDMETHODCALLTYPE
EnumMediaTypes(
250 IEnumMediaTypes
** ppEnum
) = 0;
252 virtual HRESULT STDMETHODCALLTYPE
QueryInternalConnections(
256 virtual HRESULT STDMETHODCALLTYPE
EndOfStream(
259 virtual HRESULT STDMETHODCALLTYPE
BeginFlush(
262 virtual HRESULT STDMETHODCALLTYPE
EndFlush(
265 virtual HRESULT STDMETHODCALLTYPE
NewSegment(
266 REFERENCE_TIME tStart
,
267 REFERENCE_TIME tStop
,
272 typedef struct IPinVtbl IPinVtbl
;
274 const IPinVtbl
* lpVtbl
;
277 ICOM_MSVTABLE_COMPAT_FIELDS
279 /*** IUnknown methods ***/
280 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
285 ULONG (STDMETHODCALLTYPE
*AddRef
)(
288 ULONG (STDMETHODCALLTYPE
*Release
)(
291 /*** IPin methods ***/
292 HRESULT (STDMETHODCALLTYPE
*Connect
)(
295 const AM_MEDIA_TYPE
* pmt
);
297 HRESULT (STDMETHODCALLTYPE
*ReceiveConnection
)(
300 const AM_MEDIA_TYPE
* pmt
);
302 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
305 HRESULT (STDMETHODCALLTYPE
*ConnectedTo
)(
309 HRESULT (STDMETHODCALLTYPE
*ConnectionMediaType
)(
313 HRESULT (STDMETHODCALLTYPE
*QueryPinInfo
)(
317 HRESULT (STDMETHODCALLTYPE
*QueryDirection
)(
319 PIN_DIRECTION
* pPinDir
);
321 HRESULT (STDMETHODCALLTYPE
*QueryId
)(
325 HRESULT (STDMETHODCALLTYPE
*QueryAccept
)(
327 const AM_MEDIA_TYPE
* pmt
);
329 HRESULT (STDMETHODCALLTYPE
*EnumMediaTypes
)(
331 IEnumMediaTypes
** ppEnum
);
333 HRESULT (STDMETHODCALLTYPE
*QueryInternalConnections
)(
338 HRESULT (STDMETHODCALLTYPE
*EndOfStream
)(
341 HRESULT (STDMETHODCALLTYPE
*BeginFlush
)(
344 HRESULT (STDMETHODCALLTYPE
*EndFlush
)(
347 HRESULT (STDMETHODCALLTYPE
*NewSegment
)(
349 REFERENCE_TIME tStart
,
350 REFERENCE_TIME tStop
,
355 /*** IUnknown methods ***/
356 #define IPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
357 #define IPin_AddRef(p) (p)->lpVtbl->AddRef(p)
358 #define IPin_Release(p) (p)->lpVtbl->Release(p)
359 /*** IPin methods ***/
360 #define IPin_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
361 #define IPin_ReceiveConnection(p,a,b) (p)->lpVtbl->ReceiveConnection(p,a,b)
362 #define IPin_Disconnect(p) (p)->lpVtbl->Disconnect(p)
363 #define IPin_ConnectedTo(p,a) (p)->lpVtbl->ConnectedTo(p,a)
364 #define IPin_ConnectionMediaType(p,a) (p)->lpVtbl->ConnectionMediaType(p,a)
365 #define IPin_QueryPinInfo(p,a) (p)->lpVtbl->QueryPinInfo(p,a)
366 #define IPin_QueryDirection(p,a) (p)->lpVtbl->QueryDirection(p,a)
367 #define IPin_QueryId(p,a) (p)->lpVtbl->QueryId(p,a)
368 #define IPin_QueryAccept(p,a) (p)->lpVtbl->QueryAccept(p,a)
369 #define IPin_EnumMediaTypes(p,a) (p)->lpVtbl->EnumMediaTypes(p,a)
370 #define IPin_QueryInternalConnections(p,a,b) (p)->lpVtbl->QueryInternalConnections(p,a,b)
371 #define IPin_EndOfStream(p) (p)->lpVtbl->EndOfStream(p)
372 #define IPin_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
373 #define IPin_EndFlush(p) (p)->lpVtbl->EndFlush(p)
374 #define IPin_NewSegment(p,a,b,c) (p)->lpVtbl->NewSegment(p,a,b,c)
378 #define IPin_METHODS \
379 ICOM_MSVTABLE_COMPAT_FIELDS \
380 /*** IUnknown methods ***/ \
381 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
382 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
383 STDMETHOD_(ULONG,Release)(THIS) PURE; \
384 /*** IPin methods ***/ \
385 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* pReceivePin, const AM_MEDIA_TYPE* pmt) PURE; \
386 STDMETHOD_(HRESULT,ReceiveConnection)(THIS_ IPin* pConnector, const AM_MEDIA_TYPE* pmt) PURE; \
387 STDMETHOD_(HRESULT,Disconnect)(THIS) PURE; \
388 STDMETHOD_(HRESULT,ConnectedTo)(THIS_ IPin** pPin) PURE; \
389 STDMETHOD_(HRESULT,ConnectionMediaType)(THIS_ AM_MEDIA_TYPE* pmt) PURE; \
390 STDMETHOD_(HRESULT,QueryPinInfo)(THIS_ PIN_INFO* pInfo) PURE; \
391 STDMETHOD_(HRESULT,QueryDirection)(THIS_ PIN_DIRECTION* pPinDir) PURE; \
392 STDMETHOD_(HRESULT,QueryId)(THIS_ LPWSTR* Id) PURE; \
393 STDMETHOD_(HRESULT,QueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
394 STDMETHOD_(HRESULT,EnumMediaTypes)(THIS_ IEnumMediaTypes** ppEnum) PURE; \
395 STDMETHOD_(HRESULT,QueryInternalConnections)(THIS_ IPin** apPin, ULONG* nPin) PURE; \
396 STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE; \
397 STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
398 STDMETHOD_(HRESULT,EndFlush)(THIS) PURE; \
399 STDMETHOD_(HRESULT,NewSegment)(THIS_ REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) PURE;
401 HRESULT CALLBACK
IPin_Connect_Proxy(
404 const AM_MEDIA_TYPE
* pmt
);
405 void __RPC_STUB
IPin_Connect_Stub(
406 struct IRpcStubBuffer
* This
,
407 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
408 PRPC_MESSAGE pRpcMessage
,
409 DWORD
* pdwStubPhase
);
410 HRESULT CALLBACK
IPin_ReceiveConnection_Proxy(
413 const AM_MEDIA_TYPE
* pmt
);
414 void __RPC_STUB
IPin_ReceiveConnection_Stub(
415 struct IRpcStubBuffer
* This
,
416 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
417 PRPC_MESSAGE pRpcMessage
,
418 DWORD
* pdwStubPhase
);
419 HRESULT CALLBACK
IPin_Disconnect_Proxy(
421 void __RPC_STUB
IPin_Disconnect_Stub(
422 struct IRpcStubBuffer
* This
,
423 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
424 PRPC_MESSAGE pRpcMessage
,
425 DWORD
* pdwStubPhase
);
426 HRESULT CALLBACK
IPin_ConnectedTo_Proxy(
429 void __RPC_STUB
IPin_ConnectedTo_Stub(
430 struct IRpcStubBuffer
* This
,
431 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
432 PRPC_MESSAGE pRpcMessage
,
433 DWORD
* pdwStubPhase
);
434 HRESULT CALLBACK
IPin_ConnectionMediaType_Proxy(
437 void __RPC_STUB
IPin_ConnectionMediaType_Stub(
438 struct IRpcStubBuffer
* This
,
439 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
440 PRPC_MESSAGE pRpcMessage
,
441 DWORD
* pdwStubPhase
);
442 HRESULT CALLBACK
IPin_QueryPinInfo_Proxy(
445 void __RPC_STUB
IPin_QueryPinInfo_Stub(
446 struct IRpcStubBuffer
* This
,
447 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
448 PRPC_MESSAGE pRpcMessage
,
449 DWORD
* pdwStubPhase
);
450 HRESULT CALLBACK
IPin_QueryDirection_Proxy(
452 PIN_DIRECTION
* pPinDir
);
453 void __RPC_STUB
IPin_QueryDirection_Stub(
454 struct IRpcStubBuffer
* This
,
455 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
456 PRPC_MESSAGE pRpcMessage
,
457 DWORD
* pdwStubPhase
);
458 HRESULT CALLBACK
IPin_QueryId_Proxy(
461 void __RPC_STUB
IPin_QueryId_Stub(
462 struct IRpcStubBuffer
* This
,
463 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
464 PRPC_MESSAGE pRpcMessage
,
465 DWORD
* pdwStubPhase
);
466 HRESULT CALLBACK
IPin_QueryAccept_Proxy(
468 const AM_MEDIA_TYPE
* pmt
);
469 void __RPC_STUB
IPin_QueryAccept_Stub(
470 struct IRpcStubBuffer
* This
,
471 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
472 PRPC_MESSAGE pRpcMessage
,
473 DWORD
* pdwStubPhase
);
474 HRESULT CALLBACK
IPin_EnumMediaTypes_Proxy(
476 IEnumMediaTypes
** ppEnum
);
477 void __RPC_STUB
IPin_EnumMediaTypes_Stub(
478 struct IRpcStubBuffer
* This
,
479 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
480 PRPC_MESSAGE pRpcMessage
,
481 DWORD
* pdwStubPhase
);
482 HRESULT CALLBACK
IPin_QueryInternalConnections_Proxy(
486 void __RPC_STUB
IPin_QueryInternalConnections_Stub(
487 struct IRpcStubBuffer
* This
,
488 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
489 PRPC_MESSAGE pRpcMessage
,
490 DWORD
* pdwStubPhase
);
491 HRESULT CALLBACK
IPin_EndOfStream_Proxy(
493 void __RPC_STUB
IPin_EndOfStream_Stub(
494 struct IRpcStubBuffer
* This
,
495 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
496 PRPC_MESSAGE pRpcMessage
,
497 DWORD
* pdwStubPhase
);
498 HRESULT CALLBACK
IPin_BeginFlush_Proxy(
500 void __RPC_STUB
IPin_BeginFlush_Stub(
501 struct IRpcStubBuffer
* This
,
502 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
503 PRPC_MESSAGE pRpcMessage
,
504 DWORD
* pdwStubPhase
);
505 HRESULT CALLBACK
IPin_EndFlush_Proxy(
507 void __RPC_STUB
IPin_EndFlush_Stub(
508 struct IRpcStubBuffer
* This
,
509 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
510 PRPC_MESSAGE pRpcMessage
,
511 DWORD
* pdwStubPhase
);
512 HRESULT CALLBACK
IPin_NewSegment_Proxy(
514 REFERENCE_TIME tStart
,
515 REFERENCE_TIME tStop
,
517 void __RPC_STUB
IPin_NewSegment_Stub(
518 struct IRpcStubBuffer
* This
,
519 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
520 PRPC_MESSAGE pRpcMessage
,
521 DWORD
* pdwStubPhase
);
523 #endif /* __IPin_INTERFACE_DEFINED__ */
527 /*****************************************************************************
528 * IEnumPins interface
530 #ifndef __IEnumPins_INTERFACE_DEFINED__
531 #define __IEnumPins_INTERFACE_DEFINED__
533 DEFINE_GUID(IID_IEnumPins
, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
534 #if defined(__cplusplus) && !defined(CINTERFACE)
535 struct IEnumPins
: public IUnknown
537 virtual HRESULT STDMETHODCALLTYPE
Next(
540 ULONG
* pcFetched
) = 0;
542 virtual HRESULT STDMETHODCALLTYPE
Skip(
545 virtual HRESULT STDMETHODCALLTYPE
Reset(
548 virtual HRESULT STDMETHODCALLTYPE
Clone(
549 IEnumPins
** ppEnum
) = 0;
553 typedef struct IEnumPinsVtbl IEnumPinsVtbl
;
555 const IEnumPinsVtbl
* lpVtbl
;
557 struct IEnumPinsVtbl
{
558 ICOM_MSVTABLE_COMPAT_FIELDS
560 /*** IUnknown methods ***/
561 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
566 ULONG (STDMETHODCALLTYPE
*AddRef
)(
569 ULONG (STDMETHODCALLTYPE
*Release
)(
572 /*** IEnumPins methods ***/
573 HRESULT (STDMETHODCALLTYPE
*Next
)(
579 HRESULT (STDMETHODCALLTYPE
*Skip
)(
583 HRESULT (STDMETHODCALLTYPE
*Reset
)(
586 HRESULT (STDMETHODCALLTYPE
*Clone
)(
592 /*** IUnknown methods ***/
593 #define IEnumPins_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
594 #define IEnumPins_AddRef(p) (p)->lpVtbl->AddRef(p)
595 #define IEnumPins_Release(p) (p)->lpVtbl->Release(p)
596 /*** IEnumPins methods ***/
597 #define IEnumPins_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
598 #define IEnumPins_Skip(p,a) (p)->lpVtbl->Skip(p,a)
599 #define IEnumPins_Reset(p) (p)->lpVtbl->Reset(p)
600 #define IEnumPins_Clone(p,a) (p)->lpVtbl->Clone(p,a)
604 #define IEnumPins_METHODS \
605 ICOM_MSVTABLE_COMPAT_FIELDS \
606 /*** IUnknown methods ***/ \
607 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
608 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
609 STDMETHOD_(ULONG,Release)(THIS) PURE; \
610 /*** IEnumPins methods ***/ \
611 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cPins, IPin** ppPins, ULONG* pcFetched) PURE; \
612 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cPins) PURE; \
613 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
614 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPins** ppEnum) PURE;
616 HRESULT CALLBACK
IEnumPins_Next_Proxy(
621 void __RPC_STUB
IEnumPins_Next_Stub(
622 struct IRpcStubBuffer
* This
,
623 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
624 PRPC_MESSAGE pRpcMessage
,
625 DWORD
* pdwStubPhase
);
626 HRESULT CALLBACK
IEnumPins_Skip_Proxy(
629 void __RPC_STUB
IEnumPins_Skip_Stub(
630 struct IRpcStubBuffer
* This
,
631 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
632 PRPC_MESSAGE pRpcMessage
,
633 DWORD
* pdwStubPhase
);
634 HRESULT CALLBACK
IEnumPins_Reset_Proxy(
636 void __RPC_STUB
IEnumPins_Reset_Stub(
637 struct IRpcStubBuffer
* This
,
638 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
639 PRPC_MESSAGE pRpcMessage
,
640 DWORD
* pdwStubPhase
);
641 HRESULT CALLBACK
IEnumPins_Clone_Proxy(
644 void __RPC_STUB
IEnumPins_Clone_Stub(
645 struct IRpcStubBuffer
* This
,
646 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
647 PRPC_MESSAGE pRpcMessage
,
648 DWORD
* pdwStubPhase
);
650 #endif /* __IEnumPins_INTERFACE_DEFINED__ */
652 typedef IEnumPins
*PENUMPINS
;
654 /*****************************************************************************
655 * IEnumMediaTypes interface
657 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
658 #define __IEnumMediaTypes_INTERFACE_DEFINED__
660 DEFINE_GUID(IID_IEnumMediaTypes
, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
661 #if defined(__cplusplus) && !defined(CINTERFACE)
662 struct IEnumMediaTypes
: public IUnknown
664 virtual HRESULT STDMETHODCALLTYPE
Next(
666 AM_MEDIA_TYPE
** ppMediaTypes
,
667 ULONG
* pcFetched
) = 0;
669 virtual HRESULT STDMETHODCALLTYPE
Skip(
670 ULONG cMediaTypes
) = 0;
672 virtual HRESULT STDMETHODCALLTYPE
Reset(
675 virtual HRESULT STDMETHODCALLTYPE
Clone(
676 IEnumMediaTypes
** ppEnum
) = 0;
680 typedef struct IEnumMediaTypesVtbl IEnumMediaTypesVtbl
;
681 struct IEnumMediaTypes
{
682 const IEnumMediaTypesVtbl
* lpVtbl
;
684 struct IEnumMediaTypesVtbl
{
685 ICOM_MSVTABLE_COMPAT_FIELDS
687 /*** IUnknown methods ***/
688 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
689 IEnumMediaTypes
* This
,
693 ULONG (STDMETHODCALLTYPE
*AddRef
)(
694 IEnumMediaTypes
* This
);
696 ULONG (STDMETHODCALLTYPE
*Release
)(
697 IEnumMediaTypes
* This
);
699 /*** IEnumMediaTypes methods ***/
700 HRESULT (STDMETHODCALLTYPE
*Next
)(
701 IEnumMediaTypes
* This
,
703 AM_MEDIA_TYPE
** ppMediaTypes
,
706 HRESULT (STDMETHODCALLTYPE
*Skip
)(
707 IEnumMediaTypes
* This
,
710 HRESULT (STDMETHODCALLTYPE
*Reset
)(
711 IEnumMediaTypes
* This
);
713 HRESULT (STDMETHODCALLTYPE
*Clone
)(
714 IEnumMediaTypes
* This
,
715 IEnumMediaTypes
** ppEnum
);
719 /*** IUnknown methods ***/
720 #define IEnumMediaTypes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
721 #define IEnumMediaTypes_AddRef(p) (p)->lpVtbl->AddRef(p)
722 #define IEnumMediaTypes_Release(p) (p)->lpVtbl->Release(p)
723 /*** IEnumMediaTypes methods ***/
724 #define IEnumMediaTypes_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
725 #define IEnumMediaTypes_Skip(p,a) (p)->lpVtbl->Skip(p,a)
726 #define IEnumMediaTypes_Reset(p) (p)->lpVtbl->Reset(p)
727 #define IEnumMediaTypes_Clone(p,a) (p)->lpVtbl->Clone(p,a)
731 #define IEnumMediaTypes_METHODS \
732 ICOM_MSVTABLE_COMPAT_FIELDS \
733 /*** IUnknown methods ***/ \
734 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
735 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
736 STDMETHOD_(ULONG,Release)(THIS) PURE; \
737 /*** IEnumMediaTypes methods ***/ \
738 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched) PURE; \
739 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cMediaTypes) PURE; \
740 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
741 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMediaTypes** ppEnum) PURE;
743 HRESULT CALLBACK
IEnumMediaTypes_Next_Proxy(
744 IEnumMediaTypes
* This
,
746 AM_MEDIA_TYPE
** ppMediaTypes
,
748 void __RPC_STUB
IEnumMediaTypes_Next_Stub(
749 struct IRpcStubBuffer
* This
,
750 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
751 PRPC_MESSAGE pRpcMessage
,
752 DWORD
* pdwStubPhase
);
753 HRESULT CALLBACK
IEnumMediaTypes_Skip_Proxy(
754 IEnumMediaTypes
* This
,
756 void __RPC_STUB
IEnumMediaTypes_Skip_Stub(
757 struct IRpcStubBuffer
* This
,
758 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
759 PRPC_MESSAGE pRpcMessage
,
760 DWORD
* pdwStubPhase
);
761 HRESULT CALLBACK
IEnumMediaTypes_Reset_Proxy(
762 IEnumMediaTypes
* This
);
763 void __RPC_STUB
IEnumMediaTypes_Reset_Stub(
764 struct IRpcStubBuffer
* This
,
765 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
766 PRPC_MESSAGE pRpcMessage
,
767 DWORD
* pdwStubPhase
);
768 HRESULT CALLBACK
IEnumMediaTypes_Clone_Proxy(
769 IEnumMediaTypes
* This
,
770 IEnumMediaTypes
** ppEnum
);
771 void __RPC_STUB
IEnumMediaTypes_Clone_Stub(
772 struct IRpcStubBuffer
* This
,
773 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
774 PRPC_MESSAGE pRpcMessage
,
775 DWORD
* pdwStubPhase
);
777 #endif /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
779 typedef IEnumMediaTypes
*PENUMMEDIATYPES
;
781 /*****************************************************************************
782 * IFilterGraph interface
784 #ifndef __IFilterGraph_INTERFACE_DEFINED__
785 #define __IFilterGraph_INTERFACE_DEFINED__
787 DEFINE_GUID(IID_IFilterGraph
, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
788 #if defined(__cplusplus) && !defined(CINTERFACE)
789 struct IFilterGraph
: public IUnknown
791 virtual HRESULT STDMETHODCALLTYPE
AddFilter(
792 IBaseFilter
* pFilter
,
795 virtual HRESULT STDMETHODCALLTYPE
RemoveFilter(
796 IBaseFilter
* pFilter
) = 0;
798 virtual HRESULT STDMETHODCALLTYPE
EnumFilters(
799 IEnumFilters
** ppEnum
) = 0;
801 virtual HRESULT STDMETHODCALLTYPE
FindFilterByName(
803 IBaseFilter
** ppFilter
) = 0;
805 virtual HRESULT STDMETHODCALLTYPE
ConnectDirect(
808 const AM_MEDIA_TYPE
* pmt
) = 0;
810 virtual HRESULT STDMETHODCALLTYPE
Reconnect(
813 virtual HRESULT STDMETHODCALLTYPE
Disconnect(
816 virtual HRESULT STDMETHODCALLTYPE
SetDefaultSyncSource(
821 typedef struct IFilterGraphVtbl IFilterGraphVtbl
;
822 struct IFilterGraph
{
823 const IFilterGraphVtbl
* lpVtbl
;
825 struct IFilterGraphVtbl
{
826 ICOM_MSVTABLE_COMPAT_FIELDS
828 /*** IUnknown methods ***/
829 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
834 ULONG (STDMETHODCALLTYPE
*AddRef
)(
837 ULONG (STDMETHODCALLTYPE
*Release
)(
840 /*** IFilterGraph methods ***/
841 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
843 IBaseFilter
* pFilter
,
846 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
848 IBaseFilter
* pFilter
);
850 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
852 IEnumFilters
** ppEnum
);
854 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
857 IBaseFilter
** ppFilter
);
859 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
863 const AM_MEDIA_TYPE
* pmt
);
865 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
869 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
873 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
878 /*** IUnknown methods ***/
879 #define IFilterGraph_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
880 #define IFilterGraph_AddRef(p) (p)->lpVtbl->AddRef(p)
881 #define IFilterGraph_Release(p) (p)->lpVtbl->Release(p)
882 /*** IFilterGraph methods ***/
883 #define IFilterGraph_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
884 #define IFilterGraph_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
885 #define IFilterGraph_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
886 #define IFilterGraph_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
887 #define IFilterGraph_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
888 #define IFilterGraph_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
889 #define IFilterGraph_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
890 #define IFilterGraph_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
894 #define IFilterGraph_METHODS \
895 ICOM_MSVTABLE_COMPAT_FIELDS \
896 /*** IUnknown methods ***/ \
897 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
898 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
899 STDMETHOD_(ULONG,Release)(THIS) PURE; \
900 /*** IFilterGraph methods ***/ \
901 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
902 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
903 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
904 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
905 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
906 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
907 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
908 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE;
910 HRESULT CALLBACK
IFilterGraph_AddFilter_Proxy(
912 IBaseFilter
* pFilter
,
914 void __RPC_STUB
IFilterGraph_AddFilter_Stub(
915 struct IRpcStubBuffer
* This
,
916 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
917 PRPC_MESSAGE pRpcMessage
,
918 DWORD
* pdwStubPhase
);
919 HRESULT CALLBACK
IFilterGraph_RemoveFilter_Proxy(
921 IBaseFilter
* pFilter
);
922 void __RPC_STUB
IFilterGraph_RemoveFilter_Stub(
923 struct IRpcStubBuffer
* This
,
924 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
925 PRPC_MESSAGE pRpcMessage
,
926 DWORD
* pdwStubPhase
);
927 HRESULT CALLBACK
IFilterGraph_EnumFilters_Proxy(
929 IEnumFilters
** ppEnum
);
930 void __RPC_STUB
IFilterGraph_EnumFilters_Stub(
931 struct IRpcStubBuffer
* This
,
932 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
933 PRPC_MESSAGE pRpcMessage
,
934 DWORD
* pdwStubPhase
);
935 HRESULT CALLBACK
IFilterGraph_FindFilterByName_Proxy(
938 IBaseFilter
** ppFilter
);
939 void __RPC_STUB
IFilterGraph_FindFilterByName_Stub(
940 struct IRpcStubBuffer
* This
,
941 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
942 PRPC_MESSAGE pRpcMessage
,
943 DWORD
* pdwStubPhase
);
944 HRESULT CALLBACK
IFilterGraph_ConnectDirect_Proxy(
948 const AM_MEDIA_TYPE
* pmt
);
949 void __RPC_STUB
IFilterGraph_ConnectDirect_Stub(
950 struct IRpcStubBuffer
* This
,
951 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
952 PRPC_MESSAGE pRpcMessage
,
953 DWORD
* pdwStubPhase
);
954 HRESULT CALLBACK
IFilterGraph_Reconnect_Proxy(
957 void __RPC_STUB
IFilterGraph_Reconnect_Stub(
958 struct IRpcStubBuffer
* This
,
959 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
960 PRPC_MESSAGE pRpcMessage
,
961 DWORD
* pdwStubPhase
);
962 HRESULT CALLBACK
IFilterGraph_Disconnect_Proxy(
965 void __RPC_STUB
IFilterGraph_Disconnect_Stub(
966 struct IRpcStubBuffer
* This
,
967 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
968 PRPC_MESSAGE pRpcMessage
,
969 DWORD
* pdwStubPhase
);
970 HRESULT CALLBACK
IFilterGraph_SetDefaultSyncSource_Proxy(
972 void __RPC_STUB
IFilterGraph_SetDefaultSyncSource_Stub(
973 struct IRpcStubBuffer
* This
,
974 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
975 PRPC_MESSAGE pRpcMessage
,
976 DWORD
* pdwStubPhase
);
978 #endif /* __IFilterGraph_INTERFACE_DEFINED__ */
980 typedef IFilterGraph
*PFILTERGRAPH
;
982 /*****************************************************************************
983 * IEnumFilters interface
985 #ifndef __IEnumFilters_INTERFACE_DEFINED__
986 #define __IEnumFilters_INTERFACE_DEFINED__
988 DEFINE_GUID(IID_IEnumFilters
, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
989 #if defined(__cplusplus) && !defined(CINTERFACE)
990 struct IEnumFilters
: public IUnknown
992 virtual HRESULT STDMETHODCALLTYPE
Next(
994 IBaseFilter
** ppFilter
,
995 ULONG
* pcFetched
) = 0;
997 virtual HRESULT STDMETHODCALLTYPE
Skip(
1000 virtual HRESULT STDMETHODCALLTYPE
Reset(
1003 virtual HRESULT STDMETHODCALLTYPE
Clone(
1004 IEnumFilters
** ppEnum
) = 0;
1008 typedef struct IEnumFiltersVtbl IEnumFiltersVtbl
;
1009 struct IEnumFilters
{
1010 const IEnumFiltersVtbl
* lpVtbl
;
1012 struct IEnumFiltersVtbl
{
1013 ICOM_MSVTABLE_COMPAT_FIELDS
1015 /*** IUnknown methods ***/
1016 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1021 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1022 IEnumFilters
* This
);
1024 ULONG (STDMETHODCALLTYPE
*Release
)(
1025 IEnumFilters
* This
);
1027 /*** IEnumFilters methods ***/
1028 HRESULT (STDMETHODCALLTYPE
*Next
)(
1031 IBaseFilter
** ppFilter
,
1034 HRESULT (STDMETHODCALLTYPE
*Skip
)(
1038 HRESULT (STDMETHODCALLTYPE
*Reset
)(
1039 IEnumFilters
* This
);
1041 HRESULT (STDMETHODCALLTYPE
*Clone
)(
1043 IEnumFilters
** ppEnum
);
1047 /*** IUnknown methods ***/
1048 #define IEnumFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1049 #define IEnumFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
1050 #define IEnumFilters_Release(p) (p)->lpVtbl->Release(p)
1051 /*** IEnumFilters methods ***/
1052 #define IEnumFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1053 #define IEnumFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1054 #define IEnumFilters_Reset(p) (p)->lpVtbl->Reset(p)
1055 #define IEnumFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1059 #define IEnumFilters_METHODS \
1060 ICOM_MSVTABLE_COMPAT_FIELDS \
1061 /*** IUnknown methods ***/ \
1062 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1063 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1064 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1065 /*** IEnumFilters methods ***/ \
1066 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched) PURE; \
1067 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
1068 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1069 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFilters** ppEnum) PURE;
1071 HRESULT CALLBACK
IEnumFilters_Next_Proxy(
1074 IBaseFilter
** ppFilter
,
1076 void __RPC_STUB
IEnumFilters_Next_Stub(
1077 struct IRpcStubBuffer
* This
,
1078 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1079 PRPC_MESSAGE pRpcMessage
,
1080 DWORD
* pdwStubPhase
);
1081 HRESULT CALLBACK
IEnumFilters_Skip_Proxy(
1084 void __RPC_STUB
IEnumFilters_Skip_Stub(
1085 struct IRpcStubBuffer
* This
,
1086 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1087 PRPC_MESSAGE pRpcMessage
,
1088 DWORD
* pdwStubPhase
);
1089 HRESULT CALLBACK
IEnumFilters_Reset_Proxy(
1090 IEnumFilters
* This
);
1091 void __RPC_STUB
IEnumFilters_Reset_Stub(
1092 struct IRpcStubBuffer
* This
,
1093 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1094 PRPC_MESSAGE pRpcMessage
,
1095 DWORD
* pdwStubPhase
);
1096 HRESULT CALLBACK
IEnumFilters_Clone_Proxy(
1098 IEnumFilters
** ppEnum
);
1099 void __RPC_STUB
IEnumFilters_Clone_Stub(
1100 struct IRpcStubBuffer
* This
,
1101 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1102 PRPC_MESSAGE pRpcMessage
,
1103 DWORD
* pdwStubPhase
);
1105 #endif /* __IEnumFilters_INTERFACE_DEFINED__ */
1107 typedef IEnumFilters
*PENUMFILTERS
;
1109 typedef enum _FilterState
{
1115 /*****************************************************************************
1116 * IMediaFilter interface
1118 #ifndef __IMediaFilter_INTERFACE_DEFINED__
1119 #define __IMediaFilter_INTERFACE_DEFINED__
1121 DEFINE_GUID(IID_IMediaFilter
, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1122 #if defined(__cplusplus) && !defined(CINTERFACE)
1123 struct IMediaFilter
: public IPersist
1125 virtual HRESULT STDMETHODCALLTYPE
Stop(
1128 virtual HRESULT STDMETHODCALLTYPE
Pause(
1131 virtual HRESULT STDMETHODCALLTYPE
Run(
1132 REFERENCE_TIME tStart
) = 0;
1134 virtual HRESULT STDMETHODCALLTYPE
GetState(
1135 DWORD dwMilliSecsTimeout
,
1136 FILTER_STATE
* State
) = 0;
1138 virtual HRESULT STDMETHODCALLTYPE
SetSyncSource(
1139 IReferenceClock
* pClock
) = 0;
1141 virtual HRESULT STDMETHODCALLTYPE
GetSyncSource(
1142 IReferenceClock
** pClock
) = 0;
1146 typedef struct IMediaFilterVtbl IMediaFilterVtbl
;
1147 struct IMediaFilter
{
1148 const IMediaFilterVtbl
* lpVtbl
;
1150 struct IMediaFilterVtbl
{
1151 ICOM_MSVTABLE_COMPAT_FIELDS
1153 /*** IUnknown methods ***/
1154 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1159 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1160 IMediaFilter
* This
);
1162 ULONG (STDMETHODCALLTYPE
*Release
)(
1163 IMediaFilter
* This
);
1165 /*** IPersist methods ***/
1166 HRESULT (STDMETHODCALLTYPE
*GetClassID
)(
1170 /*** IMediaFilter methods ***/
1171 HRESULT (STDMETHODCALLTYPE
*Stop
)(
1172 IMediaFilter
* This
);
1174 HRESULT (STDMETHODCALLTYPE
*Pause
)(
1175 IMediaFilter
* This
);
1177 HRESULT (STDMETHODCALLTYPE
*Run
)(
1179 REFERENCE_TIME tStart
);
1181 HRESULT (STDMETHODCALLTYPE
*GetState
)(
1183 DWORD dwMilliSecsTimeout
,
1184 FILTER_STATE
* State
);
1186 HRESULT (STDMETHODCALLTYPE
*SetSyncSource
)(
1188 IReferenceClock
* pClock
);
1190 HRESULT (STDMETHODCALLTYPE
*GetSyncSource
)(
1192 IReferenceClock
** pClock
);
1196 /*** IUnknown methods ***/
1197 #define IMediaFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1198 #define IMediaFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
1199 #define IMediaFilter_Release(p) (p)->lpVtbl->Release(p)
1200 /*** IPersist methods ***/
1201 #define IMediaFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1202 /*** IMediaFilter methods ***/
1203 #define IMediaFilter_Stop(p) (p)->lpVtbl->Stop(p)
1204 #define IMediaFilter_Pause(p) (p)->lpVtbl->Pause(p)
1205 #define IMediaFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
1206 #define IMediaFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
1207 #define IMediaFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
1208 #define IMediaFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
1212 #define IMediaFilter_METHODS \
1213 ICOM_MSVTABLE_COMPAT_FIELDS \
1214 /*** IUnknown methods ***/ \
1215 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1216 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1217 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1218 /*** IPersist methods ***/ \
1219 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
1220 /*** IMediaFilter methods ***/ \
1221 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
1222 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
1223 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
1224 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
1225 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
1226 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE;
1228 HRESULT CALLBACK
IMediaFilter_Stop_Proxy(
1229 IMediaFilter
* This
);
1230 void __RPC_STUB
IMediaFilter_Stop_Stub(
1231 struct IRpcStubBuffer
* This
,
1232 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1233 PRPC_MESSAGE pRpcMessage
,
1234 DWORD
* pdwStubPhase
);
1235 HRESULT CALLBACK
IMediaFilter_Pause_Proxy(
1236 IMediaFilter
* This
);
1237 void __RPC_STUB
IMediaFilter_Pause_Stub(
1238 struct IRpcStubBuffer
* This
,
1239 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1240 PRPC_MESSAGE pRpcMessage
,
1241 DWORD
* pdwStubPhase
);
1242 HRESULT CALLBACK
IMediaFilter_Run_Proxy(
1244 REFERENCE_TIME tStart
);
1245 void __RPC_STUB
IMediaFilter_Run_Stub(
1246 struct IRpcStubBuffer
* This
,
1247 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1248 PRPC_MESSAGE pRpcMessage
,
1249 DWORD
* pdwStubPhase
);
1250 HRESULT CALLBACK
IMediaFilter_GetState_Proxy(
1252 DWORD dwMilliSecsTimeout
,
1253 FILTER_STATE
* State
);
1254 void __RPC_STUB
IMediaFilter_GetState_Stub(
1255 struct IRpcStubBuffer
* This
,
1256 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1257 PRPC_MESSAGE pRpcMessage
,
1258 DWORD
* pdwStubPhase
);
1259 HRESULT CALLBACK
IMediaFilter_SetSyncSource_Proxy(
1261 IReferenceClock
* pClock
);
1262 void __RPC_STUB
IMediaFilter_SetSyncSource_Stub(
1263 struct IRpcStubBuffer
* This
,
1264 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1265 PRPC_MESSAGE pRpcMessage
,
1266 DWORD
* pdwStubPhase
);
1267 HRESULT CALLBACK
IMediaFilter_GetSyncSource_Proxy(
1269 IReferenceClock
** pClock
);
1270 void __RPC_STUB
IMediaFilter_GetSyncSource_Stub(
1271 struct IRpcStubBuffer
* This
,
1272 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1273 PRPC_MESSAGE pRpcMessage
,
1274 DWORD
* pdwStubPhase
);
1276 #endif /* __IMediaFilter_INTERFACE_DEFINED__ */
1278 typedef IMediaFilter
*PMEDIAFILTER
;
1280 typedef struct _FilterInfo
{
1282 IFilterGraph
*pGraph
;
1285 /*****************************************************************************
1286 * IBaseFilter interface
1288 #ifndef __IBaseFilter_INTERFACE_DEFINED__
1289 #define __IBaseFilter_INTERFACE_DEFINED__
1291 DEFINE_GUID(IID_IBaseFilter
, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1292 #if defined(__cplusplus) && !defined(CINTERFACE)
1293 struct IBaseFilter
: public IMediaFilter
1295 virtual HRESULT STDMETHODCALLTYPE
EnumPins(
1296 IEnumPins
** ppEnum
) = 0;
1298 virtual HRESULT STDMETHODCALLTYPE
FindPin(
1302 virtual HRESULT STDMETHODCALLTYPE
QueryFilterInfo(
1303 FILTER_INFO
* pInfo
) = 0;
1305 virtual HRESULT STDMETHODCALLTYPE
JoinFilterGraph(
1306 IFilterGraph
* pGraph
,
1309 virtual HRESULT STDMETHODCALLTYPE
QueryVendorInfo(
1310 LPWSTR
* pVendorInfo
) = 0;
1314 typedef struct IBaseFilterVtbl IBaseFilterVtbl
;
1315 struct IBaseFilter
{
1316 const IBaseFilterVtbl
* lpVtbl
;
1318 struct IBaseFilterVtbl
{
1319 ICOM_MSVTABLE_COMPAT_FIELDS
1321 /*** IUnknown methods ***/
1322 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1327 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1330 ULONG (STDMETHODCALLTYPE
*Release
)(
1333 /*** IPersist methods ***/
1334 HRESULT (STDMETHODCALLTYPE
*GetClassID
)(
1338 /*** IMediaFilter methods ***/
1339 HRESULT (STDMETHODCALLTYPE
*Stop
)(
1342 HRESULT (STDMETHODCALLTYPE
*Pause
)(
1345 HRESULT (STDMETHODCALLTYPE
*Run
)(
1347 REFERENCE_TIME tStart
);
1349 HRESULT (STDMETHODCALLTYPE
*GetState
)(
1351 DWORD dwMilliSecsTimeout
,
1352 FILTER_STATE
* State
);
1354 HRESULT (STDMETHODCALLTYPE
*SetSyncSource
)(
1356 IReferenceClock
* pClock
);
1358 HRESULT (STDMETHODCALLTYPE
*GetSyncSource
)(
1360 IReferenceClock
** pClock
);
1362 /*** IBaseFilter methods ***/
1363 HRESULT (STDMETHODCALLTYPE
*EnumPins
)(
1365 IEnumPins
** ppEnum
);
1367 HRESULT (STDMETHODCALLTYPE
*FindPin
)(
1372 HRESULT (STDMETHODCALLTYPE
*QueryFilterInfo
)(
1374 FILTER_INFO
* pInfo
);
1376 HRESULT (STDMETHODCALLTYPE
*JoinFilterGraph
)(
1378 IFilterGraph
* pGraph
,
1381 HRESULT (STDMETHODCALLTYPE
*QueryVendorInfo
)(
1383 LPWSTR
* pVendorInfo
);
1387 /*** IUnknown methods ***/
1388 #define IBaseFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1389 #define IBaseFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
1390 #define IBaseFilter_Release(p) (p)->lpVtbl->Release(p)
1391 /*** IPersist methods ***/
1392 #define IBaseFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1393 /*** IMediaFilter methods ***/
1394 #define IBaseFilter_Stop(p) (p)->lpVtbl->Stop(p)
1395 #define IBaseFilter_Pause(p) (p)->lpVtbl->Pause(p)
1396 #define IBaseFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
1397 #define IBaseFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
1398 #define IBaseFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
1399 #define IBaseFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
1400 /*** IBaseFilter methods ***/
1401 #define IBaseFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a)
1402 #define IBaseFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b)
1403 #define IBaseFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a)
1404 #define IBaseFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b)
1405 #define IBaseFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a)
1409 #define IBaseFilter_METHODS \
1410 ICOM_MSVTABLE_COMPAT_FIELDS \
1411 /*** IUnknown methods ***/ \
1412 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1413 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1414 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1415 /*** IPersist methods ***/ \
1416 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
1417 /*** IMediaFilter methods ***/ \
1418 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
1419 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
1420 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
1421 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
1422 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
1423 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \
1424 /*** IBaseFilter methods ***/ \
1425 STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \
1426 STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \
1427 STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \
1428 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \
1429 STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE;
1431 HRESULT CALLBACK
IBaseFilter_EnumPins_Proxy(
1433 IEnumPins
** ppEnum
);
1434 void __RPC_STUB
IBaseFilter_EnumPins_Stub(
1435 struct IRpcStubBuffer
* This
,
1436 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1437 PRPC_MESSAGE pRpcMessage
,
1438 DWORD
* pdwStubPhase
);
1439 HRESULT CALLBACK
IBaseFilter_FindPin_Proxy(
1443 void __RPC_STUB
IBaseFilter_FindPin_Stub(
1444 struct IRpcStubBuffer
* This
,
1445 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1446 PRPC_MESSAGE pRpcMessage
,
1447 DWORD
* pdwStubPhase
);
1448 HRESULT CALLBACK
IBaseFilter_QueryFilterInfo_Proxy(
1450 FILTER_INFO
* pInfo
);
1451 void __RPC_STUB
IBaseFilter_QueryFilterInfo_Stub(
1452 struct IRpcStubBuffer
* This
,
1453 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1454 PRPC_MESSAGE pRpcMessage
,
1455 DWORD
* pdwStubPhase
);
1456 HRESULT CALLBACK
IBaseFilter_JoinFilterGraph_Proxy(
1458 IFilterGraph
* pGraph
,
1460 void __RPC_STUB
IBaseFilter_JoinFilterGraph_Stub(
1461 struct IRpcStubBuffer
* This
,
1462 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1463 PRPC_MESSAGE pRpcMessage
,
1464 DWORD
* pdwStubPhase
);
1465 HRESULT CALLBACK
IBaseFilter_QueryVendorInfo_Proxy(
1467 LPWSTR
* pVendorInfo
);
1468 void __RPC_STUB
IBaseFilter_QueryVendorInfo_Stub(
1469 struct IRpcStubBuffer
* This
,
1470 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1471 PRPC_MESSAGE pRpcMessage
,
1472 DWORD
* pdwStubPhase
);
1474 #endif /* __IBaseFilter_INTERFACE_DEFINED__ */
1476 typedef IBaseFilter
*PFILTER
;
1478 /*****************************************************************************
1479 * IReferenceClock interface
1481 #ifndef __IReferenceClock_INTERFACE_DEFINED__
1482 #define __IReferenceClock_INTERFACE_DEFINED__
1484 DEFINE_GUID(IID_IReferenceClock
, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1485 #if defined(__cplusplus) && !defined(CINTERFACE)
1486 struct IReferenceClock
: public IUnknown
1488 virtual HRESULT STDMETHODCALLTYPE
GetTime(
1489 REFERENCE_TIME
* pTime
) = 0;
1491 virtual HRESULT STDMETHODCALLTYPE
AdviseTime(
1492 REFERENCE_TIME baseTime
,
1493 REFERENCE_TIME streamTime
,
1495 DWORD_PTR
* pdwAdviseCookie
) = 0;
1497 virtual HRESULT STDMETHODCALLTYPE
AdvisePeriodic(
1498 REFERENCE_TIME startTime
,
1499 REFERENCE_TIME periodTime
,
1500 HSEMAPHORE hSemaphore
,
1501 DWORD_PTR
* pdwAdviseCookie
) = 0;
1503 virtual HRESULT STDMETHODCALLTYPE
Unadvise(
1504 DWORD_PTR dwAdviseCookie
) = 0;
1508 typedef struct IReferenceClockVtbl IReferenceClockVtbl
;
1509 struct IReferenceClock
{
1510 const IReferenceClockVtbl
* lpVtbl
;
1512 struct IReferenceClockVtbl
{
1513 ICOM_MSVTABLE_COMPAT_FIELDS
1515 /*** IUnknown methods ***/
1516 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1517 IReferenceClock
* This
,
1521 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1522 IReferenceClock
* This
);
1524 ULONG (STDMETHODCALLTYPE
*Release
)(
1525 IReferenceClock
* This
);
1527 /*** IReferenceClock methods ***/
1528 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
1529 IReferenceClock
* This
,
1530 REFERENCE_TIME
* pTime
);
1532 HRESULT (STDMETHODCALLTYPE
*AdviseTime
)(
1533 IReferenceClock
* This
,
1534 REFERENCE_TIME baseTime
,
1535 REFERENCE_TIME streamTime
,
1537 DWORD_PTR
* pdwAdviseCookie
);
1539 HRESULT (STDMETHODCALLTYPE
*AdvisePeriodic
)(
1540 IReferenceClock
* This
,
1541 REFERENCE_TIME startTime
,
1542 REFERENCE_TIME periodTime
,
1543 HSEMAPHORE hSemaphore
,
1544 DWORD_PTR
* pdwAdviseCookie
);
1546 HRESULT (STDMETHODCALLTYPE
*Unadvise
)(
1547 IReferenceClock
* This
,
1548 DWORD_PTR dwAdviseCookie
);
1552 /*** IUnknown methods ***/
1553 #define IReferenceClock_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1554 #define IReferenceClock_AddRef(p) (p)->lpVtbl->AddRef(p)
1555 #define IReferenceClock_Release(p) (p)->lpVtbl->Release(p)
1556 /*** IReferenceClock methods ***/
1557 #define IReferenceClock_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
1558 #define IReferenceClock_AdviseTime(p,a,b,c,d) (p)->lpVtbl->AdviseTime(p,a,b,c,d)
1559 #define IReferenceClock_AdvisePeriodic(p,a,b,c,d) (p)->lpVtbl->AdvisePeriodic(p,a,b,c,d)
1560 #define IReferenceClock_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
1564 #define IReferenceClock_METHODS \
1565 ICOM_MSVTABLE_COMPAT_FIELDS \
1566 /*** IUnknown methods ***/ \
1567 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1568 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1569 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1570 /*** IReferenceClock methods ***/ \
1571 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTime) PURE; \
1572 STDMETHOD_(HRESULT,AdviseTime)(THIS_ REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie) PURE; \
1573 STDMETHOD_(HRESULT,AdvisePeriodic)(THIS_ REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie) PURE; \
1574 STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD_PTR dwAdviseCookie) PURE;
1576 HRESULT CALLBACK
IReferenceClock_GetTime_Proxy(
1577 IReferenceClock
* This
,
1578 REFERENCE_TIME
* pTime
);
1579 void __RPC_STUB
IReferenceClock_GetTime_Stub(
1580 struct IRpcStubBuffer
* This
,
1581 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1582 PRPC_MESSAGE pRpcMessage
,
1583 DWORD
* pdwStubPhase
);
1584 HRESULT CALLBACK
IReferenceClock_AdviseTime_Proxy(
1585 IReferenceClock
* This
,
1586 REFERENCE_TIME baseTime
,
1587 REFERENCE_TIME streamTime
,
1589 DWORD_PTR
* pdwAdviseCookie
);
1590 void __RPC_STUB
IReferenceClock_AdviseTime_Stub(
1591 struct IRpcStubBuffer
* This
,
1592 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1593 PRPC_MESSAGE pRpcMessage
,
1594 DWORD
* pdwStubPhase
);
1595 HRESULT CALLBACK
IReferenceClock_AdvisePeriodic_Proxy(
1596 IReferenceClock
* This
,
1597 REFERENCE_TIME startTime
,
1598 REFERENCE_TIME periodTime
,
1599 HSEMAPHORE hSemaphore
,
1600 DWORD_PTR
* pdwAdviseCookie
);
1601 void __RPC_STUB
IReferenceClock_AdvisePeriodic_Stub(
1602 struct IRpcStubBuffer
* This
,
1603 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1604 PRPC_MESSAGE pRpcMessage
,
1605 DWORD
* pdwStubPhase
);
1606 HRESULT CALLBACK
IReferenceClock_Unadvise_Proxy(
1607 IReferenceClock
* This
,
1608 DWORD_PTR dwAdviseCookie
);
1609 void __RPC_STUB
IReferenceClock_Unadvise_Stub(
1610 struct IRpcStubBuffer
* This
,
1611 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1612 PRPC_MESSAGE pRpcMessage
,
1613 DWORD
* pdwStubPhase
);
1615 #endif /* __IReferenceClock_INTERFACE_DEFINED__ */
1617 typedef IReferenceClock
*PREFERENCECLOCK
;
1619 /*****************************************************************************
1620 * IMediaSample interface
1622 #ifndef __IMediaSample_INTERFACE_DEFINED__
1623 #define __IMediaSample_INTERFACE_DEFINED__
1625 DEFINE_GUID(IID_IMediaSample
, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1626 #if defined(__cplusplus) && !defined(CINTERFACE)
1627 struct IMediaSample
: public IUnknown
1629 virtual HRESULT STDMETHODCALLTYPE
GetPointer(
1630 BYTE
** ppBuffer
) = 0;
1632 virtual long STDMETHODCALLTYPE
GetSize(
1635 virtual HRESULT STDMETHODCALLTYPE
GetTime(
1636 REFERENCE_TIME
* pTimeStart
,
1637 REFERENCE_TIME
* pTimeEnd
) = 0;
1639 virtual HRESULT STDMETHODCALLTYPE
SetTime(
1640 REFERENCE_TIME
* pTimeStart
,
1641 REFERENCE_TIME
* pTimeEnd
) = 0;
1643 virtual HRESULT STDMETHODCALLTYPE
IsSyncPoint(
1646 virtual HRESULT STDMETHODCALLTYPE
SetSyncPoint(
1647 BOOL bIsSyncPoint
) = 0;
1649 virtual HRESULT STDMETHODCALLTYPE
IsPreroll(
1652 virtual HRESULT STDMETHODCALLTYPE
SetPreroll(
1653 BOOL bIsPreroll
) = 0;
1655 virtual long STDMETHODCALLTYPE
GetActualDataLength(
1658 virtual HRESULT STDMETHODCALLTYPE
SetActualDataLength(
1661 virtual HRESULT STDMETHODCALLTYPE
GetMediaType(
1662 AM_MEDIA_TYPE
** ppMediaType
) = 0;
1664 virtual HRESULT STDMETHODCALLTYPE
SetMediaType(
1665 AM_MEDIA_TYPE
* pMediaType
) = 0;
1667 virtual HRESULT STDMETHODCALLTYPE
IsDiscontinuity(
1670 virtual HRESULT STDMETHODCALLTYPE
SetDiscontinuity(
1671 BOOL bDiscontinuity
) = 0;
1673 virtual HRESULT STDMETHODCALLTYPE
GetMediaTime(
1674 LONGLONG
* pTimeStart
,
1675 LONGLONG
* pTimeEnd
) = 0;
1677 virtual HRESULT STDMETHODCALLTYPE
SetMediaTime(
1678 LONGLONG
* pTimeStart
,
1679 LONGLONG
* pTimeEnd
) = 0;
1683 typedef struct IMediaSampleVtbl IMediaSampleVtbl
;
1684 struct IMediaSample
{
1685 const IMediaSampleVtbl
* lpVtbl
;
1687 struct IMediaSampleVtbl
{
1688 ICOM_MSVTABLE_COMPAT_FIELDS
1690 /*** IUnknown methods ***/
1691 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1696 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1697 IMediaSample
* This
);
1699 ULONG (STDMETHODCALLTYPE
*Release
)(
1700 IMediaSample
* This
);
1702 /*** IMediaSample methods ***/
1703 HRESULT (STDMETHODCALLTYPE
*GetPointer
)(
1707 long (STDMETHODCALLTYPE
*GetSize
)(
1708 IMediaSample
* This
);
1710 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
1712 REFERENCE_TIME
* pTimeStart
,
1713 REFERENCE_TIME
* pTimeEnd
);
1715 HRESULT (STDMETHODCALLTYPE
*SetTime
)(
1717 REFERENCE_TIME
* pTimeStart
,
1718 REFERENCE_TIME
* pTimeEnd
);
1720 HRESULT (STDMETHODCALLTYPE
*IsSyncPoint
)(
1721 IMediaSample
* This
);
1723 HRESULT (STDMETHODCALLTYPE
*SetSyncPoint
)(
1727 HRESULT (STDMETHODCALLTYPE
*IsPreroll
)(
1728 IMediaSample
* This
);
1730 HRESULT (STDMETHODCALLTYPE
*SetPreroll
)(
1734 long (STDMETHODCALLTYPE
*GetActualDataLength
)(
1735 IMediaSample
* This
);
1737 HRESULT (STDMETHODCALLTYPE
*SetActualDataLength
)(
1741 HRESULT (STDMETHODCALLTYPE
*GetMediaType
)(
1743 AM_MEDIA_TYPE
** ppMediaType
);
1745 HRESULT (STDMETHODCALLTYPE
*SetMediaType
)(
1747 AM_MEDIA_TYPE
* pMediaType
);
1749 HRESULT (STDMETHODCALLTYPE
*IsDiscontinuity
)(
1750 IMediaSample
* This
);
1752 HRESULT (STDMETHODCALLTYPE
*SetDiscontinuity
)(
1754 BOOL bDiscontinuity
);
1756 HRESULT (STDMETHODCALLTYPE
*GetMediaTime
)(
1758 LONGLONG
* pTimeStart
,
1759 LONGLONG
* pTimeEnd
);
1761 HRESULT (STDMETHODCALLTYPE
*SetMediaTime
)(
1763 LONGLONG
* pTimeStart
,
1764 LONGLONG
* pTimeEnd
);
1768 /*** IUnknown methods ***/
1769 #define IMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1770 #define IMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p)
1771 #define IMediaSample_Release(p) (p)->lpVtbl->Release(p)
1772 /*** IMediaSample methods ***/
1773 #define IMediaSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
1774 #define IMediaSample_GetSize(p) (p)->lpVtbl->GetSize(p)
1775 #define IMediaSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
1776 #define IMediaSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
1777 #define IMediaSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
1778 #define IMediaSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
1779 #define IMediaSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
1780 #define IMediaSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
1781 #define IMediaSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
1782 #define IMediaSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
1783 #define IMediaSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
1784 #define IMediaSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
1785 #define IMediaSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
1786 #define IMediaSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
1787 #define IMediaSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
1788 #define IMediaSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
1792 #define IMediaSample_METHODS \
1793 ICOM_MSVTABLE_COMPAT_FIELDS \
1794 /*** IUnknown methods ***/ \
1795 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1796 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1797 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1798 /*** IMediaSample methods ***/ \
1799 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
1800 STDMETHOD_(long,GetSize)(THIS) PURE; \
1801 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1802 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1803 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
1804 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
1805 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
1806 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
1807 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
1808 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
1809 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
1810 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
1811 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
1812 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
1813 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
1814 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE;
1816 HRESULT CALLBACK
IMediaSample_GetPointer_Proxy(
1819 void __RPC_STUB
IMediaSample_GetPointer_Stub(
1820 struct IRpcStubBuffer
* This
,
1821 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1822 PRPC_MESSAGE pRpcMessage
,
1823 DWORD
* pdwStubPhase
);
1824 long CALLBACK
IMediaSample_GetSize_Proxy(
1825 IMediaSample
* This
);
1826 void __RPC_STUB
IMediaSample_GetSize_Stub(
1827 struct IRpcStubBuffer
* This
,
1828 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1829 PRPC_MESSAGE pRpcMessage
,
1830 DWORD
* pdwStubPhase
);
1831 HRESULT CALLBACK
IMediaSample_GetTime_Proxy(
1833 REFERENCE_TIME
* pTimeStart
,
1834 REFERENCE_TIME
* pTimeEnd
);
1835 void __RPC_STUB
IMediaSample_GetTime_Stub(
1836 struct IRpcStubBuffer
* This
,
1837 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1838 PRPC_MESSAGE pRpcMessage
,
1839 DWORD
* pdwStubPhase
);
1840 HRESULT CALLBACK
IMediaSample_SetTime_Proxy(
1842 REFERENCE_TIME
* pTimeStart
,
1843 REFERENCE_TIME
* pTimeEnd
);
1844 void __RPC_STUB
IMediaSample_SetTime_Stub(
1845 struct IRpcStubBuffer
* This
,
1846 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1847 PRPC_MESSAGE pRpcMessage
,
1848 DWORD
* pdwStubPhase
);
1849 HRESULT CALLBACK
IMediaSample_IsSyncPoint_Proxy(
1850 IMediaSample
* This
);
1851 void __RPC_STUB
IMediaSample_IsSyncPoint_Stub(
1852 struct IRpcStubBuffer
* This
,
1853 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1854 PRPC_MESSAGE pRpcMessage
,
1855 DWORD
* pdwStubPhase
);
1856 HRESULT CALLBACK
IMediaSample_SetSyncPoint_Proxy(
1859 void __RPC_STUB
IMediaSample_SetSyncPoint_Stub(
1860 struct IRpcStubBuffer
* This
,
1861 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1862 PRPC_MESSAGE pRpcMessage
,
1863 DWORD
* pdwStubPhase
);
1864 HRESULT CALLBACK
IMediaSample_IsPreroll_Proxy(
1865 IMediaSample
* This
);
1866 void __RPC_STUB
IMediaSample_IsPreroll_Stub(
1867 struct IRpcStubBuffer
* This
,
1868 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1869 PRPC_MESSAGE pRpcMessage
,
1870 DWORD
* pdwStubPhase
);
1871 HRESULT CALLBACK
IMediaSample_SetPreroll_Proxy(
1874 void __RPC_STUB
IMediaSample_SetPreroll_Stub(
1875 struct IRpcStubBuffer
* This
,
1876 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1877 PRPC_MESSAGE pRpcMessage
,
1878 DWORD
* pdwStubPhase
);
1879 long CALLBACK
IMediaSample_GetActualDataLength_Proxy(
1880 IMediaSample
* This
);
1881 void __RPC_STUB
IMediaSample_GetActualDataLength_Stub(
1882 struct IRpcStubBuffer
* This
,
1883 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1884 PRPC_MESSAGE pRpcMessage
,
1885 DWORD
* pdwStubPhase
);
1886 HRESULT CALLBACK
IMediaSample_SetActualDataLength_Proxy(
1889 void __RPC_STUB
IMediaSample_SetActualDataLength_Stub(
1890 struct IRpcStubBuffer
* This
,
1891 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1892 PRPC_MESSAGE pRpcMessage
,
1893 DWORD
* pdwStubPhase
);
1894 HRESULT CALLBACK
IMediaSample_GetMediaType_Proxy(
1896 AM_MEDIA_TYPE
** ppMediaType
);
1897 void __RPC_STUB
IMediaSample_GetMediaType_Stub(
1898 struct IRpcStubBuffer
* This
,
1899 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1900 PRPC_MESSAGE pRpcMessage
,
1901 DWORD
* pdwStubPhase
);
1902 HRESULT CALLBACK
IMediaSample_SetMediaType_Proxy(
1904 AM_MEDIA_TYPE
* pMediaType
);
1905 void __RPC_STUB
IMediaSample_SetMediaType_Stub(
1906 struct IRpcStubBuffer
* This
,
1907 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1908 PRPC_MESSAGE pRpcMessage
,
1909 DWORD
* pdwStubPhase
);
1910 HRESULT CALLBACK
IMediaSample_IsDiscontinuity_Proxy(
1911 IMediaSample
* This
);
1912 void __RPC_STUB
IMediaSample_IsDiscontinuity_Stub(
1913 struct IRpcStubBuffer
* This
,
1914 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1915 PRPC_MESSAGE pRpcMessage
,
1916 DWORD
* pdwStubPhase
);
1917 HRESULT CALLBACK
IMediaSample_SetDiscontinuity_Proxy(
1919 BOOL bDiscontinuity
);
1920 void __RPC_STUB
IMediaSample_SetDiscontinuity_Stub(
1921 struct IRpcStubBuffer
* This
,
1922 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1923 PRPC_MESSAGE pRpcMessage
,
1924 DWORD
* pdwStubPhase
);
1925 HRESULT CALLBACK
IMediaSample_GetMediaTime_Proxy(
1927 LONGLONG
* pTimeStart
,
1928 LONGLONG
* pTimeEnd
);
1929 void __RPC_STUB
IMediaSample_GetMediaTime_Stub(
1930 struct IRpcStubBuffer
* This
,
1931 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1932 PRPC_MESSAGE pRpcMessage
,
1933 DWORD
* pdwStubPhase
);
1934 HRESULT CALLBACK
IMediaSample_SetMediaTime_Proxy(
1936 LONGLONG
* pTimeStart
,
1937 LONGLONG
* pTimeEnd
);
1938 void __RPC_STUB
IMediaSample_SetMediaTime_Stub(
1939 struct IRpcStubBuffer
* This
,
1940 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1941 PRPC_MESSAGE pRpcMessage
,
1942 DWORD
* pdwStubPhase
);
1944 #endif /* __IMediaSample_INTERFACE_DEFINED__ */
1946 typedef IMediaSample
*PMEDIASAMPLE
;
1948 enum tagAM_SAMPLE_PROPERTY_FLAGS
{
1949 AM_SAMPLE_SPLICEPOINT
= 0x1,
1950 AM_SAMPLE_PREROLL
= 0x2,
1951 AM_SAMPLE_DATADISCONTINUITY
= 0x4,
1952 AM_SAMPLE_TYPECHANGED
= 0x8,
1953 AM_SAMPLE_TIMEVALID
= 0x10,
1954 AM_SAMPLE_TIMEDISCONTINUITY
= 0x40,
1955 AM_SAMPLE_FLUSH_ON_PAUSE
= 0x80,
1956 AM_SAMPLE_STOPVALID
= 0x100,
1957 AM_SAMPLE_ENDOFSTREAM
= 0x200,
1958 AM_STREAM_MEDIA
= 0,
1959 AM_STREAM_CONTROL
= 1
1962 typedef struct tagAM_SAMPLE2_PROPERTIES
{
1964 DWORD dwTypeSpecificFlags
;
1965 DWORD dwSampleFlags
;
1967 REFERENCE_TIME tStart
;
1968 REFERENCE_TIME tStop
;
1970 AM_MEDIA_TYPE
*pMediaType
;
1973 } AM_SAMPLE2_PROPERTIES
;
1975 #ifndef __IMediaSample2_FWD_DEFINED__
1976 #define __IMediaSample2_FWD_DEFINED__
1977 typedef struct IMediaSample2 IMediaSample2
;
1980 /*****************************************************************************
1981 * IMediaSample2 interface
1983 #ifndef __IMediaSample2_INTERFACE_DEFINED__
1984 #define __IMediaSample2_INTERFACE_DEFINED__
1986 DEFINE_GUID(IID_IMediaSample2
, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
1987 #if defined(__cplusplus) && !defined(CINTERFACE)
1988 struct IMediaSample2
: public IMediaSample
1990 virtual HRESULT STDMETHODCALLTYPE
GetProperties(
1992 BYTE
* pbProperties
) = 0;
1994 virtual HRESULT STDMETHODCALLTYPE
SetProperties(
1996 const BYTE
* pbProperties
) = 0;
2000 typedef struct IMediaSample2Vtbl IMediaSample2Vtbl
;
2001 struct IMediaSample2
{
2002 const IMediaSample2Vtbl
* lpVtbl
;
2004 struct IMediaSample2Vtbl
{
2005 ICOM_MSVTABLE_COMPAT_FIELDS
2007 /*** IUnknown methods ***/
2008 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2009 IMediaSample2
* This
,
2013 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2014 IMediaSample2
* This
);
2016 ULONG (STDMETHODCALLTYPE
*Release
)(
2017 IMediaSample2
* This
);
2019 /*** IMediaSample methods ***/
2020 HRESULT (STDMETHODCALLTYPE
*GetPointer
)(
2021 IMediaSample2
* This
,
2024 long (STDMETHODCALLTYPE
*GetSize
)(
2025 IMediaSample2
* This
);
2027 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
2028 IMediaSample2
* This
,
2029 REFERENCE_TIME
* pTimeStart
,
2030 REFERENCE_TIME
* pTimeEnd
);
2032 HRESULT (STDMETHODCALLTYPE
*SetTime
)(
2033 IMediaSample2
* This
,
2034 REFERENCE_TIME
* pTimeStart
,
2035 REFERENCE_TIME
* pTimeEnd
);
2037 HRESULT (STDMETHODCALLTYPE
*IsSyncPoint
)(
2038 IMediaSample2
* This
);
2040 HRESULT (STDMETHODCALLTYPE
*SetSyncPoint
)(
2041 IMediaSample2
* This
,
2044 HRESULT (STDMETHODCALLTYPE
*IsPreroll
)(
2045 IMediaSample2
* This
);
2047 HRESULT (STDMETHODCALLTYPE
*SetPreroll
)(
2048 IMediaSample2
* This
,
2051 long (STDMETHODCALLTYPE
*GetActualDataLength
)(
2052 IMediaSample2
* This
);
2054 HRESULT (STDMETHODCALLTYPE
*SetActualDataLength
)(
2055 IMediaSample2
* This
,
2058 HRESULT (STDMETHODCALLTYPE
*GetMediaType
)(
2059 IMediaSample2
* This
,
2060 AM_MEDIA_TYPE
** ppMediaType
);
2062 HRESULT (STDMETHODCALLTYPE
*SetMediaType
)(
2063 IMediaSample2
* This
,
2064 AM_MEDIA_TYPE
* pMediaType
);
2066 HRESULT (STDMETHODCALLTYPE
*IsDiscontinuity
)(
2067 IMediaSample2
* This
);
2069 HRESULT (STDMETHODCALLTYPE
*SetDiscontinuity
)(
2070 IMediaSample2
* This
,
2071 BOOL bDiscontinuity
);
2073 HRESULT (STDMETHODCALLTYPE
*GetMediaTime
)(
2074 IMediaSample2
* This
,
2075 LONGLONG
* pTimeStart
,
2076 LONGLONG
* pTimeEnd
);
2078 HRESULT (STDMETHODCALLTYPE
*SetMediaTime
)(
2079 IMediaSample2
* This
,
2080 LONGLONG
* pTimeStart
,
2081 LONGLONG
* pTimeEnd
);
2083 /*** IMediaSample2 methods ***/
2084 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2085 IMediaSample2
* This
,
2087 BYTE
* pbProperties
);
2089 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2090 IMediaSample2
* This
,
2092 const BYTE
* pbProperties
);
2096 /*** IUnknown methods ***/
2097 #define IMediaSample2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2098 #define IMediaSample2_AddRef(p) (p)->lpVtbl->AddRef(p)
2099 #define IMediaSample2_Release(p) (p)->lpVtbl->Release(p)
2100 /*** IMediaSample methods ***/
2101 #define IMediaSample2_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
2102 #define IMediaSample2_GetSize(p) (p)->lpVtbl->GetSize(p)
2103 #define IMediaSample2_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
2104 #define IMediaSample2_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
2105 #define IMediaSample2_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
2106 #define IMediaSample2_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
2107 #define IMediaSample2_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
2108 #define IMediaSample2_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
2109 #define IMediaSample2_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
2110 #define IMediaSample2_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
2111 #define IMediaSample2_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
2112 #define IMediaSample2_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
2113 #define IMediaSample2_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
2114 #define IMediaSample2_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
2115 #define IMediaSample2_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
2116 #define IMediaSample2_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
2117 /*** IMediaSample2 methods ***/
2118 #define IMediaSample2_GetProperties(p,a,b) (p)->lpVtbl->GetProperties(p,a,b)
2119 #define IMediaSample2_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2123 #define IMediaSample2_METHODS \
2124 ICOM_MSVTABLE_COMPAT_FIELDS \
2125 /*** IUnknown methods ***/ \
2126 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2127 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2128 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2129 /*** IMediaSample methods ***/ \
2130 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
2131 STDMETHOD_(long,GetSize)(THIS) PURE; \
2132 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
2133 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
2134 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
2135 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
2136 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
2137 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
2138 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
2139 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
2140 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
2141 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
2142 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
2143 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
2144 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
2145 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
2146 /*** IMediaSample2 methods ***/ \
2147 STDMETHOD_(HRESULT,GetProperties)(THIS_ DWORD cbProperties, BYTE* pbProperties) PURE; \
2148 STDMETHOD_(HRESULT,SetProperties)(THIS_ DWORD cbProperties, const BYTE* pbProperties) PURE;
2150 HRESULT CALLBACK
IMediaSample2_GetProperties_Proxy(
2151 IMediaSample2
* This
,
2153 BYTE
* pbProperties
);
2154 void __RPC_STUB
IMediaSample2_GetProperties_Stub(
2155 struct IRpcStubBuffer
* This
,
2156 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2157 PRPC_MESSAGE pRpcMessage
,
2158 DWORD
* pdwStubPhase
);
2159 HRESULT CALLBACK
IMediaSample2_SetProperties_Proxy(
2160 IMediaSample2
* This
,
2162 const BYTE
* pbProperties
);
2163 void __RPC_STUB
IMediaSample2_SetProperties_Stub(
2164 struct IRpcStubBuffer
* This
,
2165 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2166 PRPC_MESSAGE pRpcMessage
,
2167 DWORD
* pdwStubPhase
);
2169 #endif /* __IMediaSample2_INTERFACE_DEFINED__ */
2171 typedef IMediaSample2
*PMEDIASAMPLE2
;
2173 #define AM_GBF_PREVFRAMESKIPPED 1
2174 #define AM_GBF_NOTASYNCPOINT 2
2175 #define AM_GBF_NOWAIT 4
2176 /*****************************************************************************
2177 * IMemAllocator interface
2179 #ifndef __IMemAllocator_INTERFACE_DEFINED__
2180 #define __IMemAllocator_INTERFACE_DEFINED__
2182 DEFINE_GUID(IID_IMemAllocator
, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2183 #if defined(__cplusplus) && !defined(CINTERFACE)
2184 struct IMemAllocator
: public IUnknown
2186 virtual HRESULT STDMETHODCALLTYPE
SetProperties(
2187 ALLOCATOR_PROPERTIES
* pRequest
,
2188 ALLOCATOR_PROPERTIES
* pActual
) = 0;
2190 virtual HRESULT STDMETHODCALLTYPE
GetProperties(
2191 ALLOCATOR_PROPERTIES
* pProps
) = 0;
2193 virtual HRESULT STDMETHODCALLTYPE
Commit(
2196 virtual HRESULT STDMETHODCALLTYPE
Decommit(
2199 virtual HRESULT STDMETHODCALLTYPE
GetBuffer(
2200 IMediaSample
** ppBuffer
,
2201 REFERENCE_TIME
* pStartTime
,
2202 REFERENCE_TIME
* pEndTime
,
2205 virtual HRESULT STDMETHODCALLTYPE
ReleaseBuffer(
2206 IMediaSample
* pBuffer
) = 0;
2210 typedef struct IMemAllocatorVtbl IMemAllocatorVtbl
;
2211 struct IMemAllocator
{
2212 const IMemAllocatorVtbl
* lpVtbl
;
2214 struct IMemAllocatorVtbl
{
2215 ICOM_MSVTABLE_COMPAT_FIELDS
2217 /*** IUnknown methods ***/
2218 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2219 IMemAllocator
* This
,
2223 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2224 IMemAllocator
* This
);
2226 ULONG (STDMETHODCALLTYPE
*Release
)(
2227 IMemAllocator
* This
);
2229 /*** IMemAllocator methods ***/
2230 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2231 IMemAllocator
* This
,
2232 ALLOCATOR_PROPERTIES
* pRequest
,
2233 ALLOCATOR_PROPERTIES
* pActual
);
2235 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2236 IMemAllocator
* This
,
2237 ALLOCATOR_PROPERTIES
* pProps
);
2239 HRESULT (STDMETHODCALLTYPE
*Commit
)(
2240 IMemAllocator
* This
);
2242 HRESULT (STDMETHODCALLTYPE
*Decommit
)(
2243 IMemAllocator
* This
);
2245 HRESULT (STDMETHODCALLTYPE
*GetBuffer
)(
2246 IMemAllocator
* This
,
2247 IMediaSample
** ppBuffer
,
2248 REFERENCE_TIME
* pStartTime
,
2249 REFERENCE_TIME
* pEndTime
,
2252 HRESULT (STDMETHODCALLTYPE
*ReleaseBuffer
)(
2253 IMemAllocator
* This
,
2254 IMediaSample
* pBuffer
);
2258 /*** IUnknown methods ***/
2259 #define IMemAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2260 #define IMemAllocator_AddRef(p) (p)->lpVtbl->AddRef(p)
2261 #define IMemAllocator_Release(p) (p)->lpVtbl->Release(p)
2262 /*** IMemAllocator methods ***/
2263 #define IMemAllocator_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2264 #define IMemAllocator_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
2265 #define IMemAllocator_Commit(p) (p)->lpVtbl->Commit(p)
2266 #define IMemAllocator_Decommit(p) (p)->lpVtbl->Decommit(p)
2267 #define IMemAllocator_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
2268 #define IMemAllocator_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
2272 #define IMemAllocator_METHODS \
2273 ICOM_MSVTABLE_COMPAT_FIELDS \
2274 /*** IUnknown methods ***/ \
2275 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2276 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2277 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2278 /*** IMemAllocator methods ***/ \
2279 STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
2280 STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2281 STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
2282 STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
2283 STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
2284 STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE;
2286 HRESULT CALLBACK
IMemAllocator_SetProperties_Proxy(
2287 IMemAllocator
* This
,
2288 ALLOCATOR_PROPERTIES
* pRequest
,
2289 ALLOCATOR_PROPERTIES
* pActual
);
2290 void __RPC_STUB
IMemAllocator_SetProperties_Stub(
2291 struct IRpcStubBuffer
* This
,
2292 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2293 PRPC_MESSAGE pRpcMessage
,
2294 DWORD
* pdwStubPhase
);
2295 HRESULT CALLBACK
IMemAllocator_GetProperties_Proxy(
2296 IMemAllocator
* This
,
2297 ALLOCATOR_PROPERTIES
* pProps
);
2298 void __RPC_STUB
IMemAllocator_GetProperties_Stub(
2299 struct IRpcStubBuffer
* This
,
2300 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2301 PRPC_MESSAGE pRpcMessage
,
2302 DWORD
* pdwStubPhase
);
2303 HRESULT CALLBACK
IMemAllocator_Commit_Proxy(
2304 IMemAllocator
* This
);
2305 void __RPC_STUB
IMemAllocator_Commit_Stub(
2306 struct IRpcStubBuffer
* This
,
2307 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2308 PRPC_MESSAGE pRpcMessage
,
2309 DWORD
* pdwStubPhase
);
2310 HRESULT CALLBACK
IMemAllocator_Decommit_Proxy(
2311 IMemAllocator
* This
);
2312 void __RPC_STUB
IMemAllocator_Decommit_Stub(
2313 struct IRpcStubBuffer
* This
,
2314 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2315 PRPC_MESSAGE pRpcMessage
,
2316 DWORD
* pdwStubPhase
);
2317 HRESULT CALLBACK
IMemAllocator_GetBuffer_Proxy(
2318 IMemAllocator
* This
,
2319 IMediaSample
** ppBuffer
,
2320 REFERENCE_TIME
* pStartTime
,
2321 REFERENCE_TIME
* pEndTime
,
2323 void __RPC_STUB
IMemAllocator_GetBuffer_Stub(
2324 struct IRpcStubBuffer
* This
,
2325 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2326 PRPC_MESSAGE pRpcMessage
,
2327 DWORD
* pdwStubPhase
);
2328 HRESULT CALLBACK
IMemAllocator_ReleaseBuffer_Proxy(
2329 IMemAllocator
* This
,
2330 IMediaSample
* pBuffer
);
2331 void __RPC_STUB
IMemAllocator_ReleaseBuffer_Stub(
2332 struct IRpcStubBuffer
* This
,
2333 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2334 PRPC_MESSAGE pRpcMessage
,
2335 DWORD
* pdwStubPhase
);
2337 #endif /* __IMemAllocator_INTERFACE_DEFINED__ */
2339 typedef IMemAllocator
*PMEMALLOCATOR
;
2341 /*****************************************************************************
2342 * IMemAllocatorCallbackTemp interface
2344 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2345 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2347 DEFINE_GUID(IID_IMemAllocatorCallbackTemp
, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
2348 #if defined(__cplusplus) && !defined(CINTERFACE)
2349 struct IMemAllocatorCallbackTemp
: public IMemAllocator
2351 virtual HRESULT STDMETHODCALLTYPE
SetNotify(
2352 IMemAllocatorNotifyCallbackTemp
* pNotify
) = 0;
2354 virtual HRESULT STDMETHODCALLTYPE
GetFreeCount(
2355 LONG
* plBuffersFree
) = 0;
2359 typedef struct IMemAllocatorCallbackTempVtbl IMemAllocatorCallbackTempVtbl
;
2360 struct IMemAllocatorCallbackTemp
{
2361 const IMemAllocatorCallbackTempVtbl
* lpVtbl
;
2363 struct IMemAllocatorCallbackTempVtbl
{
2364 ICOM_MSVTABLE_COMPAT_FIELDS
2366 /*** IUnknown methods ***/
2367 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2368 IMemAllocatorCallbackTemp
* This
,
2372 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2373 IMemAllocatorCallbackTemp
* This
);
2375 ULONG (STDMETHODCALLTYPE
*Release
)(
2376 IMemAllocatorCallbackTemp
* This
);
2378 /*** IMemAllocator methods ***/
2379 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2380 IMemAllocatorCallbackTemp
* This
,
2381 ALLOCATOR_PROPERTIES
* pRequest
,
2382 ALLOCATOR_PROPERTIES
* pActual
);
2384 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2385 IMemAllocatorCallbackTemp
* This
,
2386 ALLOCATOR_PROPERTIES
* pProps
);
2388 HRESULT (STDMETHODCALLTYPE
*Commit
)(
2389 IMemAllocatorCallbackTemp
* This
);
2391 HRESULT (STDMETHODCALLTYPE
*Decommit
)(
2392 IMemAllocatorCallbackTemp
* This
);
2394 HRESULT (STDMETHODCALLTYPE
*GetBuffer
)(
2395 IMemAllocatorCallbackTemp
* This
,
2396 IMediaSample
** ppBuffer
,
2397 REFERENCE_TIME
* pStartTime
,
2398 REFERENCE_TIME
* pEndTime
,
2401 HRESULT (STDMETHODCALLTYPE
*ReleaseBuffer
)(
2402 IMemAllocatorCallbackTemp
* This
,
2403 IMediaSample
* pBuffer
);
2405 /*** IMemAllocatorCallbackTemp methods ***/
2406 HRESULT (STDMETHODCALLTYPE
*SetNotify
)(
2407 IMemAllocatorCallbackTemp
* This
,
2408 IMemAllocatorNotifyCallbackTemp
* pNotify
);
2410 HRESULT (STDMETHODCALLTYPE
*GetFreeCount
)(
2411 IMemAllocatorCallbackTemp
* This
,
2412 LONG
* plBuffersFree
);
2416 /*** IUnknown methods ***/
2417 #define IMemAllocatorCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2418 #define IMemAllocatorCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
2419 #define IMemAllocatorCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
2420 /*** IMemAllocator methods ***/
2421 #define IMemAllocatorCallbackTemp_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2422 #define IMemAllocatorCallbackTemp_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
2423 #define IMemAllocatorCallbackTemp_Commit(p) (p)->lpVtbl->Commit(p)
2424 #define IMemAllocatorCallbackTemp_Decommit(p) (p)->lpVtbl->Decommit(p)
2425 #define IMemAllocatorCallbackTemp_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
2426 #define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
2427 /*** IMemAllocatorCallbackTemp methods ***/
2428 #define IMemAllocatorCallbackTemp_SetNotify(p,a) (p)->lpVtbl->SetNotify(p,a)
2429 #define IMemAllocatorCallbackTemp_GetFreeCount(p,a) (p)->lpVtbl->GetFreeCount(p,a)
2433 #define IMemAllocatorCallbackTemp_METHODS \
2434 ICOM_MSVTABLE_COMPAT_FIELDS \
2435 /*** IUnknown methods ***/ \
2436 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2437 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2438 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2439 /*** IMemAllocator methods ***/ \
2440 STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
2441 STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2442 STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
2443 STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
2444 STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
2445 STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE; \
2446 /*** IMemAllocatorCallbackTemp methods ***/ \
2447 STDMETHOD_(HRESULT,SetNotify)(THIS_ IMemAllocatorNotifyCallbackTemp* pNotify) PURE; \
2448 STDMETHOD_(HRESULT,GetFreeCount)(THIS_ LONG* plBuffersFree) PURE;
2450 HRESULT CALLBACK
IMemAllocatorCallbackTemp_SetNotify_Proxy(
2451 IMemAllocatorCallbackTemp
* This
,
2452 IMemAllocatorNotifyCallbackTemp
* pNotify
);
2453 void __RPC_STUB
IMemAllocatorCallbackTemp_SetNotify_Stub(
2454 struct IRpcStubBuffer
* This
,
2455 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2456 PRPC_MESSAGE pRpcMessage
,
2457 DWORD
* pdwStubPhase
);
2458 HRESULT CALLBACK
IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
2459 IMemAllocatorCallbackTemp
* This
,
2460 LONG
* plBuffersFree
);
2461 void __RPC_STUB
IMemAllocatorCallbackTemp_GetFreeCount_Stub(
2462 struct IRpcStubBuffer
* This
,
2463 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2464 PRPC_MESSAGE pRpcMessage
,
2465 DWORD
* pdwStubPhase
);
2467 #endif /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
2469 /*****************************************************************************
2470 * IMemAllocatorNotifyCallbackTemp interface
2472 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
2473 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
2475 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp
, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
2476 #if defined(__cplusplus) && !defined(CINTERFACE)
2477 struct IMemAllocatorNotifyCallbackTemp
: public IUnknown
2479 virtual HRESULT STDMETHODCALLTYPE
NotifyRelease(
2484 typedef struct IMemAllocatorNotifyCallbackTempVtbl IMemAllocatorNotifyCallbackTempVtbl
;
2485 struct IMemAllocatorNotifyCallbackTemp
{
2486 const IMemAllocatorNotifyCallbackTempVtbl
* lpVtbl
;
2488 struct IMemAllocatorNotifyCallbackTempVtbl
{
2489 ICOM_MSVTABLE_COMPAT_FIELDS
2491 /*** IUnknown methods ***/
2492 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2493 IMemAllocatorNotifyCallbackTemp
* This
,
2497 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2498 IMemAllocatorNotifyCallbackTemp
* This
);
2500 ULONG (STDMETHODCALLTYPE
*Release
)(
2501 IMemAllocatorNotifyCallbackTemp
* This
);
2503 /*** IMemAllocatorNotifyCallbackTemp methods ***/
2504 HRESULT (STDMETHODCALLTYPE
*NotifyRelease
)(
2505 IMemAllocatorNotifyCallbackTemp
* This
);
2509 /*** IUnknown methods ***/
2510 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2511 #define IMemAllocatorNotifyCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
2512 #define IMemAllocatorNotifyCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
2513 /*** IMemAllocatorNotifyCallbackTemp methods ***/
2514 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) (p)->lpVtbl->NotifyRelease(p)
2518 #define IMemAllocatorNotifyCallbackTemp_METHODS \
2519 ICOM_MSVTABLE_COMPAT_FIELDS \
2520 /*** IUnknown methods ***/ \
2521 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2522 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2523 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2524 /*** IMemAllocatorNotifyCallbackTemp methods ***/ \
2525 STDMETHOD_(HRESULT,NotifyRelease)(THIS) PURE;
2527 HRESULT CALLBACK
IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
2528 IMemAllocatorNotifyCallbackTemp
* This
);
2529 void __RPC_STUB
IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
2530 struct IRpcStubBuffer
* This
,
2531 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2532 PRPC_MESSAGE pRpcMessage
,
2533 DWORD
* pdwStubPhase
);
2535 #endif /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
2537 /*****************************************************************************
2538 * IMemInputPin interface
2540 #ifndef __IMemInputPin_INTERFACE_DEFINED__
2541 #define __IMemInputPin_INTERFACE_DEFINED__
2543 DEFINE_GUID(IID_IMemInputPin
, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2544 #if defined(__cplusplus) && !defined(CINTERFACE)
2545 struct IMemInputPin
: public IUnknown
2547 virtual HRESULT STDMETHODCALLTYPE
GetAllocator(
2548 IMemAllocator
** ppAllocator
) = 0;
2550 virtual HRESULT STDMETHODCALLTYPE
NotifyAllocator(
2551 IMemAllocator
* pAllocator
,
2552 BOOL bReadOnly
) = 0;
2554 virtual HRESULT STDMETHODCALLTYPE
GetAllocatorRequirements(
2555 ALLOCATOR_PROPERTIES
* pProps
) = 0;
2557 virtual HRESULT STDMETHODCALLTYPE
Receive(
2558 IMediaSample
* pSample
) = 0;
2560 virtual HRESULT STDMETHODCALLTYPE
ReceiveMultiple(
2561 IMediaSample
** pSamples
,
2563 long* nSamplesProcessed
) = 0;
2565 virtual HRESULT STDMETHODCALLTYPE
ReceiveCanBlock(
2570 typedef struct IMemInputPinVtbl IMemInputPinVtbl
;
2571 struct IMemInputPin
{
2572 const IMemInputPinVtbl
* lpVtbl
;
2574 struct IMemInputPinVtbl
{
2575 ICOM_MSVTABLE_COMPAT_FIELDS
2577 /*** IUnknown methods ***/
2578 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2583 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2584 IMemInputPin
* This
);
2586 ULONG (STDMETHODCALLTYPE
*Release
)(
2587 IMemInputPin
* This
);
2589 /*** IMemInputPin methods ***/
2590 HRESULT (STDMETHODCALLTYPE
*GetAllocator
)(
2592 IMemAllocator
** ppAllocator
);
2594 HRESULT (STDMETHODCALLTYPE
*NotifyAllocator
)(
2596 IMemAllocator
* pAllocator
,
2599 HRESULT (STDMETHODCALLTYPE
*GetAllocatorRequirements
)(
2601 ALLOCATOR_PROPERTIES
* pProps
);
2603 HRESULT (STDMETHODCALLTYPE
*Receive
)(
2605 IMediaSample
* pSample
);
2607 HRESULT (STDMETHODCALLTYPE
*ReceiveMultiple
)(
2609 IMediaSample
** pSamples
,
2611 long* nSamplesProcessed
);
2613 HRESULT (STDMETHODCALLTYPE
*ReceiveCanBlock
)(
2614 IMemInputPin
* This
);
2618 /*** IUnknown methods ***/
2619 #define IMemInputPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2620 #define IMemInputPin_AddRef(p) (p)->lpVtbl->AddRef(p)
2621 #define IMemInputPin_Release(p) (p)->lpVtbl->Release(p)
2622 /*** IMemInputPin methods ***/
2623 #define IMemInputPin_GetAllocator(p,a) (p)->lpVtbl->GetAllocator(p,a)
2624 #define IMemInputPin_NotifyAllocator(p,a,b) (p)->lpVtbl->NotifyAllocator(p,a,b)
2625 #define IMemInputPin_GetAllocatorRequirements(p,a) (p)->lpVtbl->GetAllocatorRequirements(p,a)
2626 #define IMemInputPin_Receive(p,a) (p)->lpVtbl->Receive(p,a)
2627 #define IMemInputPin_ReceiveMultiple(p,a,b,c) (p)->lpVtbl->ReceiveMultiple(p,a,b,c)
2628 #define IMemInputPin_ReceiveCanBlock(p) (p)->lpVtbl->ReceiveCanBlock(p)
2632 #define IMemInputPin_METHODS \
2633 ICOM_MSVTABLE_COMPAT_FIELDS \
2634 /*** IUnknown methods ***/ \
2635 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2636 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2637 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2638 /*** IMemInputPin methods ***/ \
2639 STDMETHOD_(HRESULT,GetAllocator)(THIS_ IMemAllocator** ppAllocator) PURE; \
2640 STDMETHOD_(HRESULT,NotifyAllocator)(THIS_ IMemAllocator* pAllocator, BOOL bReadOnly) PURE; \
2641 STDMETHOD_(HRESULT,GetAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2642 STDMETHOD_(HRESULT,Receive)(THIS_ IMediaSample* pSample) PURE; \
2643 STDMETHOD_(HRESULT,ReceiveMultiple)(THIS_ IMediaSample** pSamples, long nSamples, long* nSamplesProcessed) PURE; \
2644 STDMETHOD_(HRESULT,ReceiveCanBlock)(THIS) PURE;
2646 HRESULT CALLBACK
IMemInputPin_GetAllocator_Proxy(
2648 IMemAllocator
** ppAllocator
);
2649 void __RPC_STUB
IMemInputPin_GetAllocator_Stub(
2650 struct IRpcStubBuffer
* This
,
2651 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2652 PRPC_MESSAGE pRpcMessage
,
2653 DWORD
* pdwStubPhase
);
2654 HRESULT CALLBACK
IMemInputPin_NotifyAllocator_Proxy(
2656 IMemAllocator
* pAllocator
,
2658 void __RPC_STUB
IMemInputPin_NotifyAllocator_Stub(
2659 struct IRpcStubBuffer
* This
,
2660 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2661 PRPC_MESSAGE pRpcMessage
,
2662 DWORD
* pdwStubPhase
);
2663 HRESULT CALLBACK
IMemInputPin_GetAllocatorRequirements_Proxy(
2665 ALLOCATOR_PROPERTIES
* pProps
);
2666 void __RPC_STUB
IMemInputPin_GetAllocatorRequirements_Stub(
2667 struct IRpcStubBuffer
* This
,
2668 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2669 PRPC_MESSAGE pRpcMessage
,
2670 DWORD
* pdwStubPhase
);
2671 HRESULT CALLBACK
IMemInputPin_Receive_Proxy(
2673 IMediaSample
* pSample
);
2674 void __RPC_STUB
IMemInputPin_Receive_Stub(
2675 struct IRpcStubBuffer
* This
,
2676 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2677 PRPC_MESSAGE pRpcMessage
,
2678 DWORD
* pdwStubPhase
);
2679 HRESULT CALLBACK
IMemInputPin_ReceiveMultiple_Proxy(
2681 IMediaSample
** pSamples
,
2683 long* nSamplesProcessed
);
2684 void __RPC_STUB
IMemInputPin_ReceiveMultiple_Stub(
2685 struct IRpcStubBuffer
* This
,
2686 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2687 PRPC_MESSAGE pRpcMessage
,
2688 DWORD
* pdwStubPhase
);
2689 HRESULT CALLBACK
IMemInputPin_ReceiveCanBlock_Proxy(
2690 IMemInputPin
* This
);
2691 void __RPC_STUB
IMemInputPin_ReceiveCanBlock_Stub(
2692 struct IRpcStubBuffer
* This
,
2693 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2694 PRPC_MESSAGE pRpcMessage
,
2695 DWORD
* pdwStubPhase
);
2697 #endif /* __IMemInputPin_INTERFACE_DEFINED__ */
2699 typedef IMemInputPin
*PMEMINPUTPIN
;
2701 /*****************************************************************************
2702 * IAMovieSetup interface
2704 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
2705 #define __IAMovieSetup_INTERFACE_DEFINED__
2707 DEFINE_GUID(IID_IAMovieSetup
, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
2708 #if defined(__cplusplus) && !defined(CINTERFACE)
2709 struct IAMovieSetup
: public IUnknown
2711 virtual HRESULT STDMETHODCALLTYPE
Register(
2714 virtual HRESULT STDMETHODCALLTYPE
Unregister(
2719 typedef struct IAMovieSetupVtbl IAMovieSetupVtbl
;
2720 struct IAMovieSetup
{
2721 const IAMovieSetupVtbl
* lpVtbl
;
2723 struct IAMovieSetupVtbl
{
2724 ICOM_MSVTABLE_COMPAT_FIELDS
2726 /*** IUnknown methods ***/
2727 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2732 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2733 IAMovieSetup
* This
);
2735 ULONG (STDMETHODCALLTYPE
*Release
)(
2736 IAMovieSetup
* This
);
2738 /*** IAMovieSetup methods ***/
2739 HRESULT (STDMETHODCALLTYPE
*Register
)(
2740 IAMovieSetup
* This
);
2742 HRESULT (STDMETHODCALLTYPE
*Unregister
)(
2743 IAMovieSetup
* This
);
2747 /*** IUnknown methods ***/
2748 #define IAMovieSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2749 #define IAMovieSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
2750 #define IAMovieSetup_Release(p) (p)->lpVtbl->Release(p)
2751 /*** IAMovieSetup methods ***/
2752 #define IAMovieSetup_Register(p) (p)->lpVtbl->Register(p)
2753 #define IAMovieSetup_Unregister(p) (p)->lpVtbl->Unregister(p)
2757 #define IAMovieSetup_METHODS \
2758 ICOM_MSVTABLE_COMPAT_FIELDS \
2759 /*** IUnknown methods ***/ \
2760 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2761 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2762 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2763 /*** IAMovieSetup methods ***/ \
2764 STDMETHOD_(HRESULT,Register)(THIS) PURE; \
2765 STDMETHOD_(HRESULT,Unregister)(THIS) PURE;
2767 HRESULT CALLBACK
IAMovieSetup_Register_Proxy(
2768 IAMovieSetup
* This
);
2769 void __RPC_STUB
IAMovieSetup_Register_Stub(
2770 struct IRpcStubBuffer
* This
,
2771 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2772 PRPC_MESSAGE pRpcMessage
,
2773 DWORD
* pdwStubPhase
);
2774 HRESULT CALLBACK
IAMovieSetup_Unregister_Proxy(
2775 IAMovieSetup
* This
);
2776 void __RPC_STUB
IAMovieSetup_Unregister_Stub(
2777 struct IRpcStubBuffer
* This
,
2778 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2779 PRPC_MESSAGE pRpcMessage
,
2780 DWORD
* pdwStubPhase
);
2782 #endif /* __IAMovieSetup_INTERFACE_DEFINED__ */
2784 typedef IAMovieSetup
*PAMOVIESETUP
;
2786 typedef enum AM_SEEKING_SeekingFlags
{
2787 AM_SEEKING_NoPositioning
= 0x0,
2788 AM_SEEKING_AbsolutePositioning
= 0x1,
2789 AM_SEEKING_RelativePositioning
= 0x2,
2790 AM_SEEKING_IncrementalPositioning
= 0x3,
2791 AM_SEEKING_PositioningBitsMask
= 0x3,
2792 AM_SEEKING_SeekToKeyFrame
= 0x4,
2793 AM_SEEKING_ReturnTime
= 0x8,
2794 AM_SEEKING_Segment
= 0x10,
2795 AM_SEEKING_NoFlush
= 0x20
2796 } AM_SEEKING_SEEKING_FLAGS
;
2798 typedef enum AM_SEEKING_SeekingCapabilities
{
2799 AM_SEEKING_CanSeekAbsolute
= 0x1,
2800 AM_SEEKING_CanSeekForwards
= 0x2,
2801 AM_SEEKING_CanSeekBackwards
= 0x4,
2802 AM_SEEKING_CanGetCurrentPos
= 0x8,
2803 AM_SEEKING_CanGetStopPos
= 0x10,
2804 AM_SEEKING_CanGetDuration
= 0x20,
2805 AM_SEEKING_CanPlayBackwards
= 0x40,
2806 AM_SEEKING_CanDoSegments
= 0x80,
2807 AM_SEEKING_Source
= 0x100
2808 } AM_SEEKING_SEEKING_CAPABILITIES
;
2810 #ifndef __IMediaSeeking_FWD_DEFINED__
2811 #define __IMediaSeeking_FWD_DEFINED__
2812 typedef struct IMediaSeeking IMediaSeeking
;
2815 /*****************************************************************************
2816 * IMediaSeeking interface
2818 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
2819 #define __IMediaSeeking_INTERFACE_DEFINED__
2821 DEFINE_GUID(IID_IMediaSeeking
, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2822 #if defined(__cplusplus) && !defined(CINTERFACE)
2823 struct IMediaSeeking
: public IUnknown
2825 virtual HRESULT STDMETHODCALLTYPE
GetCapabilities(
2826 DWORD
* pCapabilities
) = 0;
2828 virtual HRESULT STDMETHODCALLTYPE
CheckCapabilities(
2829 DWORD
* pCapabilities
) = 0;
2831 virtual HRESULT STDMETHODCALLTYPE
IsFormatSupported(
2832 const GUID
* pFormat
) = 0;
2834 virtual HRESULT STDMETHODCALLTYPE
QueryPreferredFormat(
2837 virtual HRESULT STDMETHODCALLTYPE
GetTimeFormat(
2840 virtual HRESULT STDMETHODCALLTYPE
IsUsingTimeFormat(
2841 const GUID
* pFormat
) = 0;
2843 virtual HRESULT STDMETHODCALLTYPE
SetTimeFormat(
2844 const GUID
* pFormat
) = 0;
2846 virtual HRESULT STDMETHODCALLTYPE
GetDuration(
2847 LONGLONG
* pDuration
) = 0;
2849 virtual HRESULT STDMETHODCALLTYPE
GetStopPosition(
2850 LONGLONG
* pStop
) = 0;
2852 virtual HRESULT STDMETHODCALLTYPE
GetCurrentPosition(
2853 LONGLONG
* pCurrent
) = 0;
2855 virtual HRESULT STDMETHODCALLTYPE
ConvertTimeFormat(
2857 const GUID
* pTargetFormat
,
2859 const GUID
* pSourceFormat
) = 0;
2861 virtual HRESULT STDMETHODCALLTYPE
SetPositions(
2863 DWORD dwCurrentFlags
,
2865 DWORD dwStopFlags
) = 0;
2867 virtual HRESULT STDMETHODCALLTYPE
GetPositions(
2869 LONGLONG
* pStop
) = 0;
2871 virtual HRESULT STDMETHODCALLTYPE
GetAvailable(
2872 LONGLONG
* pEarliest
,
2873 LONGLONG
* pLatest
) = 0;
2875 virtual HRESULT STDMETHODCALLTYPE
SetRate(
2878 virtual HRESULT STDMETHODCALLTYPE
GetRate(
2879 double* pdRate
) = 0;
2881 virtual HRESULT STDMETHODCALLTYPE
GetPreroll(
2882 LONGLONG
* pllPreroll
) = 0;
2886 typedef struct IMediaSeekingVtbl IMediaSeekingVtbl
;
2887 struct IMediaSeeking
{
2888 const IMediaSeekingVtbl
* lpVtbl
;
2890 struct IMediaSeekingVtbl
{
2891 ICOM_MSVTABLE_COMPAT_FIELDS
2893 /*** IUnknown methods ***/
2894 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2895 IMediaSeeking
* This
,
2899 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2900 IMediaSeeking
* This
);
2902 ULONG (STDMETHODCALLTYPE
*Release
)(
2903 IMediaSeeking
* This
);
2905 /*** IMediaSeeking methods ***/
2906 HRESULT (STDMETHODCALLTYPE
*GetCapabilities
)(
2907 IMediaSeeking
* This
,
2908 DWORD
* pCapabilities
);
2910 HRESULT (STDMETHODCALLTYPE
*CheckCapabilities
)(
2911 IMediaSeeking
* This
,
2912 DWORD
* pCapabilities
);
2914 HRESULT (STDMETHODCALLTYPE
*IsFormatSupported
)(
2915 IMediaSeeking
* This
,
2916 const GUID
* pFormat
);
2918 HRESULT (STDMETHODCALLTYPE
*QueryPreferredFormat
)(
2919 IMediaSeeking
* This
,
2922 HRESULT (STDMETHODCALLTYPE
*GetTimeFormat
)(
2923 IMediaSeeking
* This
,
2926 HRESULT (STDMETHODCALLTYPE
*IsUsingTimeFormat
)(
2927 IMediaSeeking
* This
,
2928 const GUID
* pFormat
);
2930 HRESULT (STDMETHODCALLTYPE
*SetTimeFormat
)(
2931 IMediaSeeking
* This
,
2932 const GUID
* pFormat
);
2934 HRESULT (STDMETHODCALLTYPE
*GetDuration
)(
2935 IMediaSeeking
* This
,
2936 LONGLONG
* pDuration
);
2938 HRESULT (STDMETHODCALLTYPE
*GetStopPosition
)(
2939 IMediaSeeking
* This
,
2942 HRESULT (STDMETHODCALLTYPE
*GetCurrentPosition
)(
2943 IMediaSeeking
* This
,
2944 LONGLONG
* pCurrent
);
2946 HRESULT (STDMETHODCALLTYPE
*ConvertTimeFormat
)(
2947 IMediaSeeking
* This
,
2949 const GUID
* pTargetFormat
,
2951 const GUID
* pSourceFormat
);
2953 HRESULT (STDMETHODCALLTYPE
*SetPositions
)(
2954 IMediaSeeking
* This
,
2956 DWORD dwCurrentFlags
,
2960 HRESULT (STDMETHODCALLTYPE
*GetPositions
)(
2961 IMediaSeeking
* This
,
2965 HRESULT (STDMETHODCALLTYPE
*GetAvailable
)(
2966 IMediaSeeking
* This
,
2967 LONGLONG
* pEarliest
,
2970 HRESULT (STDMETHODCALLTYPE
*SetRate
)(
2971 IMediaSeeking
* This
,
2974 HRESULT (STDMETHODCALLTYPE
*GetRate
)(
2975 IMediaSeeking
* This
,
2978 HRESULT (STDMETHODCALLTYPE
*GetPreroll
)(
2979 IMediaSeeking
* This
,
2980 LONGLONG
* pllPreroll
);
2984 /*** IUnknown methods ***/
2985 #define IMediaSeeking_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2986 #define IMediaSeeking_AddRef(p) (p)->lpVtbl->AddRef(p)
2987 #define IMediaSeeking_Release(p) (p)->lpVtbl->Release(p)
2988 /*** IMediaSeeking methods ***/
2989 #define IMediaSeeking_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
2990 #define IMediaSeeking_CheckCapabilities(p,a) (p)->lpVtbl->CheckCapabilities(p,a)
2991 #define IMediaSeeking_IsFormatSupported(p,a) (p)->lpVtbl->IsFormatSupported(p,a)
2992 #define IMediaSeeking_QueryPreferredFormat(p,a) (p)->lpVtbl->QueryPreferredFormat(p,a)
2993 #define IMediaSeeking_GetTimeFormat(p,a) (p)->lpVtbl->GetTimeFormat(p,a)
2994 #define IMediaSeeking_IsUsingTimeFormat(p,a) (p)->lpVtbl->IsUsingTimeFormat(p,a)
2995 #define IMediaSeeking_SetTimeFormat(p,a) (p)->lpVtbl->SetTimeFormat(p,a)
2996 #define IMediaSeeking_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
2997 #define IMediaSeeking_GetStopPosition(p,a) (p)->lpVtbl->GetStopPosition(p,a)
2998 #define IMediaSeeking_GetCurrentPosition(p,a) (p)->lpVtbl->GetCurrentPosition(p,a)
2999 #define IMediaSeeking_ConvertTimeFormat(p,a,b,c,d) (p)->lpVtbl->ConvertTimeFormat(p,a,b,c,d)
3000 #define IMediaSeeking_SetPositions(p,a,b,c,d) (p)->lpVtbl->SetPositions(p,a,b,c,d)
3001 #define IMediaSeeking_GetPositions(p,a,b) (p)->lpVtbl->GetPositions(p,a,b)
3002 #define IMediaSeeking_GetAvailable(p,a,b) (p)->lpVtbl->GetAvailable(p,a,b)
3003 #define IMediaSeeking_SetRate(p,a) (p)->lpVtbl->SetRate(p,a)
3004 #define IMediaSeeking_GetRate(p,a) (p)->lpVtbl->GetRate(p,a)
3005 #define IMediaSeeking_GetPreroll(p,a) (p)->lpVtbl->GetPreroll(p,a)
3009 #define IMediaSeeking_METHODS \
3010 ICOM_MSVTABLE_COMPAT_FIELDS \
3011 /*** IUnknown methods ***/ \
3012 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3013 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3014 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3015 /*** IMediaSeeking methods ***/ \
3016 STDMETHOD_(HRESULT,GetCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
3017 STDMETHOD_(HRESULT,CheckCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
3018 STDMETHOD_(HRESULT,IsFormatSupported)(THIS_ const GUID* pFormat) PURE; \
3019 STDMETHOD_(HRESULT,QueryPreferredFormat)(THIS_ GUID* pFormat) PURE; \
3020 STDMETHOD_(HRESULT,GetTimeFormat)(THIS_ GUID* pFormat) PURE; \
3021 STDMETHOD_(HRESULT,IsUsingTimeFormat)(THIS_ const GUID* pFormat) PURE; \
3022 STDMETHOD_(HRESULT,SetTimeFormat)(THIS_ const GUID* pFormat) PURE; \
3023 STDMETHOD_(HRESULT,GetDuration)(THIS_ LONGLONG* pDuration) PURE; \
3024 STDMETHOD_(HRESULT,GetStopPosition)(THIS_ LONGLONG* pStop) PURE; \
3025 STDMETHOD_(HRESULT,GetCurrentPosition)(THIS_ LONGLONG* pCurrent) PURE; \
3026 STDMETHOD_(HRESULT,ConvertTimeFormat)(THIS_ LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat) PURE; \
3027 STDMETHOD_(HRESULT,SetPositions)(THIS_ LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags) PURE; \
3028 STDMETHOD_(HRESULT,GetPositions)(THIS_ LONGLONG* pCurrent, LONGLONG* pStop) PURE; \
3029 STDMETHOD_(HRESULT,GetAvailable)(THIS_ LONGLONG* pEarliest, LONGLONG* pLatest) PURE; \
3030 STDMETHOD_(HRESULT,SetRate)(THIS_ double dRate) PURE; \
3031 STDMETHOD_(HRESULT,GetRate)(THIS_ double* pdRate) PURE; \
3032 STDMETHOD_(HRESULT,GetPreroll)(THIS_ LONGLONG* pllPreroll) PURE;
3034 HRESULT CALLBACK
IMediaSeeking_GetCapabilities_Proxy(
3035 IMediaSeeking
* This
,
3036 DWORD
* pCapabilities
);
3037 void __RPC_STUB
IMediaSeeking_GetCapabilities_Stub(
3038 struct IRpcStubBuffer
* This
,
3039 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3040 PRPC_MESSAGE pRpcMessage
,
3041 DWORD
* pdwStubPhase
);
3042 HRESULT CALLBACK
IMediaSeeking_CheckCapabilities_Proxy(
3043 IMediaSeeking
* This
,
3044 DWORD
* pCapabilities
);
3045 void __RPC_STUB
IMediaSeeking_CheckCapabilities_Stub(
3046 struct IRpcStubBuffer
* This
,
3047 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3048 PRPC_MESSAGE pRpcMessage
,
3049 DWORD
* pdwStubPhase
);
3050 HRESULT CALLBACK
IMediaSeeking_IsFormatSupported_Proxy(
3051 IMediaSeeking
* This
,
3052 const GUID
* pFormat
);
3053 void __RPC_STUB
IMediaSeeking_IsFormatSupported_Stub(
3054 struct IRpcStubBuffer
* This
,
3055 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3056 PRPC_MESSAGE pRpcMessage
,
3057 DWORD
* pdwStubPhase
);
3058 HRESULT CALLBACK
IMediaSeeking_QueryPreferredFormat_Proxy(
3059 IMediaSeeking
* This
,
3061 void __RPC_STUB
IMediaSeeking_QueryPreferredFormat_Stub(
3062 struct IRpcStubBuffer
* This
,
3063 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3064 PRPC_MESSAGE pRpcMessage
,
3065 DWORD
* pdwStubPhase
);
3066 HRESULT CALLBACK
IMediaSeeking_GetTimeFormat_Proxy(
3067 IMediaSeeking
* This
,
3069 void __RPC_STUB
IMediaSeeking_GetTimeFormat_Stub(
3070 struct IRpcStubBuffer
* This
,
3071 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3072 PRPC_MESSAGE pRpcMessage
,
3073 DWORD
* pdwStubPhase
);
3074 HRESULT CALLBACK
IMediaSeeking_IsUsingTimeFormat_Proxy(
3075 IMediaSeeking
* This
,
3076 const GUID
* pFormat
);
3077 void __RPC_STUB
IMediaSeeking_IsUsingTimeFormat_Stub(
3078 struct IRpcStubBuffer
* This
,
3079 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3080 PRPC_MESSAGE pRpcMessage
,
3081 DWORD
* pdwStubPhase
);
3082 HRESULT CALLBACK
IMediaSeeking_SetTimeFormat_Proxy(
3083 IMediaSeeking
* This
,
3084 const GUID
* pFormat
);
3085 void __RPC_STUB
IMediaSeeking_SetTimeFormat_Stub(
3086 struct IRpcStubBuffer
* This
,
3087 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3088 PRPC_MESSAGE pRpcMessage
,
3089 DWORD
* pdwStubPhase
);
3090 HRESULT CALLBACK
IMediaSeeking_GetDuration_Proxy(
3091 IMediaSeeking
* This
,
3092 LONGLONG
* pDuration
);
3093 void __RPC_STUB
IMediaSeeking_GetDuration_Stub(
3094 struct IRpcStubBuffer
* This
,
3095 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3096 PRPC_MESSAGE pRpcMessage
,
3097 DWORD
* pdwStubPhase
);
3098 HRESULT CALLBACK
IMediaSeeking_GetStopPosition_Proxy(
3099 IMediaSeeking
* This
,
3101 void __RPC_STUB
IMediaSeeking_GetStopPosition_Stub(
3102 struct IRpcStubBuffer
* This
,
3103 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3104 PRPC_MESSAGE pRpcMessage
,
3105 DWORD
* pdwStubPhase
);
3106 HRESULT CALLBACK
IMediaSeeking_GetCurrentPosition_Proxy(
3107 IMediaSeeking
* This
,
3108 LONGLONG
* pCurrent
);
3109 void __RPC_STUB
IMediaSeeking_GetCurrentPosition_Stub(
3110 struct IRpcStubBuffer
* This
,
3111 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3112 PRPC_MESSAGE pRpcMessage
,
3113 DWORD
* pdwStubPhase
);
3114 HRESULT CALLBACK
IMediaSeeking_ConvertTimeFormat_Proxy(
3115 IMediaSeeking
* This
,
3117 const GUID
* pTargetFormat
,
3119 const GUID
* pSourceFormat
);
3120 void __RPC_STUB
IMediaSeeking_ConvertTimeFormat_Stub(
3121 struct IRpcStubBuffer
* This
,
3122 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3123 PRPC_MESSAGE pRpcMessage
,
3124 DWORD
* pdwStubPhase
);
3125 HRESULT CALLBACK
IMediaSeeking_SetPositions_Proxy(
3126 IMediaSeeking
* This
,
3128 DWORD dwCurrentFlags
,
3131 void __RPC_STUB
IMediaSeeking_SetPositions_Stub(
3132 struct IRpcStubBuffer
* This
,
3133 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3134 PRPC_MESSAGE pRpcMessage
,
3135 DWORD
* pdwStubPhase
);
3136 HRESULT CALLBACK
IMediaSeeking_GetPositions_Proxy(
3137 IMediaSeeking
* This
,
3140 void __RPC_STUB
IMediaSeeking_GetPositions_Stub(
3141 struct IRpcStubBuffer
* This
,
3142 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3143 PRPC_MESSAGE pRpcMessage
,
3144 DWORD
* pdwStubPhase
);
3145 HRESULT CALLBACK
IMediaSeeking_GetAvailable_Proxy(
3146 IMediaSeeking
* This
,
3147 LONGLONG
* pEarliest
,
3149 void __RPC_STUB
IMediaSeeking_GetAvailable_Stub(
3150 struct IRpcStubBuffer
* This
,
3151 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3152 PRPC_MESSAGE pRpcMessage
,
3153 DWORD
* pdwStubPhase
);
3154 HRESULT CALLBACK
IMediaSeeking_SetRate_Proxy(
3155 IMediaSeeking
* This
,
3157 void __RPC_STUB
IMediaSeeking_SetRate_Stub(
3158 struct IRpcStubBuffer
* This
,
3159 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3160 PRPC_MESSAGE pRpcMessage
,
3161 DWORD
* pdwStubPhase
);
3162 HRESULT CALLBACK
IMediaSeeking_GetRate_Proxy(
3163 IMediaSeeking
* This
,
3165 void __RPC_STUB
IMediaSeeking_GetRate_Stub(
3166 struct IRpcStubBuffer
* This
,
3167 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3168 PRPC_MESSAGE pRpcMessage
,
3169 DWORD
* pdwStubPhase
);
3170 HRESULT CALLBACK
IMediaSeeking_GetPreroll_Proxy(
3171 IMediaSeeking
* This
,
3172 LONGLONG
* pllPreroll
);
3173 void __RPC_STUB
IMediaSeeking_GetPreroll_Stub(
3174 struct IRpcStubBuffer
* This
,
3175 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3176 PRPC_MESSAGE pRpcMessage
,
3177 DWORD
* pdwStubPhase
);
3179 #endif /* __IMediaSeeking_INTERFACE_DEFINED__ */
3181 typedef IMediaSeeking
*PMEDIASEEKING
;
3183 enum tagAM_MEDIAEVENT_FLAGS
{
3184 AM_MEDIAEVENT_NONOTIFY
= 0x1
3187 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
3188 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
3189 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder
;
3192 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
3193 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
3194 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder
;
3197 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
3198 #define __IAMAudioInputMixer_FWD_DEFINED__
3199 typedef struct IAMAudioInputMixer IAMAudioInputMixer
;
3202 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
3203 #define __IAMAudioRendererStats_FWD_DEFINED__
3204 typedef struct IAMAudioRendererStats IAMAudioRendererStats
;
3207 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
3208 #define __IAMBufferNegotiation_FWD_DEFINED__
3209 typedef struct IAMBufferNegotiation IAMBufferNegotiation
;
3212 #ifndef __IAMCameraControl_FWD_DEFINED__
3213 #define __IAMCameraControl_FWD_DEFINED__
3214 typedef struct IAMCameraControl IAMCameraControl
;
3217 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
3218 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
3219 typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress
;
3222 #ifndef __IAMCrossbar_FWD_DEFINED__
3223 #define __IAMCrossbar_FWD_DEFINED__
3224 typedef struct IAMCrossbar IAMCrossbar
;
3227 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
3228 #define __IAMDevMemoryAllocator_FWD_DEFINED__
3229 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator
;
3232 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
3233 #define __IAMDevMemoryControl_FWD_DEFINED__
3234 typedef struct IAMDevMemoryControl IAMDevMemoryControl
;
3237 #ifndef __IAMDroppedFrames_FWD_DEFINED__
3238 #define __IAMDroppedFrames_FWD_DEFINED__
3239 typedef struct IAMDroppedFrames IAMDroppedFrames
;
3242 #ifndef __IAMExtDevice_FWD_DEFINED__
3243 #define __IAMExtDevice_FWD_DEFINED__
3244 typedef struct IAMExtDevice IAMExtDevice
;
3247 #ifndef __IAMExtTransport_FWD_DEFINED__
3248 #define __IAMExtTransport_FWD_DEFINED__
3249 typedef struct IAMExtTransport IAMExtTransport
;
3252 #ifndef __IAMGraphStreams_FWD_DEFINED__
3253 #define __IAMGraphStreams_FWD_DEFINED__
3254 typedef struct IAMGraphStreams IAMGraphStreams
;
3257 #ifndef __IAMLatency_FWD_DEFINED__
3258 #define __IAMLatency_FWD_DEFINED__
3259 typedef struct IAMLatency IAMLatency
;
3262 #ifndef __IAMOpenProgress_FWD_DEFINED__
3263 #define __IAMOpenProgress_FWD_DEFINED__
3264 typedef struct IAMOpenProgress IAMOpenProgress
;
3267 #ifndef __IAMOverlayFX_FWD_DEFINED__
3268 #define __IAMOverlayFX_FWD_DEFINED__
3269 typedef struct IAMOverlayFX IAMOverlayFX
;
3272 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
3273 #define __IAMPhysicalPinInfo_FWD_DEFINED__
3274 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo
;
3277 #ifndef __IAMPushSource_FWD_DEFINED__
3278 #define __IAMPushSource_FWD_DEFINED__
3279 typedef struct IAMPushSource IAMPushSource
;
3282 #ifndef __IAMStreamConfig_FWD_DEFINED__
3283 #define __IAMStreamConfig_FWD_DEFINED__
3284 typedef struct IAMStreamConfig IAMStreamConfig
;
3287 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
3288 #define __IAMTimecodeDisplay_FWD_DEFINED__
3289 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay
;
3292 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
3293 #define __IAMTimecodeGenerator_FWD_DEFINED__
3294 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator
;
3297 #ifndef __IAMTimecodeReader_FWD_DEFINED__
3298 #define __IAMTimecodeReader_FWD_DEFINED__
3299 typedef struct IAMTimecodeReader IAMTimecodeReader
;
3302 #ifndef __IAMTVTuner_FWD_DEFINED__
3303 #define __IAMTVTuner_FWD_DEFINED__
3304 typedef struct IAMTVTuner IAMTVTuner
;
3307 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
3308 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
3309 typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs
;
3312 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
3313 #define __IAMVfwCompressDialogs_FWD_DEFINED__
3314 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs
;
3317 #ifndef __IAMVideoCompression_FWD_DEFINED__
3318 #define __IAMVideoCompression_FWD_DEFINED__
3319 typedef struct IAMVideoCompression IAMVideoCompression
;
3322 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
3323 #define __IAMVideoDecimationProperties_FWD_DEFINED__
3324 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties
;
3327 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
3328 #define __IAMVideoProcAmp_FWD_DEFINED__
3329 typedef struct IAMVideoProcAmp IAMVideoProcAmp
;
3332 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
3333 #define __ICaptureGraphBuilder_FWD_DEFINED__
3334 typedef struct ICaptureGraphBuilder ICaptureGraphBuilder
;
3337 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
3338 #define __ICaptureGraphBuilder2_FWD_DEFINED__
3339 typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2
;
3342 #ifndef __IConfigAviMux_FWD_DEFINED__
3343 #define __IConfigAviMux_FWD_DEFINED__
3344 typedef struct IConfigAviMux IConfigAviMux
;
3347 #ifndef __IConfigInterleaving_FWD_DEFINED__
3348 #define __IConfigInterleaving_FWD_DEFINED__
3349 typedef struct IConfigInterleaving IConfigInterleaving
;
3352 #ifndef __IDecimateVideoImage_FWD_DEFINED__
3353 #define __IDecimateVideoImage_FWD_DEFINED__
3354 typedef struct IDecimateVideoImage IDecimateVideoImage
;
3357 #ifndef __IDrawVideoImage_FWD_DEFINED__
3358 #define __IDrawVideoImage_FWD_DEFINED__
3359 typedef struct IDrawVideoImage IDrawVideoImage
;
3362 #ifndef __IEnumRegFilters_FWD_DEFINED__
3363 #define __IEnumRegFilters_FWD_DEFINED__
3364 typedef struct IEnumRegFilters IEnumRegFilters
;
3367 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
3368 #define __IEnumStreamIdMap_FWD_DEFINED__
3369 typedef struct IEnumStreamIdMap IEnumStreamIdMap
;
3372 #ifndef __IFileSourceFilter_FWD_DEFINED__
3373 #define __IFileSourceFilter_FWD_DEFINED__
3374 typedef struct IFileSourceFilter IFileSourceFilter
;
3377 #ifndef __IFileSinkFilter_FWD_DEFINED__
3378 #define __IFileSinkFilter_FWD_DEFINED__
3379 typedef struct IFileSinkFilter IFileSinkFilter
;
3382 #ifndef __IFileSinkFilter2_FWD_DEFINED__
3383 #define __IFileSinkFilter2_FWD_DEFINED__
3384 typedef struct IFileSinkFilter2 IFileSinkFilter2
;
3387 #ifndef __IFilterMapper_FWD_DEFINED__
3388 #define __IFilterMapper_FWD_DEFINED__
3389 typedef struct IFilterMapper IFilterMapper
;
3392 #ifndef __IFilterMapper2_FWD_DEFINED__
3393 #define __IFilterMapper2_FWD_DEFINED__
3394 typedef struct IFilterMapper2 IFilterMapper2
;
3397 #ifndef __IGraphBuilder_FWD_DEFINED__
3398 #define __IGraphBuilder_FWD_DEFINED__
3399 typedef struct IGraphBuilder IGraphBuilder
;
3402 #ifndef __IKsPropertySet_FWD_DEFINED__
3403 #define __IKsPropertySet_FWD_DEFINED__
3404 typedef struct IKsPropertySet IKsPropertySet
;
3407 #ifndef __IMediaEventSink_FWD_DEFINED__
3408 #define __IMediaEventSink_FWD_DEFINED__
3409 typedef struct IMediaEventSink IMediaEventSink
;
3412 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
3413 #define __IMpeg2Demultiplexer_FWD_DEFINED__
3414 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer
;
3417 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
3418 #define __IMPEG2StreamIdMap_FWD_DEFINED__
3419 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap
;
3422 #ifndef __IOverlay_FWD_DEFINED__
3423 #define __IOverlay_FWD_DEFINED__
3424 typedef struct IOverlay IOverlay
;
3427 #ifndef __IOverlayNotify_FWD_DEFINED__
3428 #define __IOverlayNotify_FWD_DEFINED__
3429 typedef struct IOverlayNotify IOverlayNotify
;
3432 #ifndef __IOverlayNotify2_FWD_DEFINED__
3433 #define __IOverlayNotify2_FWD_DEFINED__
3434 typedef struct IOverlayNotify2 IOverlayNotify2
;
3437 #ifndef __IQualityControl_FWD_DEFINED__
3438 #define __IQualityControl_FWD_DEFINED__
3439 typedef struct IQualityControl IQualityControl
;
3442 #ifndef __ISeekingPassThru_FWD_DEFINED__
3443 #define __ISeekingPassThru_FWD_DEFINED__
3444 typedef struct ISeekingPassThru ISeekingPassThru
;
3452 /*****************************************************************************
3453 * IEnumRegFilters interface
3455 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
3456 #define __IEnumRegFilters_INTERFACE_DEFINED__
3458 DEFINE_GUID(IID_IEnumRegFilters
, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3459 #if defined(__cplusplus) && !defined(CINTERFACE)
3460 struct IEnumRegFilters
: public IUnknown
3462 virtual HRESULT STDMETHODCALLTYPE
Next(
3464 REGFILTER
** apRegFilter
,
3465 ULONG
* pcFetched
) = 0;
3467 virtual HRESULT STDMETHODCALLTYPE
Skip(
3468 ULONG cFilters
) = 0;
3470 virtual HRESULT STDMETHODCALLTYPE
Reset(
3473 virtual HRESULT STDMETHODCALLTYPE
Clone(
3474 IEnumRegFilters
** ppEnum
) = 0;
3478 typedef struct IEnumRegFiltersVtbl IEnumRegFiltersVtbl
;
3479 struct IEnumRegFilters
{
3480 const IEnumRegFiltersVtbl
* lpVtbl
;
3482 struct IEnumRegFiltersVtbl
{
3483 ICOM_MSVTABLE_COMPAT_FIELDS
3485 /*** IUnknown methods ***/
3486 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3487 IEnumRegFilters
* This
,
3491 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3492 IEnumRegFilters
* This
);
3494 ULONG (STDMETHODCALLTYPE
*Release
)(
3495 IEnumRegFilters
* This
);
3497 /*** IEnumRegFilters methods ***/
3498 HRESULT (STDMETHODCALLTYPE
*Next
)(
3499 IEnumRegFilters
* This
,
3501 REGFILTER
** apRegFilter
,
3504 HRESULT (STDMETHODCALLTYPE
*Skip
)(
3505 IEnumRegFilters
* This
,
3508 HRESULT (STDMETHODCALLTYPE
*Reset
)(
3509 IEnumRegFilters
* This
);
3511 HRESULT (STDMETHODCALLTYPE
*Clone
)(
3512 IEnumRegFilters
* This
,
3513 IEnumRegFilters
** ppEnum
);
3517 /*** IUnknown methods ***/
3518 #define IEnumRegFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3519 #define IEnumRegFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
3520 #define IEnumRegFilters_Release(p) (p)->lpVtbl->Release(p)
3521 /*** IEnumRegFilters methods ***/
3522 #define IEnumRegFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3523 #define IEnumRegFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3524 #define IEnumRegFilters_Reset(p) (p)->lpVtbl->Reset(p)
3525 #define IEnumRegFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3529 #define IEnumRegFilters_METHODS \
3530 ICOM_MSVTABLE_COMPAT_FIELDS \
3531 /*** IUnknown methods ***/ \
3532 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3533 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3534 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3535 /*** IEnumRegFilters methods ***/ \
3536 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched) PURE; \
3537 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
3538 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3539 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumRegFilters** ppEnum) PURE;
3541 HRESULT CALLBACK
IEnumRegFilters_Next_Proxy(
3542 IEnumRegFilters
* This
,
3544 REGFILTER
** apRegFilter
,
3546 void __RPC_STUB
IEnumRegFilters_Next_Stub(
3547 struct IRpcStubBuffer
* This
,
3548 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3549 PRPC_MESSAGE pRpcMessage
,
3550 DWORD
* pdwStubPhase
);
3551 HRESULT CALLBACK
IEnumRegFilters_Skip_Proxy(
3552 IEnumRegFilters
* This
,
3554 void __RPC_STUB
IEnumRegFilters_Skip_Stub(
3555 struct IRpcStubBuffer
* This
,
3556 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3557 PRPC_MESSAGE pRpcMessage
,
3558 DWORD
* pdwStubPhase
);
3559 HRESULT CALLBACK
IEnumRegFilters_Reset_Proxy(
3560 IEnumRegFilters
* This
);
3561 void __RPC_STUB
IEnumRegFilters_Reset_Stub(
3562 struct IRpcStubBuffer
* This
,
3563 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3564 PRPC_MESSAGE pRpcMessage
,
3565 DWORD
* pdwStubPhase
);
3566 HRESULT CALLBACK
IEnumRegFilters_Clone_Proxy(
3567 IEnumRegFilters
* This
,
3568 IEnumRegFilters
** ppEnum
);
3569 void __RPC_STUB
IEnumRegFilters_Clone_Stub(
3570 struct IRpcStubBuffer
* This
,
3571 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3572 PRPC_MESSAGE pRpcMessage
,
3573 DWORD
* pdwStubPhase
);
3575 #endif /* __IEnumRegFilters_INTERFACE_DEFINED__ */
3577 typedef IEnumRegFilters
*PENUMREGFILTERS
;
3580 MERIT_PREFERRED
= 0x800000,
3581 MERIT_NORMAL
= 0x600000,
3582 MERIT_UNLIKELY
= 0x400000,
3583 MERIT_DO_NOT_USE
= 0x200000,
3584 MERIT_SW_COMPRESSOR
= 0x100000,
3585 MERIT_HW_COMPRESSOR
= 0x100050
3588 /*****************************************************************************
3589 * IFilterMapper interface
3591 #ifndef __IFilterMapper_INTERFACE_DEFINED__
3592 #define __IFilterMapper_INTERFACE_DEFINED__
3594 DEFINE_GUID(IID_IFilterMapper
, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3595 #if defined(__cplusplus) && !defined(CINTERFACE)
3596 struct IFilterMapper
: public IUnknown
3598 virtual HRESULT STDMETHODCALLTYPE
RegisterFilter(
3603 virtual HRESULT STDMETHODCALLTYPE
RegisterFilterInstance(
3608 virtual HRESULT STDMETHODCALLTYPE
RegisterPin(
3615 CLSID ConnectsToFilter
,
3616 LPCWSTR ConnectsToPin
) = 0;
3618 virtual HRESULT STDMETHODCALLTYPE
RegisterPinType(
3622 CLSID clsSubType
) = 0;
3624 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilter(
3627 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilterInstance(
3630 virtual HRESULT STDMETHODCALLTYPE
UnregisterPin(
3634 virtual HRESULT STDMETHODCALLTYPE
EnumMatchingFilters(
3635 IEnumRegFilters
** ppEnum
,
3643 CLSID clsOutSub
) = 0;
3647 typedef struct IFilterMapperVtbl IFilterMapperVtbl
;
3648 struct IFilterMapper
{
3649 const IFilterMapperVtbl
* lpVtbl
;
3651 struct IFilterMapperVtbl
{
3652 ICOM_MSVTABLE_COMPAT_FIELDS
3654 /*** IUnknown methods ***/
3655 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3656 IFilterMapper
* This
,
3660 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3661 IFilterMapper
* This
);
3663 ULONG (STDMETHODCALLTYPE
*Release
)(
3664 IFilterMapper
* This
);
3666 /*** IFilterMapper methods ***/
3667 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
3668 IFilterMapper
* This
,
3673 HRESULT (STDMETHODCALLTYPE
*RegisterFilterInstance
)(
3674 IFilterMapper
* This
,
3679 HRESULT (STDMETHODCALLTYPE
*RegisterPin
)(
3680 IFilterMapper
* This
,
3687 CLSID ConnectsToFilter
,
3688 LPCWSTR ConnectsToPin
);
3690 HRESULT (STDMETHODCALLTYPE
*RegisterPinType
)(
3691 IFilterMapper
* This
,
3697 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
3698 IFilterMapper
* This
,
3701 HRESULT (STDMETHODCALLTYPE
*UnregisterFilterInstance
)(
3702 IFilterMapper
* This
,
3705 HRESULT (STDMETHODCALLTYPE
*UnregisterPin
)(
3706 IFilterMapper
* This
,
3710 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
3711 IFilterMapper
* This
,
3712 IEnumRegFilters
** ppEnum
,
3724 /*** IUnknown methods ***/
3725 #define IFilterMapper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3726 #define IFilterMapper_AddRef(p) (p)->lpVtbl->AddRef(p)
3727 #define IFilterMapper_Release(p) (p)->lpVtbl->Release(p)
3728 /*** IFilterMapper methods ***/
3729 #define IFilterMapper_RegisterFilter(p,a,b,c) (p)->lpVtbl->RegisterFilter(p,a,b,c)
3730 #define IFilterMapper_RegisterFilterInstance(p,a,b,c) (p)->lpVtbl->RegisterFilterInstance(p,a,b,c)
3731 #define IFilterMapper_RegisterPin(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->RegisterPin(p,a,b,c,d,e,f,g,h)
3732 #define IFilterMapper_RegisterPinType(p,a,b,c,d) (p)->lpVtbl->RegisterPinType(p,a,b,c,d)
3733 #define IFilterMapper_UnregisterFilter(p,a) (p)->lpVtbl->UnregisterFilter(p,a)
3734 #define IFilterMapper_UnregisterFilterInstance(p,a) (p)->lpVtbl->UnregisterFilterInstance(p,a)
3735 #define IFilterMapper_UnregisterPin(p,a,b) (p)->lpVtbl->UnregisterPin(p,a,b)
3736 #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)
3740 #define IFilterMapper_METHODS \
3741 ICOM_MSVTABLE_COMPAT_FIELDS \
3742 /*** IUnknown methods ***/ \
3743 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3744 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3745 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3746 /*** IFilterMapper methods ***/ \
3747 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ CLSID clsid, LPCWSTR Name, DWORD dwMerit) PURE; \
3748 STDMETHOD_(HRESULT,RegisterFilterInstance)(THIS_ CLSID clsid, LPCWSTR Name, CLSID* MRId) PURE; \
3749 STDMETHOD_(HRESULT,RegisterPin)(THIS_ CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin) PURE; \
3750 STDMETHOD_(HRESULT,RegisterPinType)(THIS_ CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType) PURE; \
3751 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ CLSID Filter) PURE; \
3752 STDMETHOD_(HRESULT,UnregisterFilterInstance)(THIS_ CLSID MRId) PURE; \
3753 STDMETHOD_(HRESULT,UnregisterPin)(THIS_ CLSID Filter, LPCWSTR Name) PURE; \
3754 STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub) PURE;
3756 HRESULT CALLBACK
IFilterMapper_RegisterFilter_Proxy(
3757 IFilterMapper
* This
,
3761 void __RPC_STUB
IFilterMapper_RegisterFilter_Stub(
3762 struct IRpcStubBuffer
* This
,
3763 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3764 PRPC_MESSAGE pRpcMessage
,
3765 DWORD
* pdwStubPhase
);
3766 HRESULT CALLBACK
IFilterMapper_RegisterFilterInstance_Proxy(
3767 IFilterMapper
* This
,
3771 void __RPC_STUB
IFilterMapper_RegisterFilterInstance_Stub(
3772 struct IRpcStubBuffer
* This
,
3773 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3774 PRPC_MESSAGE pRpcMessage
,
3775 DWORD
* pdwStubPhase
);
3776 HRESULT CALLBACK
IFilterMapper_RegisterPin_Proxy(
3777 IFilterMapper
* This
,
3784 CLSID ConnectsToFilter
,
3785 LPCWSTR ConnectsToPin
);
3786 void __RPC_STUB
IFilterMapper_RegisterPin_Stub(
3787 struct IRpcStubBuffer
* This
,
3788 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3789 PRPC_MESSAGE pRpcMessage
,
3790 DWORD
* pdwStubPhase
);
3791 HRESULT CALLBACK
IFilterMapper_RegisterPinType_Proxy(
3792 IFilterMapper
* This
,
3797 void __RPC_STUB
IFilterMapper_RegisterPinType_Stub(
3798 struct IRpcStubBuffer
* This
,
3799 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3800 PRPC_MESSAGE pRpcMessage
,
3801 DWORD
* pdwStubPhase
);
3802 HRESULT CALLBACK
IFilterMapper_UnregisterFilter_Proxy(
3803 IFilterMapper
* This
,
3805 void __RPC_STUB
IFilterMapper_UnregisterFilter_Stub(
3806 struct IRpcStubBuffer
* This
,
3807 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3808 PRPC_MESSAGE pRpcMessage
,
3809 DWORD
* pdwStubPhase
);
3810 HRESULT CALLBACK
IFilterMapper_UnregisterFilterInstance_Proxy(
3811 IFilterMapper
* This
,
3813 void __RPC_STUB
IFilterMapper_UnregisterFilterInstance_Stub(
3814 struct IRpcStubBuffer
* This
,
3815 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3816 PRPC_MESSAGE pRpcMessage
,
3817 DWORD
* pdwStubPhase
);
3818 HRESULT CALLBACK
IFilterMapper_UnregisterPin_Proxy(
3819 IFilterMapper
* This
,
3822 void __RPC_STUB
IFilterMapper_UnregisterPin_Stub(
3823 struct IRpcStubBuffer
* This
,
3824 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3825 PRPC_MESSAGE pRpcMessage
,
3826 DWORD
* pdwStubPhase
);
3827 HRESULT CALLBACK
IFilterMapper_EnumMatchingFilters_Proxy(
3828 IFilterMapper
* This
,
3829 IEnumRegFilters
** ppEnum
,
3838 void __RPC_STUB
IFilterMapper_EnumMatchingFilters_Stub(
3839 struct IRpcStubBuffer
* This
,
3840 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3841 PRPC_MESSAGE pRpcMessage
,
3842 DWORD
* pdwStubPhase
);
3844 #endif /* __IFilterMapper_INTERFACE_DEFINED__ */
3847 const CLSID
*clsMajorType
;
3848 const CLSID
*clsMinorType
;
3857 const CLSID
*clsConnectsToFilter
;
3858 const WCHAR
*strConnectsToPin
;
3860 const REGPINTYPES
*lpMediaType
;
3870 REG_PINFLAG_B_ZERO
= 0x1,
3871 REG_PINFLAG_B_RENDERER
= 0x2,
3872 REG_PINFLAG_B_MANY
= 0x4,
3873 REG_PINFLAG_B_OUTPUT
= 0x8
3880 const REGPINTYPES
*lpMediaType
;
3882 const REGPINMEDIUM
*lpMedium
;
3883 const CLSID
*clsPinCategory
;
3892 const REGFILTERPINS
*rgPins
;
3896 const REGFILTERPINS2
*rgPins2
;
3901 /*****************************************************************************
3902 * IFilterMapper2 interface
3904 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
3905 #define __IFilterMapper2_INTERFACE_DEFINED__
3907 DEFINE_GUID(IID_IFilterMapper2
, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3908 #if defined(__cplusplus) && !defined(CINTERFACE)
3909 struct IFilterMapper2
: public IUnknown
3911 virtual HRESULT STDMETHODCALLTYPE
CreateCategory(
3912 REFCLSID clsidCategory
,
3913 DWORD dwCategoryMerit
,
3914 LPCWSTR Description
) = 0;
3916 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilter(
3917 const CLSID
* pclsidCategory
,
3918 const OLECHAR
* szInstance
,
3919 REFCLSID Filter
) = 0;
3921 virtual HRESULT STDMETHODCALLTYPE
RegisterFilter(
3922 REFCLSID clsidFilter
,
3924 IMoniker
** ppMoniker
,
3925 const CLSID
* pclsidCategory
,
3926 const OLECHAR
* szInstance
,
3927 const REGFILTER2
* prf2
) = 0;
3929 virtual HRESULT STDMETHODCALLTYPE
EnumMatchingFilters(
3930 IEnumMoniker
** ppEnum
,
3936 const GUID
* pInputTypes
,
3937 const REGPINMEDIUM
* pMedIn
,
3938 const CLSID
* pPinCategoryIn
,
3942 const GUID
* pOutputTypes
,
3943 const REGPINMEDIUM
* pMedOut
,
3944 const CLSID
* pPinCategoryOut
) = 0;
3948 typedef struct IFilterMapper2Vtbl IFilterMapper2Vtbl
;
3949 struct IFilterMapper2
{
3950 const IFilterMapper2Vtbl
* lpVtbl
;
3952 struct IFilterMapper2Vtbl
{
3953 ICOM_MSVTABLE_COMPAT_FIELDS
3955 /*** IUnknown methods ***/
3956 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3957 IFilterMapper2
* This
,
3961 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3962 IFilterMapper2
* This
);
3964 ULONG (STDMETHODCALLTYPE
*Release
)(
3965 IFilterMapper2
* This
);
3967 /*** IFilterMapper2 methods ***/
3968 HRESULT (STDMETHODCALLTYPE
*CreateCategory
)(
3969 IFilterMapper2
* This
,
3970 REFCLSID clsidCategory
,
3971 DWORD dwCategoryMerit
,
3972 LPCWSTR Description
);
3974 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
3975 IFilterMapper2
* This
,
3976 const CLSID
* pclsidCategory
,
3977 const OLECHAR
* szInstance
,
3980 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
3981 IFilterMapper2
* This
,
3982 REFCLSID clsidFilter
,
3984 IMoniker
** ppMoniker
,
3985 const CLSID
* pclsidCategory
,
3986 const OLECHAR
* szInstance
,
3987 const REGFILTER2
* prf2
);
3989 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
3990 IFilterMapper2
* This
,
3991 IEnumMoniker
** ppEnum
,
3997 const GUID
* pInputTypes
,
3998 const REGPINMEDIUM
* pMedIn
,
3999 const CLSID
* pPinCategoryIn
,
4003 const GUID
* pOutputTypes
,
4004 const REGPINMEDIUM
* pMedOut
,
4005 const CLSID
* pPinCategoryOut
);
4009 /*** IUnknown methods ***/
4010 #define IFilterMapper2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4011 #define IFilterMapper2_AddRef(p) (p)->lpVtbl->AddRef(p)
4012 #define IFilterMapper2_Release(p) (p)->lpVtbl->Release(p)
4013 /*** IFilterMapper2 methods ***/
4014 #define IFilterMapper2_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
4015 #define IFilterMapper2_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
4016 #define IFilterMapper2_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
4017 #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)
4021 #define IFilterMapper2_METHODS \
4022 ICOM_MSVTABLE_COMPAT_FIELDS \
4023 /*** IUnknown methods ***/ \
4024 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4025 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4026 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4027 /*** IFilterMapper2 methods ***/ \
4028 STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
4029 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
4030 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
4031 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;
4033 HRESULT CALLBACK
IFilterMapper2_CreateCategory_Proxy(
4034 IFilterMapper2
* This
,
4035 REFCLSID clsidCategory
,
4036 DWORD dwCategoryMerit
,
4037 LPCWSTR Description
);
4038 void __RPC_STUB
IFilterMapper2_CreateCategory_Stub(
4039 struct IRpcStubBuffer
* This
,
4040 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4041 PRPC_MESSAGE pRpcMessage
,
4042 DWORD
* pdwStubPhase
);
4043 HRESULT CALLBACK
IFilterMapper2_UnregisterFilter_Proxy(
4044 IFilterMapper2
* This
,
4045 const CLSID
* pclsidCategory
,
4046 const OLECHAR
* szInstance
,
4048 void __RPC_STUB
IFilterMapper2_UnregisterFilter_Stub(
4049 struct IRpcStubBuffer
* This
,
4050 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4051 PRPC_MESSAGE pRpcMessage
,
4052 DWORD
* pdwStubPhase
);
4053 HRESULT CALLBACK
IFilterMapper2_RegisterFilter_Proxy(
4054 IFilterMapper2
* This
,
4055 REFCLSID clsidFilter
,
4057 IMoniker
** ppMoniker
,
4058 const CLSID
* pclsidCategory
,
4059 const OLECHAR
* szInstance
,
4060 const REGFILTER2
* prf2
);
4061 void __RPC_STUB
IFilterMapper2_RegisterFilter_Stub(
4062 struct IRpcStubBuffer
* This
,
4063 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4064 PRPC_MESSAGE pRpcMessage
,
4065 DWORD
* pdwStubPhase
);
4066 HRESULT CALLBACK
IFilterMapper2_EnumMatchingFilters_Proxy(
4067 IFilterMapper2
* This
,
4068 IEnumMoniker
** ppEnum
,
4074 const GUID
* pInputTypes
,
4075 const REGPINMEDIUM
* pMedIn
,
4076 const CLSID
* pPinCategoryIn
,
4080 const GUID
* pOutputTypes
,
4081 const REGPINMEDIUM
* pMedOut
,
4082 const CLSID
* pPinCategoryOut
);
4083 void __RPC_STUB
IFilterMapper2_EnumMatchingFilters_Stub(
4084 struct IRpcStubBuffer
* This
,
4085 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4086 PRPC_MESSAGE pRpcMessage
,
4087 DWORD
* pdwStubPhase
);
4089 #endif /* __IFilterMapper2_INTERFACE_DEFINED__ */
4091 #ifndef __IFilterMapper3_FWD_DEFINED__
4092 #define __IFilterMapper3_FWD_DEFINED__
4093 typedef struct IFilterMapper3 IFilterMapper3
;
4096 /*****************************************************************************
4097 * IFilterMapper3 interface
4099 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
4100 #define __IFilterMapper3_INTERFACE_DEFINED__
4102 DEFINE_GUID(IID_IFilterMapper3
, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
4103 #if defined(__cplusplus) && !defined(CINTERFACE)
4104 struct IFilterMapper3
: public IFilterMapper2
4106 virtual HRESULT STDMETHODCALLTYPE
GetICreateDevEnum(
4107 ICreateDevEnum
** ppEnum
) = 0;
4111 typedef struct IFilterMapper3Vtbl IFilterMapper3Vtbl
;
4112 struct IFilterMapper3
{
4113 const IFilterMapper3Vtbl
* lpVtbl
;
4115 struct IFilterMapper3Vtbl
{
4116 ICOM_MSVTABLE_COMPAT_FIELDS
4118 /*** IUnknown methods ***/
4119 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4120 IFilterMapper3
* This
,
4124 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4125 IFilterMapper3
* This
);
4127 ULONG (STDMETHODCALLTYPE
*Release
)(
4128 IFilterMapper3
* This
);
4130 /*** IFilterMapper2 methods ***/
4131 HRESULT (STDMETHODCALLTYPE
*CreateCategory
)(
4132 IFilterMapper3
* This
,
4133 REFCLSID clsidCategory
,
4134 DWORD dwCategoryMerit
,
4135 LPCWSTR Description
);
4137 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
4138 IFilterMapper3
* This
,
4139 const CLSID
* pclsidCategory
,
4140 const OLECHAR
* szInstance
,
4143 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
4144 IFilterMapper3
* This
,
4145 REFCLSID clsidFilter
,
4147 IMoniker
** ppMoniker
,
4148 const CLSID
* pclsidCategory
,
4149 const OLECHAR
* szInstance
,
4150 const REGFILTER2
* prf2
);
4152 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
4153 IFilterMapper3
* This
,
4154 IEnumMoniker
** ppEnum
,
4160 const GUID
* pInputTypes
,
4161 const REGPINMEDIUM
* pMedIn
,
4162 const CLSID
* pPinCategoryIn
,
4166 const GUID
* pOutputTypes
,
4167 const REGPINMEDIUM
* pMedOut
,
4168 const CLSID
* pPinCategoryOut
);
4170 /*** IFilterMapper3 methods ***/
4171 HRESULT (STDMETHODCALLTYPE
*GetICreateDevEnum
)(
4172 IFilterMapper3
* This
,
4173 ICreateDevEnum
** ppEnum
);
4177 /*** IUnknown methods ***/
4178 #define IFilterMapper3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4179 #define IFilterMapper3_AddRef(p) (p)->lpVtbl->AddRef(p)
4180 #define IFilterMapper3_Release(p) (p)->lpVtbl->Release(p)
4181 /*** IFilterMapper2 methods ***/
4182 #define IFilterMapper3_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
4183 #define IFilterMapper3_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
4184 #define IFilterMapper3_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
4185 #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)
4186 /*** IFilterMapper3 methods ***/
4187 #define IFilterMapper3_GetICreateDevEnum(p,a) (p)->lpVtbl->GetICreateDevEnum(p,a)
4191 #define IFilterMapper3_METHODS \
4192 ICOM_MSVTABLE_COMPAT_FIELDS \
4193 /*** IUnknown methods ***/ \
4194 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4195 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4196 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4197 /*** IFilterMapper2 methods ***/ \
4198 STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
4199 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
4200 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
4201 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; \
4202 /*** IFilterMapper3 methods ***/ \
4203 STDMETHOD_(HRESULT,GetICreateDevEnum)(THIS_ ICreateDevEnum** ppEnum) PURE;
4205 HRESULT CALLBACK
IFilterMapper3_GetICreateDevEnum_Proxy(
4206 IFilterMapper3
* This
,
4207 ICreateDevEnum
** ppEnum
);
4208 void __RPC_STUB
IFilterMapper3_GetICreateDevEnum_Stub(
4209 struct IRpcStubBuffer
* This
,
4210 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4211 PRPC_MESSAGE pRpcMessage
,
4212 DWORD
* pdwStubPhase
);
4214 #endif /* __IFilterMapper3_INTERFACE_DEFINED__ */
4216 typedef enum tagQualityMessageType
{
4219 } QualityMessageType
;
4221 typedef struct tagQuality
{
4222 QualityMessageType Type
;
4224 REFERENCE_TIME Late
;
4225 REFERENCE_TIME TimeStamp
;
4228 typedef IQualityControl
*PQUALITYCONTROL
;
4230 /*****************************************************************************
4231 * IQualityControl interface
4233 #ifndef __IQualityControl_INTERFACE_DEFINED__
4234 #define __IQualityControl_INTERFACE_DEFINED__
4236 DEFINE_GUID(IID_IQualityControl
, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4237 #if defined(__cplusplus) && !defined(CINTERFACE)
4238 struct IQualityControl
: public IUnknown
4240 virtual HRESULT STDMETHODCALLTYPE
Notify(
4244 virtual HRESULT STDMETHODCALLTYPE
SetSink(
4245 IQualityControl
* piqc
) = 0;
4249 typedef struct IQualityControlVtbl IQualityControlVtbl
;
4250 struct IQualityControl
{
4251 const IQualityControlVtbl
* lpVtbl
;
4253 struct IQualityControlVtbl
{
4254 ICOM_MSVTABLE_COMPAT_FIELDS
4256 /*** IUnknown methods ***/
4257 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4258 IQualityControl
* This
,
4262 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4263 IQualityControl
* This
);
4265 ULONG (STDMETHODCALLTYPE
*Release
)(
4266 IQualityControl
* This
);
4268 /*** IQualityControl methods ***/
4269 HRESULT (STDMETHODCALLTYPE
*Notify
)(
4270 IQualityControl
* This
,
4274 HRESULT (STDMETHODCALLTYPE
*SetSink
)(
4275 IQualityControl
* This
,
4276 IQualityControl
* piqc
);
4280 /*** IUnknown methods ***/
4281 #define IQualityControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4282 #define IQualityControl_AddRef(p) (p)->lpVtbl->AddRef(p)
4283 #define IQualityControl_Release(p) (p)->lpVtbl->Release(p)
4284 /*** IQualityControl methods ***/
4285 #define IQualityControl_Notify(p,a,b) (p)->lpVtbl->Notify(p,a,b)
4286 #define IQualityControl_SetSink(p,a) (p)->lpVtbl->SetSink(p,a)
4290 #define IQualityControl_METHODS \
4291 ICOM_MSVTABLE_COMPAT_FIELDS \
4292 /*** IUnknown methods ***/ \
4293 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4294 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4295 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4296 /*** IQualityControl methods ***/ \
4297 STDMETHOD_(HRESULT,Notify)(THIS_ IBaseFilter* pSelf, Quality q) PURE; \
4298 STDMETHOD_(HRESULT,SetSink)(THIS_ IQualityControl* piqc) PURE;
4300 HRESULT CALLBACK
IQualityControl_Notify_Proxy(
4301 IQualityControl
* This
,
4304 void __RPC_STUB
IQualityControl_Notify_Stub(
4305 struct IRpcStubBuffer
* This
,
4306 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4307 PRPC_MESSAGE pRpcMessage
,
4308 DWORD
* pdwStubPhase
);
4309 HRESULT CALLBACK
IQualityControl_SetSink_Proxy(
4310 IQualityControl
* This
,
4311 IQualityControl
* piqc
);
4312 void __RPC_STUB
IQualityControl_SetSink_Stub(
4313 struct IRpcStubBuffer
* This
,
4314 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4315 PRPC_MESSAGE pRpcMessage
,
4316 DWORD
* pdwStubPhase
);
4318 #endif /* __IQualityControl_INTERFACE_DEFINED__ */
4321 CK_NOCOLORKEY
= 0x0,
4326 typedef struct tagCOLORKEY
{
4329 COLORREF LowColorValue
;
4330 COLORREF HighColorValue
;
4335 ADVISE_CLIPPING
= 0x1,
4336 ADVISE_PALETTE
= 0x2,
4337 ADVISE_COLORKEY
= 0x4,
4338 ADVISE_POSITION
= 0x8,
4339 ADVISE_DISPLAY_CHANGE
= 0x10
4342 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
4344 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
4347 typedef struct _RGNDATAHEADER
{
4355 typedef struct _RGNDATA
{
4360 #endif /* _WINGDI_ */
4361 /*****************************************************************************
4362 * IOverlayNotify interface
4364 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
4365 #define __IOverlayNotify_INTERFACE_DEFINED__
4367 DEFINE_GUID(IID_IOverlayNotify
, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4368 #if defined(__cplusplus) && !defined(CINTERFACE)
4369 struct IOverlayNotify
: public IUnknown
4371 virtual HRESULT STDMETHODCALLTYPE
OnPaletteChange(
4373 const PALETTEENTRY
* pPalette
) = 0;
4375 virtual HRESULT STDMETHODCALLTYPE
OnClipChange(
4376 const RECT
* pSourceRect
,
4377 const RECT
* pDestinationRect
,
4378 const RGNDATA
* pRgnData
) = 0;
4380 virtual HRESULT STDMETHODCALLTYPE
OnColorKeyChange(
4381 const COLORKEY
* pColorKey
) = 0;
4383 virtual HRESULT STDMETHODCALLTYPE
OnPositionChange(
4384 const RECT
* pSourceRect
,
4385 const RECT
* pDestinationRect
) = 0;
4389 typedef struct IOverlayNotifyVtbl IOverlayNotifyVtbl
;
4390 struct IOverlayNotify
{
4391 const IOverlayNotifyVtbl
* lpVtbl
;
4393 struct IOverlayNotifyVtbl
{
4394 ICOM_MSVTABLE_COMPAT_FIELDS
4396 /*** IUnknown methods ***/
4397 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4398 IOverlayNotify
* This
,
4402 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4403 IOverlayNotify
* This
);
4405 ULONG (STDMETHODCALLTYPE
*Release
)(
4406 IOverlayNotify
* This
);
4408 /*** IOverlayNotify methods ***/
4409 HRESULT (STDMETHODCALLTYPE
*OnPaletteChange
)(
4410 IOverlayNotify
* This
,
4412 const PALETTEENTRY
* pPalette
);
4414 HRESULT (STDMETHODCALLTYPE
*OnClipChange
)(
4415 IOverlayNotify
* This
,
4416 const RECT
* pSourceRect
,
4417 const RECT
* pDestinationRect
,
4418 const RGNDATA
* pRgnData
);
4420 HRESULT (STDMETHODCALLTYPE
*OnColorKeyChange
)(
4421 IOverlayNotify
* This
,
4422 const COLORKEY
* pColorKey
);
4424 HRESULT (STDMETHODCALLTYPE
*OnPositionChange
)(
4425 IOverlayNotify
* This
,
4426 const RECT
* pSourceRect
,
4427 const RECT
* pDestinationRect
);
4431 /*** IUnknown methods ***/
4432 #define IOverlayNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4433 #define IOverlayNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
4434 #define IOverlayNotify_Release(p) (p)->lpVtbl->Release(p)
4435 /*** IOverlayNotify methods ***/
4436 #define IOverlayNotify_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
4437 #define IOverlayNotify_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
4438 #define IOverlayNotify_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
4439 #define IOverlayNotify_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
4443 #define IOverlayNotify_METHODS \
4444 ICOM_MSVTABLE_COMPAT_FIELDS \
4445 /*** IUnknown methods ***/ \
4446 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4447 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4448 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4449 /*** IOverlayNotify methods ***/ \
4450 STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
4451 STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
4452 STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
4453 STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE;
4455 HRESULT CALLBACK
IOverlayNotify_OnPaletteChange_Proxy(
4456 IOverlayNotify
* This
,
4458 const PALETTEENTRY
* pPalette
);
4459 void __RPC_STUB
IOverlayNotify_OnPaletteChange_Stub(
4460 struct IRpcStubBuffer
* This
,
4461 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4462 PRPC_MESSAGE pRpcMessage
,
4463 DWORD
* pdwStubPhase
);
4464 HRESULT CALLBACK
IOverlayNotify_OnClipChange_Proxy(
4465 IOverlayNotify
* This
,
4466 const RECT
* pSourceRect
,
4467 const RECT
* pDestinationRect
,
4468 const RGNDATA
* pRgnData
);
4469 void __RPC_STUB
IOverlayNotify_OnClipChange_Stub(
4470 struct IRpcStubBuffer
* This
,
4471 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4472 PRPC_MESSAGE pRpcMessage
,
4473 DWORD
* pdwStubPhase
);
4474 HRESULT CALLBACK
IOverlayNotify_OnColorKeyChange_Proxy(
4475 IOverlayNotify
* This
,
4476 const COLORKEY
* pColorKey
);
4477 void __RPC_STUB
IOverlayNotify_OnColorKeyChange_Stub(
4478 struct IRpcStubBuffer
* This
,
4479 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4480 PRPC_MESSAGE pRpcMessage
,
4481 DWORD
* pdwStubPhase
);
4482 HRESULT CALLBACK
IOverlayNotify_OnPositionChange_Proxy(
4483 IOverlayNotify
* This
,
4484 const RECT
* pSourceRect
,
4485 const RECT
* pDestinationRect
);
4486 void __RPC_STUB
IOverlayNotify_OnPositionChange_Stub(
4487 struct IRpcStubBuffer
* This
,
4488 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4489 PRPC_MESSAGE pRpcMessage
,
4490 DWORD
* pdwStubPhase
);
4492 #endif /* __IOverlayNotify_INTERFACE_DEFINED__ */
4494 typedef IOverlayNotify
*POVERLAYNOTIFY
;
4497 typedef HANDLE HMONITOR
;
4500 /*****************************************************************************
4501 * IOverlayNotify2 interface
4503 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
4504 #define __IOverlayNotify2_INTERFACE_DEFINED__
4506 DEFINE_GUID(IID_IOverlayNotify2
, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
4507 #if defined(__cplusplus) && !defined(CINTERFACE)
4508 struct IOverlayNotify2
: public IOverlayNotify
4510 virtual HRESULT STDMETHODCALLTYPE
OnDisplayChange(
4511 HMONITOR hMonitor
) = 0;
4515 typedef struct IOverlayNotify2Vtbl IOverlayNotify2Vtbl
;
4516 struct IOverlayNotify2
{
4517 const IOverlayNotify2Vtbl
* lpVtbl
;
4519 struct IOverlayNotify2Vtbl
{
4520 ICOM_MSVTABLE_COMPAT_FIELDS
4522 /*** IUnknown methods ***/
4523 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4524 IOverlayNotify2
* This
,
4528 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4529 IOverlayNotify2
* This
);
4531 ULONG (STDMETHODCALLTYPE
*Release
)(
4532 IOverlayNotify2
* This
);
4534 /*** IOverlayNotify methods ***/
4535 HRESULT (STDMETHODCALLTYPE
*OnPaletteChange
)(
4536 IOverlayNotify2
* This
,
4538 const PALETTEENTRY
* pPalette
);
4540 HRESULT (STDMETHODCALLTYPE
*OnClipChange
)(
4541 IOverlayNotify2
* This
,
4542 const RECT
* pSourceRect
,
4543 const RECT
* pDestinationRect
,
4544 const RGNDATA
* pRgnData
);
4546 HRESULT (STDMETHODCALLTYPE
*OnColorKeyChange
)(
4547 IOverlayNotify2
* This
,
4548 const COLORKEY
* pColorKey
);
4550 HRESULT (STDMETHODCALLTYPE
*OnPositionChange
)(
4551 IOverlayNotify2
* This
,
4552 const RECT
* pSourceRect
,
4553 const RECT
* pDestinationRect
);
4555 /*** IOverlayNotify2 methods ***/
4556 HRESULT (STDMETHODCALLTYPE
*OnDisplayChange
)(
4557 IOverlayNotify2
* This
,
4562 /*** IUnknown methods ***/
4563 #define IOverlayNotify2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4564 #define IOverlayNotify2_AddRef(p) (p)->lpVtbl->AddRef(p)
4565 #define IOverlayNotify2_Release(p) (p)->lpVtbl->Release(p)
4566 /*** IOverlayNotify methods ***/
4567 #define IOverlayNotify2_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
4568 #define IOverlayNotify2_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
4569 #define IOverlayNotify2_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
4570 #define IOverlayNotify2_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
4571 /*** IOverlayNotify2 methods ***/
4572 #define IOverlayNotify2_OnDisplayChange(p,a) (p)->lpVtbl->OnDisplayChange(p,a)
4576 #define IOverlayNotify2_METHODS \
4577 ICOM_MSVTABLE_COMPAT_FIELDS \
4578 /*** IUnknown methods ***/ \
4579 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4580 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4581 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4582 /*** IOverlayNotify methods ***/ \
4583 STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
4584 STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
4585 STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
4586 STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE; \
4587 /*** IOverlayNotify2 methods ***/ \
4588 STDMETHOD_(HRESULT,OnDisplayChange)(THIS_ HMONITOR hMonitor) PURE;
4590 HRESULT CALLBACK
IOverlayNotify2_OnDisplayChange_Proxy(
4591 IOverlayNotify2
* This
,
4593 void __RPC_STUB
IOverlayNotify2_OnDisplayChange_Stub(
4594 struct IRpcStubBuffer
* This
,
4595 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4596 PRPC_MESSAGE pRpcMessage
,
4597 DWORD
* pdwStubPhase
);
4599 #endif /* __IOverlayNotify2_INTERFACE_DEFINED__ */
4601 typedef IOverlayNotify2
*POVERLAYNOTIFY2
;
4603 /*****************************************************************************
4604 * IOverlay interface
4606 #ifndef __IOverlay_INTERFACE_DEFINED__
4607 #define __IOverlay_INTERFACE_DEFINED__
4609 DEFINE_GUID(IID_IOverlay
, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4610 #if defined(__cplusplus) && !defined(CINTERFACE)
4611 struct IOverlay
: public IUnknown
4613 virtual HRESULT STDMETHODCALLTYPE
GetPalette(
4615 PALETTEENTRY
** ppPalette
) = 0;
4617 virtual HRESULT STDMETHODCALLTYPE
SetPalette(
4619 PALETTEENTRY
* pPalette
) = 0;
4621 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColorKey(
4622 COLORKEY
* pColorKey
) = 0;
4624 virtual HRESULT STDMETHODCALLTYPE
GetColorKey(
4625 COLORKEY
* pColorKey
) = 0;
4627 virtual HRESULT STDMETHODCALLTYPE
SetColorKey(
4628 COLORKEY
* pColorKey
) = 0;
4630 virtual HRESULT STDMETHODCALLTYPE
GetWindowHandle(
4633 virtual HRESULT STDMETHODCALLTYPE
GetClipList(
4635 RECT
* pDestinationRect
,
4636 RGNDATA
** ppRgnData
) = 0;
4638 virtual HRESULT STDMETHODCALLTYPE
GetVideoPosition(
4640 RECT
* pDestinationRect
) = 0;
4642 virtual HRESULT STDMETHODCALLTYPE
Advise(
4643 IOverlayNotify
* pOverlayNotify
,
4644 DWORD dwInterests
) = 0;
4646 virtual HRESULT STDMETHODCALLTYPE
Unadvise(
4651 typedef struct IOverlayVtbl IOverlayVtbl
;
4653 const IOverlayVtbl
* lpVtbl
;
4655 struct IOverlayVtbl
{
4656 ICOM_MSVTABLE_COMPAT_FIELDS
4658 /*** IUnknown methods ***/
4659 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4664 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4667 ULONG (STDMETHODCALLTYPE
*Release
)(
4670 /*** IOverlay methods ***/
4671 HRESULT (STDMETHODCALLTYPE
*GetPalette
)(
4674 PALETTEENTRY
** ppPalette
);
4676 HRESULT (STDMETHODCALLTYPE
*SetPalette
)(
4679 PALETTEENTRY
* pPalette
);
4681 HRESULT (STDMETHODCALLTYPE
*GetDefaultColorKey
)(
4683 COLORKEY
* pColorKey
);
4685 HRESULT (STDMETHODCALLTYPE
*GetColorKey
)(
4687 COLORKEY
* pColorKey
);
4689 HRESULT (STDMETHODCALLTYPE
*SetColorKey
)(
4691 COLORKEY
* pColorKey
);
4693 HRESULT (STDMETHODCALLTYPE
*GetWindowHandle
)(
4697 HRESULT (STDMETHODCALLTYPE
*GetClipList
)(
4700 RECT
* pDestinationRect
,
4701 RGNDATA
** ppRgnData
);
4703 HRESULT (STDMETHODCALLTYPE
*GetVideoPosition
)(
4706 RECT
* pDestinationRect
);
4708 HRESULT (STDMETHODCALLTYPE
*Advise
)(
4710 IOverlayNotify
* pOverlayNotify
,
4713 HRESULT (STDMETHODCALLTYPE
*Unadvise
)(
4718 /*** IUnknown methods ***/
4719 #define IOverlay_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4720 #define IOverlay_AddRef(p) (p)->lpVtbl->AddRef(p)
4721 #define IOverlay_Release(p) (p)->lpVtbl->Release(p)
4722 /*** IOverlay methods ***/
4723 #define IOverlay_GetPalette(p,a,b) (p)->lpVtbl->GetPalette(p,a,b)
4724 #define IOverlay_SetPalette(p,a,b) (p)->lpVtbl->SetPalette(p,a,b)
4725 #define IOverlay_GetDefaultColorKey(p,a) (p)->lpVtbl->GetDefaultColorKey(p,a)
4726 #define IOverlay_GetColorKey(p,a) (p)->lpVtbl->GetColorKey(p,a)
4727 #define IOverlay_SetColorKey(p,a) (p)->lpVtbl->SetColorKey(p,a)
4728 #define IOverlay_GetWindowHandle(p,a) (p)->lpVtbl->GetWindowHandle(p,a)
4729 #define IOverlay_GetClipList(p,a,b,c) (p)->lpVtbl->GetClipList(p,a,b,c)
4730 #define IOverlay_GetVideoPosition(p,a,b) (p)->lpVtbl->GetVideoPosition(p,a,b)
4731 #define IOverlay_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b)
4732 #define IOverlay_Unadvise(p) (p)->lpVtbl->Unadvise(p)
4736 #define IOverlay_METHODS \
4737 ICOM_MSVTABLE_COMPAT_FIELDS \
4738 /*** IUnknown methods ***/ \
4739 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4740 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4741 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4742 /*** IOverlay methods ***/ \
4743 STDMETHOD_(HRESULT,GetPalette)(THIS_ DWORD* pdwColors, PALETTEENTRY** ppPalette) PURE; \
4744 STDMETHOD_(HRESULT,SetPalette)(THIS_ DWORD dwColors, PALETTEENTRY* pPalette) PURE; \
4745 STDMETHOD_(HRESULT,GetDefaultColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4746 STDMETHOD_(HRESULT,GetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4747 STDMETHOD_(HRESULT,SetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4748 STDMETHOD_(HRESULT,GetWindowHandle)(THIS_ HWND* pHwnd) PURE; \
4749 STDMETHOD_(HRESULT,GetClipList)(THIS_ RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData) PURE; \
4750 STDMETHOD_(HRESULT,GetVideoPosition)(THIS_ RECT* pSourceRect, RECT* pDestinationRect) PURE; \
4751 STDMETHOD_(HRESULT,Advise)(THIS_ IOverlayNotify* pOverlayNotify, DWORD dwInterests) PURE; \
4752 STDMETHOD_(HRESULT,Unadvise)(THIS) PURE;
4754 HRESULT CALLBACK
IOverlay_GetPalette_Proxy(
4757 PALETTEENTRY
** ppPalette
);
4758 void __RPC_STUB
IOverlay_GetPalette_Stub(
4759 struct IRpcStubBuffer
* This
,
4760 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4761 PRPC_MESSAGE pRpcMessage
,
4762 DWORD
* pdwStubPhase
);
4763 HRESULT CALLBACK
IOverlay_SetPalette_Proxy(
4766 PALETTEENTRY
* pPalette
);
4767 void __RPC_STUB
IOverlay_SetPalette_Stub(
4768 struct IRpcStubBuffer
* This
,
4769 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4770 PRPC_MESSAGE pRpcMessage
,
4771 DWORD
* pdwStubPhase
);
4772 HRESULT CALLBACK
IOverlay_GetDefaultColorKey_Proxy(
4774 COLORKEY
* pColorKey
);
4775 void __RPC_STUB
IOverlay_GetDefaultColorKey_Stub(
4776 struct IRpcStubBuffer
* This
,
4777 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4778 PRPC_MESSAGE pRpcMessage
,
4779 DWORD
* pdwStubPhase
);
4780 HRESULT CALLBACK
IOverlay_GetColorKey_Proxy(
4782 COLORKEY
* pColorKey
);
4783 void __RPC_STUB
IOverlay_GetColorKey_Stub(
4784 struct IRpcStubBuffer
* This
,
4785 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4786 PRPC_MESSAGE pRpcMessage
,
4787 DWORD
* pdwStubPhase
);
4788 HRESULT CALLBACK
IOverlay_SetColorKey_Proxy(
4790 COLORKEY
* pColorKey
);
4791 void __RPC_STUB
IOverlay_SetColorKey_Stub(
4792 struct IRpcStubBuffer
* This
,
4793 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4794 PRPC_MESSAGE pRpcMessage
,
4795 DWORD
* pdwStubPhase
);
4796 HRESULT CALLBACK
IOverlay_GetWindowHandle_Proxy(
4799 void __RPC_STUB
IOverlay_GetWindowHandle_Stub(
4800 struct IRpcStubBuffer
* This
,
4801 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4802 PRPC_MESSAGE pRpcMessage
,
4803 DWORD
* pdwStubPhase
);
4804 HRESULT CALLBACK
IOverlay_GetClipList_Proxy(
4807 RECT
* pDestinationRect
,
4808 RGNDATA
** ppRgnData
);
4809 void __RPC_STUB
IOverlay_GetClipList_Stub(
4810 struct IRpcStubBuffer
* This
,
4811 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4812 PRPC_MESSAGE pRpcMessage
,
4813 DWORD
* pdwStubPhase
);
4814 HRESULT CALLBACK
IOverlay_GetVideoPosition_Proxy(
4817 RECT
* pDestinationRect
);
4818 void __RPC_STUB
IOverlay_GetVideoPosition_Stub(
4819 struct IRpcStubBuffer
* This
,
4820 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4821 PRPC_MESSAGE pRpcMessage
,
4822 DWORD
* pdwStubPhase
);
4823 HRESULT CALLBACK
IOverlay_Advise_Proxy(
4825 IOverlayNotify
* pOverlayNotify
,
4827 void __RPC_STUB
IOverlay_Advise_Stub(
4828 struct IRpcStubBuffer
* This
,
4829 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4830 PRPC_MESSAGE pRpcMessage
,
4831 DWORD
* pdwStubPhase
);
4832 HRESULT CALLBACK
IOverlay_Unadvise_Proxy(
4834 void __RPC_STUB
IOverlay_Unadvise_Stub(
4835 struct IRpcStubBuffer
* This
,
4836 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4837 PRPC_MESSAGE pRpcMessage
,
4838 DWORD
* pdwStubPhase
);
4840 #endif /* __IOverlay_INTERFACE_DEFINED__ */
4842 typedef IOverlay
*POVERLAY
;
4844 /*****************************************************************************
4845 * IMediaEventSink interface
4847 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
4848 #define __IMediaEventSink_INTERFACE_DEFINED__
4850 DEFINE_GUID(IID_IMediaEventSink
, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4851 #if defined(__cplusplus) && !defined(CINTERFACE)
4852 struct IMediaEventSink
: public IUnknown
4854 virtual HRESULT STDMETHODCALLTYPE
Notify(
4856 LONG_PTR EventParam1
,
4857 LONG_PTR EventParam2
) = 0;
4861 typedef struct IMediaEventSinkVtbl IMediaEventSinkVtbl
;
4862 struct IMediaEventSink
{
4863 const IMediaEventSinkVtbl
* lpVtbl
;
4865 struct IMediaEventSinkVtbl
{
4866 ICOM_MSVTABLE_COMPAT_FIELDS
4868 /*** IUnknown methods ***/
4869 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4870 IMediaEventSink
* This
,
4874 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4875 IMediaEventSink
* This
);
4877 ULONG (STDMETHODCALLTYPE
*Release
)(
4878 IMediaEventSink
* This
);
4880 /*** IMediaEventSink methods ***/
4881 HRESULT (STDMETHODCALLTYPE
*Notify
)(
4882 IMediaEventSink
* This
,
4884 LONG_PTR EventParam1
,
4885 LONG_PTR EventParam2
);
4889 /*** IUnknown methods ***/
4890 #define IMediaEventSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4891 #define IMediaEventSink_AddRef(p) (p)->lpVtbl->AddRef(p)
4892 #define IMediaEventSink_Release(p) (p)->lpVtbl->Release(p)
4893 /*** IMediaEventSink methods ***/
4894 #define IMediaEventSink_Notify(p,a,b,c) (p)->lpVtbl->Notify(p,a,b,c)
4898 #define IMediaEventSink_METHODS \
4899 ICOM_MSVTABLE_COMPAT_FIELDS \
4900 /*** IUnknown methods ***/ \
4901 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4902 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4903 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4904 /*** IMediaEventSink methods ***/ \
4905 STDMETHOD_(HRESULT,Notify)(THIS_ long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2) PURE;
4907 HRESULT CALLBACK
IMediaEventSink_Notify_Proxy(
4908 IMediaEventSink
* This
,
4910 LONG_PTR EventParam1
,
4911 LONG_PTR EventParam2
);
4912 void __RPC_STUB
IMediaEventSink_Notify_Stub(
4913 struct IRpcStubBuffer
* This
,
4914 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4915 PRPC_MESSAGE pRpcMessage
,
4916 DWORD
* pdwStubPhase
);
4918 #endif /* __IMediaEventSink_INTERFACE_DEFINED__ */
4920 typedef IMediaEventSink
*PMEDIAEVENTSINK
;
4922 /*****************************************************************************
4923 * IFileSourceFilter interface
4925 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
4926 #define __IFileSourceFilter_INTERFACE_DEFINED__
4928 DEFINE_GUID(IID_IFileSourceFilter
, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4929 #if defined(__cplusplus) && !defined(CINTERFACE)
4930 struct IFileSourceFilter
: public IUnknown
4932 virtual HRESULT STDMETHODCALLTYPE
Load(
4933 LPCOLESTR pszFileName
,
4934 const AM_MEDIA_TYPE
* pmt
) = 0;
4936 virtual HRESULT STDMETHODCALLTYPE
GetCurFile(
4937 LPOLESTR
* ppszFileName
,
4938 AM_MEDIA_TYPE
* pmt
) = 0;
4942 typedef struct IFileSourceFilterVtbl IFileSourceFilterVtbl
;
4943 struct IFileSourceFilter
{
4944 const IFileSourceFilterVtbl
* lpVtbl
;
4946 struct IFileSourceFilterVtbl
{
4947 ICOM_MSVTABLE_COMPAT_FIELDS
4949 /*** IUnknown methods ***/
4950 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4951 IFileSourceFilter
* This
,
4955 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4956 IFileSourceFilter
* This
);
4958 ULONG (STDMETHODCALLTYPE
*Release
)(
4959 IFileSourceFilter
* This
);
4961 /*** IFileSourceFilter methods ***/
4962 HRESULT (STDMETHODCALLTYPE
*Load
)(
4963 IFileSourceFilter
* This
,
4964 LPCOLESTR pszFileName
,
4965 const AM_MEDIA_TYPE
* pmt
);
4967 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
4968 IFileSourceFilter
* This
,
4969 LPOLESTR
* ppszFileName
,
4970 AM_MEDIA_TYPE
* pmt
);
4974 /*** IUnknown methods ***/
4975 #define IFileSourceFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4976 #define IFileSourceFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
4977 #define IFileSourceFilter_Release(p) (p)->lpVtbl->Release(p)
4978 /*** IFileSourceFilter methods ***/
4979 #define IFileSourceFilter_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4980 #define IFileSourceFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
4984 #define IFileSourceFilter_METHODS \
4985 ICOM_MSVTABLE_COMPAT_FIELDS \
4986 /*** IUnknown methods ***/ \
4987 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4988 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4989 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4990 /*** IFileSourceFilter methods ***/ \
4991 STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
4992 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
4994 HRESULT CALLBACK
IFileSourceFilter_Load_Proxy(
4995 IFileSourceFilter
* This
,
4996 LPCOLESTR pszFileName
,
4997 const AM_MEDIA_TYPE
* pmt
);
4998 void __RPC_STUB
IFileSourceFilter_Load_Stub(
4999 struct IRpcStubBuffer
* This
,
5000 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5001 PRPC_MESSAGE pRpcMessage
,
5002 DWORD
* pdwStubPhase
);
5003 HRESULT CALLBACK
IFileSourceFilter_GetCurFile_Proxy(
5004 IFileSourceFilter
* This
,
5005 LPOLESTR
* ppszFileName
,
5006 AM_MEDIA_TYPE
* pmt
);
5007 void __RPC_STUB
IFileSourceFilter_GetCurFile_Stub(
5008 struct IRpcStubBuffer
* This
,
5009 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5010 PRPC_MESSAGE pRpcMessage
,
5011 DWORD
* pdwStubPhase
);
5013 #endif /* __IFileSourceFilter_INTERFACE_DEFINED__ */
5015 typedef IFileSourceFilter
*PFILTERFILESOURCE
;
5017 /*****************************************************************************
5018 * IFileSinkFilter interface
5020 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
5021 #define __IFileSinkFilter_INTERFACE_DEFINED__
5023 DEFINE_GUID(IID_IFileSinkFilter
, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
5024 #if defined(__cplusplus) && !defined(CINTERFACE)
5025 struct IFileSinkFilter
: public IUnknown
5027 virtual HRESULT STDMETHODCALLTYPE
SetFileName(
5028 LPCOLESTR pszFileName
,
5029 const AM_MEDIA_TYPE
* pmt
) = 0;
5031 virtual HRESULT STDMETHODCALLTYPE
GetCurFile(
5032 LPOLESTR
* ppszFileName
,
5033 AM_MEDIA_TYPE
* pmt
) = 0;
5037 typedef struct IFileSinkFilterVtbl IFileSinkFilterVtbl
;
5038 struct IFileSinkFilter
{
5039 const IFileSinkFilterVtbl
* lpVtbl
;
5041 struct IFileSinkFilterVtbl
{
5042 ICOM_MSVTABLE_COMPAT_FIELDS
5044 /*** IUnknown methods ***/
5045 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5046 IFileSinkFilter
* This
,
5050 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5051 IFileSinkFilter
* This
);
5053 ULONG (STDMETHODCALLTYPE
*Release
)(
5054 IFileSinkFilter
* This
);
5056 /*** IFileSinkFilter methods ***/
5057 HRESULT (STDMETHODCALLTYPE
*SetFileName
)(
5058 IFileSinkFilter
* This
,
5059 LPCOLESTR pszFileName
,
5060 const AM_MEDIA_TYPE
* pmt
);
5062 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
5063 IFileSinkFilter
* This
,
5064 LPOLESTR
* ppszFileName
,
5065 AM_MEDIA_TYPE
* pmt
);
5069 /*** IUnknown methods ***/
5070 #define IFileSinkFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5071 #define IFileSinkFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
5072 #define IFileSinkFilter_Release(p) (p)->lpVtbl->Release(p)
5073 /*** IFileSinkFilter methods ***/
5074 #define IFileSinkFilter_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
5075 #define IFileSinkFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
5079 #define IFileSinkFilter_METHODS \
5080 ICOM_MSVTABLE_COMPAT_FIELDS \
5081 /*** IUnknown methods ***/ \
5082 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5083 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5084 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5085 /*** IFileSinkFilter methods ***/ \
5086 STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
5087 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
5089 HRESULT CALLBACK
IFileSinkFilter_SetFileName_Proxy(
5090 IFileSinkFilter
* This
,
5091 LPCOLESTR pszFileName
,
5092 const AM_MEDIA_TYPE
* pmt
);
5093 void __RPC_STUB
IFileSinkFilter_SetFileName_Stub(
5094 struct IRpcStubBuffer
* This
,
5095 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5096 PRPC_MESSAGE pRpcMessage
,
5097 DWORD
* pdwStubPhase
);
5098 HRESULT CALLBACK
IFileSinkFilter_GetCurFile_Proxy(
5099 IFileSinkFilter
* This
,
5100 LPOLESTR
* ppszFileName
,
5101 AM_MEDIA_TYPE
* pmt
);
5102 void __RPC_STUB
IFileSinkFilter_GetCurFile_Stub(
5103 struct IRpcStubBuffer
* This
,
5104 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5105 PRPC_MESSAGE pRpcMessage
,
5106 DWORD
* pdwStubPhase
);
5108 #endif /* __IFileSinkFilter_INTERFACE_DEFINED__ */
5110 typedef IFileSinkFilter
*PFILTERFILESINK
;
5112 /*****************************************************************************
5113 * IFileSinkFilter2 interface
5115 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
5116 #define __IFileSinkFilter2_INTERFACE_DEFINED__
5118 DEFINE_GUID(IID_IFileSinkFilter2
, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
5119 #if defined(__cplusplus) && !defined(CINTERFACE)
5120 struct IFileSinkFilter2
: public IFileSinkFilter
5122 virtual HRESULT STDMETHODCALLTYPE
SetMode(
5125 virtual HRESULT STDMETHODCALLTYPE
GetMode(
5126 DWORD
* pdwFlags
) = 0;
5130 typedef struct IFileSinkFilter2Vtbl IFileSinkFilter2Vtbl
;
5131 struct IFileSinkFilter2
{
5132 const IFileSinkFilter2Vtbl
* lpVtbl
;
5134 struct IFileSinkFilter2Vtbl
{
5135 ICOM_MSVTABLE_COMPAT_FIELDS
5137 /*** IUnknown methods ***/
5138 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5139 IFileSinkFilter2
* This
,
5143 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5144 IFileSinkFilter2
* This
);
5146 ULONG (STDMETHODCALLTYPE
*Release
)(
5147 IFileSinkFilter2
* This
);
5149 /*** IFileSinkFilter methods ***/
5150 HRESULT (STDMETHODCALLTYPE
*SetFileName
)(
5151 IFileSinkFilter2
* This
,
5152 LPCOLESTR pszFileName
,
5153 const AM_MEDIA_TYPE
* pmt
);
5155 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
5156 IFileSinkFilter2
* This
,
5157 LPOLESTR
* ppszFileName
,
5158 AM_MEDIA_TYPE
* pmt
);
5160 /*** IFileSinkFilter2 methods ***/
5161 HRESULT (STDMETHODCALLTYPE
*SetMode
)(
5162 IFileSinkFilter2
* This
,
5165 HRESULT (STDMETHODCALLTYPE
*GetMode
)(
5166 IFileSinkFilter2
* This
,
5171 /*** IUnknown methods ***/
5172 #define IFileSinkFilter2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5173 #define IFileSinkFilter2_AddRef(p) (p)->lpVtbl->AddRef(p)
5174 #define IFileSinkFilter2_Release(p) (p)->lpVtbl->Release(p)
5175 /*** IFileSinkFilter methods ***/
5176 #define IFileSinkFilter2_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
5177 #define IFileSinkFilter2_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
5178 /*** IFileSinkFilter2 methods ***/
5179 #define IFileSinkFilter2_SetMode(p,a) (p)->lpVtbl->SetMode(p,a)
5180 #define IFileSinkFilter2_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
5184 #define IFileSinkFilter2_METHODS \
5185 ICOM_MSVTABLE_COMPAT_FIELDS \
5186 /*** IUnknown methods ***/ \
5187 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5188 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5189 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5190 /*** IFileSinkFilter methods ***/ \
5191 STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
5192 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE; \
5193 /*** IFileSinkFilter2 methods ***/ \
5194 STDMETHOD_(HRESULT,SetMode)(THIS_ DWORD dwFlags) PURE; \
5195 STDMETHOD_(HRESULT,GetMode)(THIS_ DWORD* pdwFlags) PURE;
5197 HRESULT CALLBACK
IFileSinkFilter2_SetMode_Proxy(
5198 IFileSinkFilter2
* This
,
5200 void __RPC_STUB
IFileSinkFilter2_SetMode_Stub(
5201 struct IRpcStubBuffer
* This
,
5202 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5203 PRPC_MESSAGE pRpcMessage
,
5204 DWORD
* pdwStubPhase
);
5205 HRESULT CALLBACK
IFileSinkFilter2_GetMode_Proxy(
5206 IFileSinkFilter2
* This
,
5208 void __RPC_STUB
IFileSinkFilter2_GetMode_Stub(
5209 struct IRpcStubBuffer
* This
,
5210 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5211 PRPC_MESSAGE pRpcMessage
,
5212 DWORD
* pdwStubPhase
);
5214 #endif /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
5216 typedef IFileSinkFilter2
*PFILESINKFILTER2
;
5219 AM_FILE_OVERWRITE
= 0x1
5220 } AM_FILESINK_FLAGS
;
5222 /*****************************************************************************
5223 * IGraphBuilder interface
5225 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
5226 #define __IGraphBuilder_INTERFACE_DEFINED__
5228 DEFINE_GUID(IID_IGraphBuilder
, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5229 #if defined(__cplusplus) && !defined(CINTERFACE)
5230 struct IGraphBuilder
: public IFilterGraph
5232 virtual HRESULT STDMETHODCALLTYPE
Connect(
5236 virtual HRESULT STDMETHODCALLTYPE
Render(
5239 virtual HRESULT STDMETHODCALLTYPE
RenderFile(
5240 LPCWSTR lpcwstrFile
,
5241 LPCWSTR lpcwstrPlayList
) = 0;
5243 virtual HRESULT STDMETHODCALLTYPE
AddSourceFilter(
5244 LPCWSTR lpcwstrFileName
,
5245 LPCWSTR lpcwstrFilterName
,
5246 IBaseFilter
** ppFilter
) = 0;
5248 virtual HRESULT STDMETHODCALLTYPE
SetLogFile(
5249 DWORD_PTR hFile
) = 0;
5251 virtual HRESULT STDMETHODCALLTYPE
Abort(
5254 virtual HRESULT STDMETHODCALLTYPE
ShouldOperationContinue(
5259 typedef struct IGraphBuilderVtbl IGraphBuilderVtbl
;
5260 struct IGraphBuilder
{
5261 const IGraphBuilderVtbl
* lpVtbl
;
5263 struct IGraphBuilderVtbl
{
5264 ICOM_MSVTABLE_COMPAT_FIELDS
5266 /*** IUnknown methods ***/
5267 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5268 IGraphBuilder
* This
,
5272 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5273 IGraphBuilder
* This
);
5275 ULONG (STDMETHODCALLTYPE
*Release
)(
5276 IGraphBuilder
* This
);
5278 /*** IFilterGraph methods ***/
5279 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
5280 IGraphBuilder
* This
,
5281 IBaseFilter
* pFilter
,
5284 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
5285 IGraphBuilder
* This
,
5286 IBaseFilter
* pFilter
);
5288 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
5289 IGraphBuilder
* This
,
5290 IEnumFilters
** ppEnum
);
5292 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
5293 IGraphBuilder
* This
,
5295 IBaseFilter
** ppFilter
);
5297 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
5298 IGraphBuilder
* This
,
5301 const AM_MEDIA_TYPE
* pmt
);
5303 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
5304 IGraphBuilder
* This
,
5307 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
5308 IGraphBuilder
* This
,
5311 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
5312 IGraphBuilder
* This
);
5314 /*** IGraphBuilder methods ***/
5315 HRESULT (STDMETHODCALLTYPE
*Connect
)(
5316 IGraphBuilder
* This
,
5320 HRESULT (STDMETHODCALLTYPE
*Render
)(
5321 IGraphBuilder
* This
,
5324 HRESULT (STDMETHODCALLTYPE
*RenderFile
)(
5325 IGraphBuilder
* This
,
5326 LPCWSTR lpcwstrFile
,
5327 LPCWSTR lpcwstrPlayList
);
5329 HRESULT (STDMETHODCALLTYPE
*AddSourceFilter
)(
5330 IGraphBuilder
* This
,
5331 LPCWSTR lpcwstrFileName
,
5332 LPCWSTR lpcwstrFilterName
,
5333 IBaseFilter
** ppFilter
);
5335 HRESULT (STDMETHODCALLTYPE
*SetLogFile
)(
5336 IGraphBuilder
* This
,
5339 HRESULT (STDMETHODCALLTYPE
*Abort
)(
5340 IGraphBuilder
* This
);
5342 HRESULT (STDMETHODCALLTYPE
*ShouldOperationContinue
)(
5343 IGraphBuilder
* This
);
5347 /*** IUnknown methods ***/
5348 #define IGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5349 #define IGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
5350 #define IGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
5351 /*** IFilterGraph methods ***/
5352 #define IGraphBuilder_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
5353 #define IGraphBuilder_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
5354 #define IGraphBuilder_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
5355 #define IGraphBuilder_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
5356 #define IGraphBuilder_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
5357 #define IGraphBuilder_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
5358 #define IGraphBuilder_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
5359 #define IGraphBuilder_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
5360 /*** IGraphBuilder methods ***/
5361 #define IGraphBuilder_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
5362 #define IGraphBuilder_Render(p,a) (p)->lpVtbl->Render(p,a)
5363 #define IGraphBuilder_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
5364 #define IGraphBuilder_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
5365 #define IGraphBuilder_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
5366 #define IGraphBuilder_Abort(p) (p)->lpVtbl->Abort(p)
5367 #define IGraphBuilder_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
5371 #define IGraphBuilder_METHODS \
5372 ICOM_MSVTABLE_COMPAT_FIELDS \
5373 /*** IUnknown methods ***/ \
5374 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5375 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5376 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5377 /*** IFilterGraph methods ***/ \
5378 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
5379 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
5380 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
5381 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
5382 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
5383 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
5384 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
5385 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
5386 /*** IGraphBuilder methods ***/ \
5387 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
5388 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
5389 STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
5390 STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
5391 STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
5392 STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
5393 STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE;
5395 HRESULT CALLBACK
IGraphBuilder_Connect_Proxy(
5396 IGraphBuilder
* This
,
5399 void __RPC_STUB
IGraphBuilder_Connect_Stub(
5400 struct IRpcStubBuffer
* This
,
5401 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5402 PRPC_MESSAGE pRpcMessage
,
5403 DWORD
* pdwStubPhase
);
5404 HRESULT CALLBACK
IGraphBuilder_Render_Proxy(
5405 IGraphBuilder
* This
,
5407 void __RPC_STUB
IGraphBuilder_Render_Stub(
5408 struct IRpcStubBuffer
* This
,
5409 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5410 PRPC_MESSAGE pRpcMessage
,
5411 DWORD
* pdwStubPhase
);
5412 HRESULT CALLBACK
IGraphBuilder_RenderFile_Proxy(
5413 IGraphBuilder
* This
,
5414 LPCWSTR lpcwstrFile
,
5415 LPCWSTR lpcwstrPlayList
);
5416 void __RPC_STUB
IGraphBuilder_RenderFile_Stub(
5417 struct IRpcStubBuffer
* This
,
5418 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5419 PRPC_MESSAGE pRpcMessage
,
5420 DWORD
* pdwStubPhase
);
5421 HRESULT CALLBACK
IGraphBuilder_AddSourceFilter_Proxy(
5422 IGraphBuilder
* This
,
5423 LPCWSTR lpcwstrFileName
,
5424 LPCWSTR lpcwstrFilterName
,
5425 IBaseFilter
** ppFilter
);
5426 void __RPC_STUB
IGraphBuilder_AddSourceFilter_Stub(
5427 struct IRpcStubBuffer
* This
,
5428 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5429 PRPC_MESSAGE pRpcMessage
,
5430 DWORD
* pdwStubPhase
);
5431 HRESULT CALLBACK
IGraphBuilder_SetLogFile_Proxy(
5432 IGraphBuilder
* This
,
5434 void __RPC_STUB
IGraphBuilder_SetLogFile_Stub(
5435 struct IRpcStubBuffer
* This
,
5436 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5437 PRPC_MESSAGE pRpcMessage
,
5438 DWORD
* pdwStubPhase
);
5439 HRESULT CALLBACK
IGraphBuilder_Abort_Proxy(
5440 IGraphBuilder
* This
);
5441 void __RPC_STUB
IGraphBuilder_Abort_Stub(
5442 struct IRpcStubBuffer
* This
,
5443 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5444 PRPC_MESSAGE pRpcMessage
,
5445 DWORD
* pdwStubPhase
);
5446 HRESULT CALLBACK
IGraphBuilder_ShouldOperationContinue_Proxy(
5447 IGraphBuilder
* This
);
5448 void __RPC_STUB
IGraphBuilder_ShouldOperationContinue_Stub(
5449 struct IRpcStubBuffer
* This
,
5450 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5451 PRPC_MESSAGE pRpcMessage
,
5452 DWORD
* pdwStubPhase
);
5454 #endif /* __IGraphBuilder_INTERFACE_DEFINED__ */
5456 /*****************************************************************************
5457 * ICaptureGraphBuilder interface
5459 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
5460 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
5462 DEFINE_GUID(IID_ICaptureGraphBuilder
, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
5463 #if defined(__cplusplus) && !defined(CINTERFACE)
5464 struct ICaptureGraphBuilder
: public IUnknown
5466 virtual HRESULT STDMETHODCALLTYPE
SetFiltergraph(
5467 IGraphBuilder
* pfg
) = 0;
5469 virtual HRESULT STDMETHODCALLTYPE
GetFiltergraph(
5470 IGraphBuilder
** ppfg
) = 0;
5472 virtual HRESULT STDMETHODCALLTYPE
SetOutputFileName(
5474 LPCOLESTR lpstrFile
,
5476 IFileSinkFilter
** ppSink
) = 0;
5478 virtual HRESULT STDMETHODCALLTYPE
FindInterface(
5479 const GUID
* pCategory
,
5484 virtual HRESULT STDMETHODCALLTYPE
RenderStream(
5485 const GUID
* pCategory
,
5487 IBaseFilter
* pfCompressor
,
5488 IBaseFilter
* pfRenderer
) = 0;
5490 virtual HRESULT STDMETHODCALLTYPE
ControlStream(
5491 const GUID
* pCategory
,
5492 IBaseFilter
* pFilter
,
5493 REFERENCE_TIME
* pstart
,
5494 REFERENCE_TIME
* pstop
,
5496 WORD wStopCookie
) = 0;
5498 virtual HRESULT STDMETHODCALLTYPE
AllocCapFile(
5500 DWORDLONG dwlSize
) = 0;
5502 virtual HRESULT STDMETHODCALLTYPE
CopyCaptureFile(
5506 IAMCopyCaptureFileProgress
* pCallback
) = 0;
5510 typedef struct ICaptureGraphBuilderVtbl ICaptureGraphBuilderVtbl
;
5511 struct ICaptureGraphBuilder
{
5512 const ICaptureGraphBuilderVtbl
* lpVtbl
;
5514 struct ICaptureGraphBuilderVtbl
{
5515 ICOM_MSVTABLE_COMPAT_FIELDS
5517 /*** IUnknown methods ***/
5518 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5519 ICaptureGraphBuilder
* This
,
5523 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5524 ICaptureGraphBuilder
* This
);
5526 ULONG (STDMETHODCALLTYPE
*Release
)(
5527 ICaptureGraphBuilder
* This
);
5529 /*** ICaptureGraphBuilder methods ***/
5530 HRESULT (STDMETHODCALLTYPE
*SetFiltergraph
)(
5531 ICaptureGraphBuilder
* This
,
5532 IGraphBuilder
* pfg
);
5534 HRESULT (STDMETHODCALLTYPE
*GetFiltergraph
)(
5535 ICaptureGraphBuilder
* This
,
5536 IGraphBuilder
** ppfg
);
5538 HRESULT (STDMETHODCALLTYPE
*SetOutputFileName
)(
5539 ICaptureGraphBuilder
* This
,
5541 LPCOLESTR lpstrFile
,
5543 IFileSinkFilter
** ppSink
);
5545 HRESULT (STDMETHODCALLTYPE
*FindInterface
)(
5546 ICaptureGraphBuilder
* This
,
5547 const GUID
* pCategory
,
5552 HRESULT (STDMETHODCALLTYPE
*RenderStream
)(
5553 ICaptureGraphBuilder
* This
,
5554 const GUID
* pCategory
,
5556 IBaseFilter
* pfCompressor
,
5557 IBaseFilter
* pfRenderer
);
5559 HRESULT (STDMETHODCALLTYPE
*ControlStream
)(
5560 ICaptureGraphBuilder
* This
,
5561 const GUID
* pCategory
,
5562 IBaseFilter
* pFilter
,
5563 REFERENCE_TIME
* pstart
,
5564 REFERENCE_TIME
* pstop
,
5568 HRESULT (STDMETHODCALLTYPE
*AllocCapFile
)(
5569 ICaptureGraphBuilder
* This
,
5573 HRESULT (STDMETHODCALLTYPE
*CopyCaptureFile
)(
5574 ICaptureGraphBuilder
* This
,
5578 IAMCopyCaptureFileProgress
* pCallback
);
5582 /*** IUnknown methods ***/
5583 #define ICaptureGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5584 #define ICaptureGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
5585 #define ICaptureGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
5586 /*** ICaptureGraphBuilder methods ***/
5587 #define ICaptureGraphBuilder_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
5588 #define ICaptureGraphBuilder_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
5589 #define ICaptureGraphBuilder_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
5590 #define ICaptureGraphBuilder_FindInterface(p,a,b,c,d) (p)->lpVtbl->FindInterface(p,a,b,c,d)
5591 #define ICaptureGraphBuilder_RenderStream(p,a,b,c,d) (p)->lpVtbl->RenderStream(p,a,b,c,d)
5592 #define ICaptureGraphBuilder_ControlStream(p,a,b,c,d,e,f) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f)
5593 #define ICaptureGraphBuilder_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
5594 #define ICaptureGraphBuilder_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
5598 #define ICaptureGraphBuilder_METHODS \
5599 ICOM_MSVTABLE_COMPAT_FIELDS \
5600 /*** IUnknown methods ***/ \
5601 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5602 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5603 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5604 /*** ICaptureGraphBuilder methods ***/ \
5605 STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
5606 STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
5607 STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
5608 STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
5609 STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
5610 STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
5611 STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
5612 STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE;
5614 HRESULT CALLBACK
ICaptureGraphBuilder_SetFiltergraph_Proxy(
5615 ICaptureGraphBuilder
* This
,
5616 IGraphBuilder
* pfg
);
5617 void __RPC_STUB
ICaptureGraphBuilder_SetFiltergraph_Stub(
5618 struct IRpcStubBuffer
* This
,
5619 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5620 PRPC_MESSAGE pRpcMessage
,
5621 DWORD
* pdwStubPhase
);
5622 HRESULT CALLBACK
ICaptureGraphBuilder_GetFiltergraph_Proxy(
5623 ICaptureGraphBuilder
* This
,
5624 IGraphBuilder
** ppfg
);
5625 void __RPC_STUB
ICaptureGraphBuilder_GetFiltergraph_Stub(
5626 struct IRpcStubBuffer
* This
,
5627 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5628 PRPC_MESSAGE pRpcMessage
,
5629 DWORD
* pdwStubPhase
);
5630 HRESULT CALLBACK
ICaptureGraphBuilder_SetOutputFileName_Proxy(
5631 ICaptureGraphBuilder
* This
,
5633 LPCOLESTR lpstrFile
,
5635 IFileSinkFilter
** ppSink
);
5636 void __RPC_STUB
ICaptureGraphBuilder_SetOutputFileName_Stub(
5637 struct IRpcStubBuffer
* This
,
5638 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5639 PRPC_MESSAGE pRpcMessage
,
5640 DWORD
* pdwStubPhase
);
5641 HRESULT CALLBACK
ICaptureGraphBuilder_RemoteFindInterface_Proxy(
5642 ICaptureGraphBuilder
* This
,
5643 const GUID
* pCategory
,
5647 void __RPC_STUB
ICaptureGraphBuilder_RemoteFindInterface_Stub(
5648 struct IRpcStubBuffer
* This
,
5649 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5650 PRPC_MESSAGE pRpcMessage
,
5651 DWORD
* pdwStubPhase
);
5652 HRESULT CALLBACK
ICaptureGraphBuilder_FindInterface_Proxy(
5653 ICaptureGraphBuilder
* This
,
5654 const GUID
* pCategory
,
5658 HRESULT __RPC_STUB
ICaptureGraphBuilder_FindInterface_Stub(
5659 ICaptureGraphBuilder
* This
,
5660 const GUID
* pCategory
,
5664 HRESULT CALLBACK
ICaptureGraphBuilder_RenderStream_Proxy(
5665 ICaptureGraphBuilder
* This
,
5666 const GUID
* pCategory
,
5668 IBaseFilter
* pfCompressor
,
5669 IBaseFilter
* pfRenderer
);
5670 void __RPC_STUB
ICaptureGraphBuilder_RenderStream_Stub(
5671 struct IRpcStubBuffer
* This
,
5672 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5673 PRPC_MESSAGE pRpcMessage
,
5674 DWORD
* pdwStubPhase
);
5675 HRESULT CALLBACK
ICaptureGraphBuilder_ControlStream_Proxy(
5676 ICaptureGraphBuilder
* This
,
5677 const GUID
* pCategory
,
5678 IBaseFilter
* pFilter
,
5679 REFERENCE_TIME
* pstart
,
5680 REFERENCE_TIME
* pstop
,
5683 void __RPC_STUB
ICaptureGraphBuilder_ControlStream_Stub(
5684 struct IRpcStubBuffer
* This
,
5685 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5686 PRPC_MESSAGE pRpcMessage
,
5687 DWORD
* pdwStubPhase
);
5688 HRESULT CALLBACK
ICaptureGraphBuilder_AllocCapFile_Proxy(
5689 ICaptureGraphBuilder
* This
,
5692 void __RPC_STUB
ICaptureGraphBuilder_AllocCapFile_Stub(
5693 struct IRpcStubBuffer
* This
,
5694 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5695 PRPC_MESSAGE pRpcMessage
,
5696 DWORD
* pdwStubPhase
);
5697 HRESULT CALLBACK
ICaptureGraphBuilder_CopyCaptureFile_Proxy(
5698 ICaptureGraphBuilder
* This
,
5702 IAMCopyCaptureFileProgress
* pCallback
);
5703 void __RPC_STUB
ICaptureGraphBuilder_CopyCaptureFile_Stub(
5704 struct IRpcStubBuffer
* This
,
5705 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5706 PRPC_MESSAGE pRpcMessage
,
5707 DWORD
* pdwStubPhase
);
5709 #endif /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
5711 /*****************************************************************************
5712 * IAMCopyCaptureFileProgress interface
5714 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
5715 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
5717 DEFINE_GUID(IID_IAMCopyCaptureFileProgress
, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
5718 #if defined(__cplusplus) && !defined(CINTERFACE)
5719 struct IAMCopyCaptureFileProgress
: public IUnknown
5721 virtual HRESULT STDMETHODCALLTYPE
Progress(
5726 typedef struct IAMCopyCaptureFileProgressVtbl IAMCopyCaptureFileProgressVtbl
;
5727 struct IAMCopyCaptureFileProgress
{
5728 const IAMCopyCaptureFileProgressVtbl
* lpVtbl
;
5730 struct IAMCopyCaptureFileProgressVtbl
{
5731 ICOM_MSVTABLE_COMPAT_FIELDS
5733 /*** IUnknown methods ***/
5734 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5735 IAMCopyCaptureFileProgress
* This
,
5739 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5740 IAMCopyCaptureFileProgress
* This
);
5742 ULONG (STDMETHODCALLTYPE
*Release
)(
5743 IAMCopyCaptureFileProgress
* This
);
5745 /*** IAMCopyCaptureFileProgress methods ***/
5746 HRESULT (STDMETHODCALLTYPE
*Progress
)(
5747 IAMCopyCaptureFileProgress
* This
,
5752 /*** IUnknown methods ***/
5753 #define IAMCopyCaptureFileProgress_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5754 #define IAMCopyCaptureFileProgress_AddRef(p) (p)->lpVtbl->AddRef(p)
5755 #define IAMCopyCaptureFileProgress_Release(p) (p)->lpVtbl->Release(p)
5756 /*** IAMCopyCaptureFileProgress methods ***/
5757 #define IAMCopyCaptureFileProgress_Progress(p,a) (p)->lpVtbl->Progress(p,a)
5761 #define IAMCopyCaptureFileProgress_METHODS \
5762 ICOM_MSVTABLE_COMPAT_FIELDS \
5763 /*** IUnknown methods ***/ \
5764 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5765 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5766 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5767 /*** IAMCopyCaptureFileProgress methods ***/ \
5768 STDMETHOD_(HRESULT,Progress)(THIS_ int iProgress) PURE;
5770 HRESULT CALLBACK
IAMCopyCaptureFileProgress_Progress_Proxy(
5771 IAMCopyCaptureFileProgress
* This
,
5773 void __RPC_STUB
IAMCopyCaptureFileProgress_Progress_Stub(
5774 struct IRpcStubBuffer
* This
,
5775 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5776 PRPC_MESSAGE pRpcMessage
,
5777 DWORD
* pdwStubPhase
);
5779 #endif /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
5781 /*****************************************************************************
5782 * ICaptureGraphBuilder2 interface
5784 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
5785 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
5787 DEFINE_GUID(IID_ICaptureGraphBuilder2
, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
5788 #if defined(__cplusplus) && !defined(CINTERFACE)
5789 struct ICaptureGraphBuilder2
: public IUnknown
5791 virtual HRESULT STDMETHODCALLTYPE
SetFiltergraph(
5792 IGraphBuilder
* pfg
) = 0;
5794 virtual HRESULT STDMETHODCALLTYPE
GetFiltergraph(
5795 IGraphBuilder
** ppfg
) = 0;
5797 virtual HRESULT STDMETHODCALLTYPE
SetOutputFileName(
5799 LPCOLESTR lpstrFile
,
5801 IFileSinkFilter
** ppSink
) = 0;
5803 virtual HRESULT STDMETHODCALLTYPE
FindInterface(
5804 const GUID
* pCategory
,
5810 virtual HRESULT STDMETHODCALLTYPE
RenderStream(
5811 const GUID
* pCategory
,
5814 IBaseFilter
* pfCompressor
,
5815 IBaseFilter
* pfRenderer
) = 0;
5817 virtual HRESULT STDMETHODCALLTYPE
ControlStream(
5818 const GUID
* pCategory
,
5820 IBaseFilter
* pFilter
,
5821 REFERENCE_TIME
* pstart
,
5822 REFERENCE_TIME
* pstop
,
5824 WORD wStopCookie
) = 0;
5826 virtual HRESULT STDMETHODCALLTYPE
AllocCapFile(
5828 DWORDLONG dwlSize
) = 0;
5830 virtual HRESULT STDMETHODCALLTYPE
CopyCaptureFile(
5834 IAMCopyCaptureFileProgress
* pCallback
) = 0;
5836 virtual HRESULT STDMETHODCALLTYPE
FindPin(
5838 PIN_DIRECTION pindir
,
5839 const GUID
* pCategory
,
5847 typedef struct ICaptureGraphBuilder2Vtbl ICaptureGraphBuilder2Vtbl
;
5848 struct ICaptureGraphBuilder2
{
5849 const ICaptureGraphBuilder2Vtbl
* lpVtbl
;
5851 struct ICaptureGraphBuilder2Vtbl
{
5852 ICOM_MSVTABLE_COMPAT_FIELDS
5854 /*** IUnknown methods ***/
5855 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5856 ICaptureGraphBuilder2
* This
,
5860 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5861 ICaptureGraphBuilder2
* This
);
5863 ULONG (STDMETHODCALLTYPE
*Release
)(
5864 ICaptureGraphBuilder2
* This
);
5866 /*** ICaptureGraphBuilder2 methods ***/
5867 HRESULT (STDMETHODCALLTYPE
*SetFiltergraph
)(
5868 ICaptureGraphBuilder2
* This
,
5869 IGraphBuilder
* pfg
);
5871 HRESULT (STDMETHODCALLTYPE
*GetFiltergraph
)(
5872 ICaptureGraphBuilder2
* This
,
5873 IGraphBuilder
** ppfg
);
5875 HRESULT (STDMETHODCALLTYPE
*SetOutputFileName
)(
5876 ICaptureGraphBuilder2
* This
,
5878 LPCOLESTR lpstrFile
,
5880 IFileSinkFilter
** ppSink
);
5882 HRESULT (STDMETHODCALLTYPE
*FindInterface
)(
5883 ICaptureGraphBuilder2
* This
,
5884 const GUID
* pCategory
,
5890 HRESULT (STDMETHODCALLTYPE
*RenderStream
)(
5891 ICaptureGraphBuilder2
* This
,
5892 const GUID
* pCategory
,
5895 IBaseFilter
* pfCompressor
,
5896 IBaseFilter
* pfRenderer
);
5898 HRESULT (STDMETHODCALLTYPE
*ControlStream
)(
5899 ICaptureGraphBuilder2
* This
,
5900 const GUID
* pCategory
,
5902 IBaseFilter
* pFilter
,
5903 REFERENCE_TIME
* pstart
,
5904 REFERENCE_TIME
* pstop
,
5908 HRESULT (STDMETHODCALLTYPE
*AllocCapFile
)(
5909 ICaptureGraphBuilder2
* This
,
5913 HRESULT (STDMETHODCALLTYPE
*CopyCaptureFile
)(
5914 ICaptureGraphBuilder2
* This
,
5918 IAMCopyCaptureFileProgress
* pCallback
);
5920 HRESULT (STDMETHODCALLTYPE
*FindPin
)(
5921 ICaptureGraphBuilder2
* This
,
5923 PIN_DIRECTION pindir
,
5924 const GUID
* pCategory
,
5932 /*** IUnknown methods ***/
5933 #define ICaptureGraphBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5934 #define ICaptureGraphBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p)
5935 #define ICaptureGraphBuilder2_Release(p) (p)->lpVtbl->Release(p)
5936 /*** ICaptureGraphBuilder2 methods ***/
5937 #define ICaptureGraphBuilder2_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
5938 #define ICaptureGraphBuilder2_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
5939 #define ICaptureGraphBuilder2_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
5940 #define ICaptureGraphBuilder2_FindInterface(p,a,b,c,d,e) (p)->lpVtbl->FindInterface(p,a,b,c,d,e)
5941 #define ICaptureGraphBuilder2_RenderStream(p,a,b,c,d,e) (p)->lpVtbl->RenderStream(p,a,b,c,d,e)
5942 #define ICaptureGraphBuilder2_ControlStream(p,a,b,c,d,e,f,g) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f,g)
5943 #define ICaptureGraphBuilder2_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
5944 #define ICaptureGraphBuilder2_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
5945 #define ICaptureGraphBuilder2_FindPin(p,a,b,c,d,e,f,g) (p)->lpVtbl->FindPin(p,a,b,c,d,e,f,g)
5949 #define ICaptureGraphBuilder2_METHODS \
5950 ICOM_MSVTABLE_COMPAT_FIELDS \
5951 /*** IUnknown methods ***/ \
5952 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5953 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5954 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5955 /*** ICaptureGraphBuilder2 methods ***/ \
5956 STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
5957 STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
5958 STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
5959 STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
5960 STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
5961 STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
5962 STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
5963 STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE; \
5964 STDMETHOD_(HRESULT,FindPin)(THIS_ IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin) PURE;
5966 HRESULT CALLBACK
ICaptureGraphBuilder2_SetFiltergraph_Proxy(
5967 ICaptureGraphBuilder2
* This
,
5968 IGraphBuilder
* pfg
);
5969 void __RPC_STUB
ICaptureGraphBuilder2_SetFiltergraph_Stub(
5970 struct IRpcStubBuffer
* This
,
5971 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5972 PRPC_MESSAGE pRpcMessage
,
5973 DWORD
* pdwStubPhase
);
5974 HRESULT CALLBACK
ICaptureGraphBuilder2_GetFiltergraph_Proxy(
5975 ICaptureGraphBuilder2
* This
,
5976 IGraphBuilder
** ppfg
);
5977 void __RPC_STUB
ICaptureGraphBuilder2_GetFiltergraph_Stub(
5978 struct IRpcStubBuffer
* This
,
5979 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5980 PRPC_MESSAGE pRpcMessage
,
5981 DWORD
* pdwStubPhase
);
5982 HRESULT CALLBACK
ICaptureGraphBuilder2_SetOutputFileName_Proxy(
5983 ICaptureGraphBuilder2
* This
,
5985 LPCOLESTR lpstrFile
,
5987 IFileSinkFilter
** ppSink
);
5988 void __RPC_STUB
ICaptureGraphBuilder2_SetOutputFileName_Stub(
5989 struct IRpcStubBuffer
* This
,
5990 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5991 PRPC_MESSAGE pRpcMessage
,
5992 DWORD
* pdwStubPhase
);
5993 HRESULT CALLBACK
ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
5994 ICaptureGraphBuilder2
* This
,
5995 const GUID
* pCategory
,
6000 void __RPC_STUB
ICaptureGraphBuilder2_RemoteFindInterface_Stub(
6001 struct IRpcStubBuffer
* This
,
6002 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6003 PRPC_MESSAGE pRpcMessage
,
6004 DWORD
* pdwStubPhase
);
6005 HRESULT CALLBACK
ICaptureGraphBuilder2_FindInterface_Proxy(
6006 ICaptureGraphBuilder2
* This
,
6007 const GUID
* pCategory
,
6012 HRESULT __RPC_STUB
ICaptureGraphBuilder2_FindInterface_Stub(
6013 ICaptureGraphBuilder2
* This
,
6014 const GUID
* pCategory
,
6019 HRESULT CALLBACK
ICaptureGraphBuilder2_RenderStream_Proxy(
6020 ICaptureGraphBuilder2
* This
,
6021 const GUID
* pCategory
,
6024 IBaseFilter
* pfCompressor
,
6025 IBaseFilter
* pfRenderer
);
6026 void __RPC_STUB
ICaptureGraphBuilder2_RenderStream_Stub(
6027 struct IRpcStubBuffer
* This
,
6028 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6029 PRPC_MESSAGE pRpcMessage
,
6030 DWORD
* pdwStubPhase
);
6031 HRESULT CALLBACK
ICaptureGraphBuilder2_ControlStream_Proxy(
6032 ICaptureGraphBuilder2
* This
,
6033 const GUID
* pCategory
,
6035 IBaseFilter
* pFilter
,
6036 REFERENCE_TIME
* pstart
,
6037 REFERENCE_TIME
* pstop
,
6040 void __RPC_STUB
ICaptureGraphBuilder2_ControlStream_Stub(
6041 struct IRpcStubBuffer
* This
,
6042 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6043 PRPC_MESSAGE pRpcMessage
,
6044 DWORD
* pdwStubPhase
);
6045 HRESULT CALLBACK
ICaptureGraphBuilder2_AllocCapFile_Proxy(
6046 ICaptureGraphBuilder2
* This
,
6049 void __RPC_STUB
ICaptureGraphBuilder2_AllocCapFile_Stub(
6050 struct IRpcStubBuffer
* This
,
6051 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6052 PRPC_MESSAGE pRpcMessage
,
6053 DWORD
* pdwStubPhase
);
6054 HRESULT CALLBACK
ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
6055 ICaptureGraphBuilder2
* This
,
6059 IAMCopyCaptureFileProgress
* pCallback
);
6060 void __RPC_STUB
ICaptureGraphBuilder2_CopyCaptureFile_Stub(
6061 struct IRpcStubBuffer
* This
,
6062 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6063 PRPC_MESSAGE pRpcMessage
,
6064 DWORD
* pdwStubPhase
);
6065 HRESULT CALLBACK
ICaptureGraphBuilder2_FindPin_Proxy(
6066 ICaptureGraphBuilder2
* This
,
6068 PIN_DIRECTION pindir
,
6069 const GUID
* pCategory
,
6074 void __RPC_STUB
ICaptureGraphBuilder2_FindPin_Stub(
6075 struct IRpcStubBuffer
* This
,
6076 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6077 PRPC_MESSAGE pRpcMessage
,
6078 DWORD
* pdwStubPhase
);
6080 #endif /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
6082 enum _AM_RENSDEREXFLAGS
{
6083 AM_RENDEREX_RENDERTOEXISTINGRENDERERS
= 0x1
6086 #ifndef __IFilterGraph2_FWD_DEFINED__
6087 #define __IFilterGraph2_FWD_DEFINED__
6088 typedef struct IFilterGraph2 IFilterGraph2
;
6091 /*****************************************************************************
6092 * IFilterGraph2 interface
6094 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
6095 #define __IFilterGraph2_INTERFACE_DEFINED__
6097 DEFINE_GUID(IID_IFilterGraph2
, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
6098 #if defined(__cplusplus) && !defined(CINTERFACE)
6099 struct IFilterGraph2
: public IGraphBuilder
6101 virtual HRESULT STDMETHODCALLTYPE
AddSourceFilterForMoniker(
6104 LPCWSTR lpcwstrFilterName
,
6105 IBaseFilter
** ppFilter
) = 0;
6107 virtual HRESULT STDMETHODCALLTYPE
ReconnectEx(
6109 const AM_MEDIA_TYPE
* pmt
) = 0;
6111 virtual HRESULT STDMETHODCALLTYPE
RenderEx(
6114 DWORD
* pvContext
) = 0;
6118 typedef struct IFilterGraph2Vtbl IFilterGraph2Vtbl
;
6119 struct IFilterGraph2
{
6120 const IFilterGraph2Vtbl
* lpVtbl
;
6122 struct IFilterGraph2Vtbl
{
6123 ICOM_MSVTABLE_COMPAT_FIELDS
6125 /*** IUnknown methods ***/
6126 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6127 IFilterGraph2
* This
,
6131 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6132 IFilterGraph2
* This
);
6134 ULONG (STDMETHODCALLTYPE
*Release
)(
6135 IFilterGraph2
* This
);
6137 /*** IFilterGraph methods ***/
6138 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
6139 IFilterGraph2
* This
,
6140 IBaseFilter
* pFilter
,
6143 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
6144 IFilterGraph2
* This
,
6145 IBaseFilter
* pFilter
);
6147 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
6148 IFilterGraph2
* This
,
6149 IEnumFilters
** ppEnum
);
6151 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
6152 IFilterGraph2
* This
,
6154 IBaseFilter
** ppFilter
);
6156 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
6157 IFilterGraph2
* This
,
6160 const AM_MEDIA_TYPE
* pmt
);
6162 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
6163 IFilterGraph2
* This
,
6166 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
6167 IFilterGraph2
* This
,
6170 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
6171 IFilterGraph2
* This
);
6173 /*** IGraphBuilder methods ***/
6174 HRESULT (STDMETHODCALLTYPE
*Connect
)(
6175 IFilterGraph2
* This
,
6179 HRESULT (STDMETHODCALLTYPE
*Render
)(
6180 IFilterGraph2
* This
,
6183 HRESULT (STDMETHODCALLTYPE
*RenderFile
)(
6184 IFilterGraph2
* This
,
6185 LPCWSTR lpcwstrFile
,
6186 LPCWSTR lpcwstrPlayList
);
6188 HRESULT (STDMETHODCALLTYPE
*AddSourceFilter
)(
6189 IFilterGraph2
* This
,
6190 LPCWSTR lpcwstrFileName
,
6191 LPCWSTR lpcwstrFilterName
,
6192 IBaseFilter
** ppFilter
);
6194 HRESULT (STDMETHODCALLTYPE
*SetLogFile
)(
6195 IFilterGraph2
* This
,
6198 HRESULT (STDMETHODCALLTYPE
*Abort
)(
6199 IFilterGraph2
* This
);
6201 HRESULT (STDMETHODCALLTYPE
*ShouldOperationContinue
)(
6202 IFilterGraph2
* This
);
6204 /*** IFilterGraph2 methods ***/
6205 HRESULT (STDMETHODCALLTYPE
*AddSourceFilterForMoniker
)(
6206 IFilterGraph2
* This
,
6209 LPCWSTR lpcwstrFilterName
,
6210 IBaseFilter
** ppFilter
);
6212 HRESULT (STDMETHODCALLTYPE
*ReconnectEx
)(
6213 IFilterGraph2
* This
,
6215 const AM_MEDIA_TYPE
* pmt
);
6217 HRESULT (STDMETHODCALLTYPE
*RenderEx
)(
6218 IFilterGraph2
* This
,
6225 /*** IUnknown methods ***/
6226 #define IFilterGraph2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6227 #define IFilterGraph2_AddRef(p) (p)->lpVtbl->AddRef(p)
6228 #define IFilterGraph2_Release(p) (p)->lpVtbl->Release(p)
6229 /*** IFilterGraph methods ***/
6230 #define IFilterGraph2_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
6231 #define IFilterGraph2_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
6232 #define IFilterGraph2_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
6233 #define IFilterGraph2_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
6234 #define IFilterGraph2_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
6235 #define IFilterGraph2_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
6236 #define IFilterGraph2_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
6237 #define IFilterGraph2_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
6238 /*** IGraphBuilder methods ***/
6239 #define IFilterGraph2_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
6240 #define IFilterGraph2_Render(p,a) (p)->lpVtbl->Render(p,a)
6241 #define IFilterGraph2_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
6242 #define IFilterGraph2_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
6243 #define IFilterGraph2_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
6244 #define IFilterGraph2_Abort(p) (p)->lpVtbl->Abort(p)
6245 #define IFilterGraph2_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
6246 /*** IFilterGraph2 methods ***/
6247 #define IFilterGraph2_AddSourceFilterForMoniker(p,a,b,c,d) (p)->lpVtbl->AddSourceFilterForMoniker(p,a,b,c,d)
6248 #define IFilterGraph2_ReconnectEx(p,a,b) (p)->lpVtbl->ReconnectEx(p,a,b)
6249 #define IFilterGraph2_RenderEx(p,a,b,c) (p)->lpVtbl->RenderEx(p,a,b,c)
6253 #define IFilterGraph2_METHODS \
6254 ICOM_MSVTABLE_COMPAT_FIELDS \
6255 /*** IUnknown methods ***/ \
6256 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6257 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6258 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6259 /*** IFilterGraph methods ***/ \
6260 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
6261 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
6262 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
6263 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
6264 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
6265 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
6266 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
6267 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
6268 /*** IGraphBuilder methods ***/ \
6269 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
6270 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
6271 STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
6272 STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
6273 STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
6274 STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
6275 STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE; \
6276 /*** IFilterGraph2 methods ***/ \
6277 STDMETHOD_(HRESULT,AddSourceFilterForMoniker)(THIS_ IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
6278 STDMETHOD_(HRESULT,ReconnectEx)(THIS_ IPin* ppin, const AM_MEDIA_TYPE* pmt) PURE; \
6279 STDMETHOD_(HRESULT,RenderEx)(THIS_ IPin* pPinOut, DWORD dwFlags, DWORD* pvContext) PURE;
6281 HRESULT CALLBACK
IFilterGraph2_AddSourceFilterForMoniker_Proxy(
6282 IFilterGraph2
* This
,
6285 LPCWSTR lpcwstrFilterName
,
6286 IBaseFilter
** ppFilter
);
6287 void __RPC_STUB
IFilterGraph2_AddSourceFilterForMoniker_Stub(
6288 struct IRpcStubBuffer
* This
,
6289 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6290 PRPC_MESSAGE pRpcMessage
,
6291 DWORD
* pdwStubPhase
);
6292 HRESULT CALLBACK
IFilterGraph2_ReconnectEx_Proxy(
6293 IFilterGraph2
* This
,
6295 const AM_MEDIA_TYPE
* pmt
);
6296 void __RPC_STUB
IFilterGraph2_ReconnectEx_Stub(
6297 struct IRpcStubBuffer
* This
,
6298 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6299 PRPC_MESSAGE pRpcMessage
,
6300 DWORD
* pdwStubPhase
);
6301 HRESULT CALLBACK
IFilterGraph2_RenderEx_Proxy(
6302 IFilterGraph2
* This
,
6306 void __RPC_STUB
IFilterGraph2_RenderEx_Stub(
6307 struct IRpcStubBuffer
* This
,
6308 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6309 PRPC_MESSAGE pRpcMessage
,
6310 DWORD
* pdwStubPhase
);
6312 #endif /* __IFilterGraph2_INTERFACE_DEFINED__ */
6314 #ifndef __IStreamBuilder_FWD_DEFINED__
6315 #define __IStreamBuilder_FWD_DEFINED__
6316 typedef struct IStreamBuilder IStreamBuilder
;
6319 /*****************************************************************************
6320 * IStreamBuilder interface
6322 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
6323 #define __IStreamBuilder_INTERFACE_DEFINED__
6325 DEFINE_GUID(IID_IStreamBuilder
, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6326 #if defined(__cplusplus) && !defined(CINTERFACE)
6327 struct IStreamBuilder
: public IUnknown
6329 virtual HRESULT STDMETHODCALLTYPE
Render(
6331 IGraphBuilder
* pGraph
) = 0;
6333 virtual HRESULT STDMETHODCALLTYPE
Backout(
6335 IGraphBuilder
* pGraph
) = 0;
6339 typedef struct IStreamBuilderVtbl IStreamBuilderVtbl
;
6340 struct IStreamBuilder
{
6341 const IStreamBuilderVtbl
* lpVtbl
;
6343 struct IStreamBuilderVtbl
{
6344 ICOM_MSVTABLE_COMPAT_FIELDS
6346 /*** IUnknown methods ***/
6347 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6348 IStreamBuilder
* This
,
6352 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6353 IStreamBuilder
* This
);
6355 ULONG (STDMETHODCALLTYPE
*Release
)(
6356 IStreamBuilder
* This
);
6358 /*** IStreamBuilder methods ***/
6359 HRESULT (STDMETHODCALLTYPE
*Render
)(
6360 IStreamBuilder
* This
,
6362 IGraphBuilder
* pGraph
);
6364 HRESULT (STDMETHODCALLTYPE
*Backout
)(
6365 IStreamBuilder
* This
,
6367 IGraphBuilder
* pGraph
);
6371 /*** IUnknown methods ***/
6372 #define IStreamBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6373 #define IStreamBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
6374 #define IStreamBuilder_Release(p) (p)->lpVtbl->Release(p)
6375 /*** IStreamBuilder methods ***/
6376 #define IStreamBuilder_Render(p,a,b) (p)->lpVtbl->Render(p,a,b)
6377 #define IStreamBuilder_Backout(p,a,b) (p)->lpVtbl->Backout(p,a,b)
6381 #define IStreamBuilder_METHODS \
6382 ICOM_MSVTABLE_COMPAT_FIELDS \
6383 /*** IUnknown methods ***/ \
6384 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6385 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6386 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6387 /*** IStreamBuilder methods ***/ \
6388 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE; \
6389 STDMETHOD_(HRESULT,Backout)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE;
6391 HRESULT CALLBACK
IStreamBuilder_Render_Proxy(
6392 IStreamBuilder
* This
,
6394 IGraphBuilder
* pGraph
);
6395 void __RPC_STUB
IStreamBuilder_Render_Stub(
6396 struct IRpcStubBuffer
* This
,
6397 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6398 PRPC_MESSAGE pRpcMessage
,
6399 DWORD
* pdwStubPhase
);
6400 HRESULT CALLBACK
IStreamBuilder_Backout_Proxy(
6401 IStreamBuilder
* This
,
6403 IGraphBuilder
* pGraph
);
6404 void __RPC_STUB
IStreamBuilder_Backout_Stub(
6405 struct IRpcStubBuffer
* This
,
6406 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6407 PRPC_MESSAGE pRpcMessage
,
6408 DWORD
* pdwStubPhase
);
6410 #endif /* __IStreamBuilder_INTERFACE_DEFINED__ */
6412 #ifndef __IAsyncReader_FWD_DEFINED__
6413 #define __IAsyncReader_FWD_DEFINED__
6414 typedef struct IAsyncReader IAsyncReader
;
6417 /*****************************************************************************
6418 * IAsyncReader interface
6420 #ifndef __IAsyncReader_INTERFACE_DEFINED__
6421 #define __IAsyncReader_INTERFACE_DEFINED__
6423 DEFINE_GUID(IID_IAsyncReader
, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6424 #if defined(__cplusplus) && !defined(CINTERFACE)
6425 struct IAsyncReader
: public IUnknown
6427 virtual HRESULT STDMETHODCALLTYPE
RequestAllocator(
6428 IMemAllocator
* pPreferred
,
6429 ALLOCATOR_PROPERTIES
* pProps
,
6430 IMemAllocator
** ppActual
) = 0;
6432 virtual HRESULT STDMETHODCALLTYPE
Request(
6433 IMediaSample
* pSample
,
6434 DWORD_PTR dwUser
) = 0;
6436 virtual HRESULT STDMETHODCALLTYPE
WaitForNext(
6438 IMediaSample
** ppSample
,
6439 DWORD_PTR
* pdwUser
) = 0;
6441 virtual HRESULT STDMETHODCALLTYPE
SyncReadAligned(
6442 IMediaSample
* pSample
) = 0;
6444 virtual HRESULT STDMETHODCALLTYPE
SyncRead(
6445 LONGLONG llPosition
,
6449 virtual HRESULT STDMETHODCALLTYPE
Length(
6451 LONGLONG
* pAvailable
) = 0;
6453 virtual HRESULT STDMETHODCALLTYPE
BeginFlush(
6456 virtual HRESULT STDMETHODCALLTYPE
EndFlush(
6461 typedef struct IAsyncReaderVtbl IAsyncReaderVtbl
;
6462 struct IAsyncReader
{
6463 const IAsyncReaderVtbl
* lpVtbl
;
6465 struct IAsyncReaderVtbl
{
6466 ICOM_MSVTABLE_COMPAT_FIELDS
6468 /*** IUnknown methods ***/
6469 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6474 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6475 IAsyncReader
* This
);
6477 ULONG (STDMETHODCALLTYPE
*Release
)(
6478 IAsyncReader
* This
);
6480 /*** IAsyncReader methods ***/
6481 HRESULT (STDMETHODCALLTYPE
*RequestAllocator
)(
6483 IMemAllocator
* pPreferred
,
6484 ALLOCATOR_PROPERTIES
* pProps
,
6485 IMemAllocator
** ppActual
);
6487 HRESULT (STDMETHODCALLTYPE
*Request
)(
6489 IMediaSample
* pSample
,
6492 HRESULT (STDMETHODCALLTYPE
*WaitForNext
)(
6495 IMediaSample
** ppSample
,
6496 DWORD_PTR
* pdwUser
);
6498 HRESULT (STDMETHODCALLTYPE
*SyncReadAligned
)(
6500 IMediaSample
* pSample
);
6502 HRESULT (STDMETHODCALLTYPE
*SyncRead
)(
6504 LONGLONG llPosition
,
6508 HRESULT (STDMETHODCALLTYPE
*Length
)(
6511 LONGLONG
* pAvailable
);
6513 HRESULT (STDMETHODCALLTYPE
*BeginFlush
)(
6514 IAsyncReader
* This
);
6516 HRESULT (STDMETHODCALLTYPE
*EndFlush
)(
6517 IAsyncReader
* This
);
6521 /*** IUnknown methods ***/
6522 #define IAsyncReader_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6523 #define IAsyncReader_AddRef(p) (p)->lpVtbl->AddRef(p)
6524 #define IAsyncReader_Release(p) (p)->lpVtbl->Release(p)
6525 /*** IAsyncReader methods ***/
6526 #define IAsyncReader_RequestAllocator(p,a,b,c) (p)->lpVtbl->RequestAllocator(p,a,b,c)
6527 #define IAsyncReader_Request(p,a,b) (p)->lpVtbl->Request(p,a,b)
6528 #define IAsyncReader_WaitForNext(p,a,b,c) (p)->lpVtbl->WaitForNext(p,a,b,c)
6529 #define IAsyncReader_SyncReadAligned(p,a) (p)->lpVtbl->SyncReadAligned(p,a)
6530 #define IAsyncReader_SyncRead(p,a,b,c) (p)->lpVtbl->SyncRead(p,a,b,c)
6531 #define IAsyncReader_Length(p,a,b) (p)->lpVtbl->Length(p,a,b)
6532 #define IAsyncReader_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
6533 #define IAsyncReader_EndFlush(p) (p)->lpVtbl->EndFlush(p)
6537 #define IAsyncReader_METHODS \
6538 ICOM_MSVTABLE_COMPAT_FIELDS \
6539 /*** IUnknown methods ***/ \
6540 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6541 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6542 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6543 /*** IAsyncReader methods ***/ \
6544 STDMETHOD_(HRESULT,RequestAllocator)(THIS_ IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual) PURE; \
6545 STDMETHOD_(HRESULT,Request)(THIS_ IMediaSample* pSample, DWORD_PTR dwUser) PURE; \
6546 STDMETHOD_(HRESULT,WaitForNext)(THIS_ DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser) PURE; \
6547 STDMETHOD_(HRESULT,SyncReadAligned)(THIS_ IMediaSample* pSample) PURE; \
6548 STDMETHOD_(HRESULT,SyncRead)(THIS_ LONGLONG llPosition, LONG lLength, BYTE* pBuffer) PURE; \
6549 STDMETHOD_(HRESULT,Length)(THIS_ LONGLONG* pTotal, LONGLONG* pAvailable) PURE; \
6550 STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
6551 STDMETHOD_(HRESULT,EndFlush)(THIS) PURE;
6553 HRESULT CALLBACK
IAsyncReader_RequestAllocator_Proxy(
6555 IMemAllocator
* pPreferred
,
6556 ALLOCATOR_PROPERTIES
* pProps
,
6557 IMemAllocator
** ppActual
);
6558 void __RPC_STUB
IAsyncReader_RequestAllocator_Stub(
6559 struct IRpcStubBuffer
* This
,
6560 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6561 PRPC_MESSAGE pRpcMessage
,
6562 DWORD
* pdwStubPhase
);
6563 HRESULT CALLBACK
IAsyncReader_Request_Proxy(
6565 IMediaSample
* pSample
,
6567 void __RPC_STUB
IAsyncReader_Request_Stub(
6568 struct IRpcStubBuffer
* This
,
6569 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6570 PRPC_MESSAGE pRpcMessage
,
6571 DWORD
* pdwStubPhase
);
6572 HRESULT CALLBACK
IAsyncReader_WaitForNext_Proxy(
6575 IMediaSample
** ppSample
,
6576 DWORD_PTR
* pdwUser
);
6577 void __RPC_STUB
IAsyncReader_WaitForNext_Stub(
6578 struct IRpcStubBuffer
* This
,
6579 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6580 PRPC_MESSAGE pRpcMessage
,
6581 DWORD
* pdwStubPhase
);
6582 HRESULT CALLBACK
IAsyncReader_SyncReadAligned_Proxy(
6584 IMediaSample
* pSample
);
6585 void __RPC_STUB
IAsyncReader_SyncReadAligned_Stub(
6586 struct IRpcStubBuffer
* This
,
6587 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6588 PRPC_MESSAGE pRpcMessage
,
6589 DWORD
* pdwStubPhase
);
6590 HRESULT CALLBACK
IAsyncReader_SyncRead_Proxy(
6592 LONGLONG llPosition
,
6595 void __RPC_STUB
IAsyncReader_SyncRead_Stub(
6596 struct IRpcStubBuffer
* This
,
6597 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6598 PRPC_MESSAGE pRpcMessage
,
6599 DWORD
* pdwStubPhase
);
6600 HRESULT CALLBACK
IAsyncReader_Length_Proxy(
6603 LONGLONG
* pAvailable
);
6604 void __RPC_STUB
IAsyncReader_Length_Stub(
6605 struct IRpcStubBuffer
* This
,
6606 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6607 PRPC_MESSAGE pRpcMessage
,
6608 DWORD
* pdwStubPhase
);
6609 HRESULT CALLBACK
IAsyncReader_BeginFlush_Proxy(
6610 IAsyncReader
* This
);
6611 void __RPC_STUB
IAsyncReader_BeginFlush_Stub(
6612 struct IRpcStubBuffer
* This
,
6613 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6614 PRPC_MESSAGE pRpcMessage
,
6615 DWORD
* pdwStubPhase
);
6616 HRESULT CALLBACK
IAsyncReader_EndFlush_Proxy(
6617 IAsyncReader
* This
);
6618 void __RPC_STUB
IAsyncReader_EndFlush_Stub(
6619 struct IRpcStubBuffer
* This
,
6620 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6621 PRPC_MESSAGE pRpcMessage
,
6622 DWORD
* pdwStubPhase
);
6624 #endif /* __IAsyncReader_INTERFACE_DEFINED__ */
6626 #ifndef __IGraphVersion_FWD_DEFINED__
6627 #define __IGraphVersion_FWD_DEFINED__
6628 typedef struct IGraphVersion IGraphVersion
;
6631 /*****************************************************************************
6632 * IGraphVersion interface
6634 #ifndef __IGraphVersion_INTERFACE_DEFINED__
6635 #define __IGraphVersion_INTERFACE_DEFINED__
6637 DEFINE_GUID(IID_IGraphVersion
, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6638 #if defined(__cplusplus) && !defined(CINTERFACE)
6639 struct IGraphVersion
: public IUnknown
6641 virtual HRESULT STDMETHODCALLTYPE
QueryVersion(
6642 LONG
* pVersion
) = 0;
6646 typedef struct IGraphVersionVtbl IGraphVersionVtbl
;
6647 struct IGraphVersion
{
6648 const IGraphVersionVtbl
* lpVtbl
;
6650 struct IGraphVersionVtbl
{
6651 ICOM_MSVTABLE_COMPAT_FIELDS
6653 /*** IUnknown methods ***/
6654 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6655 IGraphVersion
* This
,
6659 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6660 IGraphVersion
* This
);
6662 ULONG (STDMETHODCALLTYPE
*Release
)(
6663 IGraphVersion
* This
);
6665 /*** IGraphVersion methods ***/
6666 HRESULT (STDMETHODCALLTYPE
*QueryVersion
)(
6667 IGraphVersion
* This
,
6672 /*** IUnknown methods ***/
6673 #define IGraphVersion_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6674 #define IGraphVersion_AddRef(p) (p)->lpVtbl->AddRef(p)
6675 #define IGraphVersion_Release(p) (p)->lpVtbl->Release(p)
6676 /*** IGraphVersion methods ***/
6677 #define IGraphVersion_QueryVersion(p,a) (p)->lpVtbl->QueryVersion(p,a)
6681 #define IGraphVersion_METHODS \
6682 ICOM_MSVTABLE_COMPAT_FIELDS \
6683 /*** IUnknown methods ***/ \
6684 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6685 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6686 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6687 /*** IGraphVersion methods ***/ \
6688 STDMETHOD_(HRESULT,QueryVersion)(THIS_ LONG* pVersion) PURE;
6690 HRESULT CALLBACK
IGraphVersion_QueryVersion_Proxy(
6691 IGraphVersion
* This
,
6693 void __RPC_STUB
IGraphVersion_QueryVersion_Stub(
6694 struct IRpcStubBuffer
* This
,
6695 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6696 PRPC_MESSAGE pRpcMessage
,
6697 DWORD
* pdwStubPhase
);
6699 #endif /* __IGraphVersion_INTERFACE_DEFINED__ */
6701 #ifndef __IResourceConsumer_FWD_DEFINED__
6702 #define __IResourceConsumer_FWD_DEFINED__
6703 typedef struct IResourceConsumer IResourceConsumer
;
6706 /*****************************************************************************
6707 * IResourceConsumer interface
6709 #ifndef __IResourceConsumer_INTERFACE_DEFINED__
6710 #define __IResourceConsumer_INTERFACE_DEFINED__
6712 DEFINE_GUID(IID_IResourceConsumer
, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6713 #if defined(__cplusplus) && !defined(CINTERFACE)
6714 struct IResourceConsumer
: public IUnknown
6716 virtual HRESULT STDMETHODCALLTYPE
AcquireResource(
6717 LONG idResource
) = 0;
6719 virtual HRESULT STDMETHODCALLTYPE
ReleaseResource(
6720 LONG idResource
) = 0;
6724 typedef struct IResourceConsumerVtbl IResourceConsumerVtbl
;
6725 struct IResourceConsumer
{
6726 const IResourceConsumerVtbl
* lpVtbl
;
6728 struct IResourceConsumerVtbl
{
6729 ICOM_MSVTABLE_COMPAT_FIELDS
6731 /*** IUnknown methods ***/
6732 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6733 IResourceConsumer
* This
,
6737 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6738 IResourceConsumer
* This
);
6740 ULONG (STDMETHODCALLTYPE
*Release
)(
6741 IResourceConsumer
* This
);
6743 /*** IResourceConsumer methods ***/
6744 HRESULT (STDMETHODCALLTYPE
*AcquireResource
)(
6745 IResourceConsumer
* This
,
6748 HRESULT (STDMETHODCALLTYPE
*ReleaseResource
)(
6749 IResourceConsumer
* This
,
6754 /*** IUnknown methods ***/
6755 #define IResourceConsumer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6756 #define IResourceConsumer_AddRef(p) (p)->lpVtbl->AddRef(p)
6757 #define IResourceConsumer_Release(p) (p)->lpVtbl->Release(p)
6758 /*** IResourceConsumer methods ***/
6759 #define IResourceConsumer_AcquireResource(p,a) (p)->lpVtbl->AcquireResource(p,a)
6760 #define IResourceConsumer_ReleaseResource(p,a) (p)->lpVtbl->ReleaseResource(p,a)
6764 #define IResourceConsumer_METHODS \
6765 ICOM_MSVTABLE_COMPAT_FIELDS \
6766 /*** IUnknown methods ***/ \
6767 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6768 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6769 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6770 /*** IResourceConsumer methods ***/ \
6771 STDMETHOD_(HRESULT,AcquireResource)(THIS_ LONG idResource) PURE; \
6772 STDMETHOD_(HRESULT,ReleaseResource)(THIS_ LONG idResource) PURE;
6774 HRESULT CALLBACK
IResourceConsumer_AcquireResource_Proxy(
6775 IResourceConsumer
* This
,
6777 void __RPC_STUB
IResourceConsumer_AcquireResource_Stub(
6778 struct IRpcStubBuffer
* This
,
6779 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6780 PRPC_MESSAGE pRpcMessage
,
6781 DWORD
* pdwStubPhase
);
6782 HRESULT CALLBACK
IResourceConsumer_ReleaseResource_Proxy(
6783 IResourceConsumer
* This
,
6785 void __RPC_STUB
IResourceConsumer_ReleaseResource_Stub(
6786 struct IRpcStubBuffer
* This
,
6787 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6788 PRPC_MESSAGE pRpcMessage
,
6789 DWORD
* pdwStubPhase
);
6791 #endif /* __IResourceConsumer_INTERFACE_DEFINED__ */
6793 #ifndef __IResourceManager_FWD_DEFINED__
6794 #define __IResourceManager_FWD_DEFINED__
6795 typedef struct IResourceManager IResourceManager
;
6798 /*****************************************************************************
6799 * IResourceManager interface
6801 #ifndef __IResourceManager_INTERFACE_DEFINED__
6802 #define __IResourceManager_INTERFACE_DEFINED__
6804 DEFINE_GUID(IID_IResourceManager
, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6805 #if defined(__cplusplus) && !defined(CINTERFACE)
6806 struct IResourceManager
: public IUnknown
6808 virtual HRESULT STDMETHODCALLTYPE
Register(
6813 virtual HRESULT STDMETHODCALLTYPE
RegisterGroup(
6819 virtual HRESULT STDMETHODCALLTYPE
RequestResource(
6821 IUnknown
* pFocusObject
,
6822 IResourceConsumer
* pConsumer
) = 0;
6824 virtual HRESULT STDMETHODCALLTYPE
NotifyAcquire(
6826 IResourceConsumer
* pConsumer
,
6829 virtual HRESULT STDMETHODCALLTYPE
NotifyRelease(
6831 IResourceConsumer
* pConsumer
,
6832 BOOL bStillWant
) = 0;
6834 virtual HRESULT STDMETHODCALLTYPE
CancelRequest(
6836 IResourceConsumer
* pConsumer
) = 0;
6838 virtual HRESULT STDMETHODCALLTYPE
SetFocus(
6839 IUnknown
* pFocusObject
) = 0;
6841 virtual HRESULT STDMETHODCALLTYPE
ReleaseFocus(
6842 IUnknown
* pFocusObject
) = 0;
6846 typedef struct IResourceManagerVtbl IResourceManagerVtbl
;
6847 struct IResourceManager
{
6848 const IResourceManagerVtbl
* lpVtbl
;
6850 struct IResourceManagerVtbl
{
6851 ICOM_MSVTABLE_COMPAT_FIELDS
6853 /*** IUnknown methods ***/
6854 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6855 IResourceManager
* This
,
6859 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6860 IResourceManager
* This
);
6862 ULONG (STDMETHODCALLTYPE
*Release
)(
6863 IResourceManager
* This
);
6865 /*** IResourceManager methods ***/
6866 HRESULT (STDMETHODCALLTYPE
*Register
)(
6867 IResourceManager
* This
,
6872 HRESULT (STDMETHODCALLTYPE
*RegisterGroup
)(
6873 IResourceManager
* This
,
6879 HRESULT (STDMETHODCALLTYPE
*RequestResource
)(
6880 IResourceManager
* This
,
6882 IUnknown
* pFocusObject
,
6883 IResourceConsumer
* pConsumer
);
6885 HRESULT (STDMETHODCALLTYPE
*NotifyAcquire
)(
6886 IResourceManager
* This
,
6888 IResourceConsumer
* pConsumer
,
6891 HRESULT (STDMETHODCALLTYPE
*NotifyRelease
)(
6892 IResourceManager
* This
,
6894 IResourceConsumer
* pConsumer
,
6897 HRESULT (STDMETHODCALLTYPE
*CancelRequest
)(
6898 IResourceManager
* This
,
6900 IResourceConsumer
* pConsumer
);
6902 HRESULT (STDMETHODCALLTYPE
*SetFocus
)(
6903 IResourceManager
* This
,
6904 IUnknown
* pFocusObject
);
6906 HRESULT (STDMETHODCALLTYPE
*ReleaseFocus
)(
6907 IResourceManager
* This
,
6908 IUnknown
* pFocusObject
);
6912 /*** IUnknown methods ***/
6913 #define IResourceManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6914 #define IResourceManager_AddRef(p) (p)->lpVtbl->AddRef(p)
6915 #define IResourceManager_Release(p) (p)->lpVtbl->Release(p)
6916 /*** IResourceManager methods ***/
6917 #define IResourceManager_Register(p,a,b,c) (p)->lpVtbl->Register(p,a,b,c)
6918 #define IResourceManager_RegisterGroup(p,a,b,c,d) (p)->lpVtbl->RegisterGroup(p,a,b,c,d)
6919 #define IResourceManager_RequestResource(p,a,b,c) (p)->lpVtbl->RequestResource(p,a,b,c)
6920 #define IResourceManager_NotifyAcquire(p,a,b,c) (p)->lpVtbl->NotifyAcquire(p,a,b,c)
6921 #define IResourceManager_NotifyRelease(p,a,b,c) (p)->lpVtbl->NotifyRelease(p,a,b,c)
6922 #define IResourceManager_CancelRequest(p,a,b) (p)->lpVtbl->CancelRequest(p,a,b)
6923 #define IResourceManager_SetFocus(p,a) (p)->lpVtbl->SetFocus(p,a)
6924 #define IResourceManager_ReleaseFocus(p,a) (p)->lpVtbl->ReleaseFocus(p,a)
6928 #define IResourceManager_METHODS \
6929 ICOM_MSVTABLE_COMPAT_FIELDS \
6930 /*** IUnknown methods ***/ \
6931 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6932 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6933 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6934 /*** IResourceManager methods ***/ \
6935 STDMETHOD_(HRESULT,Register)(THIS_ LPCWSTR pName, LONG cResource, LONG* plToken) PURE; \
6936 STDMETHOD_(HRESULT,RegisterGroup)(THIS_ LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken) PURE; \
6937 STDMETHOD_(HRESULT,RequestResource)(THIS_ LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer) PURE; \
6938 STDMETHOD_(HRESULT,NotifyAcquire)(THIS_ LONG idResource, IResourceConsumer* pConsumer, HRESULT hr) PURE; \
6939 STDMETHOD_(HRESULT,NotifyRelease)(THIS_ LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant) PURE; \
6940 STDMETHOD_(HRESULT,CancelRequest)(THIS_ LONG idResource, IResourceConsumer* pConsumer) PURE; \
6941 STDMETHOD_(HRESULT,SetFocus)(THIS_ IUnknown* pFocusObject) PURE; \
6942 STDMETHOD_(HRESULT,ReleaseFocus)(THIS_ IUnknown* pFocusObject) PURE;
6944 HRESULT CALLBACK
IResourceManager_Register_Proxy(
6945 IResourceManager
* This
,
6949 void __RPC_STUB
IResourceManager_Register_Stub(
6950 struct IRpcStubBuffer
* This
,
6951 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6952 PRPC_MESSAGE pRpcMessage
,
6953 DWORD
* pdwStubPhase
);
6954 HRESULT CALLBACK
IResourceManager_RegisterGroup_Proxy(
6955 IResourceManager
* This
,
6960 void __RPC_STUB
IResourceManager_RegisterGroup_Stub(
6961 struct IRpcStubBuffer
* This
,
6962 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6963 PRPC_MESSAGE pRpcMessage
,
6964 DWORD
* pdwStubPhase
);
6965 HRESULT CALLBACK
IResourceManager_RequestResource_Proxy(
6966 IResourceManager
* This
,
6968 IUnknown
* pFocusObject
,
6969 IResourceConsumer
* pConsumer
);
6970 void __RPC_STUB
IResourceManager_RequestResource_Stub(
6971 struct IRpcStubBuffer
* This
,
6972 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6973 PRPC_MESSAGE pRpcMessage
,
6974 DWORD
* pdwStubPhase
);
6975 HRESULT CALLBACK
IResourceManager_NotifyAcquire_Proxy(
6976 IResourceManager
* This
,
6978 IResourceConsumer
* pConsumer
,
6980 void __RPC_STUB
IResourceManager_NotifyAcquire_Stub(
6981 struct IRpcStubBuffer
* This
,
6982 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6983 PRPC_MESSAGE pRpcMessage
,
6984 DWORD
* pdwStubPhase
);
6985 HRESULT CALLBACK
IResourceManager_NotifyRelease_Proxy(
6986 IResourceManager
* This
,
6988 IResourceConsumer
* pConsumer
,
6990 void __RPC_STUB
IResourceManager_NotifyRelease_Stub(
6991 struct IRpcStubBuffer
* This
,
6992 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6993 PRPC_MESSAGE pRpcMessage
,
6994 DWORD
* pdwStubPhase
);
6995 HRESULT CALLBACK
IResourceManager_CancelRequest_Proxy(
6996 IResourceManager
* This
,
6998 IResourceConsumer
* pConsumer
);
6999 void __RPC_STUB
IResourceManager_CancelRequest_Stub(
7000 struct IRpcStubBuffer
* This
,
7001 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7002 PRPC_MESSAGE pRpcMessage
,
7003 DWORD
* pdwStubPhase
);
7004 HRESULT CALLBACK
IResourceManager_SetFocus_Proxy(
7005 IResourceManager
* This
,
7006 IUnknown
* pFocusObject
);
7007 void __RPC_STUB
IResourceManager_SetFocus_Stub(
7008 struct IRpcStubBuffer
* This
,
7009 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7010 PRPC_MESSAGE pRpcMessage
,
7011 DWORD
* pdwStubPhase
);
7012 HRESULT CALLBACK
IResourceManager_ReleaseFocus_Proxy(
7013 IResourceManager
* This
,
7014 IUnknown
* pFocusObject
);
7015 void __RPC_STUB
IResourceManager_ReleaseFocus_Stub(
7016 struct IRpcStubBuffer
* This
,
7017 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7018 PRPC_MESSAGE pRpcMessage
,
7019 DWORD
* pdwStubPhase
);
7021 #endif /* __IResourceManager_INTERFACE_DEFINED__ */
7023 #ifndef _IKsPropertySet_
7024 #define _IKsPropertySet_
7025 #define KSPROPERTY_SUPPORT_GET 1
7026 #define KSPROPERTY_SUPPORT_SET 2
7027 /*****************************************************************************
7028 * IKsPropertySet interface
7030 #ifndef __IKsPropertySet_INTERFACE_DEFINED__
7031 #define __IKsPropertySet_INTERFACE_DEFINED__
7033 DEFINE_GUID(IID_IKsPropertySet
, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
7034 #if defined(__cplusplus) && !defined(CINTERFACE)
7035 struct IKsPropertySet
: public IUnknown
7037 virtual HRESULT STDMETHODCALLTYPE
Set(
7038 REFGUID guidPropSet
,
7040 LPVOID pInstanceData
,
7041 DWORD cbInstanceData
,
7043 DWORD cbPropData
) = 0;
7045 virtual HRESULT STDMETHODCALLTYPE
Get(
7046 REFGUID guidPropSet
,
7048 LPVOID pInstanceData
,
7049 DWORD cbInstanceData
,
7052 DWORD
* pcbReturned
) = 0;
7054 virtual HRESULT STDMETHODCALLTYPE
QuerySupported(
7055 REFGUID guidPropSet
,
7057 DWORD
* pTypeSupport
) = 0;
7061 typedef struct IKsPropertySetVtbl IKsPropertySetVtbl
;
7062 struct IKsPropertySet
{
7063 const IKsPropertySetVtbl
* lpVtbl
;
7065 struct IKsPropertySetVtbl
{
7066 ICOM_MSVTABLE_COMPAT_FIELDS
7068 /*** IUnknown methods ***/
7069 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7070 IKsPropertySet
* This
,
7074 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7075 IKsPropertySet
* This
);
7077 ULONG (STDMETHODCALLTYPE
*Release
)(
7078 IKsPropertySet
* This
);
7080 /*** IKsPropertySet methods ***/
7081 HRESULT (STDMETHODCALLTYPE
*Set
)(
7082 IKsPropertySet
* This
,
7083 REFGUID guidPropSet
,
7085 LPVOID pInstanceData
,
7086 DWORD cbInstanceData
,
7090 HRESULT (STDMETHODCALLTYPE
*Get
)(
7091 IKsPropertySet
* This
,
7092 REFGUID guidPropSet
,
7094 LPVOID pInstanceData
,
7095 DWORD cbInstanceData
,
7098 DWORD
* pcbReturned
);
7100 HRESULT (STDMETHODCALLTYPE
*QuerySupported
)(
7101 IKsPropertySet
* This
,
7102 REFGUID guidPropSet
,
7104 DWORD
* pTypeSupport
);
7108 /*** IUnknown methods ***/
7109 #define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7110 #define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
7111 #define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p)
7112 /*** IKsPropertySet methods ***/
7113 #define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
7114 #define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
7115 #define IKsPropertySet_QuerySupported(p,a,b,c) (p)->lpVtbl->QuerySupported(p,a,b,c)
7119 #define IKsPropertySet_METHODS \
7120 ICOM_MSVTABLE_COMPAT_FIELDS \
7121 /*** IUnknown methods ***/ \
7122 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7123 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7124 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7125 /*** IKsPropertySet methods ***/ \
7126 STDMETHOD_(HRESULT,Set)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData) PURE; \
7127 STDMETHOD_(HRESULT,Get)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned) PURE; \
7128 STDMETHOD_(HRESULT,QuerySupported)(THIS_ REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport) PURE;
7130 HRESULT CALLBACK
IKsPropertySet_Set_Proxy(
7131 IKsPropertySet
* This
,
7132 REFGUID guidPropSet
,
7134 LPVOID pInstanceData
,
7135 DWORD cbInstanceData
,
7138 void __RPC_STUB
IKsPropertySet_Set_Stub(
7139 struct IRpcStubBuffer
* This
,
7140 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7141 PRPC_MESSAGE pRpcMessage
,
7142 DWORD
* pdwStubPhase
);
7143 HRESULT CALLBACK
IKsPropertySet_Get_Proxy(
7144 IKsPropertySet
* This
,
7145 REFGUID guidPropSet
,
7147 LPVOID pInstanceData
,
7148 DWORD cbInstanceData
,
7151 DWORD
* pcbReturned
);
7152 void __RPC_STUB
IKsPropertySet_Get_Stub(
7153 struct IRpcStubBuffer
* This
,
7154 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7155 PRPC_MESSAGE pRpcMessage
,
7156 DWORD
* pdwStubPhase
);
7157 HRESULT CALLBACK
IKsPropertySet_QuerySupported_Proxy(
7158 IKsPropertySet
* This
,
7159 REFGUID guidPropSet
,
7161 DWORD
* pTypeSupport
);
7162 void __RPC_STUB
IKsPropertySet_QuerySupported_Stub(
7163 struct IRpcStubBuffer
* This
,
7164 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7165 PRPC_MESSAGE pRpcMessage
,
7166 DWORD
* pdwStubPhase
);
7168 #endif /* __IKsPropertySet_INTERFACE_DEFINED__ */
7170 #endif /* _IKsPropertySet_ */
7171 #ifndef __IPinConnection_FWD_DEFINED__
7172 #define __IPinConnection_FWD_DEFINED__
7173 typedef struct IPinConnection IPinConnection
;
7176 #ifndef __IPinFlowControl_FWD_DEFINED__
7177 #define __IPinFlowControl_FWD_DEFINED__
7178 typedef struct IPinFlowControl IPinFlowControl
;
7181 #ifndef __IGraphConfig_FWD_DEFINED__
7182 #define __IGraphConfig_FWD_DEFINED__
7183 typedef struct IGraphConfig IGraphConfig
;
7186 #ifndef __IGraphConfigCallback_FWD_DEFINED__
7187 #define __IGraphConfigCallback_FWD_DEFINED__
7188 typedef struct IGraphConfigCallback IGraphConfigCallback
;
7191 /*****************************************************************************
7192 * IPinConnection interface
7194 #ifndef __IPinConnection_INTERFACE_DEFINED__
7195 #define __IPinConnection_INTERFACE_DEFINED__
7197 DEFINE_GUID(IID_IPinConnection
, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34);
7198 #if defined(__cplusplus) && !defined(CINTERFACE)
7199 struct IPinConnection
: public IUnknown
7201 virtual HRESULT STDMETHODCALLTYPE
DynamicQueryAccept(
7202 const AM_MEDIA_TYPE
* pmt
) = 0;
7204 virtual HRESULT STDMETHODCALLTYPE
NotifyEndOfStream(
7205 HANDLE hNotifyEvent
) = 0;
7207 virtual HRESULT STDMETHODCALLTYPE
IsEndPin(
7210 virtual HRESULT STDMETHODCALLTYPE
DynamicDisconnect(
7215 typedef struct IPinConnectionVtbl IPinConnectionVtbl
;
7216 struct IPinConnection
{
7217 const IPinConnectionVtbl
* lpVtbl
;
7219 struct IPinConnectionVtbl
{
7220 ICOM_MSVTABLE_COMPAT_FIELDS
7222 /*** IUnknown methods ***/
7223 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7224 IPinConnection
* This
,
7228 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7229 IPinConnection
* This
);
7231 ULONG (STDMETHODCALLTYPE
*Release
)(
7232 IPinConnection
* This
);
7234 /*** IPinConnection methods ***/
7235 HRESULT (STDMETHODCALLTYPE
*DynamicQueryAccept
)(
7236 IPinConnection
* This
,
7237 const AM_MEDIA_TYPE
* pmt
);
7239 HRESULT (STDMETHODCALLTYPE
*NotifyEndOfStream
)(
7240 IPinConnection
* This
,
7241 HANDLE hNotifyEvent
);
7243 HRESULT (STDMETHODCALLTYPE
*IsEndPin
)(
7244 IPinConnection
* This
);
7246 HRESULT (STDMETHODCALLTYPE
*DynamicDisconnect
)(
7247 IPinConnection
* This
);
7251 /*** IUnknown methods ***/
7252 #define IPinConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7253 #define IPinConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
7254 #define IPinConnection_Release(p) (p)->lpVtbl->Release(p)
7255 /*** IPinConnection methods ***/
7256 #define IPinConnection_DynamicQueryAccept(p,a) (p)->lpVtbl->DynamicQueryAccept(p,a)
7257 #define IPinConnection_NotifyEndOfStream(p,a) (p)->lpVtbl->NotifyEndOfStream(p,a)
7258 #define IPinConnection_IsEndPin(p) (p)->lpVtbl->IsEndPin(p)
7259 #define IPinConnection_DynamicDisconnect(p) (p)->lpVtbl->DynamicDisconnect(p)
7263 #define IPinConnection_METHODS \
7264 ICOM_MSVTABLE_COMPAT_FIELDS \
7265 /*** IUnknown methods ***/ \
7266 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7267 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7268 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7269 /*** IPinConnection methods ***/ \
7270 STDMETHOD_(HRESULT,DynamicQueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
7271 STDMETHOD_(HRESULT,NotifyEndOfStream)(THIS_ HANDLE hNotifyEvent) PURE; \
7272 STDMETHOD_(HRESULT,IsEndPin)(THIS) PURE; \
7273 STDMETHOD_(HRESULT,DynamicDisconnect)(THIS) PURE;
7275 HRESULT CALLBACK
IPinConnection_DynamicQueryAccept_Proxy(
7276 IPinConnection
* This
,
7277 const AM_MEDIA_TYPE
* pmt
);
7278 void __RPC_STUB
IPinConnection_DynamicQueryAccept_Stub(
7279 struct IRpcStubBuffer
* This
,
7280 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7281 PRPC_MESSAGE pRpcMessage
,
7282 DWORD
* pdwStubPhase
);
7283 HRESULT CALLBACK
IPinConnection_NotifyEndOfStream_Proxy(
7284 IPinConnection
* This
,
7285 HANDLE hNotifyEvent
);
7286 void __RPC_STUB
IPinConnection_NotifyEndOfStream_Stub(
7287 struct IRpcStubBuffer
* This
,
7288 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7289 PRPC_MESSAGE pRpcMessage
,
7290 DWORD
* pdwStubPhase
);
7291 HRESULT CALLBACK
IPinConnection_IsEndPin_Proxy(
7292 IPinConnection
* This
);
7293 void __RPC_STUB
IPinConnection_IsEndPin_Stub(
7294 struct IRpcStubBuffer
* This
,
7295 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7296 PRPC_MESSAGE pRpcMessage
,
7297 DWORD
* pdwStubPhase
);
7298 HRESULT CALLBACK
IPinConnection_DynamicDisconnect_Proxy(
7299 IPinConnection
* This
);
7300 void __RPC_STUB
IPinConnection_DynamicDisconnect_Stub(
7301 struct IRpcStubBuffer
* This
,
7302 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7303 PRPC_MESSAGE pRpcMessage
,
7304 DWORD
* pdwStubPhase
);
7306 #endif /* __IPinConnection_INTERFACE_DEFINED__ */
7308 /*****************************************************************************
7309 * IPinFlowControl interface
7311 #ifndef __IPinFlowControl_INTERFACE_DEFINED__
7312 #define __IPinFlowControl_INTERFACE_DEFINED__
7314 DEFINE_GUID(IID_IPinFlowControl
, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb);
7315 #if defined(__cplusplus) && !defined(CINTERFACE)
7316 struct IPinFlowControl
: public IUnknown
7318 virtual HRESULT STDMETHODCALLTYPE
Block(
7324 typedef struct IPinFlowControlVtbl IPinFlowControlVtbl
;
7325 struct IPinFlowControl
{
7326 const IPinFlowControlVtbl
* lpVtbl
;
7328 struct IPinFlowControlVtbl
{
7329 ICOM_MSVTABLE_COMPAT_FIELDS
7331 /*** IUnknown methods ***/
7332 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7333 IPinFlowControl
* This
,
7337 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7338 IPinFlowControl
* This
);
7340 ULONG (STDMETHODCALLTYPE
*Release
)(
7341 IPinFlowControl
* This
);
7343 /*** IPinFlowControl methods ***/
7344 HRESULT (STDMETHODCALLTYPE
*Block
)(
7345 IPinFlowControl
* This
,
7351 /*** IUnknown methods ***/
7352 #define IPinFlowControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7353 #define IPinFlowControl_AddRef(p) (p)->lpVtbl->AddRef(p)
7354 #define IPinFlowControl_Release(p) (p)->lpVtbl->Release(p)
7355 /*** IPinFlowControl methods ***/
7356 #define IPinFlowControl_Block(p,a,b) (p)->lpVtbl->Block(p,a,b)
7360 #define IPinFlowControl_METHODS \
7361 ICOM_MSVTABLE_COMPAT_FIELDS \
7362 /*** IUnknown methods ***/ \
7363 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7364 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7365 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7366 /*** IPinFlowControl methods ***/ \
7367 STDMETHOD_(HRESULT,Block)(THIS_ DWORD dwBlockFlags, HANDLE hEvent) PURE;
7369 HRESULT CALLBACK
IPinFlowControl_Block_Proxy(
7370 IPinFlowControl
* This
,
7373 void __RPC_STUB
IPinFlowControl_Block_Stub(
7374 struct IRpcStubBuffer
* This
,
7375 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7376 PRPC_MESSAGE pRpcMessage
,
7377 DWORD
* pdwStubPhase
);
7379 #endif /* __IPinFlowControl_INTERFACE_DEFINED__ */
7381 enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS
{
7382 AM_PIN_FLOW_CONTROL_BLOCK
= 0x1
7385 typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS
{
7386 AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT
= 0x1,
7387 AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS
= 0x2,
7388 AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS
= 0x4
7389 } AM_GRAPH_CONFIG_RECONNECT_FLAGS
;
7391 enum _REM_FILTER_FLAGS
{
7392 REMFILTERF_LEAVECONNECTED
= 0x1
7395 typedef enum _AM_FILTER_FLAGS
{
7396 AM_FILTER_FLAGS_REMOVABLE
= 0x1
7399 /*****************************************************************************
7400 * IGraphConfig interface
7402 #ifndef __IGraphConfig_INTERFACE_DEFINED__
7403 #define __IGraphConfig_INTERFACE_DEFINED__
7405 DEFINE_GUID(IID_IGraphConfig
, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88);
7406 #if defined(__cplusplus) && !defined(CINTERFACE)
7407 struct IGraphConfig
: public IUnknown
7409 virtual HRESULT STDMETHODCALLTYPE
Reconnect(
7412 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7413 IBaseFilter
* pUsingFilter
,
7417 virtual HRESULT STDMETHODCALLTYPE
Reconfigure(
7418 IGraphConfigCallback
* pCallback
,
7421 HANDLE hAbortEvent
) = 0;
7423 virtual HRESULT STDMETHODCALLTYPE
AddFilterToCache(
7424 IBaseFilter
* pFilter
) = 0;
7426 virtual HRESULT STDMETHODCALLTYPE
EnumCacheFilter(
7427 IEnumFilters
** pEnum
) = 0;
7429 virtual HRESULT STDMETHODCALLTYPE
RemoveFilterFromCache(
7430 IBaseFilter
* pFilter
) = 0;
7432 virtual HRESULT STDMETHODCALLTYPE
GetStartTime(
7433 REFERENCE_TIME
* prtStart
) = 0;
7435 virtual HRESULT STDMETHODCALLTYPE
PushThroughData(
7437 IPinConnection
* pConnection
,
7438 HANDLE hEventAbort
) = 0;
7440 virtual HRESULT STDMETHODCALLTYPE
SetFilterFlags(
7441 IBaseFilter
* pFilter
,
7444 virtual HRESULT STDMETHODCALLTYPE
GetFilterFlags(
7445 IBaseFilter
* pFilter
,
7446 DWORD
* pdwFlags
) = 0;
7448 virtual HRESULT STDMETHODCALLTYPE
RemoveFilterEx(
7449 IBaseFilter
* pFilter
,
7454 typedef struct IGraphConfigVtbl IGraphConfigVtbl
;
7455 struct IGraphConfig
{
7456 const IGraphConfigVtbl
* lpVtbl
;
7458 struct IGraphConfigVtbl
{
7459 ICOM_MSVTABLE_COMPAT_FIELDS
7461 /*** IUnknown methods ***/
7462 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7467 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7468 IGraphConfig
* This
);
7470 ULONG (STDMETHODCALLTYPE
*Release
)(
7471 IGraphConfig
* This
);
7473 /*** IGraphConfig methods ***/
7474 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
7478 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7479 IBaseFilter
* pUsingFilter
,
7483 HRESULT (STDMETHODCALLTYPE
*Reconfigure
)(
7485 IGraphConfigCallback
* pCallback
,
7488 HANDLE hAbortEvent
);
7490 HRESULT (STDMETHODCALLTYPE
*AddFilterToCache
)(
7492 IBaseFilter
* pFilter
);
7494 HRESULT (STDMETHODCALLTYPE
*EnumCacheFilter
)(
7496 IEnumFilters
** pEnum
);
7498 HRESULT (STDMETHODCALLTYPE
*RemoveFilterFromCache
)(
7500 IBaseFilter
* pFilter
);
7502 HRESULT (STDMETHODCALLTYPE
*GetStartTime
)(
7504 REFERENCE_TIME
* prtStart
);
7506 HRESULT (STDMETHODCALLTYPE
*PushThroughData
)(
7509 IPinConnection
* pConnection
,
7510 HANDLE hEventAbort
);
7512 HRESULT (STDMETHODCALLTYPE
*SetFilterFlags
)(
7514 IBaseFilter
* pFilter
,
7517 HRESULT (STDMETHODCALLTYPE
*GetFilterFlags
)(
7519 IBaseFilter
* pFilter
,
7522 HRESULT (STDMETHODCALLTYPE
*RemoveFilterEx
)(
7524 IBaseFilter
* pFilter
,
7529 /*** IUnknown methods ***/
7530 #define IGraphConfig_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7531 #define IGraphConfig_AddRef(p) (p)->lpVtbl->AddRef(p)
7532 #define IGraphConfig_Release(p) (p)->lpVtbl->Release(p)
7533 /*** IGraphConfig methods ***/
7534 #define IGraphConfig_Reconnect(p,a,b,c,d,e,f) (p)->lpVtbl->Reconnect(p,a,b,c,d,e,f)
7535 #define IGraphConfig_Reconfigure(p,a,b,c,d) (p)->lpVtbl->Reconfigure(p,a,b,c,d)
7536 #define IGraphConfig_AddFilterToCache(p,a) (p)->lpVtbl->AddFilterToCache(p,a)
7537 #define IGraphConfig_EnumCacheFilter(p,a) (p)->lpVtbl->EnumCacheFilter(p,a)
7538 #define IGraphConfig_RemoveFilterFromCache(p,a) (p)->lpVtbl->RemoveFilterFromCache(p,a)
7539 #define IGraphConfig_GetStartTime(p,a) (p)->lpVtbl->GetStartTime(p,a)
7540 #define IGraphConfig_PushThroughData(p,a,b,c) (p)->lpVtbl->PushThroughData(p,a,b,c)
7541 #define IGraphConfig_SetFilterFlags(p,a,b) (p)->lpVtbl->SetFilterFlags(p,a,b)
7542 #define IGraphConfig_GetFilterFlags(p,a,b) (p)->lpVtbl->GetFilterFlags(p,a,b)
7543 #define IGraphConfig_RemoveFilterEx(p,a,b) (p)->lpVtbl->RemoveFilterEx(p,a,b)
7547 #define IGraphConfig_METHODS \
7548 ICOM_MSVTABLE_COMPAT_FIELDS \
7549 /*** IUnknown methods ***/ \
7550 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7551 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7552 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7553 /*** IGraphConfig methods ***/ \
7554 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags) PURE; \
7555 STDMETHOD_(HRESULT,Reconfigure)(THIS_ IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent) PURE; \
7556 STDMETHOD_(HRESULT,AddFilterToCache)(THIS_ IBaseFilter* pFilter) PURE; \
7557 STDMETHOD_(HRESULT,EnumCacheFilter)(THIS_ IEnumFilters** pEnum) PURE; \
7558 STDMETHOD_(HRESULT,RemoveFilterFromCache)(THIS_ IBaseFilter* pFilter) PURE; \
7559 STDMETHOD_(HRESULT,GetStartTime)(THIS_ REFERENCE_TIME* prtStart) PURE; \
7560 STDMETHOD_(HRESULT,PushThroughData)(THIS_ IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort) PURE; \
7561 STDMETHOD_(HRESULT,SetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD dwFlags) PURE; \
7562 STDMETHOD_(HRESULT,GetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD* pdwFlags) PURE; \
7563 STDMETHOD_(HRESULT,RemoveFilterEx)(THIS_ IBaseFilter* pFilter, DWORD Flags) PURE;
7565 HRESULT CALLBACK
IGraphConfig_Reconnect_Proxy(
7569 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7570 IBaseFilter
* pUsingFilter
,
7573 void __RPC_STUB
IGraphConfig_Reconnect_Stub(
7574 struct IRpcStubBuffer
* This
,
7575 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7576 PRPC_MESSAGE pRpcMessage
,
7577 DWORD
* pdwStubPhase
);
7578 HRESULT CALLBACK
IGraphConfig_Reconfigure_Proxy(
7580 IGraphConfigCallback
* pCallback
,
7583 HANDLE hAbortEvent
);
7584 void __RPC_STUB
IGraphConfig_Reconfigure_Stub(
7585 struct IRpcStubBuffer
* This
,
7586 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7587 PRPC_MESSAGE pRpcMessage
,
7588 DWORD
* pdwStubPhase
);
7589 HRESULT CALLBACK
IGraphConfig_AddFilterToCache_Proxy(
7591 IBaseFilter
* pFilter
);
7592 void __RPC_STUB
IGraphConfig_AddFilterToCache_Stub(
7593 struct IRpcStubBuffer
* This
,
7594 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7595 PRPC_MESSAGE pRpcMessage
,
7596 DWORD
* pdwStubPhase
);
7597 HRESULT CALLBACK
IGraphConfig_EnumCacheFilter_Proxy(
7599 IEnumFilters
** pEnum
);
7600 void __RPC_STUB
IGraphConfig_EnumCacheFilter_Stub(
7601 struct IRpcStubBuffer
* This
,
7602 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7603 PRPC_MESSAGE pRpcMessage
,
7604 DWORD
* pdwStubPhase
);
7605 HRESULT CALLBACK
IGraphConfig_RemoveFilterFromCache_Proxy(
7607 IBaseFilter
* pFilter
);
7608 void __RPC_STUB
IGraphConfig_RemoveFilterFromCache_Stub(
7609 struct IRpcStubBuffer
* This
,
7610 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7611 PRPC_MESSAGE pRpcMessage
,
7612 DWORD
* pdwStubPhase
);
7613 HRESULT CALLBACK
IGraphConfig_GetStartTime_Proxy(
7615 REFERENCE_TIME
* prtStart
);
7616 void __RPC_STUB
IGraphConfig_GetStartTime_Stub(
7617 struct IRpcStubBuffer
* This
,
7618 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7619 PRPC_MESSAGE pRpcMessage
,
7620 DWORD
* pdwStubPhase
);
7621 HRESULT CALLBACK
IGraphConfig_PushThroughData_Proxy(
7624 IPinConnection
* pConnection
,
7625 HANDLE hEventAbort
);
7626 void __RPC_STUB
IGraphConfig_PushThroughData_Stub(
7627 struct IRpcStubBuffer
* This
,
7628 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7629 PRPC_MESSAGE pRpcMessage
,
7630 DWORD
* pdwStubPhase
);
7631 HRESULT CALLBACK
IGraphConfig_SetFilterFlags_Proxy(
7633 IBaseFilter
* pFilter
,
7635 void __RPC_STUB
IGraphConfig_SetFilterFlags_Stub(
7636 struct IRpcStubBuffer
* This
,
7637 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7638 PRPC_MESSAGE pRpcMessage
,
7639 DWORD
* pdwStubPhase
);
7640 HRESULT CALLBACK
IGraphConfig_GetFilterFlags_Proxy(
7642 IBaseFilter
* pFilter
,
7644 void __RPC_STUB
IGraphConfig_GetFilterFlags_Stub(
7645 struct IRpcStubBuffer
* This
,
7646 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7647 PRPC_MESSAGE pRpcMessage
,
7648 DWORD
* pdwStubPhase
);
7649 HRESULT CALLBACK
IGraphConfig_RemoveFilterEx_Proxy(
7651 IBaseFilter
* pFilter
,
7653 void __RPC_STUB
IGraphConfig_RemoveFilterEx_Stub(
7654 struct IRpcStubBuffer
* This
,
7655 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7656 PRPC_MESSAGE pRpcMessage
,
7657 DWORD
* pdwStubPhase
);
7659 #endif /* __IGraphConfig_INTERFACE_DEFINED__ */
7661 /*****************************************************************************
7662 * IGraphConfigCallback interface
7664 #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
7665 #define __IGraphConfigCallback_INTERFACE_DEFINED__
7667 DEFINE_GUID(IID_IGraphConfigCallback
, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
7668 #if defined(__cplusplus) && !defined(CINTERFACE)
7669 struct IGraphConfigCallback
: public IUnknown
7671 virtual HRESULT STDMETHODCALLTYPE
Reconfigure(
7677 typedef struct IGraphConfigCallbackVtbl IGraphConfigCallbackVtbl
;
7678 struct IGraphConfigCallback
{
7679 const IGraphConfigCallbackVtbl
* lpVtbl
;
7681 struct IGraphConfigCallbackVtbl
{
7682 ICOM_MSVTABLE_COMPAT_FIELDS
7684 /*** IUnknown methods ***/
7685 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7686 IGraphConfigCallback
* This
,
7690 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7691 IGraphConfigCallback
* This
);
7693 ULONG (STDMETHODCALLTYPE
*Release
)(
7694 IGraphConfigCallback
* This
);
7696 /*** IGraphConfigCallback methods ***/
7697 HRESULT (STDMETHODCALLTYPE
*Reconfigure
)(
7698 IGraphConfigCallback
* This
,
7704 /*** IUnknown methods ***/
7705 #define IGraphConfigCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7706 #define IGraphConfigCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
7707 #define IGraphConfigCallback_Release(p) (p)->lpVtbl->Release(p)
7708 /*** IGraphConfigCallback methods ***/
7709 #define IGraphConfigCallback_Reconfigure(p,a,b) (p)->lpVtbl->Reconfigure(p,a,b)
7713 #define IGraphConfigCallback_METHODS \
7714 ICOM_MSVTABLE_COMPAT_FIELDS \
7715 /*** IUnknown methods ***/ \
7716 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7717 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7718 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7719 /*** IGraphConfigCallback methods ***/ \
7720 STDMETHOD_(HRESULT,Reconfigure)(THIS_ PVOID pvContext, DWORD dwFlags) PURE;
7722 HRESULT CALLBACK
IGraphConfigCallback_Reconfigure_Proxy(
7723 IGraphConfigCallback
* This
,
7726 void __RPC_STUB
IGraphConfigCallback_Reconfigure_Stub(
7727 struct IRpcStubBuffer
* This
,
7728 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7729 PRPC_MESSAGE pRpcMessage
,
7730 DWORD
* pdwStubPhase
);
7732 #endif /* __IGraphConfigCallback_INTERFACE_DEFINED__ */
7734 #ifndef __IFilterChain_FWD_DEFINED__
7735 #define __IFilterChain_FWD_DEFINED__
7736 typedef struct IFilterChain IFilterChain
;
7739 /*****************************************************************************
7740 * IFilterChain interface
7742 #ifndef __IFilterChain_INTERFACE_DEFINED__
7743 #define __IFilterChain_INTERFACE_DEFINED__
7745 DEFINE_GUID(IID_IFilterChain
, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29);
7746 #if defined(__cplusplus) && !defined(CINTERFACE)
7747 struct IFilterChain
: public IUnknown
7749 virtual HRESULT STDMETHODCALLTYPE
StartChain(
7750 IBaseFilter
* pStartFilter
,
7751 IBaseFilter
* pEndFilter
) = 0;
7753 virtual HRESULT STDMETHODCALLTYPE
PauseChain(
7754 IBaseFilter
* pStartFilter
,
7755 IBaseFilter
* pEndFilter
) = 0;
7757 virtual HRESULT STDMETHODCALLTYPE
StopChain(
7758 IBaseFilter
* pStartFilter
,
7759 IBaseFilter
* pEndFilter
) = 0;
7761 virtual HRESULT STDMETHODCALLTYPE
RemoveChain(
7762 IBaseFilter
* pStartFilter
,
7763 IBaseFilter
* pEndFilter
) = 0;
7767 typedef struct IFilterChainVtbl IFilterChainVtbl
;
7768 struct IFilterChain
{
7769 const IFilterChainVtbl
* lpVtbl
;
7771 struct IFilterChainVtbl
{
7772 ICOM_MSVTABLE_COMPAT_FIELDS
7774 /*** IUnknown methods ***/
7775 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7780 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7781 IFilterChain
* This
);
7783 ULONG (STDMETHODCALLTYPE
*Release
)(
7784 IFilterChain
* This
);
7786 /*** IFilterChain methods ***/
7787 HRESULT (STDMETHODCALLTYPE
*StartChain
)(
7789 IBaseFilter
* pStartFilter
,
7790 IBaseFilter
* pEndFilter
);
7792 HRESULT (STDMETHODCALLTYPE
*PauseChain
)(
7794 IBaseFilter
* pStartFilter
,
7795 IBaseFilter
* pEndFilter
);
7797 HRESULT (STDMETHODCALLTYPE
*StopChain
)(
7799 IBaseFilter
* pStartFilter
,
7800 IBaseFilter
* pEndFilter
);
7802 HRESULT (STDMETHODCALLTYPE
*RemoveChain
)(
7804 IBaseFilter
* pStartFilter
,
7805 IBaseFilter
* pEndFilter
);
7809 /*** IUnknown methods ***/
7810 #define IFilterChain_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7811 #define IFilterChain_AddRef(p) (p)->lpVtbl->AddRef(p)
7812 #define IFilterChain_Release(p) (p)->lpVtbl->Release(p)
7813 /*** IFilterChain methods ***/
7814 #define IFilterChain_StartChain(p,a,b) (p)->lpVtbl->StartChain(p,a,b)
7815 #define IFilterChain_PauseChain(p,a,b) (p)->lpVtbl->PauseChain(p,a,b)
7816 #define IFilterChain_StopChain(p,a,b) (p)->lpVtbl->StopChain(p,a,b)
7817 #define IFilterChain_RemoveChain(p,a,b) (p)->lpVtbl->RemoveChain(p,a,b)
7821 #define IFilterChain_METHODS \
7822 ICOM_MSVTABLE_COMPAT_FIELDS \
7823 /*** IUnknown methods ***/ \
7824 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7825 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7826 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7827 /*** IFilterChain methods ***/ \
7828 STDMETHOD_(HRESULT,StartChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7829 STDMETHOD_(HRESULT,PauseChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7830 STDMETHOD_(HRESULT,StopChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7831 STDMETHOD_(HRESULT,RemoveChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE;
7833 HRESULT CALLBACK
IFilterChain_StartChain_Proxy(
7835 IBaseFilter
* pStartFilter
,
7836 IBaseFilter
* pEndFilter
);
7837 void __RPC_STUB
IFilterChain_StartChain_Stub(
7838 struct IRpcStubBuffer
* This
,
7839 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7840 PRPC_MESSAGE pRpcMessage
,
7841 DWORD
* pdwStubPhase
);
7842 HRESULT CALLBACK
IFilterChain_PauseChain_Proxy(
7844 IBaseFilter
* pStartFilter
,
7845 IBaseFilter
* pEndFilter
);
7846 void __RPC_STUB
IFilterChain_PauseChain_Stub(
7847 struct IRpcStubBuffer
* This
,
7848 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7849 PRPC_MESSAGE pRpcMessage
,
7850 DWORD
* pdwStubPhase
);
7851 HRESULT CALLBACK
IFilterChain_StopChain_Proxy(
7853 IBaseFilter
* pStartFilter
,
7854 IBaseFilter
* pEndFilter
);
7855 void __RPC_STUB
IFilterChain_StopChain_Stub(
7856 struct IRpcStubBuffer
* This
,
7857 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7858 PRPC_MESSAGE pRpcMessage
,
7859 DWORD
* pdwStubPhase
);
7860 HRESULT CALLBACK
IFilterChain_RemoveChain_Proxy(
7862 IBaseFilter
* pStartFilter
,
7863 IBaseFilter
* pEndFilter
);
7864 void __RPC_STUB
IFilterChain_RemoveChain_Stub(
7865 struct IRpcStubBuffer
* This
,
7866 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7867 PRPC_MESSAGE pRpcMessage
,
7868 DWORD
* pdwStubPhase
);
7870 #endif /* __IFilterChain_INTERFACE_DEFINED__ */
7875 #endif /* __WIDL_STRMIF_H */