1 /*** Autogenerated by WIDL 0.1 from strmif.idl - Do not edit ***/
5 #ifndef __WIDL_STRMIF_H
6 #define __WIDL_STRMIF_H
12 #define CDEF_CLASS_DEFAULT 0x0001
13 #define CDEF_BYPASS_CLASS_MANAGER 0x0002
14 #define CDEF_CLASS_LEGACY 0x0004
15 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
16 #ifndef __ICreateDevEnum_FWD_DEFINED__
17 #define __ICreateDevEnum_FWD_DEFINED__
18 typedef struct ICreateDevEnum ICreateDevEnum
;
21 /*****************************************************************************
22 * ICreateDevEnum interface
24 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
25 #define __ICreateDevEnum_INTERFACE_DEFINED__
27 DEFINE_GUID(IID_ICreateDevEnum
, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
28 #if defined(__cplusplus) && !defined(CINTERFACE)
29 struct ICreateDevEnum
: public IUnknown
31 virtual HRESULT STDMETHODCALLTYPE
CreateClassEnumerator(
32 REFCLSID clsidDeviceClass
,
33 IEnumMoniker
** ppEnumMoniker
,
38 typedef struct ICreateDevEnumVtbl ICreateDevEnumVtbl
;
39 struct ICreateDevEnum
{
40 const ICreateDevEnumVtbl
* lpVtbl
;
42 struct ICreateDevEnumVtbl
{
43 ICOM_MSVTABLE_COMPAT_FIELDS
45 /*** IUnknown methods ***/
46 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
51 ULONG (STDMETHODCALLTYPE
*AddRef
)(
52 ICreateDevEnum
* This
);
54 ULONG (STDMETHODCALLTYPE
*Release
)(
55 ICreateDevEnum
* This
);
57 /*** ICreateDevEnum methods ***/
58 HRESULT (STDMETHODCALLTYPE
*CreateClassEnumerator
)(
60 REFCLSID clsidDeviceClass
,
61 IEnumMoniker
** ppEnumMoniker
,
66 /*** IUnknown methods ***/
67 #define ICreateDevEnum_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
68 #define ICreateDevEnum_AddRef(p) (p)->lpVtbl->AddRef(p)
69 #define ICreateDevEnum_Release(p) (p)->lpVtbl->Release(p)
70 /*** ICreateDevEnum methods ***/
71 #define ICreateDevEnum_CreateClassEnumerator(p,a,b,c) (p)->lpVtbl->CreateClassEnumerator(p,a,b,c)
75 #define ICreateDevEnum_METHODS \
76 ICOM_MSVTABLE_COMPAT_FIELDS \
77 /*** IUnknown methods ***/ \
78 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
79 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
80 STDMETHOD_(ULONG,Release)(THIS) PURE; \
81 /*** ICreateDevEnum methods ***/ \
82 STDMETHOD_(HRESULT,CreateClassEnumerator)(THIS_ REFCLSID clsidDeviceClass, IEnumMoniker** ppEnumMoniker, DWORD dwFlags) PURE;
84 HRESULT CALLBACK
ICreateDevEnum_CreateClassEnumerator_Proxy(
86 REFCLSID clsidDeviceClass
,
87 IEnumMoniker
** ppEnumMoniker
,
89 void __RPC_STUB
ICreateDevEnum_CreateClassEnumerator_Stub(
90 struct IRpcStubBuffer
* This
,
91 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
92 PRPC_MESSAGE pRpcMessage
,
95 #endif /* __ICreateDevEnum_INTERFACE_DEFINED__ */
97 #define CHARS_IN_GUID 39
99 typedef struct _AMMediaType
{
102 BOOL bFixedSizeSamples
;
103 BOOL bTemporalCompression
;
111 typedef enum _PinDirection
{
116 #define MAX_PIN_NAME 128
117 #define MAX_FILTER_NAME 128
118 typedef LONGLONG REFERENCE_TIME
;
120 typedef DOUBLE REFTIME
;
122 typedef DWORD_PTR HSEMAPHORE
;
124 typedef DWORD_PTR HEVENT
;
126 typedef struct _AllocatorProperties
{
131 } ALLOCATOR_PROPERTIES
;
133 #ifndef __IAMovieSetup_FWD_DEFINED__
134 #define __IAMovieSetup_FWD_DEFINED__
135 typedef struct IAMovieSetup IAMovieSetup
;
138 #ifndef __IEnumFilters_FWD_DEFINED__
139 #define __IEnumFilters_FWD_DEFINED__
140 typedef struct IEnumFilters IEnumFilters
;
143 #ifndef __IEnumMediaTypes_FWD_DEFINED__
144 #define __IEnumMediaTypes_FWD_DEFINED__
145 typedef struct IEnumMediaTypes IEnumMediaTypes
;
148 #ifndef __IEnumPins_FWD_DEFINED__
149 #define __IEnumPins_FWD_DEFINED__
150 typedef struct IEnumPins IEnumPins
;
153 #ifndef __IBaseFilter_FWD_DEFINED__
154 #define __IBaseFilter_FWD_DEFINED__
155 typedef struct IBaseFilter IBaseFilter
;
158 #ifndef __IFilterGraph_FWD_DEFINED__
159 #define __IFilterGraph_FWD_DEFINED__
160 typedef struct IFilterGraph IFilterGraph
;
163 #ifndef __IMediaFilter_FWD_DEFINED__
164 #define __IMediaFilter_FWD_DEFINED__
165 typedef struct IMediaFilter IMediaFilter
;
168 #ifndef __IMediaSample_FWD_DEFINED__
169 #define __IMediaSample_FWD_DEFINED__
170 typedef struct IMediaSample IMediaSample
;
173 #ifndef __IMemAllocator_FWD_DEFINED__
174 #define __IMemAllocator_FWD_DEFINED__
175 typedef struct IMemAllocator IMemAllocator
;
178 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
179 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
180 typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp
;
183 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
184 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
185 typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp
;
188 #ifndef __IMemInputPin_FWD_DEFINED__
189 #define __IMemInputPin_FWD_DEFINED__
190 typedef struct IMemInputPin IMemInputPin
;
193 #ifndef __IPin_FWD_DEFINED__
194 #define __IPin_FWD_DEFINED__
195 typedef struct IPin IPin
;
198 #ifndef __IReferenceClock_FWD_DEFINED__
199 #define __IReferenceClock_FWD_DEFINED__
200 typedef struct IReferenceClock IReferenceClock
;
203 typedef struct _PinInfo
{
204 IBaseFilter
*pFilter
;
209 /*****************************************************************************
212 #ifndef __IPin_INTERFACE_DEFINED__
213 #define __IPin_INTERFACE_DEFINED__
215 DEFINE_GUID(IID_IPin
, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
216 #if defined(__cplusplus) && !defined(CINTERFACE)
217 struct IPin
: public IUnknown
219 virtual HRESULT STDMETHODCALLTYPE
Connect(
221 const AM_MEDIA_TYPE
* pmt
) = 0;
223 virtual HRESULT STDMETHODCALLTYPE
ReceiveConnection(
225 const AM_MEDIA_TYPE
* pmt
) = 0;
227 virtual HRESULT STDMETHODCALLTYPE
Disconnect(
230 virtual HRESULT STDMETHODCALLTYPE
ConnectedTo(
233 virtual HRESULT STDMETHODCALLTYPE
ConnectionMediaType(
234 AM_MEDIA_TYPE
* pmt
) = 0;
236 virtual HRESULT STDMETHODCALLTYPE
QueryPinInfo(
237 PIN_INFO
* pInfo
) = 0;
239 virtual HRESULT STDMETHODCALLTYPE
QueryDirection(
240 PIN_DIRECTION
* pPinDir
) = 0;
242 virtual HRESULT STDMETHODCALLTYPE
QueryId(
245 virtual HRESULT STDMETHODCALLTYPE
QueryAccept(
246 const AM_MEDIA_TYPE
* pmt
) = 0;
248 virtual HRESULT STDMETHODCALLTYPE
EnumMediaTypes(
249 IEnumMediaTypes
** ppEnum
) = 0;
251 virtual HRESULT STDMETHODCALLTYPE
QueryInternalConnections(
255 virtual HRESULT STDMETHODCALLTYPE
EndOfStream(
258 virtual HRESULT STDMETHODCALLTYPE
BeginFlush(
261 virtual HRESULT STDMETHODCALLTYPE
EndFlush(
264 virtual HRESULT STDMETHODCALLTYPE
NewSegment(
265 REFERENCE_TIME tStart
,
266 REFERENCE_TIME tStop
,
271 typedef struct IPinVtbl IPinVtbl
;
273 const IPinVtbl
* lpVtbl
;
276 ICOM_MSVTABLE_COMPAT_FIELDS
278 /*** IUnknown methods ***/
279 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
284 ULONG (STDMETHODCALLTYPE
*AddRef
)(
287 ULONG (STDMETHODCALLTYPE
*Release
)(
290 /*** IPin methods ***/
291 HRESULT (STDMETHODCALLTYPE
*Connect
)(
294 const AM_MEDIA_TYPE
* pmt
);
296 HRESULT (STDMETHODCALLTYPE
*ReceiveConnection
)(
299 const AM_MEDIA_TYPE
* pmt
);
301 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
304 HRESULT (STDMETHODCALLTYPE
*ConnectedTo
)(
308 HRESULT (STDMETHODCALLTYPE
*ConnectionMediaType
)(
312 HRESULT (STDMETHODCALLTYPE
*QueryPinInfo
)(
316 HRESULT (STDMETHODCALLTYPE
*QueryDirection
)(
318 PIN_DIRECTION
* pPinDir
);
320 HRESULT (STDMETHODCALLTYPE
*QueryId
)(
324 HRESULT (STDMETHODCALLTYPE
*QueryAccept
)(
326 const AM_MEDIA_TYPE
* pmt
);
328 HRESULT (STDMETHODCALLTYPE
*EnumMediaTypes
)(
330 IEnumMediaTypes
** ppEnum
);
332 HRESULT (STDMETHODCALLTYPE
*QueryInternalConnections
)(
337 HRESULT (STDMETHODCALLTYPE
*EndOfStream
)(
340 HRESULT (STDMETHODCALLTYPE
*BeginFlush
)(
343 HRESULT (STDMETHODCALLTYPE
*EndFlush
)(
346 HRESULT (STDMETHODCALLTYPE
*NewSegment
)(
348 REFERENCE_TIME tStart
,
349 REFERENCE_TIME tStop
,
354 /*** IUnknown methods ***/
355 #define IPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
356 #define IPin_AddRef(p) (p)->lpVtbl->AddRef(p)
357 #define IPin_Release(p) (p)->lpVtbl->Release(p)
358 /*** IPin methods ***/
359 #define IPin_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
360 #define IPin_ReceiveConnection(p,a,b) (p)->lpVtbl->ReceiveConnection(p,a,b)
361 #define IPin_Disconnect(p) (p)->lpVtbl->Disconnect(p)
362 #define IPin_ConnectedTo(p,a) (p)->lpVtbl->ConnectedTo(p,a)
363 #define IPin_ConnectionMediaType(p,a) (p)->lpVtbl->ConnectionMediaType(p,a)
364 #define IPin_QueryPinInfo(p,a) (p)->lpVtbl->QueryPinInfo(p,a)
365 #define IPin_QueryDirection(p,a) (p)->lpVtbl->QueryDirection(p,a)
366 #define IPin_QueryId(p,a) (p)->lpVtbl->QueryId(p,a)
367 #define IPin_QueryAccept(p,a) (p)->lpVtbl->QueryAccept(p,a)
368 #define IPin_EnumMediaTypes(p,a) (p)->lpVtbl->EnumMediaTypes(p,a)
369 #define IPin_QueryInternalConnections(p,a,b) (p)->lpVtbl->QueryInternalConnections(p,a,b)
370 #define IPin_EndOfStream(p) (p)->lpVtbl->EndOfStream(p)
371 #define IPin_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
372 #define IPin_EndFlush(p) (p)->lpVtbl->EndFlush(p)
373 #define IPin_NewSegment(p,a,b,c) (p)->lpVtbl->NewSegment(p,a,b,c)
377 #define IPin_METHODS \
378 ICOM_MSVTABLE_COMPAT_FIELDS \
379 /*** IUnknown methods ***/ \
380 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
381 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
382 STDMETHOD_(ULONG,Release)(THIS) PURE; \
383 /*** IPin methods ***/ \
384 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* pReceivePin, const AM_MEDIA_TYPE* pmt) PURE; \
385 STDMETHOD_(HRESULT,ReceiveConnection)(THIS_ IPin* pConnector, const AM_MEDIA_TYPE* pmt) PURE; \
386 STDMETHOD_(HRESULT,Disconnect)(THIS) PURE; \
387 STDMETHOD_(HRESULT,ConnectedTo)(THIS_ IPin** pPin) PURE; \
388 STDMETHOD_(HRESULT,ConnectionMediaType)(THIS_ AM_MEDIA_TYPE* pmt) PURE; \
389 STDMETHOD_(HRESULT,QueryPinInfo)(THIS_ PIN_INFO* pInfo) PURE; \
390 STDMETHOD_(HRESULT,QueryDirection)(THIS_ PIN_DIRECTION* pPinDir) PURE; \
391 STDMETHOD_(HRESULT,QueryId)(THIS_ LPWSTR* Id) PURE; \
392 STDMETHOD_(HRESULT,QueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
393 STDMETHOD_(HRESULT,EnumMediaTypes)(THIS_ IEnumMediaTypes** ppEnum) PURE; \
394 STDMETHOD_(HRESULT,QueryInternalConnections)(THIS_ IPin** apPin, ULONG* nPin) PURE; \
395 STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE; \
396 STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
397 STDMETHOD_(HRESULT,EndFlush)(THIS) PURE; \
398 STDMETHOD_(HRESULT,NewSegment)(THIS_ REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) PURE;
400 HRESULT CALLBACK
IPin_Connect_Proxy(
403 const AM_MEDIA_TYPE
* pmt
);
404 void __RPC_STUB
IPin_Connect_Stub(
405 struct IRpcStubBuffer
* This
,
406 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
407 PRPC_MESSAGE pRpcMessage
,
408 DWORD
* pdwStubPhase
);
409 HRESULT CALLBACK
IPin_ReceiveConnection_Proxy(
412 const AM_MEDIA_TYPE
* pmt
);
413 void __RPC_STUB
IPin_ReceiveConnection_Stub(
414 struct IRpcStubBuffer
* This
,
415 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
416 PRPC_MESSAGE pRpcMessage
,
417 DWORD
* pdwStubPhase
);
418 HRESULT CALLBACK
IPin_Disconnect_Proxy(
420 void __RPC_STUB
IPin_Disconnect_Stub(
421 struct IRpcStubBuffer
* This
,
422 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
423 PRPC_MESSAGE pRpcMessage
,
424 DWORD
* pdwStubPhase
);
425 HRESULT CALLBACK
IPin_ConnectedTo_Proxy(
428 void __RPC_STUB
IPin_ConnectedTo_Stub(
429 struct IRpcStubBuffer
* This
,
430 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
431 PRPC_MESSAGE pRpcMessage
,
432 DWORD
* pdwStubPhase
);
433 HRESULT CALLBACK
IPin_ConnectionMediaType_Proxy(
436 void __RPC_STUB
IPin_ConnectionMediaType_Stub(
437 struct IRpcStubBuffer
* This
,
438 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
439 PRPC_MESSAGE pRpcMessage
,
440 DWORD
* pdwStubPhase
);
441 HRESULT CALLBACK
IPin_QueryPinInfo_Proxy(
444 void __RPC_STUB
IPin_QueryPinInfo_Stub(
445 struct IRpcStubBuffer
* This
,
446 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
447 PRPC_MESSAGE pRpcMessage
,
448 DWORD
* pdwStubPhase
);
449 HRESULT CALLBACK
IPin_QueryDirection_Proxy(
451 PIN_DIRECTION
* pPinDir
);
452 void __RPC_STUB
IPin_QueryDirection_Stub(
453 struct IRpcStubBuffer
* This
,
454 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
455 PRPC_MESSAGE pRpcMessage
,
456 DWORD
* pdwStubPhase
);
457 HRESULT CALLBACK
IPin_QueryId_Proxy(
460 void __RPC_STUB
IPin_QueryId_Stub(
461 struct IRpcStubBuffer
* This
,
462 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
463 PRPC_MESSAGE pRpcMessage
,
464 DWORD
* pdwStubPhase
);
465 HRESULT CALLBACK
IPin_QueryAccept_Proxy(
467 const AM_MEDIA_TYPE
* pmt
);
468 void __RPC_STUB
IPin_QueryAccept_Stub(
469 struct IRpcStubBuffer
* This
,
470 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
471 PRPC_MESSAGE pRpcMessage
,
472 DWORD
* pdwStubPhase
);
473 HRESULT CALLBACK
IPin_EnumMediaTypes_Proxy(
475 IEnumMediaTypes
** ppEnum
);
476 void __RPC_STUB
IPin_EnumMediaTypes_Stub(
477 struct IRpcStubBuffer
* This
,
478 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
479 PRPC_MESSAGE pRpcMessage
,
480 DWORD
* pdwStubPhase
);
481 HRESULT CALLBACK
IPin_QueryInternalConnections_Proxy(
485 void __RPC_STUB
IPin_QueryInternalConnections_Stub(
486 struct IRpcStubBuffer
* This
,
487 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
488 PRPC_MESSAGE pRpcMessage
,
489 DWORD
* pdwStubPhase
);
490 HRESULT CALLBACK
IPin_EndOfStream_Proxy(
492 void __RPC_STUB
IPin_EndOfStream_Stub(
493 struct IRpcStubBuffer
* This
,
494 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
495 PRPC_MESSAGE pRpcMessage
,
496 DWORD
* pdwStubPhase
);
497 HRESULT CALLBACK
IPin_BeginFlush_Proxy(
499 void __RPC_STUB
IPin_BeginFlush_Stub(
500 struct IRpcStubBuffer
* This
,
501 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
502 PRPC_MESSAGE pRpcMessage
,
503 DWORD
* pdwStubPhase
);
504 HRESULT CALLBACK
IPin_EndFlush_Proxy(
506 void __RPC_STUB
IPin_EndFlush_Stub(
507 struct IRpcStubBuffer
* This
,
508 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
509 PRPC_MESSAGE pRpcMessage
,
510 DWORD
* pdwStubPhase
);
511 HRESULT CALLBACK
IPin_NewSegment_Proxy(
513 REFERENCE_TIME tStart
,
514 REFERENCE_TIME tStop
,
516 void __RPC_STUB
IPin_NewSegment_Stub(
517 struct IRpcStubBuffer
* This
,
518 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
519 PRPC_MESSAGE pRpcMessage
,
520 DWORD
* pdwStubPhase
);
522 #endif /* __IPin_INTERFACE_DEFINED__ */
526 /*****************************************************************************
527 * IEnumPins interface
529 #ifndef __IEnumPins_INTERFACE_DEFINED__
530 #define __IEnumPins_INTERFACE_DEFINED__
532 DEFINE_GUID(IID_IEnumPins
, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
533 #if defined(__cplusplus) && !defined(CINTERFACE)
534 struct IEnumPins
: public IUnknown
536 virtual HRESULT STDMETHODCALLTYPE
Next(
539 ULONG
* pcFetched
) = 0;
541 virtual HRESULT STDMETHODCALLTYPE
Skip(
544 virtual HRESULT STDMETHODCALLTYPE
Reset(
547 virtual HRESULT STDMETHODCALLTYPE
Clone(
548 IEnumPins
** ppEnum
) = 0;
552 typedef struct IEnumPinsVtbl IEnumPinsVtbl
;
554 const IEnumPinsVtbl
* lpVtbl
;
556 struct IEnumPinsVtbl
{
557 ICOM_MSVTABLE_COMPAT_FIELDS
559 /*** IUnknown methods ***/
560 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
565 ULONG (STDMETHODCALLTYPE
*AddRef
)(
568 ULONG (STDMETHODCALLTYPE
*Release
)(
571 /*** IEnumPins methods ***/
572 HRESULT (STDMETHODCALLTYPE
*Next
)(
578 HRESULT (STDMETHODCALLTYPE
*Skip
)(
582 HRESULT (STDMETHODCALLTYPE
*Reset
)(
585 HRESULT (STDMETHODCALLTYPE
*Clone
)(
591 /*** IUnknown methods ***/
592 #define IEnumPins_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
593 #define IEnumPins_AddRef(p) (p)->lpVtbl->AddRef(p)
594 #define IEnumPins_Release(p) (p)->lpVtbl->Release(p)
595 /*** IEnumPins methods ***/
596 #define IEnumPins_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
597 #define IEnumPins_Skip(p,a) (p)->lpVtbl->Skip(p,a)
598 #define IEnumPins_Reset(p) (p)->lpVtbl->Reset(p)
599 #define IEnumPins_Clone(p,a) (p)->lpVtbl->Clone(p,a)
603 #define IEnumPins_METHODS \
604 ICOM_MSVTABLE_COMPAT_FIELDS \
605 /*** IUnknown methods ***/ \
606 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
607 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
608 STDMETHOD_(ULONG,Release)(THIS) PURE; \
609 /*** IEnumPins methods ***/ \
610 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cPins, IPin** ppPins, ULONG* pcFetched) PURE; \
611 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cPins) PURE; \
612 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
613 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPins** ppEnum) PURE;
615 HRESULT CALLBACK
IEnumPins_Next_Proxy(
620 void __RPC_STUB
IEnumPins_Next_Stub(
621 struct IRpcStubBuffer
* This
,
622 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
623 PRPC_MESSAGE pRpcMessage
,
624 DWORD
* pdwStubPhase
);
625 HRESULT CALLBACK
IEnumPins_Skip_Proxy(
628 void __RPC_STUB
IEnumPins_Skip_Stub(
629 struct IRpcStubBuffer
* This
,
630 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
631 PRPC_MESSAGE pRpcMessage
,
632 DWORD
* pdwStubPhase
);
633 HRESULT CALLBACK
IEnumPins_Reset_Proxy(
635 void __RPC_STUB
IEnumPins_Reset_Stub(
636 struct IRpcStubBuffer
* This
,
637 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
638 PRPC_MESSAGE pRpcMessage
,
639 DWORD
* pdwStubPhase
);
640 HRESULT CALLBACK
IEnumPins_Clone_Proxy(
643 void __RPC_STUB
IEnumPins_Clone_Stub(
644 struct IRpcStubBuffer
* This
,
645 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
646 PRPC_MESSAGE pRpcMessage
,
647 DWORD
* pdwStubPhase
);
649 #endif /* __IEnumPins_INTERFACE_DEFINED__ */
651 typedef IEnumPins
*PENUMPINS
;
653 /*****************************************************************************
654 * IEnumMediaTypes interface
656 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
657 #define __IEnumMediaTypes_INTERFACE_DEFINED__
659 DEFINE_GUID(IID_IEnumMediaTypes
, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
660 #if defined(__cplusplus) && !defined(CINTERFACE)
661 struct IEnumMediaTypes
: public IUnknown
663 virtual HRESULT STDMETHODCALLTYPE
Next(
665 AM_MEDIA_TYPE
** ppMediaTypes
,
666 ULONG
* pcFetched
) = 0;
668 virtual HRESULT STDMETHODCALLTYPE
Skip(
669 ULONG cMediaTypes
) = 0;
671 virtual HRESULT STDMETHODCALLTYPE
Reset(
674 virtual HRESULT STDMETHODCALLTYPE
Clone(
675 IEnumMediaTypes
** ppEnum
) = 0;
679 typedef struct IEnumMediaTypesVtbl IEnumMediaTypesVtbl
;
680 struct IEnumMediaTypes
{
681 const IEnumMediaTypesVtbl
* lpVtbl
;
683 struct IEnumMediaTypesVtbl
{
684 ICOM_MSVTABLE_COMPAT_FIELDS
686 /*** IUnknown methods ***/
687 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
688 IEnumMediaTypes
* This
,
692 ULONG (STDMETHODCALLTYPE
*AddRef
)(
693 IEnumMediaTypes
* This
);
695 ULONG (STDMETHODCALLTYPE
*Release
)(
696 IEnumMediaTypes
* This
);
698 /*** IEnumMediaTypes methods ***/
699 HRESULT (STDMETHODCALLTYPE
*Next
)(
700 IEnumMediaTypes
* This
,
702 AM_MEDIA_TYPE
** ppMediaTypes
,
705 HRESULT (STDMETHODCALLTYPE
*Skip
)(
706 IEnumMediaTypes
* This
,
709 HRESULT (STDMETHODCALLTYPE
*Reset
)(
710 IEnumMediaTypes
* This
);
712 HRESULT (STDMETHODCALLTYPE
*Clone
)(
713 IEnumMediaTypes
* This
,
714 IEnumMediaTypes
** ppEnum
);
718 /*** IUnknown methods ***/
719 #define IEnumMediaTypes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
720 #define IEnumMediaTypes_AddRef(p) (p)->lpVtbl->AddRef(p)
721 #define IEnumMediaTypes_Release(p) (p)->lpVtbl->Release(p)
722 /*** IEnumMediaTypes methods ***/
723 #define IEnumMediaTypes_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
724 #define IEnumMediaTypes_Skip(p,a) (p)->lpVtbl->Skip(p,a)
725 #define IEnumMediaTypes_Reset(p) (p)->lpVtbl->Reset(p)
726 #define IEnumMediaTypes_Clone(p,a) (p)->lpVtbl->Clone(p,a)
730 #define IEnumMediaTypes_METHODS \
731 ICOM_MSVTABLE_COMPAT_FIELDS \
732 /*** IUnknown methods ***/ \
733 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
734 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
735 STDMETHOD_(ULONG,Release)(THIS) PURE; \
736 /*** IEnumMediaTypes methods ***/ \
737 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cMediaTypes, AM_MEDIA_TYPE** ppMediaTypes, ULONG* pcFetched) PURE; \
738 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cMediaTypes) PURE; \
739 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
740 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumMediaTypes** ppEnum) PURE;
742 HRESULT CALLBACK
IEnumMediaTypes_Next_Proxy(
743 IEnumMediaTypes
* This
,
745 AM_MEDIA_TYPE
** ppMediaTypes
,
747 void __RPC_STUB
IEnumMediaTypes_Next_Stub(
748 struct IRpcStubBuffer
* This
,
749 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
750 PRPC_MESSAGE pRpcMessage
,
751 DWORD
* pdwStubPhase
);
752 HRESULT CALLBACK
IEnumMediaTypes_Skip_Proxy(
753 IEnumMediaTypes
* This
,
755 void __RPC_STUB
IEnumMediaTypes_Skip_Stub(
756 struct IRpcStubBuffer
* This
,
757 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
758 PRPC_MESSAGE pRpcMessage
,
759 DWORD
* pdwStubPhase
);
760 HRESULT CALLBACK
IEnumMediaTypes_Reset_Proxy(
761 IEnumMediaTypes
* This
);
762 void __RPC_STUB
IEnumMediaTypes_Reset_Stub(
763 struct IRpcStubBuffer
* This
,
764 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
765 PRPC_MESSAGE pRpcMessage
,
766 DWORD
* pdwStubPhase
);
767 HRESULT CALLBACK
IEnumMediaTypes_Clone_Proxy(
768 IEnumMediaTypes
* This
,
769 IEnumMediaTypes
** ppEnum
);
770 void __RPC_STUB
IEnumMediaTypes_Clone_Stub(
771 struct IRpcStubBuffer
* This
,
772 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
773 PRPC_MESSAGE pRpcMessage
,
774 DWORD
* pdwStubPhase
);
776 #endif /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
778 typedef IEnumMediaTypes
*PENUMMEDIATYPES
;
780 /*****************************************************************************
781 * IFilterGraph interface
783 #ifndef __IFilterGraph_INTERFACE_DEFINED__
784 #define __IFilterGraph_INTERFACE_DEFINED__
786 DEFINE_GUID(IID_IFilterGraph
, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
787 #if defined(__cplusplus) && !defined(CINTERFACE)
788 struct IFilterGraph
: public IUnknown
790 virtual HRESULT STDMETHODCALLTYPE
AddFilter(
791 IBaseFilter
* pFilter
,
794 virtual HRESULT STDMETHODCALLTYPE
RemoveFilter(
795 IBaseFilter
* pFilter
) = 0;
797 virtual HRESULT STDMETHODCALLTYPE
EnumFilters(
798 IEnumFilters
** ppEnum
) = 0;
800 virtual HRESULT STDMETHODCALLTYPE
FindFilterByName(
802 IBaseFilter
** ppFilter
) = 0;
804 virtual HRESULT STDMETHODCALLTYPE
ConnectDirect(
807 const AM_MEDIA_TYPE
* pmt
) = 0;
809 virtual HRESULT STDMETHODCALLTYPE
Reconnect(
812 virtual HRESULT STDMETHODCALLTYPE
Disconnect(
815 virtual HRESULT STDMETHODCALLTYPE
SetDefaultSyncSource(
820 typedef struct IFilterGraphVtbl IFilterGraphVtbl
;
821 struct IFilterGraph
{
822 const IFilterGraphVtbl
* lpVtbl
;
824 struct IFilterGraphVtbl
{
825 ICOM_MSVTABLE_COMPAT_FIELDS
827 /*** IUnknown methods ***/
828 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
833 ULONG (STDMETHODCALLTYPE
*AddRef
)(
836 ULONG (STDMETHODCALLTYPE
*Release
)(
839 /*** IFilterGraph methods ***/
840 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
842 IBaseFilter
* pFilter
,
845 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
847 IBaseFilter
* pFilter
);
849 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
851 IEnumFilters
** ppEnum
);
853 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
856 IBaseFilter
** ppFilter
);
858 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
862 const AM_MEDIA_TYPE
* pmt
);
864 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
868 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
872 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
877 /*** IUnknown methods ***/
878 #define IFilterGraph_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
879 #define IFilterGraph_AddRef(p) (p)->lpVtbl->AddRef(p)
880 #define IFilterGraph_Release(p) (p)->lpVtbl->Release(p)
881 /*** IFilterGraph methods ***/
882 #define IFilterGraph_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
883 #define IFilterGraph_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
884 #define IFilterGraph_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
885 #define IFilterGraph_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
886 #define IFilterGraph_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
887 #define IFilterGraph_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
888 #define IFilterGraph_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
889 #define IFilterGraph_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
893 #define IFilterGraph_METHODS \
894 ICOM_MSVTABLE_COMPAT_FIELDS \
895 /*** IUnknown methods ***/ \
896 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
897 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
898 STDMETHOD_(ULONG,Release)(THIS) PURE; \
899 /*** IFilterGraph methods ***/ \
900 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
901 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
902 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
903 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
904 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
905 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
906 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
907 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE;
909 HRESULT CALLBACK
IFilterGraph_AddFilter_Proxy(
911 IBaseFilter
* pFilter
,
913 void __RPC_STUB
IFilterGraph_AddFilter_Stub(
914 struct IRpcStubBuffer
* This
,
915 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
916 PRPC_MESSAGE pRpcMessage
,
917 DWORD
* pdwStubPhase
);
918 HRESULT CALLBACK
IFilterGraph_RemoveFilter_Proxy(
920 IBaseFilter
* pFilter
);
921 void __RPC_STUB
IFilterGraph_RemoveFilter_Stub(
922 struct IRpcStubBuffer
* This
,
923 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
924 PRPC_MESSAGE pRpcMessage
,
925 DWORD
* pdwStubPhase
);
926 HRESULT CALLBACK
IFilterGraph_EnumFilters_Proxy(
928 IEnumFilters
** ppEnum
);
929 void __RPC_STUB
IFilterGraph_EnumFilters_Stub(
930 struct IRpcStubBuffer
* This
,
931 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
932 PRPC_MESSAGE pRpcMessage
,
933 DWORD
* pdwStubPhase
);
934 HRESULT CALLBACK
IFilterGraph_FindFilterByName_Proxy(
937 IBaseFilter
** ppFilter
);
938 void __RPC_STUB
IFilterGraph_FindFilterByName_Stub(
939 struct IRpcStubBuffer
* This
,
940 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
941 PRPC_MESSAGE pRpcMessage
,
942 DWORD
* pdwStubPhase
);
943 HRESULT CALLBACK
IFilterGraph_ConnectDirect_Proxy(
947 const AM_MEDIA_TYPE
* pmt
);
948 void __RPC_STUB
IFilterGraph_ConnectDirect_Stub(
949 struct IRpcStubBuffer
* This
,
950 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
951 PRPC_MESSAGE pRpcMessage
,
952 DWORD
* pdwStubPhase
);
953 HRESULT CALLBACK
IFilterGraph_Reconnect_Proxy(
956 void __RPC_STUB
IFilterGraph_Reconnect_Stub(
957 struct IRpcStubBuffer
* This
,
958 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
959 PRPC_MESSAGE pRpcMessage
,
960 DWORD
* pdwStubPhase
);
961 HRESULT CALLBACK
IFilterGraph_Disconnect_Proxy(
964 void __RPC_STUB
IFilterGraph_Disconnect_Stub(
965 struct IRpcStubBuffer
* This
,
966 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
967 PRPC_MESSAGE pRpcMessage
,
968 DWORD
* pdwStubPhase
);
969 HRESULT CALLBACK
IFilterGraph_SetDefaultSyncSource_Proxy(
971 void __RPC_STUB
IFilterGraph_SetDefaultSyncSource_Stub(
972 struct IRpcStubBuffer
* This
,
973 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
974 PRPC_MESSAGE pRpcMessage
,
975 DWORD
* pdwStubPhase
);
977 #endif /* __IFilterGraph_INTERFACE_DEFINED__ */
979 typedef IFilterGraph
*PFILTERGRAPH
;
981 /*****************************************************************************
982 * IEnumFilters interface
984 #ifndef __IEnumFilters_INTERFACE_DEFINED__
985 #define __IEnumFilters_INTERFACE_DEFINED__
987 DEFINE_GUID(IID_IEnumFilters
, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
988 #if defined(__cplusplus) && !defined(CINTERFACE)
989 struct IEnumFilters
: public IUnknown
991 virtual HRESULT STDMETHODCALLTYPE
Next(
993 IBaseFilter
** ppFilter
,
994 ULONG
* pcFetched
) = 0;
996 virtual HRESULT STDMETHODCALLTYPE
Skip(
999 virtual HRESULT STDMETHODCALLTYPE
Reset(
1002 virtual HRESULT STDMETHODCALLTYPE
Clone(
1003 IEnumFilters
** ppEnum
) = 0;
1007 typedef struct IEnumFiltersVtbl IEnumFiltersVtbl
;
1008 struct IEnumFilters
{
1009 const IEnumFiltersVtbl
* lpVtbl
;
1011 struct IEnumFiltersVtbl
{
1012 ICOM_MSVTABLE_COMPAT_FIELDS
1014 /*** IUnknown methods ***/
1015 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1020 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1021 IEnumFilters
* This
);
1023 ULONG (STDMETHODCALLTYPE
*Release
)(
1024 IEnumFilters
* This
);
1026 /*** IEnumFilters methods ***/
1027 HRESULT (STDMETHODCALLTYPE
*Next
)(
1030 IBaseFilter
** ppFilter
,
1033 HRESULT (STDMETHODCALLTYPE
*Skip
)(
1037 HRESULT (STDMETHODCALLTYPE
*Reset
)(
1038 IEnumFilters
* This
);
1040 HRESULT (STDMETHODCALLTYPE
*Clone
)(
1042 IEnumFilters
** ppEnum
);
1046 /*** IUnknown methods ***/
1047 #define IEnumFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1048 #define IEnumFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
1049 #define IEnumFilters_Release(p) (p)->lpVtbl->Release(p)
1050 /*** IEnumFilters methods ***/
1051 #define IEnumFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
1052 #define IEnumFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
1053 #define IEnumFilters_Reset(p) (p)->lpVtbl->Reset(p)
1054 #define IEnumFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
1058 #define IEnumFilters_METHODS \
1059 ICOM_MSVTABLE_COMPAT_FIELDS \
1060 /*** IUnknown methods ***/ \
1061 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1062 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1063 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1064 /*** IEnumFilters methods ***/ \
1065 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, IBaseFilter** ppFilter, ULONG* pcFetched) PURE; \
1066 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
1067 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
1068 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumFilters** ppEnum) PURE;
1070 HRESULT CALLBACK
IEnumFilters_Next_Proxy(
1073 IBaseFilter
** ppFilter
,
1075 void __RPC_STUB
IEnumFilters_Next_Stub(
1076 struct IRpcStubBuffer
* This
,
1077 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1078 PRPC_MESSAGE pRpcMessage
,
1079 DWORD
* pdwStubPhase
);
1080 HRESULT CALLBACK
IEnumFilters_Skip_Proxy(
1083 void __RPC_STUB
IEnumFilters_Skip_Stub(
1084 struct IRpcStubBuffer
* This
,
1085 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1086 PRPC_MESSAGE pRpcMessage
,
1087 DWORD
* pdwStubPhase
);
1088 HRESULT CALLBACK
IEnumFilters_Reset_Proxy(
1089 IEnumFilters
* This
);
1090 void __RPC_STUB
IEnumFilters_Reset_Stub(
1091 struct IRpcStubBuffer
* This
,
1092 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1093 PRPC_MESSAGE pRpcMessage
,
1094 DWORD
* pdwStubPhase
);
1095 HRESULT CALLBACK
IEnumFilters_Clone_Proxy(
1097 IEnumFilters
** ppEnum
);
1098 void __RPC_STUB
IEnumFilters_Clone_Stub(
1099 struct IRpcStubBuffer
* This
,
1100 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1101 PRPC_MESSAGE pRpcMessage
,
1102 DWORD
* pdwStubPhase
);
1104 #endif /* __IEnumFilters_INTERFACE_DEFINED__ */
1106 typedef IEnumFilters
*PENUMFILTERS
;
1108 typedef enum _FilterState
{
1114 /*****************************************************************************
1115 * IMediaFilter interface
1117 #ifndef __IMediaFilter_INTERFACE_DEFINED__
1118 #define __IMediaFilter_INTERFACE_DEFINED__
1120 DEFINE_GUID(IID_IMediaFilter
, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1121 #if defined(__cplusplus) && !defined(CINTERFACE)
1122 struct IMediaFilter
: public IPersist
1124 virtual HRESULT STDMETHODCALLTYPE
Stop(
1127 virtual HRESULT STDMETHODCALLTYPE
Pause(
1130 virtual HRESULT STDMETHODCALLTYPE
Run(
1131 REFERENCE_TIME tStart
) = 0;
1133 virtual HRESULT STDMETHODCALLTYPE
GetState(
1134 DWORD dwMilliSecsTimeout
,
1135 FILTER_STATE
* State
) = 0;
1137 virtual HRESULT STDMETHODCALLTYPE
SetSyncSource(
1138 IReferenceClock
* pClock
) = 0;
1140 virtual HRESULT STDMETHODCALLTYPE
GetSyncSource(
1141 IReferenceClock
** pClock
) = 0;
1145 typedef struct IMediaFilterVtbl IMediaFilterVtbl
;
1146 struct IMediaFilter
{
1147 const IMediaFilterVtbl
* lpVtbl
;
1149 struct IMediaFilterVtbl
{
1150 ICOM_MSVTABLE_COMPAT_FIELDS
1152 /*** IUnknown methods ***/
1153 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1158 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1159 IMediaFilter
* This
);
1161 ULONG (STDMETHODCALLTYPE
*Release
)(
1162 IMediaFilter
* This
);
1164 /*** IPersist methods ***/
1165 HRESULT (STDMETHODCALLTYPE
*GetClassID
)(
1169 /*** IMediaFilter methods ***/
1170 HRESULT (STDMETHODCALLTYPE
*Stop
)(
1171 IMediaFilter
* This
);
1173 HRESULT (STDMETHODCALLTYPE
*Pause
)(
1174 IMediaFilter
* This
);
1176 HRESULT (STDMETHODCALLTYPE
*Run
)(
1178 REFERENCE_TIME tStart
);
1180 HRESULT (STDMETHODCALLTYPE
*GetState
)(
1182 DWORD dwMilliSecsTimeout
,
1183 FILTER_STATE
* State
);
1185 HRESULT (STDMETHODCALLTYPE
*SetSyncSource
)(
1187 IReferenceClock
* pClock
);
1189 HRESULT (STDMETHODCALLTYPE
*GetSyncSource
)(
1191 IReferenceClock
** pClock
);
1195 /*** IUnknown methods ***/
1196 #define IMediaFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1197 #define IMediaFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
1198 #define IMediaFilter_Release(p) (p)->lpVtbl->Release(p)
1199 /*** IPersist methods ***/
1200 #define IMediaFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1201 /*** IMediaFilter methods ***/
1202 #define IMediaFilter_Stop(p) (p)->lpVtbl->Stop(p)
1203 #define IMediaFilter_Pause(p) (p)->lpVtbl->Pause(p)
1204 #define IMediaFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
1205 #define IMediaFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
1206 #define IMediaFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
1207 #define IMediaFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
1211 #define IMediaFilter_METHODS \
1212 ICOM_MSVTABLE_COMPAT_FIELDS \
1213 /*** IUnknown methods ***/ \
1214 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1215 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1216 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1217 /*** IPersist methods ***/ \
1218 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
1219 /*** IMediaFilter methods ***/ \
1220 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
1221 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
1222 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
1223 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
1224 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
1225 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE;
1227 HRESULT CALLBACK
IMediaFilter_Stop_Proxy(
1228 IMediaFilter
* This
);
1229 void __RPC_STUB
IMediaFilter_Stop_Stub(
1230 struct IRpcStubBuffer
* This
,
1231 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1232 PRPC_MESSAGE pRpcMessage
,
1233 DWORD
* pdwStubPhase
);
1234 HRESULT CALLBACK
IMediaFilter_Pause_Proxy(
1235 IMediaFilter
* This
);
1236 void __RPC_STUB
IMediaFilter_Pause_Stub(
1237 struct IRpcStubBuffer
* This
,
1238 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1239 PRPC_MESSAGE pRpcMessage
,
1240 DWORD
* pdwStubPhase
);
1241 HRESULT CALLBACK
IMediaFilter_Run_Proxy(
1243 REFERENCE_TIME tStart
);
1244 void __RPC_STUB
IMediaFilter_Run_Stub(
1245 struct IRpcStubBuffer
* This
,
1246 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1247 PRPC_MESSAGE pRpcMessage
,
1248 DWORD
* pdwStubPhase
);
1249 HRESULT CALLBACK
IMediaFilter_GetState_Proxy(
1251 DWORD dwMilliSecsTimeout
,
1252 FILTER_STATE
* State
);
1253 void __RPC_STUB
IMediaFilter_GetState_Stub(
1254 struct IRpcStubBuffer
* This
,
1255 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1256 PRPC_MESSAGE pRpcMessage
,
1257 DWORD
* pdwStubPhase
);
1258 HRESULT CALLBACK
IMediaFilter_SetSyncSource_Proxy(
1260 IReferenceClock
* pClock
);
1261 void __RPC_STUB
IMediaFilter_SetSyncSource_Stub(
1262 struct IRpcStubBuffer
* This
,
1263 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1264 PRPC_MESSAGE pRpcMessage
,
1265 DWORD
* pdwStubPhase
);
1266 HRESULT CALLBACK
IMediaFilter_GetSyncSource_Proxy(
1268 IReferenceClock
** pClock
);
1269 void __RPC_STUB
IMediaFilter_GetSyncSource_Stub(
1270 struct IRpcStubBuffer
* This
,
1271 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1272 PRPC_MESSAGE pRpcMessage
,
1273 DWORD
* pdwStubPhase
);
1275 #endif /* __IMediaFilter_INTERFACE_DEFINED__ */
1277 typedef IMediaFilter
*PMEDIAFILTER
;
1279 typedef struct _FilterInfo
{
1281 IFilterGraph
*pGraph
;
1284 /*****************************************************************************
1285 * IBaseFilter interface
1287 #ifndef __IBaseFilter_INTERFACE_DEFINED__
1288 #define __IBaseFilter_INTERFACE_DEFINED__
1290 DEFINE_GUID(IID_IBaseFilter
, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1291 #if defined(__cplusplus) && !defined(CINTERFACE)
1292 struct IBaseFilter
: public IMediaFilter
1294 virtual HRESULT STDMETHODCALLTYPE
EnumPins(
1295 IEnumPins
** ppEnum
) = 0;
1297 virtual HRESULT STDMETHODCALLTYPE
FindPin(
1301 virtual HRESULT STDMETHODCALLTYPE
QueryFilterInfo(
1302 FILTER_INFO
* pInfo
) = 0;
1304 virtual HRESULT STDMETHODCALLTYPE
JoinFilterGraph(
1305 IFilterGraph
* pGraph
,
1308 virtual HRESULT STDMETHODCALLTYPE
QueryVendorInfo(
1309 LPWSTR
* pVendorInfo
) = 0;
1313 typedef struct IBaseFilterVtbl IBaseFilterVtbl
;
1314 struct IBaseFilter
{
1315 const IBaseFilterVtbl
* lpVtbl
;
1317 struct IBaseFilterVtbl
{
1318 ICOM_MSVTABLE_COMPAT_FIELDS
1320 /*** IUnknown methods ***/
1321 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1326 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1329 ULONG (STDMETHODCALLTYPE
*Release
)(
1332 /*** IPersist methods ***/
1333 HRESULT (STDMETHODCALLTYPE
*GetClassID
)(
1337 /*** IMediaFilter methods ***/
1338 HRESULT (STDMETHODCALLTYPE
*Stop
)(
1341 HRESULT (STDMETHODCALLTYPE
*Pause
)(
1344 HRESULT (STDMETHODCALLTYPE
*Run
)(
1346 REFERENCE_TIME tStart
);
1348 HRESULT (STDMETHODCALLTYPE
*GetState
)(
1350 DWORD dwMilliSecsTimeout
,
1351 FILTER_STATE
* State
);
1353 HRESULT (STDMETHODCALLTYPE
*SetSyncSource
)(
1355 IReferenceClock
* pClock
);
1357 HRESULT (STDMETHODCALLTYPE
*GetSyncSource
)(
1359 IReferenceClock
** pClock
);
1361 /*** IBaseFilter methods ***/
1362 HRESULT (STDMETHODCALLTYPE
*EnumPins
)(
1364 IEnumPins
** ppEnum
);
1366 HRESULT (STDMETHODCALLTYPE
*FindPin
)(
1371 HRESULT (STDMETHODCALLTYPE
*QueryFilterInfo
)(
1373 FILTER_INFO
* pInfo
);
1375 HRESULT (STDMETHODCALLTYPE
*JoinFilterGraph
)(
1377 IFilterGraph
* pGraph
,
1380 HRESULT (STDMETHODCALLTYPE
*QueryVendorInfo
)(
1382 LPWSTR
* pVendorInfo
);
1386 /*** IUnknown methods ***/
1387 #define IBaseFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1388 #define IBaseFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
1389 #define IBaseFilter_Release(p) (p)->lpVtbl->Release(p)
1390 /*** IPersist methods ***/
1391 #define IBaseFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
1392 /*** IMediaFilter methods ***/
1393 #define IBaseFilter_Stop(p) (p)->lpVtbl->Stop(p)
1394 #define IBaseFilter_Pause(p) (p)->lpVtbl->Pause(p)
1395 #define IBaseFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
1396 #define IBaseFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
1397 #define IBaseFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
1398 #define IBaseFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
1399 /*** IBaseFilter methods ***/
1400 #define IBaseFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a)
1401 #define IBaseFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b)
1402 #define IBaseFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a)
1403 #define IBaseFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b)
1404 #define IBaseFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a)
1408 #define IBaseFilter_METHODS \
1409 ICOM_MSVTABLE_COMPAT_FIELDS \
1410 /*** IUnknown methods ***/ \
1411 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1412 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1413 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1414 /*** IPersist methods ***/ \
1415 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
1416 /*** IMediaFilter methods ***/ \
1417 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
1418 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
1419 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
1420 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
1421 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
1422 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \
1423 /*** IBaseFilter methods ***/ \
1424 STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \
1425 STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \
1426 STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \
1427 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \
1428 STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE;
1430 HRESULT CALLBACK
IBaseFilter_EnumPins_Proxy(
1432 IEnumPins
** ppEnum
);
1433 void __RPC_STUB
IBaseFilter_EnumPins_Stub(
1434 struct IRpcStubBuffer
* This
,
1435 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1436 PRPC_MESSAGE pRpcMessage
,
1437 DWORD
* pdwStubPhase
);
1438 HRESULT CALLBACK
IBaseFilter_FindPin_Proxy(
1442 void __RPC_STUB
IBaseFilter_FindPin_Stub(
1443 struct IRpcStubBuffer
* This
,
1444 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1445 PRPC_MESSAGE pRpcMessage
,
1446 DWORD
* pdwStubPhase
);
1447 HRESULT CALLBACK
IBaseFilter_QueryFilterInfo_Proxy(
1449 FILTER_INFO
* pInfo
);
1450 void __RPC_STUB
IBaseFilter_QueryFilterInfo_Stub(
1451 struct IRpcStubBuffer
* This
,
1452 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1453 PRPC_MESSAGE pRpcMessage
,
1454 DWORD
* pdwStubPhase
);
1455 HRESULT CALLBACK
IBaseFilter_JoinFilterGraph_Proxy(
1457 IFilterGraph
* pGraph
,
1459 void __RPC_STUB
IBaseFilter_JoinFilterGraph_Stub(
1460 struct IRpcStubBuffer
* This
,
1461 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1462 PRPC_MESSAGE pRpcMessage
,
1463 DWORD
* pdwStubPhase
);
1464 HRESULT CALLBACK
IBaseFilter_QueryVendorInfo_Proxy(
1466 LPWSTR
* pVendorInfo
);
1467 void __RPC_STUB
IBaseFilter_QueryVendorInfo_Stub(
1468 struct IRpcStubBuffer
* This
,
1469 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1470 PRPC_MESSAGE pRpcMessage
,
1471 DWORD
* pdwStubPhase
);
1473 #endif /* __IBaseFilter_INTERFACE_DEFINED__ */
1475 typedef IBaseFilter
*PFILTER
;
1477 /*****************************************************************************
1478 * IReferenceClock interface
1480 #ifndef __IReferenceClock_INTERFACE_DEFINED__
1481 #define __IReferenceClock_INTERFACE_DEFINED__
1483 DEFINE_GUID(IID_IReferenceClock
, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1484 #if defined(__cplusplus) && !defined(CINTERFACE)
1485 struct IReferenceClock
: public IUnknown
1487 virtual HRESULT STDMETHODCALLTYPE
GetTime(
1488 REFERENCE_TIME
* pTime
) = 0;
1490 virtual HRESULT STDMETHODCALLTYPE
AdviseTime(
1491 REFERENCE_TIME baseTime
,
1492 REFERENCE_TIME streamTime
,
1494 DWORD_PTR
* pdwAdviseCookie
) = 0;
1496 virtual HRESULT STDMETHODCALLTYPE
AdvisePeriodic(
1497 REFERENCE_TIME startTime
,
1498 REFERENCE_TIME periodTime
,
1499 HSEMAPHORE hSemaphore
,
1500 DWORD_PTR
* pdwAdviseCookie
) = 0;
1502 virtual HRESULT STDMETHODCALLTYPE
Unadvise(
1503 DWORD_PTR dwAdviseCookie
) = 0;
1507 typedef struct IReferenceClockVtbl IReferenceClockVtbl
;
1508 struct IReferenceClock
{
1509 const IReferenceClockVtbl
* lpVtbl
;
1511 struct IReferenceClockVtbl
{
1512 ICOM_MSVTABLE_COMPAT_FIELDS
1514 /*** IUnknown methods ***/
1515 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1516 IReferenceClock
* This
,
1520 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1521 IReferenceClock
* This
);
1523 ULONG (STDMETHODCALLTYPE
*Release
)(
1524 IReferenceClock
* This
);
1526 /*** IReferenceClock methods ***/
1527 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
1528 IReferenceClock
* This
,
1529 REFERENCE_TIME
* pTime
);
1531 HRESULT (STDMETHODCALLTYPE
*AdviseTime
)(
1532 IReferenceClock
* This
,
1533 REFERENCE_TIME baseTime
,
1534 REFERENCE_TIME streamTime
,
1536 DWORD_PTR
* pdwAdviseCookie
);
1538 HRESULT (STDMETHODCALLTYPE
*AdvisePeriodic
)(
1539 IReferenceClock
* This
,
1540 REFERENCE_TIME startTime
,
1541 REFERENCE_TIME periodTime
,
1542 HSEMAPHORE hSemaphore
,
1543 DWORD_PTR
* pdwAdviseCookie
);
1545 HRESULT (STDMETHODCALLTYPE
*Unadvise
)(
1546 IReferenceClock
* This
,
1547 DWORD_PTR dwAdviseCookie
);
1551 /*** IUnknown methods ***/
1552 #define IReferenceClock_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1553 #define IReferenceClock_AddRef(p) (p)->lpVtbl->AddRef(p)
1554 #define IReferenceClock_Release(p) (p)->lpVtbl->Release(p)
1555 /*** IReferenceClock methods ***/
1556 #define IReferenceClock_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
1557 #define IReferenceClock_AdviseTime(p,a,b,c,d) (p)->lpVtbl->AdviseTime(p,a,b,c,d)
1558 #define IReferenceClock_AdvisePeriodic(p,a,b,c,d) (p)->lpVtbl->AdvisePeriodic(p,a,b,c,d)
1559 #define IReferenceClock_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
1563 #define IReferenceClock_METHODS \
1564 ICOM_MSVTABLE_COMPAT_FIELDS \
1565 /*** IUnknown methods ***/ \
1566 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1567 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1568 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1569 /*** IReferenceClock methods ***/ \
1570 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTime) PURE; \
1571 STDMETHOD_(HRESULT,AdviseTime)(THIS_ REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR* pdwAdviseCookie) PURE; \
1572 STDMETHOD_(HRESULT,AdvisePeriodic)(THIS_ REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HSEMAPHORE hSemaphore, DWORD_PTR* pdwAdviseCookie) PURE; \
1573 STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD_PTR dwAdviseCookie) PURE;
1575 HRESULT CALLBACK
IReferenceClock_GetTime_Proxy(
1576 IReferenceClock
* This
,
1577 REFERENCE_TIME
* pTime
);
1578 void __RPC_STUB
IReferenceClock_GetTime_Stub(
1579 struct IRpcStubBuffer
* This
,
1580 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1581 PRPC_MESSAGE pRpcMessage
,
1582 DWORD
* pdwStubPhase
);
1583 HRESULT CALLBACK
IReferenceClock_AdviseTime_Proxy(
1584 IReferenceClock
* This
,
1585 REFERENCE_TIME baseTime
,
1586 REFERENCE_TIME streamTime
,
1588 DWORD_PTR
* pdwAdviseCookie
);
1589 void __RPC_STUB
IReferenceClock_AdviseTime_Stub(
1590 struct IRpcStubBuffer
* This
,
1591 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1592 PRPC_MESSAGE pRpcMessage
,
1593 DWORD
* pdwStubPhase
);
1594 HRESULT CALLBACK
IReferenceClock_AdvisePeriodic_Proxy(
1595 IReferenceClock
* This
,
1596 REFERENCE_TIME startTime
,
1597 REFERENCE_TIME periodTime
,
1598 HSEMAPHORE hSemaphore
,
1599 DWORD_PTR
* pdwAdviseCookie
);
1600 void __RPC_STUB
IReferenceClock_AdvisePeriodic_Stub(
1601 struct IRpcStubBuffer
* This
,
1602 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1603 PRPC_MESSAGE pRpcMessage
,
1604 DWORD
* pdwStubPhase
);
1605 HRESULT CALLBACK
IReferenceClock_Unadvise_Proxy(
1606 IReferenceClock
* This
,
1607 DWORD_PTR dwAdviseCookie
);
1608 void __RPC_STUB
IReferenceClock_Unadvise_Stub(
1609 struct IRpcStubBuffer
* This
,
1610 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1611 PRPC_MESSAGE pRpcMessage
,
1612 DWORD
* pdwStubPhase
);
1614 #endif /* __IReferenceClock_INTERFACE_DEFINED__ */
1616 typedef IReferenceClock
*PREFERENCECLOCK
;
1618 /*****************************************************************************
1619 * IMediaSample interface
1621 #ifndef __IMediaSample_INTERFACE_DEFINED__
1622 #define __IMediaSample_INTERFACE_DEFINED__
1624 DEFINE_GUID(IID_IMediaSample
, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
1625 #if defined(__cplusplus) && !defined(CINTERFACE)
1626 struct IMediaSample
: public IUnknown
1628 virtual HRESULT STDMETHODCALLTYPE
GetPointer(
1629 BYTE
** ppBuffer
) = 0;
1631 virtual long STDMETHODCALLTYPE
GetSize(
1634 virtual HRESULT STDMETHODCALLTYPE
GetTime(
1635 REFERENCE_TIME
* pTimeStart
,
1636 REFERENCE_TIME
* pTimeEnd
) = 0;
1638 virtual HRESULT STDMETHODCALLTYPE
SetTime(
1639 REFERENCE_TIME
* pTimeStart
,
1640 REFERENCE_TIME
* pTimeEnd
) = 0;
1642 virtual HRESULT STDMETHODCALLTYPE
IsSyncPoint(
1645 virtual HRESULT STDMETHODCALLTYPE
SetSyncPoint(
1646 BOOL bIsSyncPoint
) = 0;
1648 virtual HRESULT STDMETHODCALLTYPE
IsPreroll(
1651 virtual HRESULT STDMETHODCALLTYPE
SetPreroll(
1652 BOOL bIsPreroll
) = 0;
1654 virtual long STDMETHODCALLTYPE
GetActualDataLength(
1657 virtual HRESULT STDMETHODCALLTYPE
SetActualDataLength(
1660 virtual HRESULT STDMETHODCALLTYPE
GetMediaType(
1661 AM_MEDIA_TYPE
** ppMediaType
) = 0;
1663 virtual HRESULT STDMETHODCALLTYPE
SetMediaType(
1664 AM_MEDIA_TYPE
* pMediaType
) = 0;
1666 virtual HRESULT STDMETHODCALLTYPE
IsDiscontinuity(
1669 virtual HRESULT STDMETHODCALLTYPE
SetDiscontinuity(
1670 BOOL bDiscontinuity
) = 0;
1672 virtual HRESULT STDMETHODCALLTYPE
GetMediaTime(
1673 LONGLONG
* pTimeStart
,
1674 LONGLONG
* pTimeEnd
) = 0;
1676 virtual HRESULT STDMETHODCALLTYPE
SetMediaTime(
1677 LONGLONG
* pTimeStart
,
1678 LONGLONG
* pTimeEnd
) = 0;
1682 typedef struct IMediaSampleVtbl IMediaSampleVtbl
;
1683 struct IMediaSample
{
1684 const IMediaSampleVtbl
* lpVtbl
;
1686 struct IMediaSampleVtbl
{
1687 ICOM_MSVTABLE_COMPAT_FIELDS
1689 /*** IUnknown methods ***/
1690 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1695 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1696 IMediaSample
* This
);
1698 ULONG (STDMETHODCALLTYPE
*Release
)(
1699 IMediaSample
* This
);
1701 /*** IMediaSample methods ***/
1702 HRESULT (STDMETHODCALLTYPE
*GetPointer
)(
1706 long (STDMETHODCALLTYPE
*GetSize
)(
1707 IMediaSample
* This
);
1709 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
1711 REFERENCE_TIME
* pTimeStart
,
1712 REFERENCE_TIME
* pTimeEnd
);
1714 HRESULT (STDMETHODCALLTYPE
*SetTime
)(
1716 REFERENCE_TIME
* pTimeStart
,
1717 REFERENCE_TIME
* pTimeEnd
);
1719 HRESULT (STDMETHODCALLTYPE
*IsSyncPoint
)(
1720 IMediaSample
* This
);
1722 HRESULT (STDMETHODCALLTYPE
*SetSyncPoint
)(
1726 HRESULT (STDMETHODCALLTYPE
*IsPreroll
)(
1727 IMediaSample
* This
);
1729 HRESULT (STDMETHODCALLTYPE
*SetPreroll
)(
1733 long (STDMETHODCALLTYPE
*GetActualDataLength
)(
1734 IMediaSample
* This
);
1736 HRESULT (STDMETHODCALLTYPE
*SetActualDataLength
)(
1740 HRESULT (STDMETHODCALLTYPE
*GetMediaType
)(
1742 AM_MEDIA_TYPE
** ppMediaType
);
1744 HRESULT (STDMETHODCALLTYPE
*SetMediaType
)(
1746 AM_MEDIA_TYPE
* pMediaType
);
1748 HRESULT (STDMETHODCALLTYPE
*IsDiscontinuity
)(
1749 IMediaSample
* This
);
1751 HRESULT (STDMETHODCALLTYPE
*SetDiscontinuity
)(
1753 BOOL bDiscontinuity
);
1755 HRESULT (STDMETHODCALLTYPE
*GetMediaTime
)(
1757 LONGLONG
* pTimeStart
,
1758 LONGLONG
* pTimeEnd
);
1760 HRESULT (STDMETHODCALLTYPE
*SetMediaTime
)(
1762 LONGLONG
* pTimeStart
,
1763 LONGLONG
* pTimeEnd
);
1767 /*** IUnknown methods ***/
1768 #define IMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1769 #define IMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p)
1770 #define IMediaSample_Release(p) (p)->lpVtbl->Release(p)
1771 /*** IMediaSample methods ***/
1772 #define IMediaSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
1773 #define IMediaSample_GetSize(p) (p)->lpVtbl->GetSize(p)
1774 #define IMediaSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
1775 #define IMediaSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
1776 #define IMediaSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
1777 #define IMediaSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
1778 #define IMediaSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
1779 #define IMediaSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
1780 #define IMediaSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
1781 #define IMediaSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
1782 #define IMediaSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
1783 #define IMediaSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
1784 #define IMediaSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
1785 #define IMediaSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
1786 #define IMediaSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
1787 #define IMediaSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
1791 #define IMediaSample_METHODS \
1792 ICOM_MSVTABLE_COMPAT_FIELDS \
1793 /*** IUnknown methods ***/ \
1794 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1795 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1796 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1797 /*** IMediaSample methods ***/ \
1798 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
1799 STDMETHOD_(long,GetSize)(THIS) PURE; \
1800 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1801 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1802 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
1803 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
1804 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
1805 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
1806 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
1807 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
1808 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
1809 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
1810 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
1811 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
1812 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
1813 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE;
1815 HRESULT CALLBACK
IMediaSample_GetPointer_Proxy(
1818 void __RPC_STUB
IMediaSample_GetPointer_Stub(
1819 struct IRpcStubBuffer
* This
,
1820 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1821 PRPC_MESSAGE pRpcMessage
,
1822 DWORD
* pdwStubPhase
);
1823 long CALLBACK
IMediaSample_GetSize_Proxy(
1824 IMediaSample
* This
);
1825 void __RPC_STUB
IMediaSample_GetSize_Stub(
1826 struct IRpcStubBuffer
* This
,
1827 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1828 PRPC_MESSAGE pRpcMessage
,
1829 DWORD
* pdwStubPhase
);
1830 HRESULT CALLBACK
IMediaSample_GetTime_Proxy(
1832 REFERENCE_TIME
* pTimeStart
,
1833 REFERENCE_TIME
* pTimeEnd
);
1834 void __RPC_STUB
IMediaSample_GetTime_Stub(
1835 struct IRpcStubBuffer
* This
,
1836 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1837 PRPC_MESSAGE pRpcMessage
,
1838 DWORD
* pdwStubPhase
);
1839 HRESULT CALLBACK
IMediaSample_SetTime_Proxy(
1841 REFERENCE_TIME
* pTimeStart
,
1842 REFERENCE_TIME
* pTimeEnd
);
1843 void __RPC_STUB
IMediaSample_SetTime_Stub(
1844 struct IRpcStubBuffer
* This
,
1845 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1846 PRPC_MESSAGE pRpcMessage
,
1847 DWORD
* pdwStubPhase
);
1848 HRESULT CALLBACK
IMediaSample_IsSyncPoint_Proxy(
1849 IMediaSample
* This
);
1850 void __RPC_STUB
IMediaSample_IsSyncPoint_Stub(
1851 struct IRpcStubBuffer
* This
,
1852 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1853 PRPC_MESSAGE pRpcMessage
,
1854 DWORD
* pdwStubPhase
);
1855 HRESULT CALLBACK
IMediaSample_SetSyncPoint_Proxy(
1858 void __RPC_STUB
IMediaSample_SetSyncPoint_Stub(
1859 struct IRpcStubBuffer
* This
,
1860 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1861 PRPC_MESSAGE pRpcMessage
,
1862 DWORD
* pdwStubPhase
);
1863 HRESULT CALLBACK
IMediaSample_IsPreroll_Proxy(
1864 IMediaSample
* This
);
1865 void __RPC_STUB
IMediaSample_IsPreroll_Stub(
1866 struct IRpcStubBuffer
* This
,
1867 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1868 PRPC_MESSAGE pRpcMessage
,
1869 DWORD
* pdwStubPhase
);
1870 HRESULT CALLBACK
IMediaSample_SetPreroll_Proxy(
1873 void __RPC_STUB
IMediaSample_SetPreroll_Stub(
1874 struct IRpcStubBuffer
* This
,
1875 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1876 PRPC_MESSAGE pRpcMessage
,
1877 DWORD
* pdwStubPhase
);
1878 long CALLBACK
IMediaSample_GetActualDataLength_Proxy(
1879 IMediaSample
* This
);
1880 void __RPC_STUB
IMediaSample_GetActualDataLength_Stub(
1881 struct IRpcStubBuffer
* This
,
1882 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1883 PRPC_MESSAGE pRpcMessage
,
1884 DWORD
* pdwStubPhase
);
1885 HRESULT CALLBACK
IMediaSample_SetActualDataLength_Proxy(
1888 void __RPC_STUB
IMediaSample_SetActualDataLength_Stub(
1889 struct IRpcStubBuffer
* This
,
1890 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1891 PRPC_MESSAGE pRpcMessage
,
1892 DWORD
* pdwStubPhase
);
1893 HRESULT CALLBACK
IMediaSample_GetMediaType_Proxy(
1895 AM_MEDIA_TYPE
** ppMediaType
);
1896 void __RPC_STUB
IMediaSample_GetMediaType_Stub(
1897 struct IRpcStubBuffer
* This
,
1898 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1899 PRPC_MESSAGE pRpcMessage
,
1900 DWORD
* pdwStubPhase
);
1901 HRESULT CALLBACK
IMediaSample_SetMediaType_Proxy(
1903 AM_MEDIA_TYPE
* pMediaType
);
1904 void __RPC_STUB
IMediaSample_SetMediaType_Stub(
1905 struct IRpcStubBuffer
* This
,
1906 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1907 PRPC_MESSAGE pRpcMessage
,
1908 DWORD
* pdwStubPhase
);
1909 HRESULT CALLBACK
IMediaSample_IsDiscontinuity_Proxy(
1910 IMediaSample
* This
);
1911 void __RPC_STUB
IMediaSample_IsDiscontinuity_Stub(
1912 struct IRpcStubBuffer
* This
,
1913 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1914 PRPC_MESSAGE pRpcMessage
,
1915 DWORD
* pdwStubPhase
);
1916 HRESULT CALLBACK
IMediaSample_SetDiscontinuity_Proxy(
1918 BOOL bDiscontinuity
);
1919 void __RPC_STUB
IMediaSample_SetDiscontinuity_Stub(
1920 struct IRpcStubBuffer
* This
,
1921 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1922 PRPC_MESSAGE pRpcMessage
,
1923 DWORD
* pdwStubPhase
);
1924 HRESULT CALLBACK
IMediaSample_GetMediaTime_Proxy(
1926 LONGLONG
* pTimeStart
,
1927 LONGLONG
* pTimeEnd
);
1928 void __RPC_STUB
IMediaSample_GetMediaTime_Stub(
1929 struct IRpcStubBuffer
* This
,
1930 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1931 PRPC_MESSAGE pRpcMessage
,
1932 DWORD
* pdwStubPhase
);
1933 HRESULT CALLBACK
IMediaSample_SetMediaTime_Proxy(
1935 LONGLONG
* pTimeStart
,
1936 LONGLONG
* pTimeEnd
);
1937 void __RPC_STUB
IMediaSample_SetMediaTime_Stub(
1938 struct IRpcStubBuffer
* This
,
1939 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1940 PRPC_MESSAGE pRpcMessage
,
1941 DWORD
* pdwStubPhase
);
1943 #endif /* __IMediaSample_INTERFACE_DEFINED__ */
1945 typedef IMediaSample
*PMEDIASAMPLE
;
1947 enum tagAM_SAMPLE_PROPERTY_FLAGS
{
1948 AM_SAMPLE_SPLICEPOINT
= 0x1,
1949 AM_SAMPLE_PREROLL
= 0x2,
1950 AM_SAMPLE_DATADISCONTINUITY
= 0x4,
1951 AM_SAMPLE_TYPECHANGED
= 0x8,
1952 AM_SAMPLE_TIMEVALID
= 0x10,
1953 AM_SAMPLE_TIMEDISCONTINUITY
= 0x40,
1954 AM_SAMPLE_FLUSH_ON_PAUSE
= 0x80,
1955 AM_SAMPLE_STOPVALID
= 0x100,
1956 AM_SAMPLE_ENDOFSTREAM
= 0x200,
1957 AM_STREAM_MEDIA
= 0,
1958 AM_STREAM_CONTROL
= 1
1961 typedef struct tagAM_SAMPLE2_PROPERTIES
{
1963 DWORD dwTypeSpecificFlags
;
1964 DWORD dwSampleFlags
;
1966 REFERENCE_TIME tStart
;
1967 REFERENCE_TIME tStop
;
1969 AM_MEDIA_TYPE
*pMediaType
;
1972 } AM_SAMPLE2_PROPERTIES
;
1974 #ifndef __IMediaSample2_FWD_DEFINED__
1975 #define __IMediaSample2_FWD_DEFINED__
1976 typedef struct IMediaSample2 IMediaSample2
;
1979 /*****************************************************************************
1980 * IMediaSample2 interface
1982 #ifndef __IMediaSample2_INTERFACE_DEFINED__
1983 #define __IMediaSample2_INTERFACE_DEFINED__
1985 DEFINE_GUID(IID_IMediaSample2
, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
1986 #if defined(__cplusplus) && !defined(CINTERFACE)
1987 struct IMediaSample2
: public IMediaSample
1989 virtual HRESULT STDMETHODCALLTYPE
GetProperties(
1991 BYTE
* pbProperties
) = 0;
1993 virtual HRESULT STDMETHODCALLTYPE
SetProperties(
1995 const BYTE
* pbProperties
) = 0;
1999 typedef struct IMediaSample2Vtbl IMediaSample2Vtbl
;
2000 struct IMediaSample2
{
2001 const IMediaSample2Vtbl
* lpVtbl
;
2003 struct IMediaSample2Vtbl
{
2004 ICOM_MSVTABLE_COMPAT_FIELDS
2006 /*** IUnknown methods ***/
2007 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2008 IMediaSample2
* This
,
2012 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2013 IMediaSample2
* This
);
2015 ULONG (STDMETHODCALLTYPE
*Release
)(
2016 IMediaSample2
* This
);
2018 /*** IMediaSample methods ***/
2019 HRESULT (STDMETHODCALLTYPE
*GetPointer
)(
2020 IMediaSample2
* This
,
2023 long (STDMETHODCALLTYPE
*GetSize
)(
2024 IMediaSample2
* This
);
2026 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
2027 IMediaSample2
* This
,
2028 REFERENCE_TIME
* pTimeStart
,
2029 REFERENCE_TIME
* pTimeEnd
);
2031 HRESULT (STDMETHODCALLTYPE
*SetTime
)(
2032 IMediaSample2
* This
,
2033 REFERENCE_TIME
* pTimeStart
,
2034 REFERENCE_TIME
* pTimeEnd
);
2036 HRESULT (STDMETHODCALLTYPE
*IsSyncPoint
)(
2037 IMediaSample2
* This
);
2039 HRESULT (STDMETHODCALLTYPE
*SetSyncPoint
)(
2040 IMediaSample2
* This
,
2043 HRESULT (STDMETHODCALLTYPE
*IsPreroll
)(
2044 IMediaSample2
* This
);
2046 HRESULT (STDMETHODCALLTYPE
*SetPreroll
)(
2047 IMediaSample2
* This
,
2050 long (STDMETHODCALLTYPE
*GetActualDataLength
)(
2051 IMediaSample2
* This
);
2053 HRESULT (STDMETHODCALLTYPE
*SetActualDataLength
)(
2054 IMediaSample2
* This
,
2057 HRESULT (STDMETHODCALLTYPE
*GetMediaType
)(
2058 IMediaSample2
* This
,
2059 AM_MEDIA_TYPE
** ppMediaType
);
2061 HRESULT (STDMETHODCALLTYPE
*SetMediaType
)(
2062 IMediaSample2
* This
,
2063 AM_MEDIA_TYPE
* pMediaType
);
2065 HRESULT (STDMETHODCALLTYPE
*IsDiscontinuity
)(
2066 IMediaSample2
* This
);
2068 HRESULT (STDMETHODCALLTYPE
*SetDiscontinuity
)(
2069 IMediaSample2
* This
,
2070 BOOL bDiscontinuity
);
2072 HRESULT (STDMETHODCALLTYPE
*GetMediaTime
)(
2073 IMediaSample2
* This
,
2074 LONGLONG
* pTimeStart
,
2075 LONGLONG
* pTimeEnd
);
2077 HRESULT (STDMETHODCALLTYPE
*SetMediaTime
)(
2078 IMediaSample2
* This
,
2079 LONGLONG
* pTimeStart
,
2080 LONGLONG
* pTimeEnd
);
2082 /*** IMediaSample2 methods ***/
2083 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2084 IMediaSample2
* This
,
2086 BYTE
* pbProperties
);
2088 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2089 IMediaSample2
* This
,
2091 const BYTE
* pbProperties
);
2095 /*** IUnknown methods ***/
2096 #define IMediaSample2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2097 #define IMediaSample2_AddRef(p) (p)->lpVtbl->AddRef(p)
2098 #define IMediaSample2_Release(p) (p)->lpVtbl->Release(p)
2099 /*** IMediaSample methods ***/
2100 #define IMediaSample2_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
2101 #define IMediaSample2_GetSize(p) (p)->lpVtbl->GetSize(p)
2102 #define IMediaSample2_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
2103 #define IMediaSample2_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
2104 #define IMediaSample2_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
2105 #define IMediaSample2_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
2106 #define IMediaSample2_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
2107 #define IMediaSample2_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
2108 #define IMediaSample2_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
2109 #define IMediaSample2_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
2110 #define IMediaSample2_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
2111 #define IMediaSample2_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
2112 #define IMediaSample2_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
2113 #define IMediaSample2_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
2114 #define IMediaSample2_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
2115 #define IMediaSample2_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
2116 /*** IMediaSample2 methods ***/
2117 #define IMediaSample2_GetProperties(p,a,b) (p)->lpVtbl->GetProperties(p,a,b)
2118 #define IMediaSample2_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2122 #define IMediaSample2_METHODS \
2123 ICOM_MSVTABLE_COMPAT_FIELDS \
2124 /*** IUnknown methods ***/ \
2125 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2126 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2127 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2128 /*** IMediaSample methods ***/ \
2129 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
2130 STDMETHOD_(long,GetSize)(THIS) PURE; \
2131 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
2132 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
2133 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
2134 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
2135 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
2136 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
2137 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
2138 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long length) PURE; \
2139 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
2140 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
2141 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
2142 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
2143 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
2144 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
2145 /*** IMediaSample2 methods ***/ \
2146 STDMETHOD_(HRESULT,GetProperties)(THIS_ DWORD cbProperties, BYTE* pbProperties) PURE; \
2147 STDMETHOD_(HRESULT,SetProperties)(THIS_ DWORD cbProperties, const BYTE* pbProperties) PURE;
2149 HRESULT CALLBACK
IMediaSample2_GetProperties_Proxy(
2150 IMediaSample2
* This
,
2152 BYTE
* pbProperties
);
2153 void __RPC_STUB
IMediaSample2_GetProperties_Stub(
2154 struct IRpcStubBuffer
* This
,
2155 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2156 PRPC_MESSAGE pRpcMessage
,
2157 DWORD
* pdwStubPhase
);
2158 HRESULT CALLBACK
IMediaSample2_SetProperties_Proxy(
2159 IMediaSample2
* This
,
2161 const BYTE
* pbProperties
);
2162 void __RPC_STUB
IMediaSample2_SetProperties_Stub(
2163 struct IRpcStubBuffer
* This
,
2164 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2165 PRPC_MESSAGE pRpcMessage
,
2166 DWORD
* pdwStubPhase
);
2168 #endif /* __IMediaSample2_INTERFACE_DEFINED__ */
2170 typedef IMediaSample2
*PMEDIASAMPLE2
;
2172 #define AM_GBF_PREVFRAMESKIPPED 1
2173 #define AM_GBF_NOTASYNCPOINT 2
2174 #define AM_GBF_NOWAIT 4
2175 /*****************************************************************************
2176 * IMemAllocator interface
2178 #ifndef __IMemAllocator_INTERFACE_DEFINED__
2179 #define __IMemAllocator_INTERFACE_DEFINED__
2181 DEFINE_GUID(IID_IMemAllocator
, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2182 #if defined(__cplusplus) && !defined(CINTERFACE)
2183 struct IMemAllocator
: public IUnknown
2185 virtual HRESULT STDMETHODCALLTYPE
SetProperties(
2186 ALLOCATOR_PROPERTIES
* pRequest
,
2187 ALLOCATOR_PROPERTIES
* pActual
) = 0;
2189 virtual HRESULT STDMETHODCALLTYPE
GetProperties(
2190 ALLOCATOR_PROPERTIES
* pProps
) = 0;
2192 virtual HRESULT STDMETHODCALLTYPE
Commit(
2195 virtual HRESULT STDMETHODCALLTYPE
Decommit(
2198 virtual HRESULT STDMETHODCALLTYPE
GetBuffer(
2199 IMediaSample
** ppBuffer
,
2200 REFERENCE_TIME
* pStartTime
,
2201 REFERENCE_TIME
* pEndTime
,
2204 virtual HRESULT STDMETHODCALLTYPE
ReleaseBuffer(
2205 IMediaSample
* pBuffer
) = 0;
2209 typedef struct IMemAllocatorVtbl IMemAllocatorVtbl
;
2210 struct IMemAllocator
{
2211 const IMemAllocatorVtbl
* lpVtbl
;
2213 struct IMemAllocatorVtbl
{
2214 ICOM_MSVTABLE_COMPAT_FIELDS
2216 /*** IUnknown methods ***/
2217 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2218 IMemAllocator
* This
,
2222 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2223 IMemAllocator
* This
);
2225 ULONG (STDMETHODCALLTYPE
*Release
)(
2226 IMemAllocator
* This
);
2228 /*** IMemAllocator methods ***/
2229 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2230 IMemAllocator
* This
,
2231 ALLOCATOR_PROPERTIES
* pRequest
,
2232 ALLOCATOR_PROPERTIES
* pActual
);
2234 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2235 IMemAllocator
* This
,
2236 ALLOCATOR_PROPERTIES
* pProps
);
2238 HRESULT (STDMETHODCALLTYPE
*Commit
)(
2239 IMemAllocator
* This
);
2241 HRESULT (STDMETHODCALLTYPE
*Decommit
)(
2242 IMemAllocator
* This
);
2244 HRESULT (STDMETHODCALLTYPE
*GetBuffer
)(
2245 IMemAllocator
* This
,
2246 IMediaSample
** ppBuffer
,
2247 REFERENCE_TIME
* pStartTime
,
2248 REFERENCE_TIME
* pEndTime
,
2251 HRESULT (STDMETHODCALLTYPE
*ReleaseBuffer
)(
2252 IMemAllocator
* This
,
2253 IMediaSample
* pBuffer
);
2257 /*** IUnknown methods ***/
2258 #define IMemAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2259 #define IMemAllocator_AddRef(p) (p)->lpVtbl->AddRef(p)
2260 #define IMemAllocator_Release(p) (p)->lpVtbl->Release(p)
2261 /*** IMemAllocator methods ***/
2262 #define IMemAllocator_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2263 #define IMemAllocator_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
2264 #define IMemAllocator_Commit(p) (p)->lpVtbl->Commit(p)
2265 #define IMemAllocator_Decommit(p) (p)->lpVtbl->Decommit(p)
2266 #define IMemAllocator_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
2267 #define IMemAllocator_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
2271 #define IMemAllocator_METHODS \
2272 ICOM_MSVTABLE_COMPAT_FIELDS \
2273 /*** IUnknown methods ***/ \
2274 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2275 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2276 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2277 /*** IMemAllocator methods ***/ \
2278 STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
2279 STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2280 STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
2281 STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
2282 STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
2283 STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE;
2285 HRESULT CALLBACK
IMemAllocator_SetProperties_Proxy(
2286 IMemAllocator
* This
,
2287 ALLOCATOR_PROPERTIES
* pRequest
,
2288 ALLOCATOR_PROPERTIES
* pActual
);
2289 void __RPC_STUB
IMemAllocator_SetProperties_Stub(
2290 struct IRpcStubBuffer
* This
,
2291 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2292 PRPC_MESSAGE pRpcMessage
,
2293 DWORD
* pdwStubPhase
);
2294 HRESULT CALLBACK
IMemAllocator_GetProperties_Proxy(
2295 IMemAllocator
* This
,
2296 ALLOCATOR_PROPERTIES
* pProps
);
2297 void __RPC_STUB
IMemAllocator_GetProperties_Stub(
2298 struct IRpcStubBuffer
* This
,
2299 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2300 PRPC_MESSAGE pRpcMessage
,
2301 DWORD
* pdwStubPhase
);
2302 HRESULT CALLBACK
IMemAllocator_Commit_Proxy(
2303 IMemAllocator
* This
);
2304 void __RPC_STUB
IMemAllocator_Commit_Stub(
2305 struct IRpcStubBuffer
* This
,
2306 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2307 PRPC_MESSAGE pRpcMessage
,
2308 DWORD
* pdwStubPhase
);
2309 HRESULT CALLBACK
IMemAllocator_Decommit_Proxy(
2310 IMemAllocator
* This
);
2311 void __RPC_STUB
IMemAllocator_Decommit_Stub(
2312 struct IRpcStubBuffer
* This
,
2313 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2314 PRPC_MESSAGE pRpcMessage
,
2315 DWORD
* pdwStubPhase
);
2316 HRESULT CALLBACK
IMemAllocator_GetBuffer_Proxy(
2317 IMemAllocator
* This
,
2318 IMediaSample
** ppBuffer
,
2319 REFERENCE_TIME
* pStartTime
,
2320 REFERENCE_TIME
* pEndTime
,
2322 void __RPC_STUB
IMemAllocator_GetBuffer_Stub(
2323 struct IRpcStubBuffer
* This
,
2324 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2325 PRPC_MESSAGE pRpcMessage
,
2326 DWORD
* pdwStubPhase
);
2327 HRESULT CALLBACK
IMemAllocator_ReleaseBuffer_Proxy(
2328 IMemAllocator
* This
,
2329 IMediaSample
* pBuffer
);
2330 void __RPC_STUB
IMemAllocator_ReleaseBuffer_Stub(
2331 struct IRpcStubBuffer
* This
,
2332 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2333 PRPC_MESSAGE pRpcMessage
,
2334 DWORD
* pdwStubPhase
);
2336 #endif /* __IMemAllocator_INTERFACE_DEFINED__ */
2338 typedef IMemAllocator
*PMEMALLOCATOR
;
2340 /*****************************************************************************
2341 * IMemAllocatorCallbackTemp interface
2343 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2344 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
2346 DEFINE_GUID(IID_IMemAllocatorCallbackTemp
, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
2347 #if defined(__cplusplus) && !defined(CINTERFACE)
2348 struct IMemAllocatorCallbackTemp
: public IMemAllocator
2350 virtual HRESULT STDMETHODCALLTYPE
SetNotify(
2351 IMemAllocatorNotifyCallbackTemp
* pNotify
) = 0;
2353 virtual HRESULT STDMETHODCALLTYPE
GetFreeCount(
2354 LONG
* plBuffersFree
) = 0;
2358 typedef struct IMemAllocatorCallbackTempVtbl IMemAllocatorCallbackTempVtbl
;
2359 struct IMemAllocatorCallbackTemp
{
2360 const IMemAllocatorCallbackTempVtbl
* lpVtbl
;
2362 struct IMemAllocatorCallbackTempVtbl
{
2363 ICOM_MSVTABLE_COMPAT_FIELDS
2365 /*** IUnknown methods ***/
2366 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2367 IMemAllocatorCallbackTemp
* This
,
2371 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2372 IMemAllocatorCallbackTemp
* This
);
2374 ULONG (STDMETHODCALLTYPE
*Release
)(
2375 IMemAllocatorCallbackTemp
* This
);
2377 /*** IMemAllocator methods ***/
2378 HRESULT (STDMETHODCALLTYPE
*SetProperties
)(
2379 IMemAllocatorCallbackTemp
* This
,
2380 ALLOCATOR_PROPERTIES
* pRequest
,
2381 ALLOCATOR_PROPERTIES
* pActual
);
2383 HRESULT (STDMETHODCALLTYPE
*GetProperties
)(
2384 IMemAllocatorCallbackTemp
* This
,
2385 ALLOCATOR_PROPERTIES
* pProps
);
2387 HRESULT (STDMETHODCALLTYPE
*Commit
)(
2388 IMemAllocatorCallbackTemp
* This
);
2390 HRESULT (STDMETHODCALLTYPE
*Decommit
)(
2391 IMemAllocatorCallbackTemp
* This
);
2393 HRESULT (STDMETHODCALLTYPE
*GetBuffer
)(
2394 IMemAllocatorCallbackTemp
* This
,
2395 IMediaSample
** ppBuffer
,
2396 REFERENCE_TIME
* pStartTime
,
2397 REFERENCE_TIME
* pEndTime
,
2400 HRESULT (STDMETHODCALLTYPE
*ReleaseBuffer
)(
2401 IMemAllocatorCallbackTemp
* This
,
2402 IMediaSample
* pBuffer
);
2404 /*** IMemAllocatorCallbackTemp methods ***/
2405 HRESULT (STDMETHODCALLTYPE
*SetNotify
)(
2406 IMemAllocatorCallbackTemp
* This
,
2407 IMemAllocatorNotifyCallbackTemp
* pNotify
);
2409 HRESULT (STDMETHODCALLTYPE
*GetFreeCount
)(
2410 IMemAllocatorCallbackTemp
* This
,
2411 LONG
* plBuffersFree
);
2415 /*** IUnknown methods ***/
2416 #define IMemAllocatorCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2417 #define IMemAllocatorCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
2418 #define IMemAllocatorCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
2419 /*** IMemAllocator methods ***/
2420 #define IMemAllocatorCallbackTemp_SetProperties(p,a,b) (p)->lpVtbl->SetProperties(p,a,b)
2421 #define IMemAllocatorCallbackTemp_GetProperties(p,a) (p)->lpVtbl->GetProperties(p,a)
2422 #define IMemAllocatorCallbackTemp_Commit(p) (p)->lpVtbl->Commit(p)
2423 #define IMemAllocatorCallbackTemp_Decommit(p) (p)->lpVtbl->Decommit(p)
2424 #define IMemAllocatorCallbackTemp_GetBuffer(p,a,b,c,d) (p)->lpVtbl->GetBuffer(p,a,b,c,d)
2425 #define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a) (p)->lpVtbl->ReleaseBuffer(p,a)
2426 /*** IMemAllocatorCallbackTemp methods ***/
2427 #define IMemAllocatorCallbackTemp_SetNotify(p,a) (p)->lpVtbl->SetNotify(p,a)
2428 #define IMemAllocatorCallbackTemp_GetFreeCount(p,a) (p)->lpVtbl->GetFreeCount(p,a)
2432 #define IMemAllocatorCallbackTemp_METHODS \
2433 ICOM_MSVTABLE_COMPAT_FIELDS \
2434 /*** IUnknown methods ***/ \
2435 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2436 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2437 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2438 /*** IMemAllocator methods ***/ \
2439 STDMETHOD_(HRESULT,SetProperties)(THIS_ ALLOCATOR_PROPERTIES* pRequest, ALLOCATOR_PROPERTIES* pActual) PURE; \
2440 STDMETHOD_(HRESULT,GetProperties)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2441 STDMETHOD_(HRESULT,Commit)(THIS) PURE; \
2442 STDMETHOD_(HRESULT,Decommit)(THIS) PURE; \
2443 STDMETHOD_(HRESULT,GetBuffer)(THIS_ IMediaSample** ppBuffer, REFERENCE_TIME* pStartTime, REFERENCE_TIME* pEndTime, DWORD dwFlags) PURE; \
2444 STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ IMediaSample* pBuffer) PURE; \
2445 /*** IMemAllocatorCallbackTemp methods ***/ \
2446 STDMETHOD_(HRESULT,SetNotify)(THIS_ IMemAllocatorNotifyCallbackTemp* pNotify) PURE; \
2447 STDMETHOD_(HRESULT,GetFreeCount)(THIS_ LONG* plBuffersFree) PURE;
2449 HRESULT CALLBACK
IMemAllocatorCallbackTemp_SetNotify_Proxy(
2450 IMemAllocatorCallbackTemp
* This
,
2451 IMemAllocatorNotifyCallbackTemp
* pNotify
);
2452 void __RPC_STUB
IMemAllocatorCallbackTemp_SetNotify_Stub(
2453 struct IRpcStubBuffer
* This
,
2454 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2455 PRPC_MESSAGE pRpcMessage
,
2456 DWORD
* pdwStubPhase
);
2457 HRESULT CALLBACK
IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
2458 IMemAllocatorCallbackTemp
* This
,
2459 LONG
* plBuffersFree
);
2460 void __RPC_STUB
IMemAllocatorCallbackTemp_GetFreeCount_Stub(
2461 struct IRpcStubBuffer
* This
,
2462 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2463 PRPC_MESSAGE pRpcMessage
,
2464 DWORD
* pdwStubPhase
);
2466 #endif /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
2468 /*****************************************************************************
2469 * IMemAllocatorNotifyCallbackTemp interface
2471 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
2472 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
2474 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp
, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
2475 #if defined(__cplusplus) && !defined(CINTERFACE)
2476 struct IMemAllocatorNotifyCallbackTemp
: public IUnknown
2478 virtual HRESULT STDMETHODCALLTYPE
NotifyRelease(
2483 typedef struct IMemAllocatorNotifyCallbackTempVtbl IMemAllocatorNotifyCallbackTempVtbl
;
2484 struct IMemAllocatorNotifyCallbackTemp
{
2485 const IMemAllocatorNotifyCallbackTempVtbl
* lpVtbl
;
2487 struct IMemAllocatorNotifyCallbackTempVtbl
{
2488 ICOM_MSVTABLE_COMPAT_FIELDS
2490 /*** IUnknown methods ***/
2491 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2492 IMemAllocatorNotifyCallbackTemp
* This
,
2496 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2497 IMemAllocatorNotifyCallbackTemp
* This
);
2499 ULONG (STDMETHODCALLTYPE
*Release
)(
2500 IMemAllocatorNotifyCallbackTemp
* This
);
2502 /*** IMemAllocatorNotifyCallbackTemp methods ***/
2503 HRESULT (STDMETHODCALLTYPE
*NotifyRelease
)(
2504 IMemAllocatorNotifyCallbackTemp
* This
);
2508 /*** IUnknown methods ***/
2509 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2510 #define IMemAllocatorNotifyCallbackTemp_AddRef(p) (p)->lpVtbl->AddRef(p)
2511 #define IMemAllocatorNotifyCallbackTemp_Release(p) (p)->lpVtbl->Release(p)
2512 /*** IMemAllocatorNotifyCallbackTemp methods ***/
2513 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) (p)->lpVtbl->NotifyRelease(p)
2517 #define IMemAllocatorNotifyCallbackTemp_METHODS \
2518 ICOM_MSVTABLE_COMPAT_FIELDS \
2519 /*** IUnknown methods ***/ \
2520 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2521 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2522 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2523 /*** IMemAllocatorNotifyCallbackTemp methods ***/ \
2524 STDMETHOD_(HRESULT,NotifyRelease)(THIS) PURE;
2526 HRESULT CALLBACK
IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
2527 IMemAllocatorNotifyCallbackTemp
* This
);
2528 void __RPC_STUB
IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
2529 struct IRpcStubBuffer
* This
,
2530 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2531 PRPC_MESSAGE pRpcMessage
,
2532 DWORD
* pdwStubPhase
);
2534 #endif /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
2536 /*****************************************************************************
2537 * IMemInputPin interface
2539 #ifndef __IMemInputPin_INTERFACE_DEFINED__
2540 #define __IMemInputPin_INTERFACE_DEFINED__
2542 DEFINE_GUID(IID_IMemInputPin
, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
2543 #if defined(__cplusplus) && !defined(CINTERFACE)
2544 struct IMemInputPin
: public IUnknown
2546 virtual HRESULT STDMETHODCALLTYPE
GetAllocator(
2547 IMemAllocator
** ppAllocator
) = 0;
2549 virtual HRESULT STDMETHODCALLTYPE
NotifyAllocator(
2550 IMemAllocator
* pAllocator
,
2551 BOOL bReadOnly
) = 0;
2553 virtual HRESULT STDMETHODCALLTYPE
GetAllocatorRequirements(
2554 ALLOCATOR_PROPERTIES
* pProps
) = 0;
2556 virtual HRESULT STDMETHODCALLTYPE
Receive(
2557 IMediaSample
* pSample
) = 0;
2559 virtual HRESULT STDMETHODCALLTYPE
ReceiveMultiple(
2560 IMediaSample
** pSamples
,
2562 long* nSamplesProcessed
) = 0;
2564 virtual HRESULT STDMETHODCALLTYPE
ReceiveCanBlock(
2569 typedef struct IMemInputPinVtbl IMemInputPinVtbl
;
2570 struct IMemInputPin
{
2571 const IMemInputPinVtbl
* lpVtbl
;
2573 struct IMemInputPinVtbl
{
2574 ICOM_MSVTABLE_COMPAT_FIELDS
2576 /*** IUnknown methods ***/
2577 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2582 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2583 IMemInputPin
* This
);
2585 ULONG (STDMETHODCALLTYPE
*Release
)(
2586 IMemInputPin
* This
);
2588 /*** IMemInputPin methods ***/
2589 HRESULT (STDMETHODCALLTYPE
*GetAllocator
)(
2591 IMemAllocator
** ppAllocator
);
2593 HRESULT (STDMETHODCALLTYPE
*NotifyAllocator
)(
2595 IMemAllocator
* pAllocator
,
2598 HRESULT (STDMETHODCALLTYPE
*GetAllocatorRequirements
)(
2600 ALLOCATOR_PROPERTIES
* pProps
);
2602 HRESULT (STDMETHODCALLTYPE
*Receive
)(
2604 IMediaSample
* pSample
);
2606 HRESULT (STDMETHODCALLTYPE
*ReceiveMultiple
)(
2608 IMediaSample
** pSamples
,
2610 long* nSamplesProcessed
);
2612 HRESULT (STDMETHODCALLTYPE
*ReceiveCanBlock
)(
2613 IMemInputPin
* This
);
2617 /*** IUnknown methods ***/
2618 #define IMemInputPin_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2619 #define IMemInputPin_AddRef(p) (p)->lpVtbl->AddRef(p)
2620 #define IMemInputPin_Release(p) (p)->lpVtbl->Release(p)
2621 /*** IMemInputPin methods ***/
2622 #define IMemInputPin_GetAllocator(p,a) (p)->lpVtbl->GetAllocator(p,a)
2623 #define IMemInputPin_NotifyAllocator(p,a,b) (p)->lpVtbl->NotifyAllocator(p,a,b)
2624 #define IMemInputPin_GetAllocatorRequirements(p,a) (p)->lpVtbl->GetAllocatorRequirements(p,a)
2625 #define IMemInputPin_Receive(p,a) (p)->lpVtbl->Receive(p,a)
2626 #define IMemInputPin_ReceiveMultiple(p,a,b,c) (p)->lpVtbl->ReceiveMultiple(p,a,b,c)
2627 #define IMemInputPin_ReceiveCanBlock(p) (p)->lpVtbl->ReceiveCanBlock(p)
2631 #define IMemInputPin_METHODS \
2632 ICOM_MSVTABLE_COMPAT_FIELDS \
2633 /*** IUnknown methods ***/ \
2634 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2635 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2636 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2637 /*** IMemInputPin methods ***/ \
2638 STDMETHOD_(HRESULT,GetAllocator)(THIS_ IMemAllocator** ppAllocator) PURE; \
2639 STDMETHOD_(HRESULT,NotifyAllocator)(THIS_ IMemAllocator* pAllocator, BOOL bReadOnly) PURE; \
2640 STDMETHOD_(HRESULT,GetAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
2641 STDMETHOD_(HRESULT,Receive)(THIS_ IMediaSample* pSample) PURE; \
2642 STDMETHOD_(HRESULT,ReceiveMultiple)(THIS_ IMediaSample** pSamples, long nSamples, long* nSamplesProcessed) PURE; \
2643 STDMETHOD_(HRESULT,ReceiveCanBlock)(THIS) PURE;
2645 HRESULT CALLBACK
IMemInputPin_GetAllocator_Proxy(
2647 IMemAllocator
** ppAllocator
);
2648 void __RPC_STUB
IMemInputPin_GetAllocator_Stub(
2649 struct IRpcStubBuffer
* This
,
2650 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2651 PRPC_MESSAGE pRpcMessage
,
2652 DWORD
* pdwStubPhase
);
2653 HRESULT CALLBACK
IMemInputPin_NotifyAllocator_Proxy(
2655 IMemAllocator
* pAllocator
,
2657 void __RPC_STUB
IMemInputPin_NotifyAllocator_Stub(
2658 struct IRpcStubBuffer
* This
,
2659 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2660 PRPC_MESSAGE pRpcMessage
,
2661 DWORD
* pdwStubPhase
);
2662 HRESULT CALLBACK
IMemInputPin_GetAllocatorRequirements_Proxy(
2664 ALLOCATOR_PROPERTIES
* pProps
);
2665 void __RPC_STUB
IMemInputPin_GetAllocatorRequirements_Stub(
2666 struct IRpcStubBuffer
* This
,
2667 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2668 PRPC_MESSAGE pRpcMessage
,
2669 DWORD
* pdwStubPhase
);
2670 HRESULT CALLBACK
IMemInputPin_Receive_Proxy(
2672 IMediaSample
* pSample
);
2673 void __RPC_STUB
IMemInputPin_Receive_Stub(
2674 struct IRpcStubBuffer
* This
,
2675 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2676 PRPC_MESSAGE pRpcMessage
,
2677 DWORD
* pdwStubPhase
);
2678 HRESULT CALLBACK
IMemInputPin_ReceiveMultiple_Proxy(
2680 IMediaSample
** pSamples
,
2682 long* nSamplesProcessed
);
2683 void __RPC_STUB
IMemInputPin_ReceiveMultiple_Stub(
2684 struct IRpcStubBuffer
* This
,
2685 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2686 PRPC_MESSAGE pRpcMessage
,
2687 DWORD
* pdwStubPhase
);
2688 HRESULT CALLBACK
IMemInputPin_ReceiveCanBlock_Proxy(
2689 IMemInputPin
* This
);
2690 void __RPC_STUB
IMemInputPin_ReceiveCanBlock_Stub(
2691 struct IRpcStubBuffer
* This
,
2692 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2693 PRPC_MESSAGE pRpcMessage
,
2694 DWORD
* pdwStubPhase
);
2696 #endif /* __IMemInputPin_INTERFACE_DEFINED__ */
2698 typedef IMemInputPin
*PMEMINPUTPIN
;
2700 /*****************************************************************************
2701 * IAMovieSetup interface
2703 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
2704 #define __IAMovieSetup_INTERFACE_DEFINED__
2706 DEFINE_GUID(IID_IAMovieSetup
, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
2707 #if defined(__cplusplus) && !defined(CINTERFACE)
2708 struct IAMovieSetup
: public IUnknown
2710 virtual HRESULT STDMETHODCALLTYPE
Register(
2713 virtual HRESULT STDMETHODCALLTYPE
Unregister(
2718 typedef struct IAMovieSetupVtbl IAMovieSetupVtbl
;
2719 struct IAMovieSetup
{
2720 const IAMovieSetupVtbl
* lpVtbl
;
2722 struct IAMovieSetupVtbl
{
2723 ICOM_MSVTABLE_COMPAT_FIELDS
2725 /*** IUnknown methods ***/
2726 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2731 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2732 IAMovieSetup
* This
);
2734 ULONG (STDMETHODCALLTYPE
*Release
)(
2735 IAMovieSetup
* This
);
2737 /*** IAMovieSetup methods ***/
2738 HRESULT (STDMETHODCALLTYPE
*Register
)(
2739 IAMovieSetup
* This
);
2741 HRESULT (STDMETHODCALLTYPE
*Unregister
)(
2742 IAMovieSetup
* This
);
2746 /*** IUnknown methods ***/
2747 #define IAMovieSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2748 #define IAMovieSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
2749 #define IAMovieSetup_Release(p) (p)->lpVtbl->Release(p)
2750 /*** IAMovieSetup methods ***/
2751 #define IAMovieSetup_Register(p) (p)->lpVtbl->Register(p)
2752 #define IAMovieSetup_Unregister(p) (p)->lpVtbl->Unregister(p)
2756 #define IAMovieSetup_METHODS \
2757 ICOM_MSVTABLE_COMPAT_FIELDS \
2758 /*** IUnknown methods ***/ \
2759 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2760 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2761 STDMETHOD_(ULONG,Release)(THIS) PURE; \
2762 /*** IAMovieSetup methods ***/ \
2763 STDMETHOD_(HRESULT,Register)(THIS) PURE; \
2764 STDMETHOD_(HRESULT,Unregister)(THIS) PURE;
2766 HRESULT CALLBACK
IAMovieSetup_Register_Proxy(
2767 IAMovieSetup
* This
);
2768 void __RPC_STUB
IAMovieSetup_Register_Stub(
2769 struct IRpcStubBuffer
* This
,
2770 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2771 PRPC_MESSAGE pRpcMessage
,
2772 DWORD
* pdwStubPhase
);
2773 HRESULT CALLBACK
IAMovieSetup_Unregister_Proxy(
2774 IAMovieSetup
* This
);
2775 void __RPC_STUB
IAMovieSetup_Unregister_Stub(
2776 struct IRpcStubBuffer
* This
,
2777 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
2778 PRPC_MESSAGE pRpcMessage
,
2779 DWORD
* pdwStubPhase
);
2781 #endif /* __IAMovieSetup_INTERFACE_DEFINED__ */
2783 typedef IAMovieSetup
*PAMOVIESETUP
;
2785 typedef enum AM_SEEKING_SeekingFlags
{
2786 AM_SEEKING_NoPositioning
= 0x0,
2787 AM_SEEKING_AbsolutePositioning
= 0x1,
2788 AM_SEEKING_RelativePositioning
= 0x2,
2789 AM_SEEKING_IncrementalPositioning
= 0x3,
2790 AM_SEEKING_PositioningBitsMask
= 0x3,
2791 AM_SEEKING_SeekToKeyFrame
= 0x4,
2792 AM_SEEKING_ReturnTime
= 0x8,
2793 AM_SEEKING_Segment
= 0x10,
2794 AM_SEEKING_NoFlush
= 0x20
2795 } AM_SEEKING_SEEKING_FLAGS
;
2797 typedef enum AM_SEEKING_SeekingCapabilities
{
2798 AM_SEEKING_CanSeekAbsolute
= 0x1,
2799 AM_SEEKING_CanSeekForwards
= 0x2,
2800 AM_SEEKING_CanSeekBackwards
= 0x4,
2801 AM_SEEKING_CanGetCurrentPos
= 0x8,
2802 AM_SEEKING_CanGetStopPos
= 0x10,
2803 AM_SEEKING_CanGetDuration
= 0x20,
2804 AM_SEEKING_CanPlayBackwards
= 0x40,
2805 AM_SEEKING_CanDoSegments
= 0x80,
2806 AM_SEEKING_Source
= 0x100
2807 } AM_SEEKING_SEEKING_CAPABILITIES
;
2809 #ifndef __IMediaSeeking_FWD_DEFINED__
2810 #define __IMediaSeeking_FWD_DEFINED__
2811 typedef struct IMediaSeeking IMediaSeeking
;
2814 /*****************************************************************************
2815 * IMediaSeeking interface
2817 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
2818 #define __IMediaSeeking_INTERFACE_DEFINED__
2820 DEFINE_GUID(IID_IMediaSeeking
, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
2821 #if defined(__cplusplus) && !defined(CINTERFACE)
2822 struct IMediaSeeking
: public IUnknown
2824 virtual HRESULT STDMETHODCALLTYPE
GetCapabilities(
2825 DWORD
* pCapabilities
) = 0;
2827 virtual HRESULT STDMETHODCALLTYPE
CheckCapabilities(
2828 DWORD
* pCapabilities
) = 0;
2830 virtual HRESULT STDMETHODCALLTYPE
IsFormatSupported(
2831 const GUID
* pFormat
) = 0;
2833 virtual HRESULT STDMETHODCALLTYPE
QueryPreferredFormat(
2836 virtual HRESULT STDMETHODCALLTYPE
GetTimeFormat(
2839 virtual HRESULT STDMETHODCALLTYPE
IsUsingTimeFormat(
2840 const GUID
* pFormat
) = 0;
2842 virtual HRESULT STDMETHODCALLTYPE
SetTimeFormat(
2843 const GUID
* pFormat
) = 0;
2845 virtual HRESULT STDMETHODCALLTYPE
GetDuration(
2846 LONGLONG
* pDuration
) = 0;
2848 virtual HRESULT STDMETHODCALLTYPE
GetStopPosition(
2849 LONGLONG
* pStop
) = 0;
2851 virtual HRESULT STDMETHODCALLTYPE
GetCurrentPosition(
2852 LONGLONG
* pCurrent
) = 0;
2854 virtual HRESULT STDMETHODCALLTYPE
ConvertTimeFormat(
2856 const GUID
* pTargetFormat
,
2858 const GUID
* pSourceFormat
) = 0;
2860 virtual HRESULT STDMETHODCALLTYPE
SetPositions(
2862 DWORD dwCurrentFlags
,
2864 DWORD dwStopFlags
) = 0;
2866 virtual HRESULT STDMETHODCALLTYPE
GetPositions(
2868 LONGLONG
* pStop
) = 0;
2870 virtual HRESULT STDMETHODCALLTYPE
GetAvailable(
2871 LONGLONG
* pEarliest
,
2872 LONGLONG
* pLatest
) = 0;
2874 virtual HRESULT STDMETHODCALLTYPE
SetRate(
2877 virtual HRESULT STDMETHODCALLTYPE
GetRate(
2878 double* pdRate
) = 0;
2880 virtual HRESULT STDMETHODCALLTYPE
GetPreroll(
2881 LONGLONG
* pllPreroll
) = 0;
2885 typedef struct IMediaSeekingVtbl IMediaSeekingVtbl
;
2886 struct IMediaSeeking
{
2887 const IMediaSeekingVtbl
* lpVtbl
;
2889 struct IMediaSeekingVtbl
{
2890 ICOM_MSVTABLE_COMPAT_FIELDS
2892 /*** IUnknown methods ***/
2893 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
2894 IMediaSeeking
* This
,
2898 ULONG (STDMETHODCALLTYPE
*AddRef
)(
2899 IMediaSeeking
* This
);
2901 ULONG (STDMETHODCALLTYPE
*Release
)(
2902 IMediaSeeking
* This
);
2904 /*** IMediaSeeking methods ***/
2905 HRESULT (STDMETHODCALLTYPE
*GetCapabilities
)(
2906 IMediaSeeking
* This
,
2907 DWORD
* pCapabilities
);
2909 HRESULT (STDMETHODCALLTYPE
*CheckCapabilities
)(
2910 IMediaSeeking
* This
,
2911 DWORD
* pCapabilities
);
2913 HRESULT (STDMETHODCALLTYPE
*IsFormatSupported
)(
2914 IMediaSeeking
* This
,
2915 const GUID
* pFormat
);
2917 HRESULT (STDMETHODCALLTYPE
*QueryPreferredFormat
)(
2918 IMediaSeeking
* This
,
2921 HRESULT (STDMETHODCALLTYPE
*GetTimeFormat
)(
2922 IMediaSeeking
* This
,
2925 HRESULT (STDMETHODCALLTYPE
*IsUsingTimeFormat
)(
2926 IMediaSeeking
* This
,
2927 const GUID
* pFormat
);
2929 HRESULT (STDMETHODCALLTYPE
*SetTimeFormat
)(
2930 IMediaSeeking
* This
,
2931 const GUID
* pFormat
);
2933 HRESULT (STDMETHODCALLTYPE
*GetDuration
)(
2934 IMediaSeeking
* This
,
2935 LONGLONG
* pDuration
);
2937 HRESULT (STDMETHODCALLTYPE
*GetStopPosition
)(
2938 IMediaSeeking
* This
,
2941 HRESULT (STDMETHODCALLTYPE
*GetCurrentPosition
)(
2942 IMediaSeeking
* This
,
2943 LONGLONG
* pCurrent
);
2945 HRESULT (STDMETHODCALLTYPE
*ConvertTimeFormat
)(
2946 IMediaSeeking
* This
,
2948 const GUID
* pTargetFormat
,
2950 const GUID
* pSourceFormat
);
2952 HRESULT (STDMETHODCALLTYPE
*SetPositions
)(
2953 IMediaSeeking
* This
,
2955 DWORD dwCurrentFlags
,
2959 HRESULT (STDMETHODCALLTYPE
*GetPositions
)(
2960 IMediaSeeking
* This
,
2964 HRESULT (STDMETHODCALLTYPE
*GetAvailable
)(
2965 IMediaSeeking
* This
,
2966 LONGLONG
* pEarliest
,
2969 HRESULT (STDMETHODCALLTYPE
*SetRate
)(
2970 IMediaSeeking
* This
,
2973 HRESULT (STDMETHODCALLTYPE
*GetRate
)(
2974 IMediaSeeking
* This
,
2977 HRESULT (STDMETHODCALLTYPE
*GetPreroll
)(
2978 IMediaSeeking
* This
,
2979 LONGLONG
* pllPreroll
);
2983 /*** IUnknown methods ***/
2984 #define IMediaSeeking_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2985 #define IMediaSeeking_AddRef(p) (p)->lpVtbl->AddRef(p)
2986 #define IMediaSeeking_Release(p) (p)->lpVtbl->Release(p)
2987 /*** IMediaSeeking methods ***/
2988 #define IMediaSeeking_GetCapabilities(p,a) (p)->lpVtbl->GetCapabilities(p,a)
2989 #define IMediaSeeking_CheckCapabilities(p,a) (p)->lpVtbl->CheckCapabilities(p,a)
2990 #define IMediaSeeking_IsFormatSupported(p,a) (p)->lpVtbl->IsFormatSupported(p,a)
2991 #define IMediaSeeking_QueryPreferredFormat(p,a) (p)->lpVtbl->QueryPreferredFormat(p,a)
2992 #define IMediaSeeking_GetTimeFormat(p,a) (p)->lpVtbl->GetTimeFormat(p,a)
2993 #define IMediaSeeking_IsUsingTimeFormat(p,a) (p)->lpVtbl->IsUsingTimeFormat(p,a)
2994 #define IMediaSeeking_SetTimeFormat(p,a) (p)->lpVtbl->SetTimeFormat(p,a)
2995 #define IMediaSeeking_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
2996 #define IMediaSeeking_GetStopPosition(p,a) (p)->lpVtbl->GetStopPosition(p,a)
2997 #define IMediaSeeking_GetCurrentPosition(p,a) (p)->lpVtbl->GetCurrentPosition(p,a)
2998 #define IMediaSeeking_ConvertTimeFormat(p,a,b,c,d) (p)->lpVtbl->ConvertTimeFormat(p,a,b,c,d)
2999 #define IMediaSeeking_SetPositions(p,a,b,c,d) (p)->lpVtbl->SetPositions(p,a,b,c,d)
3000 #define IMediaSeeking_GetPositions(p,a,b) (p)->lpVtbl->GetPositions(p,a,b)
3001 #define IMediaSeeking_GetAvailable(p,a,b) (p)->lpVtbl->GetAvailable(p,a,b)
3002 #define IMediaSeeking_SetRate(p,a) (p)->lpVtbl->SetRate(p,a)
3003 #define IMediaSeeking_GetRate(p,a) (p)->lpVtbl->GetRate(p,a)
3004 #define IMediaSeeking_GetPreroll(p,a) (p)->lpVtbl->GetPreroll(p,a)
3008 #define IMediaSeeking_METHODS \
3009 ICOM_MSVTABLE_COMPAT_FIELDS \
3010 /*** IUnknown methods ***/ \
3011 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3012 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3013 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3014 /*** IMediaSeeking methods ***/ \
3015 STDMETHOD_(HRESULT,GetCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
3016 STDMETHOD_(HRESULT,CheckCapabilities)(THIS_ DWORD* pCapabilities) PURE; \
3017 STDMETHOD_(HRESULT,IsFormatSupported)(THIS_ const GUID* pFormat) PURE; \
3018 STDMETHOD_(HRESULT,QueryPreferredFormat)(THIS_ GUID* pFormat) PURE; \
3019 STDMETHOD_(HRESULT,GetTimeFormat)(THIS_ GUID* pFormat) PURE; \
3020 STDMETHOD_(HRESULT,IsUsingTimeFormat)(THIS_ const GUID* pFormat) PURE; \
3021 STDMETHOD_(HRESULT,SetTimeFormat)(THIS_ const GUID* pFormat) PURE; \
3022 STDMETHOD_(HRESULT,GetDuration)(THIS_ LONGLONG* pDuration) PURE; \
3023 STDMETHOD_(HRESULT,GetStopPosition)(THIS_ LONGLONG* pStop) PURE; \
3024 STDMETHOD_(HRESULT,GetCurrentPosition)(THIS_ LONGLONG* pCurrent) PURE; \
3025 STDMETHOD_(HRESULT,ConvertTimeFormat)(THIS_ LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat) PURE; \
3026 STDMETHOD_(HRESULT,SetPositions)(THIS_ LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags) PURE; \
3027 STDMETHOD_(HRESULT,GetPositions)(THIS_ LONGLONG* pCurrent, LONGLONG* pStop) PURE; \
3028 STDMETHOD_(HRESULT,GetAvailable)(THIS_ LONGLONG* pEarliest, LONGLONG* pLatest) PURE; \
3029 STDMETHOD_(HRESULT,SetRate)(THIS_ double dRate) PURE; \
3030 STDMETHOD_(HRESULT,GetRate)(THIS_ double* pdRate) PURE; \
3031 STDMETHOD_(HRESULT,GetPreroll)(THIS_ LONGLONG* pllPreroll) PURE;
3033 HRESULT CALLBACK
IMediaSeeking_GetCapabilities_Proxy(
3034 IMediaSeeking
* This
,
3035 DWORD
* pCapabilities
);
3036 void __RPC_STUB
IMediaSeeking_GetCapabilities_Stub(
3037 struct IRpcStubBuffer
* This
,
3038 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3039 PRPC_MESSAGE pRpcMessage
,
3040 DWORD
* pdwStubPhase
);
3041 HRESULT CALLBACK
IMediaSeeking_CheckCapabilities_Proxy(
3042 IMediaSeeking
* This
,
3043 DWORD
* pCapabilities
);
3044 void __RPC_STUB
IMediaSeeking_CheckCapabilities_Stub(
3045 struct IRpcStubBuffer
* This
,
3046 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3047 PRPC_MESSAGE pRpcMessage
,
3048 DWORD
* pdwStubPhase
);
3049 HRESULT CALLBACK
IMediaSeeking_IsFormatSupported_Proxy(
3050 IMediaSeeking
* This
,
3051 const GUID
* pFormat
);
3052 void __RPC_STUB
IMediaSeeking_IsFormatSupported_Stub(
3053 struct IRpcStubBuffer
* This
,
3054 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3055 PRPC_MESSAGE pRpcMessage
,
3056 DWORD
* pdwStubPhase
);
3057 HRESULT CALLBACK
IMediaSeeking_QueryPreferredFormat_Proxy(
3058 IMediaSeeking
* This
,
3060 void __RPC_STUB
IMediaSeeking_QueryPreferredFormat_Stub(
3061 struct IRpcStubBuffer
* This
,
3062 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3063 PRPC_MESSAGE pRpcMessage
,
3064 DWORD
* pdwStubPhase
);
3065 HRESULT CALLBACK
IMediaSeeking_GetTimeFormat_Proxy(
3066 IMediaSeeking
* This
,
3068 void __RPC_STUB
IMediaSeeking_GetTimeFormat_Stub(
3069 struct IRpcStubBuffer
* This
,
3070 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3071 PRPC_MESSAGE pRpcMessage
,
3072 DWORD
* pdwStubPhase
);
3073 HRESULT CALLBACK
IMediaSeeking_IsUsingTimeFormat_Proxy(
3074 IMediaSeeking
* This
,
3075 const GUID
* pFormat
);
3076 void __RPC_STUB
IMediaSeeking_IsUsingTimeFormat_Stub(
3077 struct IRpcStubBuffer
* This
,
3078 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3079 PRPC_MESSAGE pRpcMessage
,
3080 DWORD
* pdwStubPhase
);
3081 HRESULT CALLBACK
IMediaSeeking_SetTimeFormat_Proxy(
3082 IMediaSeeking
* This
,
3083 const GUID
* pFormat
);
3084 void __RPC_STUB
IMediaSeeking_SetTimeFormat_Stub(
3085 struct IRpcStubBuffer
* This
,
3086 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3087 PRPC_MESSAGE pRpcMessage
,
3088 DWORD
* pdwStubPhase
);
3089 HRESULT CALLBACK
IMediaSeeking_GetDuration_Proxy(
3090 IMediaSeeking
* This
,
3091 LONGLONG
* pDuration
);
3092 void __RPC_STUB
IMediaSeeking_GetDuration_Stub(
3093 struct IRpcStubBuffer
* This
,
3094 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3095 PRPC_MESSAGE pRpcMessage
,
3096 DWORD
* pdwStubPhase
);
3097 HRESULT CALLBACK
IMediaSeeking_GetStopPosition_Proxy(
3098 IMediaSeeking
* This
,
3100 void __RPC_STUB
IMediaSeeking_GetStopPosition_Stub(
3101 struct IRpcStubBuffer
* This
,
3102 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3103 PRPC_MESSAGE pRpcMessage
,
3104 DWORD
* pdwStubPhase
);
3105 HRESULT CALLBACK
IMediaSeeking_GetCurrentPosition_Proxy(
3106 IMediaSeeking
* This
,
3107 LONGLONG
* pCurrent
);
3108 void __RPC_STUB
IMediaSeeking_GetCurrentPosition_Stub(
3109 struct IRpcStubBuffer
* This
,
3110 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3111 PRPC_MESSAGE pRpcMessage
,
3112 DWORD
* pdwStubPhase
);
3113 HRESULT CALLBACK
IMediaSeeking_ConvertTimeFormat_Proxy(
3114 IMediaSeeking
* This
,
3116 const GUID
* pTargetFormat
,
3118 const GUID
* pSourceFormat
);
3119 void __RPC_STUB
IMediaSeeking_ConvertTimeFormat_Stub(
3120 struct IRpcStubBuffer
* This
,
3121 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3122 PRPC_MESSAGE pRpcMessage
,
3123 DWORD
* pdwStubPhase
);
3124 HRESULT CALLBACK
IMediaSeeking_SetPositions_Proxy(
3125 IMediaSeeking
* This
,
3127 DWORD dwCurrentFlags
,
3130 void __RPC_STUB
IMediaSeeking_SetPositions_Stub(
3131 struct IRpcStubBuffer
* This
,
3132 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3133 PRPC_MESSAGE pRpcMessage
,
3134 DWORD
* pdwStubPhase
);
3135 HRESULT CALLBACK
IMediaSeeking_GetPositions_Proxy(
3136 IMediaSeeking
* This
,
3139 void __RPC_STUB
IMediaSeeking_GetPositions_Stub(
3140 struct IRpcStubBuffer
* This
,
3141 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3142 PRPC_MESSAGE pRpcMessage
,
3143 DWORD
* pdwStubPhase
);
3144 HRESULT CALLBACK
IMediaSeeking_GetAvailable_Proxy(
3145 IMediaSeeking
* This
,
3146 LONGLONG
* pEarliest
,
3148 void __RPC_STUB
IMediaSeeking_GetAvailable_Stub(
3149 struct IRpcStubBuffer
* This
,
3150 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3151 PRPC_MESSAGE pRpcMessage
,
3152 DWORD
* pdwStubPhase
);
3153 HRESULT CALLBACK
IMediaSeeking_SetRate_Proxy(
3154 IMediaSeeking
* This
,
3156 void __RPC_STUB
IMediaSeeking_SetRate_Stub(
3157 struct IRpcStubBuffer
* This
,
3158 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3159 PRPC_MESSAGE pRpcMessage
,
3160 DWORD
* pdwStubPhase
);
3161 HRESULT CALLBACK
IMediaSeeking_GetRate_Proxy(
3162 IMediaSeeking
* This
,
3164 void __RPC_STUB
IMediaSeeking_GetRate_Stub(
3165 struct IRpcStubBuffer
* This
,
3166 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3167 PRPC_MESSAGE pRpcMessage
,
3168 DWORD
* pdwStubPhase
);
3169 HRESULT CALLBACK
IMediaSeeking_GetPreroll_Proxy(
3170 IMediaSeeking
* This
,
3171 LONGLONG
* pllPreroll
);
3172 void __RPC_STUB
IMediaSeeking_GetPreroll_Stub(
3173 struct IRpcStubBuffer
* This
,
3174 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3175 PRPC_MESSAGE pRpcMessage
,
3176 DWORD
* pdwStubPhase
);
3178 #endif /* __IMediaSeeking_INTERFACE_DEFINED__ */
3180 typedef IMediaSeeking
*PMEDIASEEKING
;
3182 enum tagAM_MEDIAEVENT_FLAGS
{
3183 AM_MEDIAEVENT_NONOTIFY
= 0x1
3186 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
3187 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
3188 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder
;
3191 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
3192 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
3193 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder
;
3196 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
3197 #define __IAMAudioInputMixer_FWD_DEFINED__
3198 typedef struct IAMAudioInputMixer IAMAudioInputMixer
;
3201 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
3202 #define __IAMAudioRendererStats_FWD_DEFINED__
3203 typedef struct IAMAudioRendererStats IAMAudioRendererStats
;
3206 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
3207 #define __IAMBufferNegotiation_FWD_DEFINED__
3208 typedef struct IAMBufferNegotiation IAMBufferNegotiation
;
3211 #ifndef __IAMCameraControl_FWD_DEFINED__
3212 #define __IAMCameraControl_FWD_DEFINED__
3213 typedef struct IAMCameraControl IAMCameraControl
;
3216 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
3217 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
3218 typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress
;
3221 #ifndef __IAMCrossbar_FWD_DEFINED__
3222 #define __IAMCrossbar_FWD_DEFINED__
3223 typedef struct IAMCrossbar IAMCrossbar
;
3226 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
3227 #define __IAMDevMemoryAllocator_FWD_DEFINED__
3228 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator
;
3231 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
3232 #define __IAMDevMemoryControl_FWD_DEFINED__
3233 typedef struct IAMDevMemoryControl IAMDevMemoryControl
;
3236 #ifndef __IAMDroppedFrames_FWD_DEFINED__
3237 #define __IAMDroppedFrames_FWD_DEFINED__
3238 typedef struct IAMDroppedFrames IAMDroppedFrames
;
3241 #ifndef __IAMExtDevice_FWD_DEFINED__
3242 #define __IAMExtDevice_FWD_DEFINED__
3243 typedef struct IAMExtDevice IAMExtDevice
;
3246 #ifndef __IAMExtTransport_FWD_DEFINED__
3247 #define __IAMExtTransport_FWD_DEFINED__
3248 typedef struct IAMExtTransport IAMExtTransport
;
3251 #ifndef __IAMGraphStreams_FWD_DEFINED__
3252 #define __IAMGraphStreams_FWD_DEFINED__
3253 typedef struct IAMGraphStreams IAMGraphStreams
;
3256 #ifndef __IAMLatency_FWD_DEFINED__
3257 #define __IAMLatency_FWD_DEFINED__
3258 typedef struct IAMLatency IAMLatency
;
3261 #ifndef __IAMOpenProgress_FWD_DEFINED__
3262 #define __IAMOpenProgress_FWD_DEFINED__
3263 typedef struct IAMOpenProgress IAMOpenProgress
;
3266 #ifndef __IAMOverlayFX_FWD_DEFINED__
3267 #define __IAMOverlayFX_FWD_DEFINED__
3268 typedef struct IAMOverlayFX IAMOverlayFX
;
3271 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
3272 #define __IAMPhysicalPinInfo_FWD_DEFINED__
3273 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo
;
3276 #ifndef __IAMPushSource_FWD_DEFINED__
3277 #define __IAMPushSource_FWD_DEFINED__
3278 typedef struct IAMPushSource IAMPushSource
;
3281 #ifndef __IAMStreamConfig_FWD_DEFINED__
3282 #define __IAMStreamConfig_FWD_DEFINED__
3283 typedef struct IAMStreamConfig IAMStreamConfig
;
3286 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
3287 #define __IAMTimecodeDisplay_FWD_DEFINED__
3288 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay
;
3291 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
3292 #define __IAMTimecodeGenerator_FWD_DEFINED__
3293 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator
;
3296 #ifndef __IAMTimecodeReader_FWD_DEFINED__
3297 #define __IAMTimecodeReader_FWD_DEFINED__
3298 typedef struct IAMTimecodeReader IAMTimecodeReader
;
3301 #ifndef __IAMTVTuner_FWD_DEFINED__
3302 #define __IAMTVTuner_FWD_DEFINED__
3303 typedef struct IAMTVTuner IAMTVTuner
;
3306 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
3307 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
3308 typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs
;
3311 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
3312 #define __IAMVfwCompressDialogs_FWD_DEFINED__
3313 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs
;
3316 #ifndef __IAMVideoCompression_FWD_DEFINED__
3317 #define __IAMVideoCompression_FWD_DEFINED__
3318 typedef struct IAMVideoCompression IAMVideoCompression
;
3321 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
3322 #define __IAMVideoDecimationProperties_FWD_DEFINED__
3323 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties
;
3326 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
3327 #define __IAMVideoProcAmp_FWD_DEFINED__
3328 typedef struct IAMVideoProcAmp IAMVideoProcAmp
;
3331 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
3332 #define __ICaptureGraphBuilder_FWD_DEFINED__
3333 typedef struct ICaptureGraphBuilder ICaptureGraphBuilder
;
3336 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
3337 #define __ICaptureGraphBuilder2_FWD_DEFINED__
3338 typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2
;
3341 #ifndef __IConfigAviMux_FWD_DEFINED__
3342 #define __IConfigAviMux_FWD_DEFINED__
3343 typedef struct IConfigAviMux IConfigAviMux
;
3346 #ifndef __IConfigInterleaving_FWD_DEFINED__
3347 #define __IConfigInterleaving_FWD_DEFINED__
3348 typedef struct IConfigInterleaving IConfigInterleaving
;
3351 #ifndef __IDecimateVideoImage_FWD_DEFINED__
3352 #define __IDecimateVideoImage_FWD_DEFINED__
3353 typedef struct IDecimateVideoImage IDecimateVideoImage
;
3356 #ifndef __IDrawVideoImage_FWD_DEFINED__
3357 #define __IDrawVideoImage_FWD_DEFINED__
3358 typedef struct IDrawVideoImage IDrawVideoImage
;
3361 #ifndef __IEnumRegFilters_FWD_DEFINED__
3362 #define __IEnumRegFilters_FWD_DEFINED__
3363 typedef struct IEnumRegFilters IEnumRegFilters
;
3366 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
3367 #define __IEnumStreamIdMap_FWD_DEFINED__
3368 typedef struct IEnumStreamIdMap IEnumStreamIdMap
;
3371 #ifndef __IFileSourceFilter_FWD_DEFINED__
3372 #define __IFileSourceFilter_FWD_DEFINED__
3373 typedef struct IFileSourceFilter IFileSourceFilter
;
3376 #ifndef __IFileSinkFilter_FWD_DEFINED__
3377 #define __IFileSinkFilter_FWD_DEFINED__
3378 typedef struct IFileSinkFilter IFileSinkFilter
;
3381 #ifndef __IFileSinkFilter2_FWD_DEFINED__
3382 #define __IFileSinkFilter2_FWD_DEFINED__
3383 typedef struct IFileSinkFilter2 IFileSinkFilter2
;
3386 #ifndef __IFilterMapper_FWD_DEFINED__
3387 #define __IFilterMapper_FWD_DEFINED__
3388 typedef struct IFilterMapper IFilterMapper
;
3391 #ifndef __IFilterMapper2_FWD_DEFINED__
3392 #define __IFilterMapper2_FWD_DEFINED__
3393 typedef struct IFilterMapper2 IFilterMapper2
;
3396 #ifndef __IGraphBuilder_FWD_DEFINED__
3397 #define __IGraphBuilder_FWD_DEFINED__
3398 typedef struct IGraphBuilder IGraphBuilder
;
3401 #ifndef __IKsPropertySet_FWD_DEFINED__
3402 #define __IKsPropertySet_FWD_DEFINED__
3403 typedef struct IKsPropertySet IKsPropertySet
;
3406 #ifndef __IMediaEventSink_FWD_DEFINED__
3407 #define __IMediaEventSink_FWD_DEFINED__
3408 typedef struct IMediaEventSink IMediaEventSink
;
3411 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
3412 #define __IMpeg2Demultiplexer_FWD_DEFINED__
3413 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer
;
3416 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
3417 #define __IMPEG2StreamIdMap_FWD_DEFINED__
3418 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap
;
3421 #ifndef __IOverlay_FWD_DEFINED__
3422 #define __IOverlay_FWD_DEFINED__
3423 typedef struct IOverlay IOverlay
;
3426 #ifndef __IOverlayNotify_FWD_DEFINED__
3427 #define __IOverlayNotify_FWD_DEFINED__
3428 typedef struct IOverlayNotify IOverlayNotify
;
3431 #ifndef __IOverlayNotify2_FWD_DEFINED__
3432 #define __IOverlayNotify2_FWD_DEFINED__
3433 typedef struct IOverlayNotify2 IOverlayNotify2
;
3436 #ifndef __IQualityControl_FWD_DEFINED__
3437 #define __IQualityControl_FWD_DEFINED__
3438 typedef struct IQualityControl IQualityControl
;
3441 #ifndef __ISeekingPassThru_FWD_DEFINED__
3442 #define __ISeekingPassThru_FWD_DEFINED__
3443 typedef struct ISeekingPassThru ISeekingPassThru
;
3451 /*****************************************************************************
3452 * IEnumRegFilters interface
3454 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
3455 #define __IEnumRegFilters_INTERFACE_DEFINED__
3457 DEFINE_GUID(IID_IEnumRegFilters
, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3458 #if defined(__cplusplus) && !defined(CINTERFACE)
3459 struct IEnumRegFilters
: public IUnknown
3461 virtual HRESULT STDMETHODCALLTYPE
Next(
3463 REGFILTER
** apRegFilter
,
3464 ULONG
* pcFetched
) = 0;
3466 virtual HRESULT STDMETHODCALLTYPE
Skip(
3467 ULONG cFilters
) = 0;
3469 virtual HRESULT STDMETHODCALLTYPE
Reset(
3472 virtual HRESULT STDMETHODCALLTYPE
Clone(
3473 IEnumRegFilters
** ppEnum
) = 0;
3477 typedef struct IEnumRegFiltersVtbl IEnumRegFiltersVtbl
;
3478 struct IEnumRegFilters
{
3479 const IEnumRegFiltersVtbl
* lpVtbl
;
3481 struct IEnumRegFiltersVtbl
{
3482 ICOM_MSVTABLE_COMPAT_FIELDS
3484 /*** IUnknown methods ***/
3485 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3486 IEnumRegFilters
* This
,
3490 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3491 IEnumRegFilters
* This
);
3493 ULONG (STDMETHODCALLTYPE
*Release
)(
3494 IEnumRegFilters
* This
);
3496 /*** IEnumRegFilters methods ***/
3497 HRESULT (STDMETHODCALLTYPE
*Next
)(
3498 IEnumRegFilters
* This
,
3500 REGFILTER
** apRegFilter
,
3503 HRESULT (STDMETHODCALLTYPE
*Skip
)(
3504 IEnumRegFilters
* This
,
3507 HRESULT (STDMETHODCALLTYPE
*Reset
)(
3508 IEnumRegFilters
* This
);
3510 HRESULT (STDMETHODCALLTYPE
*Clone
)(
3511 IEnumRegFilters
* This
,
3512 IEnumRegFilters
** ppEnum
);
3516 /*** IUnknown methods ***/
3517 #define IEnumRegFilters_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3518 #define IEnumRegFilters_AddRef(p) (p)->lpVtbl->AddRef(p)
3519 #define IEnumRegFilters_Release(p) (p)->lpVtbl->Release(p)
3520 /*** IEnumRegFilters methods ***/
3521 #define IEnumRegFilters_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
3522 #define IEnumRegFilters_Skip(p,a) (p)->lpVtbl->Skip(p,a)
3523 #define IEnumRegFilters_Reset(p) (p)->lpVtbl->Reset(p)
3524 #define IEnumRegFilters_Clone(p,a) (p)->lpVtbl->Clone(p,a)
3528 #define IEnumRegFilters_METHODS \
3529 ICOM_MSVTABLE_COMPAT_FIELDS \
3530 /*** IUnknown methods ***/ \
3531 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3532 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3533 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3534 /*** IEnumRegFilters methods ***/ \
3535 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cFilters, REGFILTER** apRegFilter, ULONG* pcFetched) PURE; \
3536 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cFilters) PURE; \
3537 STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
3538 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumRegFilters** ppEnum) PURE;
3540 HRESULT CALLBACK
IEnumRegFilters_Next_Proxy(
3541 IEnumRegFilters
* This
,
3543 REGFILTER
** apRegFilter
,
3545 void __RPC_STUB
IEnumRegFilters_Next_Stub(
3546 struct IRpcStubBuffer
* This
,
3547 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3548 PRPC_MESSAGE pRpcMessage
,
3549 DWORD
* pdwStubPhase
);
3550 HRESULT CALLBACK
IEnumRegFilters_Skip_Proxy(
3551 IEnumRegFilters
* This
,
3553 void __RPC_STUB
IEnumRegFilters_Skip_Stub(
3554 struct IRpcStubBuffer
* This
,
3555 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3556 PRPC_MESSAGE pRpcMessage
,
3557 DWORD
* pdwStubPhase
);
3558 HRESULT CALLBACK
IEnumRegFilters_Reset_Proxy(
3559 IEnumRegFilters
* This
);
3560 void __RPC_STUB
IEnumRegFilters_Reset_Stub(
3561 struct IRpcStubBuffer
* This
,
3562 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3563 PRPC_MESSAGE pRpcMessage
,
3564 DWORD
* pdwStubPhase
);
3565 HRESULT CALLBACK
IEnumRegFilters_Clone_Proxy(
3566 IEnumRegFilters
* This
,
3567 IEnumRegFilters
** ppEnum
);
3568 void __RPC_STUB
IEnumRegFilters_Clone_Stub(
3569 struct IRpcStubBuffer
* This
,
3570 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3571 PRPC_MESSAGE pRpcMessage
,
3572 DWORD
* pdwStubPhase
);
3574 #endif /* __IEnumRegFilters_INTERFACE_DEFINED__ */
3576 typedef IEnumRegFilters
*PENUMREGFILTERS
;
3579 MERIT_PREFERRED
= 0x800000,
3580 MERIT_NORMAL
= 0x600000,
3581 MERIT_UNLIKELY
= 0x400000,
3582 MERIT_DO_NOT_USE
= 0x200000,
3583 MERIT_SW_COMPRESSOR
= 0x100000,
3584 MERIT_HW_COMPRESSOR
= 0x100050
3587 /*****************************************************************************
3588 * IFilterMapper interface
3590 #ifndef __IFilterMapper_INTERFACE_DEFINED__
3591 #define __IFilterMapper_INTERFACE_DEFINED__
3593 DEFINE_GUID(IID_IFilterMapper
, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
3594 #if defined(__cplusplus) && !defined(CINTERFACE)
3595 struct IFilterMapper
: public IUnknown
3597 virtual HRESULT STDMETHODCALLTYPE
RegisterFilter(
3602 virtual HRESULT STDMETHODCALLTYPE
RegisterFilterInstance(
3607 virtual HRESULT STDMETHODCALLTYPE
RegisterPin(
3614 CLSID ConnectsToFilter
,
3615 LPCWSTR ConnectsToPin
) = 0;
3617 virtual HRESULT STDMETHODCALLTYPE
RegisterPinType(
3621 CLSID clsSubType
) = 0;
3623 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilter(
3626 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilterInstance(
3629 virtual HRESULT STDMETHODCALLTYPE
UnregisterPin(
3633 virtual HRESULT STDMETHODCALLTYPE
EnumMatchingFilters(
3634 IEnumRegFilters
** ppEnum
,
3642 CLSID clsOutSub
) = 0;
3646 typedef struct IFilterMapperVtbl IFilterMapperVtbl
;
3647 struct IFilterMapper
{
3648 const IFilterMapperVtbl
* lpVtbl
;
3650 struct IFilterMapperVtbl
{
3651 ICOM_MSVTABLE_COMPAT_FIELDS
3653 /*** IUnknown methods ***/
3654 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3655 IFilterMapper
* This
,
3659 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3660 IFilterMapper
* This
);
3662 ULONG (STDMETHODCALLTYPE
*Release
)(
3663 IFilterMapper
* This
);
3665 /*** IFilterMapper methods ***/
3666 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
3667 IFilterMapper
* This
,
3672 HRESULT (STDMETHODCALLTYPE
*RegisterFilterInstance
)(
3673 IFilterMapper
* This
,
3678 HRESULT (STDMETHODCALLTYPE
*RegisterPin
)(
3679 IFilterMapper
* This
,
3686 CLSID ConnectsToFilter
,
3687 LPCWSTR ConnectsToPin
);
3689 HRESULT (STDMETHODCALLTYPE
*RegisterPinType
)(
3690 IFilterMapper
* This
,
3696 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
3697 IFilterMapper
* This
,
3700 HRESULT (STDMETHODCALLTYPE
*UnregisterFilterInstance
)(
3701 IFilterMapper
* This
,
3704 HRESULT (STDMETHODCALLTYPE
*UnregisterPin
)(
3705 IFilterMapper
* This
,
3709 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
3710 IFilterMapper
* This
,
3711 IEnumRegFilters
** ppEnum
,
3723 /*** IUnknown methods ***/
3724 #define IFilterMapper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3725 #define IFilterMapper_AddRef(p) (p)->lpVtbl->AddRef(p)
3726 #define IFilterMapper_Release(p) (p)->lpVtbl->Release(p)
3727 /*** IFilterMapper methods ***/
3728 #define IFilterMapper_RegisterFilter(p,a,b,c) (p)->lpVtbl->RegisterFilter(p,a,b,c)
3729 #define IFilterMapper_RegisterFilterInstance(p,a,b,c) (p)->lpVtbl->RegisterFilterInstance(p,a,b,c)
3730 #define IFilterMapper_RegisterPin(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->RegisterPin(p,a,b,c,d,e,f,g,h)
3731 #define IFilterMapper_RegisterPinType(p,a,b,c,d) (p)->lpVtbl->RegisterPinType(p,a,b,c,d)
3732 #define IFilterMapper_UnregisterFilter(p,a) (p)->lpVtbl->UnregisterFilter(p,a)
3733 #define IFilterMapper_UnregisterFilterInstance(p,a) (p)->lpVtbl->UnregisterFilterInstance(p,a)
3734 #define IFilterMapper_UnregisterPin(p,a,b) (p)->lpVtbl->UnregisterPin(p,a,b)
3735 #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)
3739 #define IFilterMapper_METHODS \
3740 ICOM_MSVTABLE_COMPAT_FIELDS \
3741 /*** IUnknown methods ***/ \
3742 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3743 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3744 STDMETHOD_(ULONG,Release)(THIS) PURE; \
3745 /*** IFilterMapper methods ***/ \
3746 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ CLSID clsid, LPCWSTR Name, DWORD dwMerit) PURE; \
3747 STDMETHOD_(HRESULT,RegisterFilterInstance)(THIS_ CLSID clsid, LPCWSTR Name, CLSID* MRId) PURE; \
3748 STDMETHOD_(HRESULT,RegisterPin)(THIS_ CLSID Filter, LPCWSTR Name, BOOL bRendered, BOOL bOutput, BOOL bZero, BOOL bMany, CLSID ConnectsToFilter, LPCWSTR ConnectsToPin) PURE; \
3749 STDMETHOD_(HRESULT,RegisterPinType)(THIS_ CLSID clsFilter, LPCWSTR strName, CLSID clsMajorType, CLSID clsSubType) PURE; \
3750 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ CLSID Filter) PURE; \
3751 STDMETHOD_(HRESULT,UnregisterFilterInstance)(THIS_ CLSID MRId) PURE; \
3752 STDMETHOD_(HRESULT,UnregisterPin)(THIS_ CLSID Filter, LPCWSTR Name) PURE; \
3753 STDMETHOD_(HRESULT,EnumMatchingFilters)(THIS_ IEnumRegFilters** ppEnum, DWORD dwMerit, BOOL bInputNeeded, CLSID clsInMaj, CLSID clsInSub, BOOL bRender, BOOL bOututNeeded, CLSID clsOutMaj, CLSID clsOutSub) PURE;
3755 HRESULT CALLBACK
IFilterMapper_RegisterFilter_Proxy(
3756 IFilterMapper
* This
,
3760 void __RPC_STUB
IFilterMapper_RegisterFilter_Stub(
3761 struct IRpcStubBuffer
* This
,
3762 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3763 PRPC_MESSAGE pRpcMessage
,
3764 DWORD
* pdwStubPhase
);
3765 HRESULT CALLBACK
IFilterMapper_RegisterFilterInstance_Proxy(
3766 IFilterMapper
* This
,
3770 void __RPC_STUB
IFilterMapper_RegisterFilterInstance_Stub(
3771 struct IRpcStubBuffer
* This
,
3772 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3773 PRPC_MESSAGE pRpcMessage
,
3774 DWORD
* pdwStubPhase
);
3775 HRESULT CALLBACK
IFilterMapper_RegisterPin_Proxy(
3776 IFilterMapper
* This
,
3783 CLSID ConnectsToFilter
,
3784 LPCWSTR ConnectsToPin
);
3785 void __RPC_STUB
IFilterMapper_RegisterPin_Stub(
3786 struct IRpcStubBuffer
* This
,
3787 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3788 PRPC_MESSAGE pRpcMessage
,
3789 DWORD
* pdwStubPhase
);
3790 HRESULT CALLBACK
IFilterMapper_RegisterPinType_Proxy(
3791 IFilterMapper
* This
,
3796 void __RPC_STUB
IFilterMapper_RegisterPinType_Stub(
3797 struct IRpcStubBuffer
* This
,
3798 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3799 PRPC_MESSAGE pRpcMessage
,
3800 DWORD
* pdwStubPhase
);
3801 HRESULT CALLBACK
IFilterMapper_UnregisterFilter_Proxy(
3802 IFilterMapper
* This
,
3804 void __RPC_STUB
IFilterMapper_UnregisterFilter_Stub(
3805 struct IRpcStubBuffer
* This
,
3806 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3807 PRPC_MESSAGE pRpcMessage
,
3808 DWORD
* pdwStubPhase
);
3809 HRESULT CALLBACK
IFilterMapper_UnregisterFilterInstance_Proxy(
3810 IFilterMapper
* This
,
3812 void __RPC_STUB
IFilterMapper_UnregisterFilterInstance_Stub(
3813 struct IRpcStubBuffer
* This
,
3814 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3815 PRPC_MESSAGE pRpcMessage
,
3816 DWORD
* pdwStubPhase
);
3817 HRESULT CALLBACK
IFilterMapper_UnregisterPin_Proxy(
3818 IFilterMapper
* This
,
3821 void __RPC_STUB
IFilterMapper_UnregisterPin_Stub(
3822 struct IRpcStubBuffer
* This
,
3823 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3824 PRPC_MESSAGE pRpcMessage
,
3825 DWORD
* pdwStubPhase
);
3826 HRESULT CALLBACK
IFilterMapper_EnumMatchingFilters_Proxy(
3827 IFilterMapper
* This
,
3828 IEnumRegFilters
** ppEnum
,
3837 void __RPC_STUB
IFilterMapper_EnumMatchingFilters_Stub(
3838 struct IRpcStubBuffer
* This
,
3839 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
3840 PRPC_MESSAGE pRpcMessage
,
3841 DWORD
* pdwStubPhase
);
3843 #endif /* __IFilterMapper_INTERFACE_DEFINED__ */
3846 const CLSID
*clsMajorType
;
3847 const CLSID
*clsMinorType
;
3856 const CLSID
*clsConnectsToFilter
;
3857 const WCHAR
*strConnectsToPin
;
3859 const REGPINTYPES
*lpMediaType
;
3869 REG_PINFLAG_B_ZERO
= 0x1,
3870 REG_PINFLAG_B_RENDERER
= 0x2,
3871 REG_PINFLAG_B_MANY
= 0x4,
3872 REG_PINFLAG_B_OUTPUT
= 0x8
3879 const REGPINTYPES
*lpMediaType
;
3881 const REGPINMEDIUM
*lpMedium
;
3882 const CLSID
*clsPinCategory
;
3891 const REGFILTERPINS
*rgPins
;
3895 const REGFILTERPINS2
*rgPins2
;
3900 /*****************************************************************************
3901 * IFilterMapper2 interface
3903 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
3904 #define __IFilterMapper2_INTERFACE_DEFINED__
3906 DEFINE_GUID(IID_IFilterMapper2
, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
3907 #if defined(__cplusplus) && !defined(CINTERFACE)
3908 struct IFilterMapper2
: public IUnknown
3910 virtual HRESULT STDMETHODCALLTYPE
CreateCategory(
3911 REFCLSID clsidCategory
,
3912 DWORD dwCategoryMerit
,
3913 LPCWSTR Description
) = 0;
3915 virtual HRESULT STDMETHODCALLTYPE
UnregisterFilter(
3916 const CLSID
* pclsidCategory
,
3917 const OLECHAR
* szInstance
,
3918 REFCLSID Filter
) = 0;
3920 virtual HRESULT STDMETHODCALLTYPE
RegisterFilter(
3921 REFCLSID clsidFilter
,
3923 IMoniker
** ppMoniker
,
3924 const CLSID
* pclsidCategory
,
3925 const OLECHAR
* szInstance
,
3926 const REGFILTER2
* prf2
) = 0;
3928 virtual HRESULT STDMETHODCALLTYPE
EnumMatchingFilters(
3929 IEnumMoniker
** ppEnum
,
3935 const GUID
* pInputTypes
,
3936 const REGPINMEDIUM
* pMedIn
,
3937 const CLSID
* pPinCategoryIn
,
3941 const GUID
* pOutputTypes
,
3942 const REGPINMEDIUM
* pMedOut
,
3943 const CLSID
* pPinCategoryOut
) = 0;
3947 typedef struct IFilterMapper2Vtbl IFilterMapper2Vtbl
;
3948 struct IFilterMapper2
{
3949 const IFilterMapper2Vtbl
* lpVtbl
;
3951 struct IFilterMapper2Vtbl
{
3952 ICOM_MSVTABLE_COMPAT_FIELDS
3954 /*** IUnknown methods ***/
3955 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
3956 IFilterMapper2
* This
,
3960 ULONG (STDMETHODCALLTYPE
*AddRef
)(
3961 IFilterMapper2
* This
);
3963 ULONG (STDMETHODCALLTYPE
*Release
)(
3964 IFilterMapper2
* This
);
3966 /*** IFilterMapper2 methods ***/
3967 HRESULT (STDMETHODCALLTYPE
*CreateCategory
)(
3968 IFilterMapper2
* This
,
3969 REFCLSID clsidCategory
,
3970 DWORD dwCategoryMerit
,
3971 LPCWSTR Description
);
3973 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
3974 IFilterMapper2
* This
,
3975 const CLSID
* pclsidCategory
,
3976 const OLECHAR
* szInstance
,
3979 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
3980 IFilterMapper2
* This
,
3981 REFCLSID clsidFilter
,
3983 IMoniker
** ppMoniker
,
3984 const CLSID
* pclsidCategory
,
3985 const OLECHAR
* szInstance
,
3986 const REGFILTER2
* prf2
);
3988 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
3989 IFilterMapper2
* This
,
3990 IEnumMoniker
** ppEnum
,
3996 const GUID
* pInputTypes
,
3997 const REGPINMEDIUM
* pMedIn
,
3998 const CLSID
* pPinCategoryIn
,
4002 const GUID
* pOutputTypes
,
4003 const REGPINMEDIUM
* pMedOut
,
4004 const CLSID
* pPinCategoryOut
);
4008 /*** IUnknown methods ***/
4009 #define IFilterMapper2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4010 #define IFilterMapper2_AddRef(p) (p)->lpVtbl->AddRef(p)
4011 #define IFilterMapper2_Release(p) (p)->lpVtbl->Release(p)
4012 /*** IFilterMapper2 methods ***/
4013 #define IFilterMapper2_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
4014 #define IFilterMapper2_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
4015 #define IFilterMapper2_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
4016 #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)
4020 #define IFilterMapper2_METHODS \
4021 ICOM_MSVTABLE_COMPAT_FIELDS \
4022 /*** IUnknown methods ***/ \
4023 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4024 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4025 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4026 /*** IFilterMapper2 methods ***/ \
4027 STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
4028 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
4029 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
4030 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;
4032 HRESULT CALLBACK
IFilterMapper2_CreateCategory_Proxy(
4033 IFilterMapper2
* This
,
4034 REFCLSID clsidCategory
,
4035 DWORD dwCategoryMerit
,
4036 LPCWSTR Description
);
4037 void __RPC_STUB
IFilterMapper2_CreateCategory_Stub(
4038 struct IRpcStubBuffer
* This
,
4039 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4040 PRPC_MESSAGE pRpcMessage
,
4041 DWORD
* pdwStubPhase
);
4042 HRESULT CALLBACK
IFilterMapper2_UnregisterFilter_Proxy(
4043 IFilterMapper2
* This
,
4044 const CLSID
* pclsidCategory
,
4045 const OLECHAR
* szInstance
,
4047 void __RPC_STUB
IFilterMapper2_UnregisterFilter_Stub(
4048 struct IRpcStubBuffer
* This
,
4049 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4050 PRPC_MESSAGE pRpcMessage
,
4051 DWORD
* pdwStubPhase
);
4052 HRESULT CALLBACK
IFilterMapper2_RegisterFilter_Proxy(
4053 IFilterMapper2
* This
,
4054 REFCLSID clsidFilter
,
4056 IMoniker
** ppMoniker
,
4057 const CLSID
* pclsidCategory
,
4058 const OLECHAR
* szInstance
,
4059 const REGFILTER2
* prf2
);
4060 void __RPC_STUB
IFilterMapper2_RegisterFilter_Stub(
4061 struct IRpcStubBuffer
* This
,
4062 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4063 PRPC_MESSAGE pRpcMessage
,
4064 DWORD
* pdwStubPhase
);
4065 HRESULT CALLBACK
IFilterMapper2_EnumMatchingFilters_Proxy(
4066 IFilterMapper2
* This
,
4067 IEnumMoniker
** ppEnum
,
4073 const GUID
* pInputTypes
,
4074 const REGPINMEDIUM
* pMedIn
,
4075 const CLSID
* pPinCategoryIn
,
4079 const GUID
* pOutputTypes
,
4080 const REGPINMEDIUM
* pMedOut
,
4081 const CLSID
* pPinCategoryOut
);
4082 void __RPC_STUB
IFilterMapper2_EnumMatchingFilters_Stub(
4083 struct IRpcStubBuffer
* This
,
4084 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4085 PRPC_MESSAGE pRpcMessage
,
4086 DWORD
* pdwStubPhase
);
4088 #endif /* __IFilterMapper2_INTERFACE_DEFINED__ */
4090 #ifndef __IFilterMapper3_FWD_DEFINED__
4091 #define __IFilterMapper3_FWD_DEFINED__
4092 typedef struct IFilterMapper3 IFilterMapper3
;
4095 /*****************************************************************************
4096 * IFilterMapper3 interface
4098 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
4099 #define __IFilterMapper3_INTERFACE_DEFINED__
4101 DEFINE_GUID(IID_IFilterMapper3
, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
4102 #if defined(__cplusplus) && !defined(CINTERFACE)
4103 struct IFilterMapper3
: public IFilterMapper2
4105 virtual HRESULT STDMETHODCALLTYPE
GetICreateDevEnum(
4106 ICreateDevEnum
** ppEnum
) = 0;
4110 typedef struct IFilterMapper3Vtbl IFilterMapper3Vtbl
;
4111 struct IFilterMapper3
{
4112 const IFilterMapper3Vtbl
* lpVtbl
;
4114 struct IFilterMapper3Vtbl
{
4115 ICOM_MSVTABLE_COMPAT_FIELDS
4117 /*** IUnknown methods ***/
4118 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4119 IFilterMapper3
* This
,
4123 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4124 IFilterMapper3
* This
);
4126 ULONG (STDMETHODCALLTYPE
*Release
)(
4127 IFilterMapper3
* This
);
4129 /*** IFilterMapper2 methods ***/
4130 HRESULT (STDMETHODCALLTYPE
*CreateCategory
)(
4131 IFilterMapper3
* This
,
4132 REFCLSID clsidCategory
,
4133 DWORD dwCategoryMerit
,
4134 LPCWSTR Description
);
4136 HRESULT (STDMETHODCALLTYPE
*UnregisterFilter
)(
4137 IFilterMapper3
* This
,
4138 const CLSID
* pclsidCategory
,
4139 const OLECHAR
* szInstance
,
4142 HRESULT (STDMETHODCALLTYPE
*RegisterFilter
)(
4143 IFilterMapper3
* This
,
4144 REFCLSID clsidFilter
,
4146 IMoniker
** ppMoniker
,
4147 const CLSID
* pclsidCategory
,
4148 const OLECHAR
* szInstance
,
4149 const REGFILTER2
* prf2
);
4151 HRESULT (STDMETHODCALLTYPE
*EnumMatchingFilters
)(
4152 IFilterMapper3
* This
,
4153 IEnumMoniker
** ppEnum
,
4159 const GUID
* pInputTypes
,
4160 const REGPINMEDIUM
* pMedIn
,
4161 const CLSID
* pPinCategoryIn
,
4165 const GUID
* pOutputTypes
,
4166 const REGPINMEDIUM
* pMedOut
,
4167 const CLSID
* pPinCategoryOut
);
4169 /*** IFilterMapper3 methods ***/
4170 HRESULT (STDMETHODCALLTYPE
*GetICreateDevEnum
)(
4171 IFilterMapper3
* This
,
4172 ICreateDevEnum
** ppEnum
);
4176 /*** IUnknown methods ***/
4177 #define IFilterMapper3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4178 #define IFilterMapper3_AddRef(p) (p)->lpVtbl->AddRef(p)
4179 #define IFilterMapper3_Release(p) (p)->lpVtbl->Release(p)
4180 /*** IFilterMapper2 methods ***/
4181 #define IFilterMapper3_CreateCategory(p,a,b,c) (p)->lpVtbl->CreateCategory(p,a,b,c)
4182 #define IFilterMapper3_UnregisterFilter(p,a,b,c) (p)->lpVtbl->UnregisterFilter(p,a,b,c)
4183 #define IFilterMapper3_RegisterFilter(p,a,b,c,d,e,f) (p)->lpVtbl->RegisterFilter(p,a,b,c,d,e,f)
4184 #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)
4185 /*** IFilterMapper3 methods ***/
4186 #define IFilterMapper3_GetICreateDevEnum(p,a) (p)->lpVtbl->GetICreateDevEnum(p,a)
4190 #define IFilterMapper3_METHODS \
4191 ICOM_MSVTABLE_COMPAT_FIELDS \
4192 /*** IUnknown methods ***/ \
4193 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4194 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4195 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4196 /*** IFilterMapper2 methods ***/ \
4197 STDMETHOD_(HRESULT,CreateCategory)(THIS_ REFCLSID clsidCategory, DWORD dwCategoryMerit, LPCWSTR Description) PURE; \
4198 STDMETHOD_(HRESULT,UnregisterFilter)(THIS_ const CLSID* pclsidCategory, const OLECHAR* szInstance, REFCLSID Filter) PURE; \
4199 STDMETHOD_(HRESULT,RegisterFilter)(THIS_ REFCLSID clsidFilter, LPCWSTR Name, IMoniker** ppMoniker, const CLSID* pclsidCategory, const OLECHAR* szInstance, const REGFILTER2* prf2) PURE; \
4200 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; \
4201 /*** IFilterMapper3 methods ***/ \
4202 STDMETHOD_(HRESULT,GetICreateDevEnum)(THIS_ ICreateDevEnum** ppEnum) PURE;
4204 HRESULT CALLBACK
IFilterMapper3_GetICreateDevEnum_Proxy(
4205 IFilterMapper3
* This
,
4206 ICreateDevEnum
** ppEnum
);
4207 void __RPC_STUB
IFilterMapper3_GetICreateDevEnum_Stub(
4208 struct IRpcStubBuffer
* This
,
4209 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4210 PRPC_MESSAGE pRpcMessage
,
4211 DWORD
* pdwStubPhase
);
4213 #endif /* __IFilterMapper3_INTERFACE_DEFINED__ */
4215 typedef enum tagQualityMessageType
{
4218 } QualityMessageType
;
4220 typedef struct tagQuality
{
4221 QualityMessageType Type
;
4223 REFERENCE_TIME Late
;
4224 REFERENCE_TIME TimeStamp
;
4227 typedef IQualityControl
*PQUALITYCONTROL
;
4229 /*****************************************************************************
4230 * IQualityControl interface
4232 #ifndef __IQualityControl_INTERFACE_DEFINED__
4233 #define __IQualityControl_INTERFACE_DEFINED__
4235 DEFINE_GUID(IID_IQualityControl
, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4236 #if defined(__cplusplus) && !defined(CINTERFACE)
4237 struct IQualityControl
: public IUnknown
4239 virtual HRESULT STDMETHODCALLTYPE
Notify(
4243 virtual HRESULT STDMETHODCALLTYPE
SetSink(
4244 IQualityControl
* piqc
) = 0;
4248 typedef struct IQualityControlVtbl IQualityControlVtbl
;
4249 struct IQualityControl
{
4250 const IQualityControlVtbl
* lpVtbl
;
4252 struct IQualityControlVtbl
{
4253 ICOM_MSVTABLE_COMPAT_FIELDS
4255 /*** IUnknown methods ***/
4256 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4257 IQualityControl
* This
,
4261 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4262 IQualityControl
* This
);
4264 ULONG (STDMETHODCALLTYPE
*Release
)(
4265 IQualityControl
* This
);
4267 /*** IQualityControl methods ***/
4268 HRESULT (STDMETHODCALLTYPE
*Notify
)(
4269 IQualityControl
* This
,
4273 HRESULT (STDMETHODCALLTYPE
*SetSink
)(
4274 IQualityControl
* This
,
4275 IQualityControl
* piqc
);
4279 /*** IUnknown methods ***/
4280 #define IQualityControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4281 #define IQualityControl_AddRef(p) (p)->lpVtbl->AddRef(p)
4282 #define IQualityControl_Release(p) (p)->lpVtbl->Release(p)
4283 /*** IQualityControl methods ***/
4284 #define IQualityControl_Notify(p,a,b) (p)->lpVtbl->Notify(p,a,b)
4285 #define IQualityControl_SetSink(p,a) (p)->lpVtbl->SetSink(p,a)
4289 #define IQualityControl_METHODS \
4290 ICOM_MSVTABLE_COMPAT_FIELDS \
4291 /*** IUnknown methods ***/ \
4292 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4293 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4294 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4295 /*** IQualityControl methods ***/ \
4296 STDMETHOD_(HRESULT,Notify)(THIS_ IBaseFilter* pSelf, Quality q) PURE; \
4297 STDMETHOD_(HRESULT,SetSink)(THIS_ IQualityControl* piqc) PURE;
4299 HRESULT CALLBACK
IQualityControl_Notify_Proxy(
4300 IQualityControl
* This
,
4303 void __RPC_STUB
IQualityControl_Notify_Stub(
4304 struct IRpcStubBuffer
* This
,
4305 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4306 PRPC_MESSAGE pRpcMessage
,
4307 DWORD
* pdwStubPhase
);
4308 HRESULT CALLBACK
IQualityControl_SetSink_Proxy(
4309 IQualityControl
* This
,
4310 IQualityControl
* piqc
);
4311 void __RPC_STUB
IQualityControl_SetSink_Stub(
4312 struct IRpcStubBuffer
* This
,
4313 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4314 PRPC_MESSAGE pRpcMessage
,
4315 DWORD
* pdwStubPhase
);
4317 #endif /* __IQualityControl_INTERFACE_DEFINED__ */
4320 CK_NOCOLORKEY
= 0x0,
4325 typedef struct tagCOLORKEY
{
4328 COLORREF LowColorValue
;
4329 COLORREF HighColorValue
;
4334 ADVISE_CLIPPING
= 0x1,
4335 ADVISE_PALETTE
= 0x2,
4336 ADVISE_COLORKEY
= 0x4,
4337 ADVISE_POSITION
= 0x8,
4338 ADVISE_DISPLAY_CHANGE
= 0x10
4341 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
4343 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
4346 typedef struct _RGNDATAHEADER
{
4354 typedef struct _RGNDATA
{
4359 #endif /* _WINGDI_ */
4360 /*****************************************************************************
4361 * IOverlayNotify interface
4363 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
4364 #define __IOverlayNotify_INTERFACE_DEFINED__
4366 DEFINE_GUID(IID_IOverlayNotify
, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4367 #if defined(__cplusplus) && !defined(CINTERFACE)
4368 struct IOverlayNotify
: public IUnknown
4370 virtual HRESULT STDMETHODCALLTYPE
OnPaletteChange(
4372 const PALETTEENTRY
* pPalette
) = 0;
4374 virtual HRESULT STDMETHODCALLTYPE
OnClipChange(
4375 const RECT
* pSourceRect
,
4376 const RECT
* pDestinationRect
,
4377 const RGNDATA
* pRgnData
) = 0;
4379 virtual HRESULT STDMETHODCALLTYPE
OnColorKeyChange(
4380 const COLORKEY
* pColorKey
) = 0;
4382 virtual HRESULT STDMETHODCALLTYPE
OnPositionChange(
4383 const RECT
* pSourceRect
,
4384 const RECT
* pDestinationRect
) = 0;
4388 typedef struct IOverlayNotifyVtbl IOverlayNotifyVtbl
;
4389 struct IOverlayNotify
{
4390 const IOverlayNotifyVtbl
* lpVtbl
;
4392 struct IOverlayNotifyVtbl
{
4393 ICOM_MSVTABLE_COMPAT_FIELDS
4395 /*** IUnknown methods ***/
4396 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4397 IOverlayNotify
* This
,
4401 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4402 IOverlayNotify
* This
);
4404 ULONG (STDMETHODCALLTYPE
*Release
)(
4405 IOverlayNotify
* This
);
4407 /*** IOverlayNotify methods ***/
4408 HRESULT (STDMETHODCALLTYPE
*OnPaletteChange
)(
4409 IOverlayNotify
* This
,
4411 const PALETTEENTRY
* pPalette
);
4413 HRESULT (STDMETHODCALLTYPE
*OnClipChange
)(
4414 IOverlayNotify
* This
,
4415 const RECT
* pSourceRect
,
4416 const RECT
* pDestinationRect
,
4417 const RGNDATA
* pRgnData
);
4419 HRESULT (STDMETHODCALLTYPE
*OnColorKeyChange
)(
4420 IOverlayNotify
* This
,
4421 const COLORKEY
* pColorKey
);
4423 HRESULT (STDMETHODCALLTYPE
*OnPositionChange
)(
4424 IOverlayNotify
* This
,
4425 const RECT
* pSourceRect
,
4426 const RECT
* pDestinationRect
);
4430 /*** IUnknown methods ***/
4431 #define IOverlayNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4432 #define IOverlayNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
4433 #define IOverlayNotify_Release(p) (p)->lpVtbl->Release(p)
4434 /*** IOverlayNotify methods ***/
4435 #define IOverlayNotify_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
4436 #define IOverlayNotify_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
4437 #define IOverlayNotify_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
4438 #define IOverlayNotify_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
4442 #define IOverlayNotify_METHODS \
4443 ICOM_MSVTABLE_COMPAT_FIELDS \
4444 /*** IUnknown methods ***/ \
4445 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4446 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4447 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4448 /*** IOverlayNotify methods ***/ \
4449 STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
4450 STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
4451 STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
4452 STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE;
4454 HRESULT CALLBACK
IOverlayNotify_OnPaletteChange_Proxy(
4455 IOverlayNotify
* This
,
4457 const PALETTEENTRY
* pPalette
);
4458 void __RPC_STUB
IOverlayNotify_OnPaletteChange_Stub(
4459 struct IRpcStubBuffer
* This
,
4460 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4461 PRPC_MESSAGE pRpcMessage
,
4462 DWORD
* pdwStubPhase
);
4463 HRESULT CALLBACK
IOverlayNotify_OnClipChange_Proxy(
4464 IOverlayNotify
* This
,
4465 const RECT
* pSourceRect
,
4466 const RECT
* pDestinationRect
,
4467 const RGNDATA
* pRgnData
);
4468 void __RPC_STUB
IOverlayNotify_OnClipChange_Stub(
4469 struct IRpcStubBuffer
* This
,
4470 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4471 PRPC_MESSAGE pRpcMessage
,
4472 DWORD
* pdwStubPhase
);
4473 HRESULT CALLBACK
IOverlayNotify_OnColorKeyChange_Proxy(
4474 IOverlayNotify
* This
,
4475 const COLORKEY
* pColorKey
);
4476 void __RPC_STUB
IOverlayNotify_OnColorKeyChange_Stub(
4477 struct IRpcStubBuffer
* This
,
4478 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4479 PRPC_MESSAGE pRpcMessage
,
4480 DWORD
* pdwStubPhase
);
4481 HRESULT CALLBACK
IOverlayNotify_OnPositionChange_Proxy(
4482 IOverlayNotify
* This
,
4483 const RECT
* pSourceRect
,
4484 const RECT
* pDestinationRect
);
4485 void __RPC_STUB
IOverlayNotify_OnPositionChange_Stub(
4486 struct IRpcStubBuffer
* This
,
4487 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4488 PRPC_MESSAGE pRpcMessage
,
4489 DWORD
* pdwStubPhase
);
4491 #endif /* __IOverlayNotify_INTERFACE_DEFINED__ */
4493 typedef IOverlayNotify
*POVERLAYNOTIFY
;
4496 typedef HANDLE HMONITOR
;
4499 /*****************************************************************************
4500 * IOverlayNotify2 interface
4502 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
4503 #define __IOverlayNotify2_INTERFACE_DEFINED__
4505 DEFINE_GUID(IID_IOverlayNotify2
, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
4506 #if defined(__cplusplus) && !defined(CINTERFACE)
4507 struct IOverlayNotify2
: public IOverlayNotify
4509 virtual HRESULT STDMETHODCALLTYPE
OnDisplayChange(
4510 HMONITOR hMonitor
) = 0;
4514 typedef struct IOverlayNotify2Vtbl IOverlayNotify2Vtbl
;
4515 struct IOverlayNotify2
{
4516 const IOverlayNotify2Vtbl
* lpVtbl
;
4518 struct IOverlayNotify2Vtbl
{
4519 ICOM_MSVTABLE_COMPAT_FIELDS
4521 /*** IUnknown methods ***/
4522 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4523 IOverlayNotify2
* This
,
4527 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4528 IOverlayNotify2
* This
);
4530 ULONG (STDMETHODCALLTYPE
*Release
)(
4531 IOverlayNotify2
* This
);
4533 /*** IOverlayNotify methods ***/
4534 HRESULT (STDMETHODCALLTYPE
*OnPaletteChange
)(
4535 IOverlayNotify2
* This
,
4537 const PALETTEENTRY
* pPalette
);
4539 HRESULT (STDMETHODCALLTYPE
*OnClipChange
)(
4540 IOverlayNotify2
* This
,
4541 const RECT
* pSourceRect
,
4542 const RECT
* pDestinationRect
,
4543 const RGNDATA
* pRgnData
);
4545 HRESULT (STDMETHODCALLTYPE
*OnColorKeyChange
)(
4546 IOverlayNotify2
* This
,
4547 const COLORKEY
* pColorKey
);
4549 HRESULT (STDMETHODCALLTYPE
*OnPositionChange
)(
4550 IOverlayNotify2
* This
,
4551 const RECT
* pSourceRect
,
4552 const RECT
* pDestinationRect
);
4554 /*** IOverlayNotify2 methods ***/
4555 HRESULT (STDMETHODCALLTYPE
*OnDisplayChange
)(
4556 IOverlayNotify2
* This
,
4561 /*** IUnknown methods ***/
4562 #define IOverlayNotify2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4563 #define IOverlayNotify2_AddRef(p) (p)->lpVtbl->AddRef(p)
4564 #define IOverlayNotify2_Release(p) (p)->lpVtbl->Release(p)
4565 /*** IOverlayNotify methods ***/
4566 #define IOverlayNotify2_OnPaletteChange(p,a,b) (p)->lpVtbl->OnPaletteChange(p,a,b)
4567 #define IOverlayNotify2_OnClipChange(p,a,b,c) (p)->lpVtbl->OnClipChange(p,a,b,c)
4568 #define IOverlayNotify2_OnColorKeyChange(p,a) (p)->lpVtbl->OnColorKeyChange(p,a)
4569 #define IOverlayNotify2_OnPositionChange(p,a,b) (p)->lpVtbl->OnPositionChange(p,a,b)
4570 /*** IOverlayNotify2 methods ***/
4571 #define IOverlayNotify2_OnDisplayChange(p,a) (p)->lpVtbl->OnDisplayChange(p,a)
4575 #define IOverlayNotify2_METHODS \
4576 ICOM_MSVTABLE_COMPAT_FIELDS \
4577 /*** IUnknown methods ***/ \
4578 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4579 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4580 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4581 /*** IOverlayNotify methods ***/ \
4582 STDMETHOD_(HRESULT,OnPaletteChange)(THIS_ DWORD dwColors, const PALETTEENTRY* pPalette) PURE; \
4583 STDMETHOD_(HRESULT,OnClipChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect, const RGNDATA* pRgnData) PURE; \
4584 STDMETHOD_(HRESULT,OnColorKeyChange)(THIS_ const COLORKEY* pColorKey) PURE; \
4585 STDMETHOD_(HRESULT,OnPositionChange)(THIS_ const RECT* pSourceRect, const RECT* pDestinationRect) PURE; \
4586 /*** IOverlayNotify2 methods ***/ \
4587 STDMETHOD_(HRESULT,OnDisplayChange)(THIS_ HMONITOR hMonitor) PURE;
4589 HRESULT CALLBACK
IOverlayNotify2_OnDisplayChange_Proxy(
4590 IOverlayNotify2
* This
,
4592 void __RPC_STUB
IOverlayNotify2_OnDisplayChange_Stub(
4593 struct IRpcStubBuffer
* This
,
4594 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4595 PRPC_MESSAGE pRpcMessage
,
4596 DWORD
* pdwStubPhase
);
4598 #endif /* __IOverlayNotify2_INTERFACE_DEFINED__ */
4600 typedef IOverlayNotify2
*POVERLAYNOTIFY2
;
4602 /*****************************************************************************
4603 * IOverlay interface
4605 #ifndef __IOverlay_INTERFACE_DEFINED__
4606 #define __IOverlay_INTERFACE_DEFINED__
4608 DEFINE_GUID(IID_IOverlay
, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4609 #if defined(__cplusplus) && !defined(CINTERFACE)
4610 struct IOverlay
: public IUnknown
4612 virtual HRESULT STDMETHODCALLTYPE
GetPalette(
4614 PALETTEENTRY
** ppPalette
) = 0;
4616 virtual HRESULT STDMETHODCALLTYPE
SetPalette(
4618 PALETTEENTRY
* pPalette
) = 0;
4620 virtual HRESULT STDMETHODCALLTYPE
GetDefaultColorKey(
4621 COLORKEY
* pColorKey
) = 0;
4623 virtual HRESULT STDMETHODCALLTYPE
GetColorKey(
4624 COLORKEY
* pColorKey
) = 0;
4626 virtual HRESULT STDMETHODCALLTYPE
SetColorKey(
4627 COLORKEY
* pColorKey
) = 0;
4629 virtual HRESULT STDMETHODCALLTYPE
GetWindowHandle(
4632 virtual HRESULT STDMETHODCALLTYPE
GetClipList(
4634 RECT
* pDestinationRect
,
4635 RGNDATA
** ppRgnData
) = 0;
4637 virtual HRESULT STDMETHODCALLTYPE
GetVideoPosition(
4639 RECT
* pDestinationRect
) = 0;
4641 virtual HRESULT STDMETHODCALLTYPE
Advise(
4642 IOverlayNotify
* pOverlayNotify
,
4643 DWORD dwInterests
) = 0;
4645 virtual HRESULT STDMETHODCALLTYPE
Unadvise(
4650 typedef struct IOverlayVtbl IOverlayVtbl
;
4652 const IOverlayVtbl
* lpVtbl
;
4654 struct IOverlayVtbl
{
4655 ICOM_MSVTABLE_COMPAT_FIELDS
4657 /*** IUnknown methods ***/
4658 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4663 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4666 ULONG (STDMETHODCALLTYPE
*Release
)(
4669 /*** IOverlay methods ***/
4670 HRESULT (STDMETHODCALLTYPE
*GetPalette
)(
4673 PALETTEENTRY
** ppPalette
);
4675 HRESULT (STDMETHODCALLTYPE
*SetPalette
)(
4678 PALETTEENTRY
* pPalette
);
4680 HRESULT (STDMETHODCALLTYPE
*GetDefaultColorKey
)(
4682 COLORKEY
* pColorKey
);
4684 HRESULT (STDMETHODCALLTYPE
*GetColorKey
)(
4686 COLORKEY
* pColorKey
);
4688 HRESULT (STDMETHODCALLTYPE
*SetColorKey
)(
4690 COLORKEY
* pColorKey
);
4692 HRESULT (STDMETHODCALLTYPE
*GetWindowHandle
)(
4696 HRESULT (STDMETHODCALLTYPE
*GetClipList
)(
4699 RECT
* pDestinationRect
,
4700 RGNDATA
** ppRgnData
);
4702 HRESULT (STDMETHODCALLTYPE
*GetVideoPosition
)(
4705 RECT
* pDestinationRect
);
4707 HRESULT (STDMETHODCALLTYPE
*Advise
)(
4709 IOverlayNotify
* pOverlayNotify
,
4712 HRESULT (STDMETHODCALLTYPE
*Unadvise
)(
4717 /*** IUnknown methods ***/
4718 #define IOverlay_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4719 #define IOverlay_AddRef(p) (p)->lpVtbl->AddRef(p)
4720 #define IOverlay_Release(p) (p)->lpVtbl->Release(p)
4721 /*** IOverlay methods ***/
4722 #define IOverlay_GetPalette(p,a,b) (p)->lpVtbl->GetPalette(p,a,b)
4723 #define IOverlay_SetPalette(p,a,b) (p)->lpVtbl->SetPalette(p,a,b)
4724 #define IOverlay_GetDefaultColorKey(p,a) (p)->lpVtbl->GetDefaultColorKey(p,a)
4725 #define IOverlay_GetColorKey(p,a) (p)->lpVtbl->GetColorKey(p,a)
4726 #define IOverlay_SetColorKey(p,a) (p)->lpVtbl->SetColorKey(p,a)
4727 #define IOverlay_GetWindowHandle(p,a) (p)->lpVtbl->GetWindowHandle(p,a)
4728 #define IOverlay_GetClipList(p,a,b,c) (p)->lpVtbl->GetClipList(p,a,b,c)
4729 #define IOverlay_GetVideoPosition(p,a,b) (p)->lpVtbl->GetVideoPosition(p,a,b)
4730 #define IOverlay_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b)
4731 #define IOverlay_Unadvise(p) (p)->lpVtbl->Unadvise(p)
4735 #define IOverlay_METHODS \
4736 ICOM_MSVTABLE_COMPAT_FIELDS \
4737 /*** IUnknown methods ***/ \
4738 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4739 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4740 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4741 /*** IOverlay methods ***/ \
4742 STDMETHOD_(HRESULT,GetPalette)(THIS_ DWORD* pdwColors, PALETTEENTRY** ppPalette) PURE; \
4743 STDMETHOD_(HRESULT,SetPalette)(THIS_ DWORD dwColors, PALETTEENTRY* pPalette) PURE; \
4744 STDMETHOD_(HRESULT,GetDefaultColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4745 STDMETHOD_(HRESULT,GetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4746 STDMETHOD_(HRESULT,SetColorKey)(THIS_ COLORKEY* pColorKey) PURE; \
4747 STDMETHOD_(HRESULT,GetWindowHandle)(THIS_ HWND* pHwnd) PURE; \
4748 STDMETHOD_(HRESULT,GetClipList)(THIS_ RECT* pSourceRect, RECT* pDestinationRect, RGNDATA** ppRgnData) PURE; \
4749 STDMETHOD_(HRESULT,GetVideoPosition)(THIS_ RECT* pSourceRect, RECT* pDestinationRect) PURE; \
4750 STDMETHOD_(HRESULT,Advise)(THIS_ IOverlayNotify* pOverlayNotify, DWORD dwInterests) PURE; \
4751 STDMETHOD_(HRESULT,Unadvise)(THIS) PURE;
4753 HRESULT CALLBACK
IOverlay_GetPalette_Proxy(
4756 PALETTEENTRY
** ppPalette
);
4757 void __RPC_STUB
IOverlay_GetPalette_Stub(
4758 struct IRpcStubBuffer
* This
,
4759 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4760 PRPC_MESSAGE pRpcMessage
,
4761 DWORD
* pdwStubPhase
);
4762 HRESULT CALLBACK
IOverlay_SetPalette_Proxy(
4765 PALETTEENTRY
* pPalette
);
4766 void __RPC_STUB
IOverlay_SetPalette_Stub(
4767 struct IRpcStubBuffer
* This
,
4768 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4769 PRPC_MESSAGE pRpcMessage
,
4770 DWORD
* pdwStubPhase
);
4771 HRESULT CALLBACK
IOverlay_GetDefaultColorKey_Proxy(
4773 COLORKEY
* pColorKey
);
4774 void __RPC_STUB
IOverlay_GetDefaultColorKey_Stub(
4775 struct IRpcStubBuffer
* This
,
4776 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4777 PRPC_MESSAGE pRpcMessage
,
4778 DWORD
* pdwStubPhase
);
4779 HRESULT CALLBACK
IOverlay_GetColorKey_Proxy(
4781 COLORKEY
* pColorKey
);
4782 void __RPC_STUB
IOverlay_GetColorKey_Stub(
4783 struct IRpcStubBuffer
* This
,
4784 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4785 PRPC_MESSAGE pRpcMessage
,
4786 DWORD
* pdwStubPhase
);
4787 HRESULT CALLBACK
IOverlay_SetColorKey_Proxy(
4789 COLORKEY
* pColorKey
);
4790 void __RPC_STUB
IOverlay_SetColorKey_Stub(
4791 struct IRpcStubBuffer
* This
,
4792 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4793 PRPC_MESSAGE pRpcMessage
,
4794 DWORD
* pdwStubPhase
);
4795 HRESULT CALLBACK
IOverlay_GetWindowHandle_Proxy(
4798 void __RPC_STUB
IOverlay_GetWindowHandle_Stub(
4799 struct IRpcStubBuffer
* This
,
4800 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4801 PRPC_MESSAGE pRpcMessage
,
4802 DWORD
* pdwStubPhase
);
4803 HRESULT CALLBACK
IOverlay_GetClipList_Proxy(
4806 RECT
* pDestinationRect
,
4807 RGNDATA
** ppRgnData
);
4808 void __RPC_STUB
IOverlay_GetClipList_Stub(
4809 struct IRpcStubBuffer
* This
,
4810 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4811 PRPC_MESSAGE pRpcMessage
,
4812 DWORD
* pdwStubPhase
);
4813 HRESULT CALLBACK
IOverlay_GetVideoPosition_Proxy(
4816 RECT
* pDestinationRect
);
4817 void __RPC_STUB
IOverlay_GetVideoPosition_Stub(
4818 struct IRpcStubBuffer
* This
,
4819 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4820 PRPC_MESSAGE pRpcMessage
,
4821 DWORD
* pdwStubPhase
);
4822 HRESULT CALLBACK
IOverlay_Advise_Proxy(
4824 IOverlayNotify
* pOverlayNotify
,
4826 void __RPC_STUB
IOverlay_Advise_Stub(
4827 struct IRpcStubBuffer
* This
,
4828 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4829 PRPC_MESSAGE pRpcMessage
,
4830 DWORD
* pdwStubPhase
);
4831 HRESULT CALLBACK
IOverlay_Unadvise_Proxy(
4833 void __RPC_STUB
IOverlay_Unadvise_Stub(
4834 struct IRpcStubBuffer
* This
,
4835 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4836 PRPC_MESSAGE pRpcMessage
,
4837 DWORD
* pdwStubPhase
);
4839 #endif /* __IOverlay_INTERFACE_DEFINED__ */
4841 typedef IOverlay
*POVERLAY
;
4843 /*****************************************************************************
4844 * IMediaEventSink interface
4846 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
4847 #define __IMediaEventSink_INTERFACE_DEFINED__
4849 DEFINE_GUID(IID_IMediaEventSink
, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4850 #if defined(__cplusplus) && !defined(CINTERFACE)
4851 struct IMediaEventSink
: public IUnknown
4853 virtual HRESULT STDMETHODCALLTYPE
Notify(
4855 LONG_PTR EventParam1
,
4856 LONG_PTR EventParam2
) = 0;
4860 typedef struct IMediaEventSinkVtbl IMediaEventSinkVtbl
;
4861 struct IMediaEventSink
{
4862 const IMediaEventSinkVtbl
* lpVtbl
;
4864 struct IMediaEventSinkVtbl
{
4865 ICOM_MSVTABLE_COMPAT_FIELDS
4867 /*** IUnknown methods ***/
4868 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4869 IMediaEventSink
* This
,
4873 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4874 IMediaEventSink
* This
);
4876 ULONG (STDMETHODCALLTYPE
*Release
)(
4877 IMediaEventSink
* This
);
4879 /*** IMediaEventSink methods ***/
4880 HRESULT (STDMETHODCALLTYPE
*Notify
)(
4881 IMediaEventSink
* This
,
4883 LONG_PTR EventParam1
,
4884 LONG_PTR EventParam2
);
4888 /*** IUnknown methods ***/
4889 #define IMediaEventSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4890 #define IMediaEventSink_AddRef(p) (p)->lpVtbl->AddRef(p)
4891 #define IMediaEventSink_Release(p) (p)->lpVtbl->Release(p)
4892 /*** IMediaEventSink methods ***/
4893 #define IMediaEventSink_Notify(p,a,b,c) (p)->lpVtbl->Notify(p,a,b,c)
4897 #define IMediaEventSink_METHODS \
4898 ICOM_MSVTABLE_COMPAT_FIELDS \
4899 /*** IUnknown methods ***/ \
4900 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4901 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4902 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4903 /*** IMediaEventSink methods ***/ \
4904 STDMETHOD_(HRESULT,Notify)(THIS_ long EventCode, LONG_PTR EventParam1, LONG_PTR EventParam2) PURE;
4906 HRESULT CALLBACK
IMediaEventSink_Notify_Proxy(
4907 IMediaEventSink
* This
,
4909 LONG_PTR EventParam1
,
4910 LONG_PTR EventParam2
);
4911 void __RPC_STUB
IMediaEventSink_Notify_Stub(
4912 struct IRpcStubBuffer
* This
,
4913 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
4914 PRPC_MESSAGE pRpcMessage
,
4915 DWORD
* pdwStubPhase
);
4917 #endif /* __IMediaEventSink_INTERFACE_DEFINED__ */
4919 typedef IMediaEventSink
*PMEDIAEVENTSINK
;
4921 /*****************************************************************************
4922 * IFileSourceFilter interface
4924 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
4925 #define __IFileSourceFilter_INTERFACE_DEFINED__
4927 DEFINE_GUID(IID_IFileSourceFilter
, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
4928 #if defined(__cplusplus) && !defined(CINTERFACE)
4929 struct IFileSourceFilter
: public IUnknown
4931 virtual HRESULT STDMETHODCALLTYPE
Load(
4932 LPCOLESTR pszFileName
,
4933 const AM_MEDIA_TYPE
* pmt
) = 0;
4935 virtual HRESULT STDMETHODCALLTYPE
GetCurFile(
4936 LPOLESTR
* ppszFileName
,
4937 AM_MEDIA_TYPE
* pmt
) = 0;
4941 typedef struct IFileSourceFilterVtbl IFileSourceFilterVtbl
;
4942 struct IFileSourceFilter
{
4943 const IFileSourceFilterVtbl
* lpVtbl
;
4945 struct IFileSourceFilterVtbl
{
4946 ICOM_MSVTABLE_COMPAT_FIELDS
4948 /*** IUnknown methods ***/
4949 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
4950 IFileSourceFilter
* This
,
4954 ULONG (STDMETHODCALLTYPE
*AddRef
)(
4955 IFileSourceFilter
* This
);
4957 ULONG (STDMETHODCALLTYPE
*Release
)(
4958 IFileSourceFilter
* This
);
4960 /*** IFileSourceFilter methods ***/
4961 HRESULT (STDMETHODCALLTYPE
*Load
)(
4962 IFileSourceFilter
* This
,
4963 LPCOLESTR pszFileName
,
4964 const AM_MEDIA_TYPE
* pmt
);
4966 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
4967 IFileSourceFilter
* This
,
4968 LPOLESTR
* ppszFileName
,
4969 AM_MEDIA_TYPE
* pmt
);
4973 /*** IUnknown methods ***/
4974 #define IFileSourceFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
4975 #define IFileSourceFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
4976 #define IFileSourceFilter_Release(p) (p)->lpVtbl->Release(p)
4977 /*** IFileSourceFilter methods ***/
4978 #define IFileSourceFilter_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
4979 #define IFileSourceFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
4983 #define IFileSourceFilter_METHODS \
4984 ICOM_MSVTABLE_COMPAT_FIELDS \
4985 /*** IUnknown methods ***/ \
4986 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
4987 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
4988 STDMETHOD_(ULONG,Release)(THIS) PURE; \
4989 /*** IFileSourceFilter methods ***/ \
4990 STDMETHOD_(HRESULT,Load)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
4991 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
4993 HRESULT CALLBACK
IFileSourceFilter_Load_Proxy(
4994 IFileSourceFilter
* This
,
4995 LPCOLESTR pszFileName
,
4996 const AM_MEDIA_TYPE
* pmt
);
4997 void __RPC_STUB
IFileSourceFilter_Load_Stub(
4998 struct IRpcStubBuffer
* This
,
4999 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5000 PRPC_MESSAGE pRpcMessage
,
5001 DWORD
* pdwStubPhase
);
5002 HRESULT CALLBACK
IFileSourceFilter_GetCurFile_Proxy(
5003 IFileSourceFilter
* This
,
5004 LPOLESTR
* ppszFileName
,
5005 AM_MEDIA_TYPE
* pmt
);
5006 void __RPC_STUB
IFileSourceFilter_GetCurFile_Stub(
5007 struct IRpcStubBuffer
* This
,
5008 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5009 PRPC_MESSAGE pRpcMessage
,
5010 DWORD
* pdwStubPhase
);
5012 #endif /* __IFileSourceFilter_INTERFACE_DEFINED__ */
5014 typedef IFileSourceFilter
*PFILTERFILESOURCE
;
5016 /*****************************************************************************
5017 * IFileSinkFilter interface
5019 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
5020 #define __IFileSinkFilter_INTERFACE_DEFINED__
5022 DEFINE_GUID(IID_IFileSinkFilter
, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
5023 #if defined(__cplusplus) && !defined(CINTERFACE)
5024 struct IFileSinkFilter
: public IUnknown
5026 virtual HRESULT STDMETHODCALLTYPE
SetFileName(
5027 LPCOLESTR pszFileName
,
5028 const AM_MEDIA_TYPE
* pmt
) = 0;
5030 virtual HRESULT STDMETHODCALLTYPE
GetCurFile(
5031 LPOLESTR
* ppszFileName
,
5032 AM_MEDIA_TYPE
* pmt
) = 0;
5036 typedef struct IFileSinkFilterVtbl IFileSinkFilterVtbl
;
5037 struct IFileSinkFilter
{
5038 const IFileSinkFilterVtbl
* lpVtbl
;
5040 struct IFileSinkFilterVtbl
{
5041 ICOM_MSVTABLE_COMPAT_FIELDS
5043 /*** IUnknown methods ***/
5044 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5045 IFileSinkFilter
* This
,
5049 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5050 IFileSinkFilter
* This
);
5052 ULONG (STDMETHODCALLTYPE
*Release
)(
5053 IFileSinkFilter
* This
);
5055 /*** IFileSinkFilter methods ***/
5056 HRESULT (STDMETHODCALLTYPE
*SetFileName
)(
5057 IFileSinkFilter
* This
,
5058 LPCOLESTR pszFileName
,
5059 const AM_MEDIA_TYPE
* pmt
);
5061 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
5062 IFileSinkFilter
* This
,
5063 LPOLESTR
* ppszFileName
,
5064 AM_MEDIA_TYPE
* pmt
);
5068 /*** IUnknown methods ***/
5069 #define IFileSinkFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5070 #define IFileSinkFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
5071 #define IFileSinkFilter_Release(p) (p)->lpVtbl->Release(p)
5072 /*** IFileSinkFilter methods ***/
5073 #define IFileSinkFilter_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
5074 #define IFileSinkFilter_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
5078 #define IFileSinkFilter_METHODS \
5079 ICOM_MSVTABLE_COMPAT_FIELDS \
5080 /*** IUnknown methods ***/ \
5081 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5082 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5083 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5084 /*** IFileSinkFilter methods ***/ \
5085 STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
5086 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE;
5088 HRESULT CALLBACK
IFileSinkFilter_SetFileName_Proxy(
5089 IFileSinkFilter
* This
,
5090 LPCOLESTR pszFileName
,
5091 const AM_MEDIA_TYPE
* pmt
);
5092 void __RPC_STUB
IFileSinkFilter_SetFileName_Stub(
5093 struct IRpcStubBuffer
* This
,
5094 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5095 PRPC_MESSAGE pRpcMessage
,
5096 DWORD
* pdwStubPhase
);
5097 HRESULT CALLBACK
IFileSinkFilter_GetCurFile_Proxy(
5098 IFileSinkFilter
* This
,
5099 LPOLESTR
* ppszFileName
,
5100 AM_MEDIA_TYPE
* pmt
);
5101 void __RPC_STUB
IFileSinkFilter_GetCurFile_Stub(
5102 struct IRpcStubBuffer
* This
,
5103 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5104 PRPC_MESSAGE pRpcMessage
,
5105 DWORD
* pdwStubPhase
);
5107 #endif /* __IFileSinkFilter_INTERFACE_DEFINED__ */
5109 typedef IFileSinkFilter
*PFILTERFILESINK
;
5111 /*****************************************************************************
5112 * IFileSinkFilter2 interface
5114 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
5115 #define __IFileSinkFilter2_INTERFACE_DEFINED__
5117 DEFINE_GUID(IID_IFileSinkFilter2
, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
5118 #if defined(__cplusplus) && !defined(CINTERFACE)
5119 struct IFileSinkFilter2
: public IFileSinkFilter
5121 virtual HRESULT STDMETHODCALLTYPE
SetMode(
5124 virtual HRESULT STDMETHODCALLTYPE
GetMode(
5125 DWORD
* pdwFlags
) = 0;
5129 typedef struct IFileSinkFilter2Vtbl IFileSinkFilter2Vtbl
;
5130 struct IFileSinkFilter2
{
5131 const IFileSinkFilter2Vtbl
* lpVtbl
;
5133 struct IFileSinkFilter2Vtbl
{
5134 ICOM_MSVTABLE_COMPAT_FIELDS
5136 /*** IUnknown methods ***/
5137 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5138 IFileSinkFilter2
* This
,
5142 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5143 IFileSinkFilter2
* This
);
5145 ULONG (STDMETHODCALLTYPE
*Release
)(
5146 IFileSinkFilter2
* This
);
5148 /*** IFileSinkFilter methods ***/
5149 HRESULT (STDMETHODCALLTYPE
*SetFileName
)(
5150 IFileSinkFilter2
* This
,
5151 LPCOLESTR pszFileName
,
5152 const AM_MEDIA_TYPE
* pmt
);
5154 HRESULT (STDMETHODCALLTYPE
*GetCurFile
)(
5155 IFileSinkFilter2
* This
,
5156 LPOLESTR
* ppszFileName
,
5157 AM_MEDIA_TYPE
* pmt
);
5159 /*** IFileSinkFilter2 methods ***/
5160 HRESULT (STDMETHODCALLTYPE
*SetMode
)(
5161 IFileSinkFilter2
* This
,
5164 HRESULT (STDMETHODCALLTYPE
*GetMode
)(
5165 IFileSinkFilter2
* This
,
5170 /*** IUnknown methods ***/
5171 #define IFileSinkFilter2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5172 #define IFileSinkFilter2_AddRef(p) (p)->lpVtbl->AddRef(p)
5173 #define IFileSinkFilter2_Release(p) (p)->lpVtbl->Release(p)
5174 /*** IFileSinkFilter methods ***/
5175 #define IFileSinkFilter2_SetFileName(p,a,b) (p)->lpVtbl->SetFileName(p,a,b)
5176 #define IFileSinkFilter2_GetCurFile(p,a,b) (p)->lpVtbl->GetCurFile(p,a,b)
5177 /*** IFileSinkFilter2 methods ***/
5178 #define IFileSinkFilter2_SetMode(p,a) (p)->lpVtbl->SetMode(p,a)
5179 #define IFileSinkFilter2_GetMode(p,a) (p)->lpVtbl->GetMode(p,a)
5183 #define IFileSinkFilter2_METHODS \
5184 ICOM_MSVTABLE_COMPAT_FIELDS \
5185 /*** IUnknown methods ***/ \
5186 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5187 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5188 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5189 /*** IFileSinkFilter methods ***/ \
5190 STDMETHOD_(HRESULT,SetFileName)(THIS_ LPCOLESTR pszFileName, const AM_MEDIA_TYPE* pmt) PURE; \
5191 STDMETHOD_(HRESULT,GetCurFile)(THIS_ LPOLESTR* ppszFileName, AM_MEDIA_TYPE* pmt) PURE; \
5192 /*** IFileSinkFilter2 methods ***/ \
5193 STDMETHOD_(HRESULT,SetMode)(THIS_ DWORD dwFlags) PURE; \
5194 STDMETHOD_(HRESULT,GetMode)(THIS_ DWORD* pdwFlags) PURE;
5196 HRESULT CALLBACK
IFileSinkFilter2_SetMode_Proxy(
5197 IFileSinkFilter2
* This
,
5199 void __RPC_STUB
IFileSinkFilter2_SetMode_Stub(
5200 struct IRpcStubBuffer
* This
,
5201 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5202 PRPC_MESSAGE pRpcMessage
,
5203 DWORD
* pdwStubPhase
);
5204 HRESULT CALLBACK
IFileSinkFilter2_GetMode_Proxy(
5205 IFileSinkFilter2
* This
,
5207 void __RPC_STUB
IFileSinkFilter2_GetMode_Stub(
5208 struct IRpcStubBuffer
* This
,
5209 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5210 PRPC_MESSAGE pRpcMessage
,
5211 DWORD
* pdwStubPhase
);
5213 #endif /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
5215 typedef IFileSinkFilter2
*PFILESINKFILTER2
;
5218 AM_FILE_OVERWRITE
= 0x1
5219 } AM_FILESINK_FLAGS
;
5221 /*****************************************************************************
5222 * IGraphBuilder interface
5224 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
5225 #define __IGraphBuilder_INTERFACE_DEFINED__
5227 DEFINE_GUID(IID_IGraphBuilder
, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
5228 #if defined(__cplusplus) && !defined(CINTERFACE)
5229 struct IGraphBuilder
: public IFilterGraph
5231 virtual HRESULT STDMETHODCALLTYPE
Connect(
5235 virtual HRESULT STDMETHODCALLTYPE
Render(
5238 virtual HRESULT STDMETHODCALLTYPE
RenderFile(
5239 LPCWSTR lpcwstrFile
,
5240 LPCWSTR lpcwstrPlayList
) = 0;
5242 virtual HRESULT STDMETHODCALLTYPE
AddSourceFilter(
5243 LPCWSTR lpcwstrFileName
,
5244 LPCWSTR lpcwstrFilterName
,
5245 IBaseFilter
** ppFilter
) = 0;
5247 virtual HRESULT STDMETHODCALLTYPE
SetLogFile(
5248 DWORD_PTR hFile
) = 0;
5250 virtual HRESULT STDMETHODCALLTYPE
Abort(
5253 virtual HRESULT STDMETHODCALLTYPE
ShouldOperationContinue(
5258 typedef struct IGraphBuilderVtbl IGraphBuilderVtbl
;
5259 struct IGraphBuilder
{
5260 const IGraphBuilderVtbl
* lpVtbl
;
5262 struct IGraphBuilderVtbl
{
5263 ICOM_MSVTABLE_COMPAT_FIELDS
5265 /*** IUnknown methods ***/
5266 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5267 IGraphBuilder
* This
,
5271 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5272 IGraphBuilder
* This
);
5274 ULONG (STDMETHODCALLTYPE
*Release
)(
5275 IGraphBuilder
* This
);
5277 /*** IFilterGraph methods ***/
5278 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
5279 IGraphBuilder
* This
,
5280 IBaseFilter
* pFilter
,
5283 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
5284 IGraphBuilder
* This
,
5285 IBaseFilter
* pFilter
);
5287 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
5288 IGraphBuilder
* This
,
5289 IEnumFilters
** ppEnum
);
5291 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
5292 IGraphBuilder
* This
,
5294 IBaseFilter
** ppFilter
);
5296 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
5297 IGraphBuilder
* This
,
5300 const AM_MEDIA_TYPE
* pmt
);
5302 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
5303 IGraphBuilder
* This
,
5306 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
5307 IGraphBuilder
* This
,
5310 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
5311 IGraphBuilder
* This
);
5313 /*** IGraphBuilder methods ***/
5314 HRESULT (STDMETHODCALLTYPE
*Connect
)(
5315 IGraphBuilder
* This
,
5319 HRESULT (STDMETHODCALLTYPE
*Render
)(
5320 IGraphBuilder
* This
,
5323 HRESULT (STDMETHODCALLTYPE
*RenderFile
)(
5324 IGraphBuilder
* This
,
5325 LPCWSTR lpcwstrFile
,
5326 LPCWSTR lpcwstrPlayList
);
5328 HRESULT (STDMETHODCALLTYPE
*AddSourceFilter
)(
5329 IGraphBuilder
* This
,
5330 LPCWSTR lpcwstrFileName
,
5331 LPCWSTR lpcwstrFilterName
,
5332 IBaseFilter
** ppFilter
);
5334 HRESULT (STDMETHODCALLTYPE
*SetLogFile
)(
5335 IGraphBuilder
* This
,
5338 HRESULT (STDMETHODCALLTYPE
*Abort
)(
5339 IGraphBuilder
* This
);
5341 HRESULT (STDMETHODCALLTYPE
*ShouldOperationContinue
)(
5342 IGraphBuilder
* This
);
5346 /*** IUnknown methods ***/
5347 #define IGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5348 #define IGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
5349 #define IGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
5350 /*** IFilterGraph methods ***/
5351 #define IGraphBuilder_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
5352 #define IGraphBuilder_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
5353 #define IGraphBuilder_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
5354 #define IGraphBuilder_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
5355 #define IGraphBuilder_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
5356 #define IGraphBuilder_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
5357 #define IGraphBuilder_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
5358 #define IGraphBuilder_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
5359 /*** IGraphBuilder methods ***/
5360 #define IGraphBuilder_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
5361 #define IGraphBuilder_Render(p,a) (p)->lpVtbl->Render(p,a)
5362 #define IGraphBuilder_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
5363 #define IGraphBuilder_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
5364 #define IGraphBuilder_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
5365 #define IGraphBuilder_Abort(p) (p)->lpVtbl->Abort(p)
5366 #define IGraphBuilder_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
5370 #define IGraphBuilder_METHODS \
5371 ICOM_MSVTABLE_COMPAT_FIELDS \
5372 /*** IUnknown methods ***/ \
5373 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5374 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5375 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5376 /*** IFilterGraph methods ***/ \
5377 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
5378 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
5379 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
5380 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
5381 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
5382 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
5383 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
5384 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
5385 /*** IGraphBuilder methods ***/ \
5386 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
5387 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
5388 STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
5389 STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
5390 STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
5391 STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
5392 STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE;
5394 HRESULT CALLBACK
IGraphBuilder_Connect_Proxy(
5395 IGraphBuilder
* This
,
5398 void __RPC_STUB
IGraphBuilder_Connect_Stub(
5399 struct IRpcStubBuffer
* This
,
5400 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5401 PRPC_MESSAGE pRpcMessage
,
5402 DWORD
* pdwStubPhase
);
5403 HRESULT CALLBACK
IGraphBuilder_Render_Proxy(
5404 IGraphBuilder
* This
,
5406 void __RPC_STUB
IGraphBuilder_Render_Stub(
5407 struct IRpcStubBuffer
* This
,
5408 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5409 PRPC_MESSAGE pRpcMessage
,
5410 DWORD
* pdwStubPhase
);
5411 HRESULT CALLBACK
IGraphBuilder_RenderFile_Proxy(
5412 IGraphBuilder
* This
,
5413 LPCWSTR lpcwstrFile
,
5414 LPCWSTR lpcwstrPlayList
);
5415 void __RPC_STUB
IGraphBuilder_RenderFile_Stub(
5416 struct IRpcStubBuffer
* This
,
5417 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5418 PRPC_MESSAGE pRpcMessage
,
5419 DWORD
* pdwStubPhase
);
5420 HRESULT CALLBACK
IGraphBuilder_AddSourceFilter_Proxy(
5421 IGraphBuilder
* This
,
5422 LPCWSTR lpcwstrFileName
,
5423 LPCWSTR lpcwstrFilterName
,
5424 IBaseFilter
** ppFilter
);
5425 void __RPC_STUB
IGraphBuilder_AddSourceFilter_Stub(
5426 struct IRpcStubBuffer
* This
,
5427 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5428 PRPC_MESSAGE pRpcMessage
,
5429 DWORD
* pdwStubPhase
);
5430 HRESULT CALLBACK
IGraphBuilder_SetLogFile_Proxy(
5431 IGraphBuilder
* This
,
5433 void __RPC_STUB
IGraphBuilder_SetLogFile_Stub(
5434 struct IRpcStubBuffer
* This
,
5435 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5436 PRPC_MESSAGE pRpcMessage
,
5437 DWORD
* pdwStubPhase
);
5438 HRESULT CALLBACK
IGraphBuilder_Abort_Proxy(
5439 IGraphBuilder
* This
);
5440 void __RPC_STUB
IGraphBuilder_Abort_Stub(
5441 struct IRpcStubBuffer
* This
,
5442 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5443 PRPC_MESSAGE pRpcMessage
,
5444 DWORD
* pdwStubPhase
);
5445 HRESULT CALLBACK
IGraphBuilder_ShouldOperationContinue_Proxy(
5446 IGraphBuilder
* This
);
5447 void __RPC_STUB
IGraphBuilder_ShouldOperationContinue_Stub(
5448 struct IRpcStubBuffer
* This
,
5449 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5450 PRPC_MESSAGE pRpcMessage
,
5451 DWORD
* pdwStubPhase
);
5453 #endif /* __IGraphBuilder_INTERFACE_DEFINED__ */
5455 /*****************************************************************************
5456 * ICaptureGraphBuilder interface
5458 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
5459 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
5461 DEFINE_GUID(IID_ICaptureGraphBuilder
, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
5462 #if defined(__cplusplus) && !defined(CINTERFACE)
5463 struct ICaptureGraphBuilder
: public IUnknown
5465 virtual HRESULT STDMETHODCALLTYPE
SetFiltergraph(
5466 IGraphBuilder
* pfg
) = 0;
5468 virtual HRESULT STDMETHODCALLTYPE
GetFiltergraph(
5469 IGraphBuilder
** ppfg
) = 0;
5471 virtual HRESULT STDMETHODCALLTYPE
SetOutputFileName(
5473 LPCOLESTR lpstrFile
,
5475 IFileSinkFilter
** ppSink
) = 0;
5477 virtual HRESULT STDMETHODCALLTYPE
FindInterface(
5478 const GUID
* pCategory
,
5483 virtual HRESULT STDMETHODCALLTYPE
RenderStream(
5484 const GUID
* pCategory
,
5486 IBaseFilter
* pfCompressor
,
5487 IBaseFilter
* pfRenderer
) = 0;
5489 virtual HRESULT STDMETHODCALLTYPE
ControlStream(
5490 const GUID
* pCategory
,
5491 IBaseFilter
* pFilter
,
5492 REFERENCE_TIME
* pstart
,
5493 REFERENCE_TIME
* pstop
,
5495 WORD wStopCookie
) = 0;
5497 virtual HRESULT STDMETHODCALLTYPE
AllocCapFile(
5499 DWORDLONG dwlSize
) = 0;
5501 virtual HRESULT STDMETHODCALLTYPE
CopyCaptureFile(
5505 IAMCopyCaptureFileProgress
* pCallback
) = 0;
5509 typedef struct ICaptureGraphBuilderVtbl ICaptureGraphBuilderVtbl
;
5510 struct ICaptureGraphBuilder
{
5511 const ICaptureGraphBuilderVtbl
* lpVtbl
;
5513 struct ICaptureGraphBuilderVtbl
{
5514 ICOM_MSVTABLE_COMPAT_FIELDS
5516 /*** IUnknown methods ***/
5517 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5518 ICaptureGraphBuilder
* This
,
5522 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5523 ICaptureGraphBuilder
* This
);
5525 ULONG (STDMETHODCALLTYPE
*Release
)(
5526 ICaptureGraphBuilder
* This
);
5528 /*** ICaptureGraphBuilder methods ***/
5529 HRESULT (STDMETHODCALLTYPE
*SetFiltergraph
)(
5530 ICaptureGraphBuilder
* This
,
5531 IGraphBuilder
* pfg
);
5533 HRESULT (STDMETHODCALLTYPE
*GetFiltergraph
)(
5534 ICaptureGraphBuilder
* This
,
5535 IGraphBuilder
** ppfg
);
5537 HRESULT (STDMETHODCALLTYPE
*SetOutputFileName
)(
5538 ICaptureGraphBuilder
* This
,
5540 LPCOLESTR lpstrFile
,
5542 IFileSinkFilter
** ppSink
);
5544 HRESULT (STDMETHODCALLTYPE
*FindInterface
)(
5545 ICaptureGraphBuilder
* This
,
5546 const GUID
* pCategory
,
5551 HRESULT (STDMETHODCALLTYPE
*RenderStream
)(
5552 ICaptureGraphBuilder
* This
,
5553 const GUID
* pCategory
,
5555 IBaseFilter
* pfCompressor
,
5556 IBaseFilter
* pfRenderer
);
5558 HRESULT (STDMETHODCALLTYPE
*ControlStream
)(
5559 ICaptureGraphBuilder
* This
,
5560 const GUID
* pCategory
,
5561 IBaseFilter
* pFilter
,
5562 REFERENCE_TIME
* pstart
,
5563 REFERENCE_TIME
* pstop
,
5567 HRESULT (STDMETHODCALLTYPE
*AllocCapFile
)(
5568 ICaptureGraphBuilder
* This
,
5572 HRESULT (STDMETHODCALLTYPE
*CopyCaptureFile
)(
5573 ICaptureGraphBuilder
* This
,
5577 IAMCopyCaptureFileProgress
* pCallback
);
5581 /*** IUnknown methods ***/
5582 #define ICaptureGraphBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5583 #define ICaptureGraphBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
5584 #define ICaptureGraphBuilder_Release(p) (p)->lpVtbl->Release(p)
5585 /*** ICaptureGraphBuilder methods ***/
5586 #define ICaptureGraphBuilder_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
5587 #define ICaptureGraphBuilder_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
5588 #define ICaptureGraphBuilder_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
5589 #define ICaptureGraphBuilder_FindInterface(p,a,b,c,d) (p)->lpVtbl->FindInterface(p,a,b,c,d)
5590 #define ICaptureGraphBuilder_RenderStream(p,a,b,c,d) (p)->lpVtbl->RenderStream(p,a,b,c,d)
5591 #define ICaptureGraphBuilder_ControlStream(p,a,b,c,d,e,f) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f)
5592 #define ICaptureGraphBuilder_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
5593 #define ICaptureGraphBuilder_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
5597 #define ICaptureGraphBuilder_METHODS \
5598 ICOM_MSVTABLE_COMPAT_FIELDS \
5599 /*** IUnknown methods ***/ \
5600 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5601 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5602 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5603 /*** ICaptureGraphBuilder methods ***/ \
5604 STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
5605 STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
5606 STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
5607 STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
5608 STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
5609 STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
5610 STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
5611 STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE;
5613 HRESULT CALLBACK
ICaptureGraphBuilder_SetFiltergraph_Proxy(
5614 ICaptureGraphBuilder
* This
,
5615 IGraphBuilder
* pfg
);
5616 void __RPC_STUB
ICaptureGraphBuilder_SetFiltergraph_Stub(
5617 struct IRpcStubBuffer
* This
,
5618 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5619 PRPC_MESSAGE pRpcMessage
,
5620 DWORD
* pdwStubPhase
);
5621 HRESULT CALLBACK
ICaptureGraphBuilder_GetFiltergraph_Proxy(
5622 ICaptureGraphBuilder
* This
,
5623 IGraphBuilder
** ppfg
);
5624 void __RPC_STUB
ICaptureGraphBuilder_GetFiltergraph_Stub(
5625 struct IRpcStubBuffer
* This
,
5626 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5627 PRPC_MESSAGE pRpcMessage
,
5628 DWORD
* pdwStubPhase
);
5629 HRESULT CALLBACK
ICaptureGraphBuilder_SetOutputFileName_Proxy(
5630 ICaptureGraphBuilder
* This
,
5632 LPCOLESTR lpstrFile
,
5634 IFileSinkFilter
** ppSink
);
5635 void __RPC_STUB
ICaptureGraphBuilder_SetOutputFileName_Stub(
5636 struct IRpcStubBuffer
* This
,
5637 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5638 PRPC_MESSAGE pRpcMessage
,
5639 DWORD
* pdwStubPhase
);
5640 HRESULT CALLBACK
ICaptureGraphBuilder_RemoteFindInterface_Proxy(
5641 ICaptureGraphBuilder
* This
,
5642 const GUID
* pCategory
,
5646 void __RPC_STUB
ICaptureGraphBuilder_RemoteFindInterface_Stub(
5647 struct IRpcStubBuffer
* This
,
5648 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5649 PRPC_MESSAGE pRpcMessage
,
5650 DWORD
* pdwStubPhase
);
5651 HRESULT CALLBACK
ICaptureGraphBuilder_FindInterface_Proxy(
5652 ICaptureGraphBuilder
* This
,
5653 const GUID
* pCategory
,
5657 HRESULT __RPC_STUB
ICaptureGraphBuilder_FindInterface_Stub(
5658 ICaptureGraphBuilder
* This
,
5659 const GUID
* pCategory
,
5663 HRESULT CALLBACK
ICaptureGraphBuilder_RenderStream_Proxy(
5664 ICaptureGraphBuilder
* This
,
5665 const GUID
* pCategory
,
5667 IBaseFilter
* pfCompressor
,
5668 IBaseFilter
* pfRenderer
);
5669 void __RPC_STUB
ICaptureGraphBuilder_RenderStream_Stub(
5670 struct IRpcStubBuffer
* This
,
5671 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5672 PRPC_MESSAGE pRpcMessage
,
5673 DWORD
* pdwStubPhase
);
5674 HRESULT CALLBACK
ICaptureGraphBuilder_ControlStream_Proxy(
5675 ICaptureGraphBuilder
* This
,
5676 const GUID
* pCategory
,
5677 IBaseFilter
* pFilter
,
5678 REFERENCE_TIME
* pstart
,
5679 REFERENCE_TIME
* pstop
,
5682 void __RPC_STUB
ICaptureGraphBuilder_ControlStream_Stub(
5683 struct IRpcStubBuffer
* This
,
5684 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5685 PRPC_MESSAGE pRpcMessage
,
5686 DWORD
* pdwStubPhase
);
5687 HRESULT CALLBACK
ICaptureGraphBuilder_AllocCapFile_Proxy(
5688 ICaptureGraphBuilder
* This
,
5691 void __RPC_STUB
ICaptureGraphBuilder_AllocCapFile_Stub(
5692 struct IRpcStubBuffer
* This
,
5693 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5694 PRPC_MESSAGE pRpcMessage
,
5695 DWORD
* pdwStubPhase
);
5696 HRESULT CALLBACK
ICaptureGraphBuilder_CopyCaptureFile_Proxy(
5697 ICaptureGraphBuilder
* This
,
5701 IAMCopyCaptureFileProgress
* pCallback
);
5702 void __RPC_STUB
ICaptureGraphBuilder_CopyCaptureFile_Stub(
5703 struct IRpcStubBuffer
* This
,
5704 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5705 PRPC_MESSAGE pRpcMessage
,
5706 DWORD
* pdwStubPhase
);
5708 #endif /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
5710 /*****************************************************************************
5711 * IAMCopyCaptureFileProgress interface
5713 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
5714 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
5716 DEFINE_GUID(IID_IAMCopyCaptureFileProgress
, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
5717 #if defined(__cplusplus) && !defined(CINTERFACE)
5718 struct IAMCopyCaptureFileProgress
: public IUnknown
5720 virtual HRESULT STDMETHODCALLTYPE
Progress(
5725 typedef struct IAMCopyCaptureFileProgressVtbl IAMCopyCaptureFileProgressVtbl
;
5726 struct IAMCopyCaptureFileProgress
{
5727 const IAMCopyCaptureFileProgressVtbl
* lpVtbl
;
5729 struct IAMCopyCaptureFileProgressVtbl
{
5730 ICOM_MSVTABLE_COMPAT_FIELDS
5732 /*** IUnknown methods ***/
5733 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5734 IAMCopyCaptureFileProgress
* This
,
5738 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5739 IAMCopyCaptureFileProgress
* This
);
5741 ULONG (STDMETHODCALLTYPE
*Release
)(
5742 IAMCopyCaptureFileProgress
* This
);
5744 /*** IAMCopyCaptureFileProgress methods ***/
5745 HRESULT (STDMETHODCALLTYPE
*Progress
)(
5746 IAMCopyCaptureFileProgress
* This
,
5751 /*** IUnknown methods ***/
5752 #define IAMCopyCaptureFileProgress_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5753 #define IAMCopyCaptureFileProgress_AddRef(p) (p)->lpVtbl->AddRef(p)
5754 #define IAMCopyCaptureFileProgress_Release(p) (p)->lpVtbl->Release(p)
5755 /*** IAMCopyCaptureFileProgress methods ***/
5756 #define IAMCopyCaptureFileProgress_Progress(p,a) (p)->lpVtbl->Progress(p,a)
5760 #define IAMCopyCaptureFileProgress_METHODS \
5761 ICOM_MSVTABLE_COMPAT_FIELDS \
5762 /*** IUnknown methods ***/ \
5763 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5764 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5765 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5766 /*** IAMCopyCaptureFileProgress methods ***/ \
5767 STDMETHOD_(HRESULT,Progress)(THIS_ int iProgress) PURE;
5769 HRESULT CALLBACK
IAMCopyCaptureFileProgress_Progress_Proxy(
5770 IAMCopyCaptureFileProgress
* This
,
5772 void __RPC_STUB
IAMCopyCaptureFileProgress_Progress_Stub(
5773 struct IRpcStubBuffer
* This
,
5774 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5775 PRPC_MESSAGE pRpcMessage
,
5776 DWORD
* pdwStubPhase
);
5778 #endif /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
5780 /*****************************************************************************
5781 * ICaptureGraphBuilder2 interface
5783 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
5784 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
5786 DEFINE_GUID(IID_ICaptureGraphBuilder2
, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
5787 #if defined(__cplusplus) && !defined(CINTERFACE)
5788 struct ICaptureGraphBuilder2
: public IUnknown
5790 virtual HRESULT STDMETHODCALLTYPE
SetFiltergraph(
5791 IGraphBuilder
* pfg
) = 0;
5793 virtual HRESULT STDMETHODCALLTYPE
GetFiltergraph(
5794 IGraphBuilder
** ppfg
) = 0;
5796 virtual HRESULT STDMETHODCALLTYPE
SetOutputFileName(
5798 LPCOLESTR lpstrFile
,
5800 IFileSinkFilter
** ppSink
) = 0;
5802 virtual HRESULT STDMETHODCALLTYPE
FindInterface(
5803 const GUID
* pCategory
,
5809 virtual HRESULT STDMETHODCALLTYPE
RenderStream(
5810 const GUID
* pCategory
,
5813 IBaseFilter
* pfCompressor
,
5814 IBaseFilter
* pfRenderer
) = 0;
5816 virtual HRESULT STDMETHODCALLTYPE
ControlStream(
5817 const GUID
* pCategory
,
5819 IBaseFilter
* pFilter
,
5820 REFERENCE_TIME
* pstart
,
5821 REFERENCE_TIME
* pstop
,
5823 WORD wStopCookie
) = 0;
5825 virtual HRESULT STDMETHODCALLTYPE
AllocCapFile(
5827 DWORDLONG dwlSize
) = 0;
5829 virtual HRESULT STDMETHODCALLTYPE
CopyCaptureFile(
5833 IAMCopyCaptureFileProgress
* pCallback
) = 0;
5835 virtual HRESULT STDMETHODCALLTYPE
FindPin(
5837 PIN_DIRECTION pindir
,
5838 const GUID
* pCategory
,
5846 typedef struct ICaptureGraphBuilder2Vtbl ICaptureGraphBuilder2Vtbl
;
5847 struct ICaptureGraphBuilder2
{
5848 const ICaptureGraphBuilder2Vtbl
* lpVtbl
;
5850 struct ICaptureGraphBuilder2Vtbl
{
5851 ICOM_MSVTABLE_COMPAT_FIELDS
5853 /*** IUnknown methods ***/
5854 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
5855 ICaptureGraphBuilder2
* This
,
5859 ULONG (STDMETHODCALLTYPE
*AddRef
)(
5860 ICaptureGraphBuilder2
* This
);
5862 ULONG (STDMETHODCALLTYPE
*Release
)(
5863 ICaptureGraphBuilder2
* This
);
5865 /*** ICaptureGraphBuilder2 methods ***/
5866 HRESULT (STDMETHODCALLTYPE
*SetFiltergraph
)(
5867 ICaptureGraphBuilder2
* This
,
5868 IGraphBuilder
* pfg
);
5870 HRESULT (STDMETHODCALLTYPE
*GetFiltergraph
)(
5871 ICaptureGraphBuilder2
* This
,
5872 IGraphBuilder
** ppfg
);
5874 HRESULT (STDMETHODCALLTYPE
*SetOutputFileName
)(
5875 ICaptureGraphBuilder2
* This
,
5877 LPCOLESTR lpstrFile
,
5879 IFileSinkFilter
** ppSink
);
5881 HRESULT (STDMETHODCALLTYPE
*FindInterface
)(
5882 ICaptureGraphBuilder2
* This
,
5883 const GUID
* pCategory
,
5889 HRESULT (STDMETHODCALLTYPE
*RenderStream
)(
5890 ICaptureGraphBuilder2
* This
,
5891 const GUID
* pCategory
,
5894 IBaseFilter
* pfCompressor
,
5895 IBaseFilter
* pfRenderer
);
5897 HRESULT (STDMETHODCALLTYPE
*ControlStream
)(
5898 ICaptureGraphBuilder2
* This
,
5899 const GUID
* pCategory
,
5901 IBaseFilter
* pFilter
,
5902 REFERENCE_TIME
* pstart
,
5903 REFERENCE_TIME
* pstop
,
5907 HRESULT (STDMETHODCALLTYPE
*AllocCapFile
)(
5908 ICaptureGraphBuilder2
* This
,
5912 HRESULT (STDMETHODCALLTYPE
*CopyCaptureFile
)(
5913 ICaptureGraphBuilder2
* This
,
5917 IAMCopyCaptureFileProgress
* pCallback
);
5919 HRESULT (STDMETHODCALLTYPE
*FindPin
)(
5920 ICaptureGraphBuilder2
* This
,
5922 PIN_DIRECTION pindir
,
5923 const GUID
* pCategory
,
5931 /*** IUnknown methods ***/
5932 #define ICaptureGraphBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
5933 #define ICaptureGraphBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p)
5934 #define ICaptureGraphBuilder2_Release(p) (p)->lpVtbl->Release(p)
5935 /*** ICaptureGraphBuilder2 methods ***/
5936 #define ICaptureGraphBuilder2_SetFiltergraph(p,a) (p)->lpVtbl->SetFiltergraph(p,a)
5937 #define ICaptureGraphBuilder2_GetFiltergraph(p,a) (p)->lpVtbl->GetFiltergraph(p,a)
5938 #define ICaptureGraphBuilder2_SetOutputFileName(p,a,b,c,d) (p)->lpVtbl->SetOutputFileName(p,a,b,c,d)
5939 #define ICaptureGraphBuilder2_FindInterface(p,a,b,c,d,e) (p)->lpVtbl->FindInterface(p,a,b,c,d,e)
5940 #define ICaptureGraphBuilder2_RenderStream(p,a,b,c,d,e) (p)->lpVtbl->RenderStream(p,a,b,c,d,e)
5941 #define ICaptureGraphBuilder2_ControlStream(p,a,b,c,d,e,f,g) (p)->lpVtbl->ControlStream(p,a,b,c,d,e,f,g)
5942 #define ICaptureGraphBuilder2_AllocCapFile(p,a,b) (p)->lpVtbl->AllocCapFile(p,a,b)
5943 #define ICaptureGraphBuilder2_CopyCaptureFile(p,a,b,c,d) (p)->lpVtbl->CopyCaptureFile(p,a,b,c,d)
5944 #define ICaptureGraphBuilder2_FindPin(p,a,b,c,d,e,f,g) (p)->lpVtbl->FindPin(p,a,b,c,d,e,f,g)
5948 #define ICaptureGraphBuilder2_METHODS \
5949 ICOM_MSVTABLE_COMPAT_FIELDS \
5950 /*** IUnknown methods ***/ \
5951 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
5952 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
5953 STDMETHOD_(ULONG,Release)(THIS) PURE; \
5954 /*** ICaptureGraphBuilder2 methods ***/ \
5955 STDMETHOD_(HRESULT,SetFiltergraph)(THIS_ IGraphBuilder* pfg) PURE; \
5956 STDMETHOD_(HRESULT,GetFiltergraph)(THIS_ IGraphBuilder** ppfg) PURE; \
5957 STDMETHOD_(HRESULT,SetOutputFileName)(THIS_ const GUID* pType, LPCOLESTR lpstrFile, IBaseFilter** ppf, IFileSinkFilter** ppSink) PURE; \
5958 STDMETHOD_(HRESULT,FindInterface)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pf, REFIID riid, void** ppint) PURE; \
5959 STDMETHOD_(HRESULT,RenderStream)(THIS_ const GUID* pCategory, const GUID* pType, IUnknown* pSource, IBaseFilter* pfCompressor, IBaseFilter* pfRenderer) PURE; \
5960 STDMETHOD_(HRESULT,ControlStream)(THIS_ const GUID* pCategory, const GUID* pType, IBaseFilter* pFilter, REFERENCE_TIME* pstart, REFERENCE_TIME* pstop, WORD wStartCookie, WORD wStopCookie) PURE; \
5961 STDMETHOD_(HRESULT,AllocCapFile)(THIS_ LPCOLESTR lpstr, DWORDLONG dwlSize) PURE; \
5962 STDMETHOD_(HRESULT,CopyCaptureFile)(THIS_ LPOLESTR lpwstrOld, LPOLESTR lpwstrNew, int fAllowEscAbort, IAMCopyCaptureFileProgress* pCallback) PURE; \
5963 STDMETHOD_(HRESULT,FindPin)(THIS_ IUnknown* pSource, PIN_DIRECTION pindir, const GUID* pCategory, const GUID* pType, BOOL fUnconnected, int num, IPin** ppPin) PURE;
5965 HRESULT CALLBACK
ICaptureGraphBuilder2_SetFiltergraph_Proxy(
5966 ICaptureGraphBuilder2
* This
,
5967 IGraphBuilder
* pfg
);
5968 void __RPC_STUB
ICaptureGraphBuilder2_SetFiltergraph_Stub(
5969 struct IRpcStubBuffer
* This
,
5970 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5971 PRPC_MESSAGE pRpcMessage
,
5972 DWORD
* pdwStubPhase
);
5973 HRESULT CALLBACK
ICaptureGraphBuilder2_GetFiltergraph_Proxy(
5974 ICaptureGraphBuilder2
* This
,
5975 IGraphBuilder
** ppfg
);
5976 void __RPC_STUB
ICaptureGraphBuilder2_GetFiltergraph_Stub(
5977 struct IRpcStubBuffer
* This
,
5978 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5979 PRPC_MESSAGE pRpcMessage
,
5980 DWORD
* pdwStubPhase
);
5981 HRESULT CALLBACK
ICaptureGraphBuilder2_SetOutputFileName_Proxy(
5982 ICaptureGraphBuilder2
* This
,
5984 LPCOLESTR lpstrFile
,
5986 IFileSinkFilter
** ppSink
);
5987 void __RPC_STUB
ICaptureGraphBuilder2_SetOutputFileName_Stub(
5988 struct IRpcStubBuffer
* This
,
5989 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
5990 PRPC_MESSAGE pRpcMessage
,
5991 DWORD
* pdwStubPhase
);
5992 HRESULT CALLBACK
ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
5993 ICaptureGraphBuilder2
* This
,
5994 const GUID
* pCategory
,
5999 void __RPC_STUB
ICaptureGraphBuilder2_RemoteFindInterface_Stub(
6000 struct IRpcStubBuffer
* This
,
6001 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6002 PRPC_MESSAGE pRpcMessage
,
6003 DWORD
* pdwStubPhase
);
6004 HRESULT CALLBACK
ICaptureGraphBuilder2_FindInterface_Proxy(
6005 ICaptureGraphBuilder2
* This
,
6006 const GUID
* pCategory
,
6011 HRESULT __RPC_STUB
ICaptureGraphBuilder2_FindInterface_Stub(
6012 ICaptureGraphBuilder2
* This
,
6013 const GUID
* pCategory
,
6018 HRESULT CALLBACK
ICaptureGraphBuilder2_RenderStream_Proxy(
6019 ICaptureGraphBuilder2
* This
,
6020 const GUID
* pCategory
,
6023 IBaseFilter
* pfCompressor
,
6024 IBaseFilter
* pfRenderer
);
6025 void __RPC_STUB
ICaptureGraphBuilder2_RenderStream_Stub(
6026 struct IRpcStubBuffer
* This
,
6027 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6028 PRPC_MESSAGE pRpcMessage
,
6029 DWORD
* pdwStubPhase
);
6030 HRESULT CALLBACK
ICaptureGraphBuilder2_ControlStream_Proxy(
6031 ICaptureGraphBuilder2
* This
,
6032 const GUID
* pCategory
,
6034 IBaseFilter
* pFilter
,
6035 REFERENCE_TIME
* pstart
,
6036 REFERENCE_TIME
* pstop
,
6039 void __RPC_STUB
ICaptureGraphBuilder2_ControlStream_Stub(
6040 struct IRpcStubBuffer
* This
,
6041 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6042 PRPC_MESSAGE pRpcMessage
,
6043 DWORD
* pdwStubPhase
);
6044 HRESULT CALLBACK
ICaptureGraphBuilder2_AllocCapFile_Proxy(
6045 ICaptureGraphBuilder2
* This
,
6048 void __RPC_STUB
ICaptureGraphBuilder2_AllocCapFile_Stub(
6049 struct IRpcStubBuffer
* This
,
6050 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6051 PRPC_MESSAGE pRpcMessage
,
6052 DWORD
* pdwStubPhase
);
6053 HRESULT CALLBACK
ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
6054 ICaptureGraphBuilder2
* This
,
6058 IAMCopyCaptureFileProgress
* pCallback
);
6059 void __RPC_STUB
ICaptureGraphBuilder2_CopyCaptureFile_Stub(
6060 struct IRpcStubBuffer
* This
,
6061 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6062 PRPC_MESSAGE pRpcMessage
,
6063 DWORD
* pdwStubPhase
);
6064 HRESULT CALLBACK
ICaptureGraphBuilder2_FindPin_Proxy(
6065 ICaptureGraphBuilder2
* This
,
6067 PIN_DIRECTION pindir
,
6068 const GUID
* pCategory
,
6073 void __RPC_STUB
ICaptureGraphBuilder2_FindPin_Stub(
6074 struct IRpcStubBuffer
* This
,
6075 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6076 PRPC_MESSAGE pRpcMessage
,
6077 DWORD
* pdwStubPhase
);
6079 #endif /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
6081 enum _AM_RENSDEREXFLAGS
{
6082 AM_RENDEREX_RENDERTOEXISTINGRENDERERS
= 0x1
6085 #ifndef __IFilterGraph2_FWD_DEFINED__
6086 #define __IFilterGraph2_FWD_DEFINED__
6087 typedef struct IFilterGraph2 IFilterGraph2
;
6090 /*****************************************************************************
6091 * IFilterGraph2 interface
6093 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
6094 #define __IFilterGraph2_INTERFACE_DEFINED__
6096 DEFINE_GUID(IID_IFilterGraph2
, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
6097 #if defined(__cplusplus) && !defined(CINTERFACE)
6098 struct IFilterGraph2
: public IGraphBuilder
6100 virtual HRESULT STDMETHODCALLTYPE
AddSourceFilterForMoniker(
6103 LPCWSTR lpcwstrFilterName
,
6104 IBaseFilter
** ppFilter
) = 0;
6106 virtual HRESULT STDMETHODCALLTYPE
ReconnectEx(
6108 const AM_MEDIA_TYPE
* pmt
) = 0;
6110 virtual HRESULT STDMETHODCALLTYPE
RenderEx(
6113 DWORD
* pvContext
) = 0;
6117 typedef struct IFilterGraph2Vtbl IFilterGraph2Vtbl
;
6118 struct IFilterGraph2
{
6119 const IFilterGraph2Vtbl
* lpVtbl
;
6121 struct IFilterGraph2Vtbl
{
6122 ICOM_MSVTABLE_COMPAT_FIELDS
6124 /*** IUnknown methods ***/
6125 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6126 IFilterGraph2
* This
,
6130 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6131 IFilterGraph2
* This
);
6133 ULONG (STDMETHODCALLTYPE
*Release
)(
6134 IFilterGraph2
* This
);
6136 /*** IFilterGraph methods ***/
6137 HRESULT (STDMETHODCALLTYPE
*AddFilter
)(
6138 IFilterGraph2
* This
,
6139 IBaseFilter
* pFilter
,
6142 HRESULT (STDMETHODCALLTYPE
*RemoveFilter
)(
6143 IFilterGraph2
* This
,
6144 IBaseFilter
* pFilter
);
6146 HRESULT (STDMETHODCALLTYPE
*EnumFilters
)(
6147 IFilterGraph2
* This
,
6148 IEnumFilters
** ppEnum
);
6150 HRESULT (STDMETHODCALLTYPE
*FindFilterByName
)(
6151 IFilterGraph2
* This
,
6153 IBaseFilter
** ppFilter
);
6155 HRESULT (STDMETHODCALLTYPE
*ConnectDirect
)(
6156 IFilterGraph2
* This
,
6159 const AM_MEDIA_TYPE
* pmt
);
6161 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
6162 IFilterGraph2
* This
,
6165 HRESULT (STDMETHODCALLTYPE
*Disconnect
)(
6166 IFilterGraph2
* This
,
6169 HRESULT (STDMETHODCALLTYPE
*SetDefaultSyncSource
)(
6170 IFilterGraph2
* This
);
6172 /*** IGraphBuilder methods ***/
6173 HRESULT (STDMETHODCALLTYPE
*Connect
)(
6174 IFilterGraph2
* This
,
6178 HRESULT (STDMETHODCALLTYPE
*Render
)(
6179 IFilterGraph2
* This
,
6182 HRESULT (STDMETHODCALLTYPE
*RenderFile
)(
6183 IFilterGraph2
* This
,
6184 LPCWSTR lpcwstrFile
,
6185 LPCWSTR lpcwstrPlayList
);
6187 HRESULT (STDMETHODCALLTYPE
*AddSourceFilter
)(
6188 IFilterGraph2
* This
,
6189 LPCWSTR lpcwstrFileName
,
6190 LPCWSTR lpcwstrFilterName
,
6191 IBaseFilter
** ppFilter
);
6193 HRESULT (STDMETHODCALLTYPE
*SetLogFile
)(
6194 IFilterGraph2
* This
,
6197 HRESULT (STDMETHODCALLTYPE
*Abort
)(
6198 IFilterGraph2
* This
);
6200 HRESULT (STDMETHODCALLTYPE
*ShouldOperationContinue
)(
6201 IFilterGraph2
* This
);
6203 /*** IFilterGraph2 methods ***/
6204 HRESULT (STDMETHODCALLTYPE
*AddSourceFilterForMoniker
)(
6205 IFilterGraph2
* This
,
6208 LPCWSTR lpcwstrFilterName
,
6209 IBaseFilter
** ppFilter
);
6211 HRESULT (STDMETHODCALLTYPE
*ReconnectEx
)(
6212 IFilterGraph2
* This
,
6214 const AM_MEDIA_TYPE
* pmt
);
6216 HRESULT (STDMETHODCALLTYPE
*RenderEx
)(
6217 IFilterGraph2
* This
,
6224 /*** IUnknown methods ***/
6225 #define IFilterGraph2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6226 #define IFilterGraph2_AddRef(p) (p)->lpVtbl->AddRef(p)
6227 #define IFilterGraph2_Release(p) (p)->lpVtbl->Release(p)
6228 /*** IFilterGraph methods ***/
6229 #define IFilterGraph2_AddFilter(p,a,b) (p)->lpVtbl->AddFilter(p,a,b)
6230 #define IFilterGraph2_RemoveFilter(p,a) (p)->lpVtbl->RemoveFilter(p,a)
6231 #define IFilterGraph2_EnumFilters(p,a) (p)->lpVtbl->EnumFilters(p,a)
6232 #define IFilterGraph2_FindFilterByName(p,a,b) (p)->lpVtbl->FindFilterByName(p,a,b)
6233 #define IFilterGraph2_ConnectDirect(p,a,b,c) (p)->lpVtbl->ConnectDirect(p,a,b,c)
6234 #define IFilterGraph2_Reconnect(p,a) (p)->lpVtbl->Reconnect(p,a)
6235 #define IFilterGraph2_Disconnect(p,a) (p)->lpVtbl->Disconnect(p,a)
6236 #define IFilterGraph2_SetDefaultSyncSource(p) (p)->lpVtbl->SetDefaultSyncSource(p)
6237 /*** IGraphBuilder methods ***/
6238 #define IFilterGraph2_Connect(p,a,b) (p)->lpVtbl->Connect(p,a,b)
6239 #define IFilterGraph2_Render(p,a) (p)->lpVtbl->Render(p,a)
6240 #define IFilterGraph2_RenderFile(p,a,b) (p)->lpVtbl->RenderFile(p,a,b)
6241 #define IFilterGraph2_AddSourceFilter(p,a,b,c) (p)->lpVtbl->AddSourceFilter(p,a,b,c)
6242 #define IFilterGraph2_SetLogFile(p,a) (p)->lpVtbl->SetLogFile(p,a)
6243 #define IFilterGraph2_Abort(p) (p)->lpVtbl->Abort(p)
6244 #define IFilterGraph2_ShouldOperationContinue(p) (p)->lpVtbl->ShouldOperationContinue(p)
6245 /*** IFilterGraph2 methods ***/
6246 #define IFilterGraph2_AddSourceFilterForMoniker(p,a,b,c,d) (p)->lpVtbl->AddSourceFilterForMoniker(p,a,b,c,d)
6247 #define IFilterGraph2_ReconnectEx(p,a,b) (p)->lpVtbl->ReconnectEx(p,a,b)
6248 #define IFilterGraph2_RenderEx(p,a,b,c) (p)->lpVtbl->RenderEx(p,a,b,c)
6252 #define IFilterGraph2_METHODS \
6253 ICOM_MSVTABLE_COMPAT_FIELDS \
6254 /*** IUnknown methods ***/ \
6255 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6256 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6257 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6258 /*** IFilterGraph methods ***/ \
6259 STDMETHOD_(HRESULT,AddFilter)(THIS_ IBaseFilter* pFilter, LPCWSTR pName) PURE; \
6260 STDMETHOD_(HRESULT,RemoveFilter)(THIS_ IBaseFilter* pFilter) PURE; \
6261 STDMETHOD_(HRESULT,EnumFilters)(THIS_ IEnumFilters** ppEnum) PURE; \
6262 STDMETHOD_(HRESULT,FindFilterByName)(THIS_ LPCWSTR pName, IBaseFilter** ppFilter) PURE; \
6263 STDMETHOD_(HRESULT,ConnectDirect)(THIS_ IPin* ppinOut, IPin* ppinIn, const AM_MEDIA_TYPE* pmt) PURE; \
6264 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* ppin) PURE; \
6265 STDMETHOD_(HRESULT,Disconnect)(THIS_ IPin* ppin) PURE; \
6266 STDMETHOD_(HRESULT,SetDefaultSyncSource)(THIS) PURE; \
6267 /*** IGraphBuilder methods ***/ \
6268 STDMETHOD_(HRESULT,Connect)(THIS_ IPin* ppinOut, IPin* ppinIn) PURE; \
6269 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut) PURE; \
6270 STDMETHOD_(HRESULT,RenderFile)(THIS_ LPCWSTR lpcwstrFile, LPCWSTR lpcwstrPlayList) PURE; \
6271 STDMETHOD_(HRESULT,AddSourceFilter)(THIS_ LPCWSTR lpcwstrFileName, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
6272 STDMETHOD_(HRESULT,SetLogFile)(THIS_ DWORD_PTR hFile) PURE; \
6273 STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
6274 STDMETHOD_(HRESULT,ShouldOperationContinue)(THIS) PURE; \
6275 /*** IFilterGraph2 methods ***/ \
6276 STDMETHOD_(HRESULT,AddSourceFilterForMoniker)(THIS_ IMoniker* pMoniker, IBindCtx* pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter** ppFilter) PURE; \
6277 STDMETHOD_(HRESULT,ReconnectEx)(THIS_ IPin* ppin, const AM_MEDIA_TYPE* pmt) PURE; \
6278 STDMETHOD_(HRESULT,RenderEx)(THIS_ IPin* pPinOut, DWORD dwFlags, DWORD* pvContext) PURE;
6280 HRESULT CALLBACK
IFilterGraph2_AddSourceFilterForMoniker_Proxy(
6281 IFilterGraph2
* This
,
6284 LPCWSTR lpcwstrFilterName
,
6285 IBaseFilter
** ppFilter
);
6286 void __RPC_STUB
IFilterGraph2_AddSourceFilterForMoniker_Stub(
6287 struct IRpcStubBuffer
* This
,
6288 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6289 PRPC_MESSAGE pRpcMessage
,
6290 DWORD
* pdwStubPhase
);
6291 HRESULT CALLBACK
IFilterGraph2_ReconnectEx_Proxy(
6292 IFilterGraph2
* This
,
6294 const AM_MEDIA_TYPE
* pmt
);
6295 void __RPC_STUB
IFilterGraph2_ReconnectEx_Stub(
6296 struct IRpcStubBuffer
* This
,
6297 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6298 PRPC_MESSAGE pRpcMessage
,
6299 DWORD
* pdwStubPhase
);
6300 HRESULT CALLBACK
IFilterGraph2_RenderEx_Proxy(
6301 IFilterGraph2
* This
,
6305 void __RPC_STUB
IFilterGraph2_RenderEx_Stub(
6306 struct IRpcStubBuffer
* This
,
6307 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6308 PRPC_MESSAGE pRpcMessage
,
6309 DWORD
* pdwStubPhase
);
6311 #endif /* __IFilterGraph2_INTERFACE_DEFINED__ */
6313 #ifndef __IStreamBuilder_FWD_DEFINED__
6314 #define __IStreamBuilder_FWD_DEFINED__
6315 typedef struct IStreamBuilder IStreamBuilder
;
6318 /*****************************************************************************
6319 * IStreamBuilder interface
6321 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
6322 #define __IStreamBuilder_INTERFACE_DEFINED__
6324 DEFINE_GUID(IID_IStreamBuilder
, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6325 #if defined(__cplusplus) && !defined(CINTERFACE)
6326 struct IStreamBuilder
: public IUnknown
6328 virtual HRESULT STDMETHODCALLTYPE
Render(
6330 IGraphBuilder
* pGraph
) = 0;
6332 virtual HRESULT STDMETHODCALLTYPE
Backout(
6334 IGraphBuilder
* pGraph
) = 0;
6338 typedef struct IStreamBuilderVtbl IStreamBuilderVtbl
;
6339 struct IStreamBuilder
{
6340 const IStreamBuilderVtbl
* lpVtbl
;
6342 struct IStreamBuilderVtbl
{
6343 ICOM_MSVTABLE_COMPAT_FIELDS
6345 /*** IUnknown methods ***/
6346 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6347 IStreamBuilder
* This
,
6351 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6352 IStreamBuilder
* This
);
6354 ULONG (STDMETHODCALLTYPE
*Release
)(
6355 IStreamBuilder
* This
);
6357 /*** IStreamBuilder methods ***/
6358 HRESULT (STDMETHODCALLTYPE
*Render
)(
6359 IStreamBuilder
* This
,
6361 IGraphBuilder
* pGraph
);
6363 HRESULT (STDMETHODCALLTYPE
*Backout
)(
6364 IStreamBuilder
* This
,
6366 IGraphBuilder
* pGraph
);
6370 /*** IUnknown methods ***/
6371 #define IStreamBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6372 #define IStreamBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
6373 #define IStreamBuilder_Release(p) (p)->lpVtbl->Release(p)
6374 /*** IStreamBuilder methods ***/
6375 #define IStreamBuilder_Render(p,a,b) (p)->lpVtbl->Render(p,a,b)
6376 #define IStreamBuilder_Backout(p,a,b) (p)->lpVtbl->Backout(p,a,b)
6380 #define IStreamBuilder_METHODS \
6381 ICOM_MSVTABLE_COMPAT_FIELDS \
6382 /*** IUnknown methods ***/ \
6383 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6384 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6385 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6386 /*** IStreamBuilder methods ***/ \
6387 STDMETHOD_(HRESULT,Render)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE; \
6388 STDMETHOD_(HRESULT,Backout)(THIS_ IPin* ppinOut, IGraphBuilder* pGraph) PURE;
6390 HRESULT CALLBACK
IStreamBuilder_Render_Proxy(
6391 IStreamBuilder
* This
,
6393 IGraphBuilder
* pGraph
);
6394 void __RPC_STUB
IStreamBuilder_Render_Stub(
6395 struct IRpcStubBuffer
* This
,
6396 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6397 PRPC_MESSAGE pRpcMessage
,
6398 DWORD
* pdwStubPhase
);
6399 HRESULT CALLBACK
IStreamBuilder_Backout_Proxy(
6400 IStreamBuilder
* This
,
6402 IGraphBuilder
* pGraph
);
6403 void __RPC_STUB
IStreamBuilder_Backout_Stub(
6404 struct IRpcStubBuffer
* This
,
6405 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6406 PRPC_MESSAGE pRpcMessage
,
6407 DWORD
* pdwStubPhase
);
6409 #endif /* __IStreamBuilder_INTERFACE_DEFINED__ */
6411 #ifndef __IAsyncReader_FWD_DEFINED__
6412 #define __IAsyncReader_FWD_DEFINED__
6413 typedef struct IAsyncReader IAsyncReader
;
6416 /*****************************************************************************
6417 * IAsyncReader interface
6419 #ifndef __IAsyncReader_INTERFACE_DEFINED__
6420 #define __IAsyncReader_INTERFACE_DEFINED__
6422 DEFINE_GUID(IID_IAsyncReader
, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6423 #if defined(__cplusplus) && !defined(CINTERFACE)
6424 struct IAsyncReader
: public IUnknown
6426 virtual HRESULT STDMETHODCALLTYPE
RequestAllocator(
6427 IMemAllocator
* pPreferred
,
6428 ALLOCATOR_PROPERTIES
* pProps
,
6429 IMemAllocator
** ppActual
) = 0;
6431 virtual HRESULT STDMETHODCALLTYPE
Request(
6432 IMediaSample
* pSample
,
6433 DWORD_PTR dwUser
) = 0;
6435 virtual HRESULT STDMETHODCALLTYPE
WaitForNext(
6437 IMediaSample
** ppSample
,
6438 DWORD_PTR
* pdwUser
) = 0;
6440 virtual HRESULT STDMETHODCALLTYPE
SyncReadAligned(
6441 IMediaSample
* pSample
) = 0;
6443 virtual HRESULT STDMETHODCALLTYPE
SyncRead(
6444 LONGLONG llPosition
,
6448 virtual HRESULT STDMETHODCALLTYPE
Length(
6450 LONGLONG
* pAvailable
) = 0;
6452 virtual HRESULT STDMETHODCALLTYPE
BeginFlush(
6455 virtual HRESULT STDMETHODCALLTYPE
EndFlush(
6460 typedef struct IAsyncReaderVtbl IAsyncReaderVtbl
;
6461 struct IAsyncReader
{
6462 const IAsyncReaderVtbl
* lpVtbl
;
6464 struct IAsyncReaderVtbl
{
6465 ICOM_MSVTABLE_COMPAT_FIELDS
6467 /*** IUnknown methods ***/
6468 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6473 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6474 IAsyncReader
* This
);
6476 ULONG (STDMETHODCALLTYPE
*Release
)(
6477 IAsyncReader
* This
);
6479 /*** IAsyncReader methods ***/
6480 HRESULT (STDMETHODCALLTYPE
*RequestAllocator
)(
6482 IMemAllocator
* pPreferred
,
6483 ALLOCATOR_PROPERTIES
* pProps
,
6484 IMemAllocator
** ppActual
);
6486 HRESULT (STDMETHODCALLTYPE
*Request
)(
6488 IMediaSample
* pSample
,
6491 HRESULT (STDMETHODCALLTYPE
*WaitForNext
)(
6494 IMediaSample
** ppSample
,
6495 DWORD_PTR
* pdwUser
);
6497 HRESULT (STDMETHODCALLTYPE
*SyncReadAligned
)(
6499 IMediaSample
* pSample
);
6501 HRESULT (STDMETHODCALLTYPE
*SyncRead
)(
6503 LONGLONG llPosition
,
6507 HRESULT (STDMETHODCALLTYPE
*Length
)(
6510 LONGLONG
* pAvailable
);
6512 HRESULT (STDMETHODCALLTYPE
*BeginFlush
)(
6513 IAsyncReader
* This
);
6515 HRESULT (STDMETHODCALLTYPE
*EndFlush
)(
6516 IAsyncReader
* This
);
6520 /*** IUnknown methods ***/
6521 #define IAsyncReader_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6522 #define IAsyncReader_AddRef(p) (p)->lpVtbl->AddRef(p)
6523 #define IAsyncReader_Release(p) (p)->lpVtbl->Release(p)
6524 /*** IAsyncReader methods ***/
6525 #define IAsyncReader_RequestAllocator(p,a,b,c) (p)->lpVtbl->RequestAllocator(p,a,b,c)
6526 #define IAsyncReader_Request(p,a,b) (p)->lpVtbl->Request(p,a,b)
6527 #define IAsyncReader_WaitForNext(p,a,b,c) (p)->lpVtbl->WaitForNext(p,a,b,c)
6528 #define IAsyncReader_SyncReadAligned(p,a) (p)->lpVtbl->SyncReadAligned(p,a)
6529 #define IAsyncReader_SyncRead(p,a,b,c) (p)->lpVtbl->SyncRead(p,a,b,c)
6530 #define IAsyncReader_Length(p,a,b) (p)->lpVtbl->Length(p,a,b)
6531 #define IAsyncReader_BeginFlush(p) (p)->lpVtbl->BeginFlush(p)
6532 #define IAsyncReader_EndFlush(p) (p)->lpVtbl->EndFlush(p)
6536 #define IAsyncReader_METHODS \
6537 ICOM_MSVTABLE_COMPAT_FIELDS \
6538 /*** IUnknown methods ***/ \
6539 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6540 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6541 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6542 /*** IAsyncReader methods ***/ \
6543 STDMETHOD_(HRESULT,RequestAllocator)(THIS_ IMemAllocator* pPreferred, ALLOCATOR_PROPERTIES* pProps, IMemAllocator** ppActual) PURE; \
6544 STDMETHOD_(HRESULT,Request)(THIS_ IMediaSample* pSample, DWORD_PTR dwUser) PURE; \
6545 STDMETHOD_(HRESULT,WaitForNext)(THIS_ DWORD dwTimeout, IMediaSample** ppSample, DWORD_PTR* pdwUser) PURE; \
6546 STDMETHOD_(HRESULT,SyncReadAligned)(THIS_ IMediaSample* pSample) PURE; \
6547 STDMETHOD_(HRESULT,SyncRead)(THIS_ LONGLONG llPosition, LONG lLength, BYTE* pBuffer) PURE; \
6548 STDMETHOD_(HRESULT,Length)(THIS_ LONGLONG* pTotal, LONGLONG* pAvailable) PURE; \
6549 STDMETHOD_(HRESULT,BeginFlush)(THIS) PURE; \
6550 STDMETHOD_(HRESULT,EndFlush)(THIS) PURE;
6552 HRESULT CALLBACK
IAsyncReader_RequestAllocator_Proxy(
6554 IMemAllocator
* pPreferred
,
6555 ALLOCATOR_PROPERTIES
* pProps
,
6556 IMemAllocator
** ppActual
);
6557 void __RPC_STUB
IAsyncReader_RequestAllocator_Stub(
6558 struct IRpcStubBuffer
* This
,
6559 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6560 PRPC_MESSAGE pRpcMessage
,
6561 DWORD
* pdwStubPhase
);
6562 HRESULT CALLBACK
IAsyncReader_Request_Proxy(
6564 IMediaSample
* pSample
,
6566 void __RPC_STUB
IAsyncReader_Request_Stub(
6567 struct IRpcStubBuffer
* This
,
6568 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6569 PRPC_MESSAGE pRpcMessage
,
6570 DWORD
* pdwStubPhase
);
6571 HRESULT CALLBACK
IAsyncReader_WaitForNext_Proxy(
6574 IMediaSample
** ppSample
,
6575 DWORD_PTR
* pdwUser
);
6576 void __RPC_STUB
IAsyncReader_WaitForNext_Stub(
6577 struct IRpcStubBuffer
* This
,
6578 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6579 PRPC_MESSAGE pRpcMessage
,
6580 DWORD
* pdwStubPhase
);
6581 HRESULT CALLBACK
IAsyncReader_SyncReadAligned_Proxy(
6583 IMediaSample
* pSample
);
6584 void __RPC_STUB
IAsyncReader_SyncReadAligned_Stub(
6585 struct IRpcStubBuffer
* This
,
6586 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6587 PRPC_MESSAGE pRpcMessage
,
6588 DWORD
* pdwStubPhase
);
6589 HRESULT CALLBACK
IAsyncReader_SyncRead_Proxy(
6591 LONGLONG llPosition
,
6594 void __RPC_STUB
IAsyncReader_SyncRead_Stub(
6595 struct IRpcStubBuffer
* This
,
6596 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6597 PRPC_MESSAGE pRpcMessage
,
6598 DWORD
* pdwStubPhase
);
6599 HRESULT CALLBACK
IAsyncReader_Length_Proxy(
6602 LONGLONG
* pAvailable
);
6603 void __RPC_STUB
IAsyncReader_Length_Stub(
6604 struct IRpcStubBuffer
* This
,
6605 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6606 PRPC_MESSAGE pRpcMessage
,
6607 DWORD
* pdwStubPhase
);
6608 HRESULT CALLBACK
IAsyncReader_BeginFlush_Proxy(
6609 IAsyncReader
* This
);
6610 void __RPC_STUB
IAsyncReader_BeginFlush_Stub(
6611 struct IRpcStubBuffer
* This
,
6612 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6613 PRPC_MESSAGE pRpcMessage
,
6614 DWORD
* pdwStubPhase
);
6615 HRESULT CALLBACK
IAsyncReader_EndFlush_Proxy(
6616 IAsyncReader
* This
);
6617 void __RPC_STUB
IAsyncReader_EndFlush_Stub(
6618 struct IRpcStubBuffer
* This
,
6619 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6620 PRPC_MESSAGE pRpcMessage
,
6621 DWORD
* pdwStubPhase
);
6623 #endif /* __IAsyncReader_INTERFACE_DEFINED__ */
6625 #ifndef __IGraphVersion_FWD_DEFINED__
6626 #define __IGraphVersion_FWD_DEFINED__
6627 typedef struct IGraphVersion IGraphVersion
;
6630 /*****************************************************************************
6631 * IGraphVersion interface
6633 #ifndef __IGraphVersion_INTERFACE_DEFINED__
6634 #define __IGraphVersion_INTERFACE_DEFINED__
6636 DEFINE_GUID(IID_IGraphVersion
, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6637 #if defined(__cplusplus) && !defined(CINTERFACE)
6638 struct IGraphVersion
: public IUnknown
6640 virtual HRESULT STDMETHODCALLTYPE
QueryVersion(
6641 LONG
* pVersion
) = 0;
6645 typedef struct IGraphVersionVtbl IGraphVersionVtbl
;
6646 struct IGraphVersion
{
6647 const IGraphVersionVtbl
* lpVtbl
;
6649 struct IGraphVersionVtbl
{
6650 ICOM_MSVTABLE_COMPAT_FIELDS
6652 /*** IUnknown methods ***/
6653 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6654 IGraphVersion
* This
,
6658 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6659 IGraphVersion
* This
);
6661 ULONG (STDMETHODCALLTYPE
*Release
)(
6662 IGraphVersion
* This
);
6664 /*** IGraphVersion methods ***/
6665 HRESULT (STDMETHODCALLTYPE
*QueryVersion
)(
6666 IGraphVersion
* This
,
6671 /*** IUnknown methods ***/
6672 #define IGraphVersion_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6673 #define IGraphVersion_AddRef(p) (p)->lpVtbl->AddRef(p)
6674 #define IGraphVersion_Release(p) (p)->lpVtbl->Release(p)
6675 /*** IGraphVersion methods ***/
6676 #define IGraphVersion_QueryVersion(p,a) (p)->lpVtbl->QueryVersion(p,a)
6680 #define IGraphVersion_METHODS \
6681 ICOM_MSVTABLE_COMPAT_FIELDS \
6682 /*** IUnknown methods ***/ \
6683 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6684 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6685 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6686 /*** IGraphVersion methods ***/ \
6687 STDMETHOD_(HRESULT,QueryVersion)(THIS_ LONG* pVersion) PURE;
6689 HRESULT CALLBACK
IGraphVersion_QueryVersion_Proxy(
6690 IGraphVersion
* This
,
6692 void __RPC_STUB
IGraphVersion_QueryVersion_Stub(
6693 struct IRpcStubBuffer
* This
,
6694 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6695 PRPC_MESSAGE pRpcMessage
,
6696 DWORD
* pdwStubPhase
);
6698 #endif /* __IGraphVersion_INTERFACE_DEFINED__ */
6700 #ifndef __IResourceConsumer_FWD_DEFINED__
6701 #define __IResourceConsumer_FWD_DEFINED__
6702 typedef struct IResourceConsumer IResourceConsumer
;
6705 /*****************************************************************************
6706 * IResourceConsumer interface
6708 #ifndef __IResourceConsumer_INTERFACE_DEFINED__
6709 #define __IResourceConsumer_INTERFACE_DEFINED__
6711 DEFINE_GUID(IID_IResourceConsumer
, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6712 #if defined(__cplusplus) && !defined(CINTERFACE)
6713 struct IResourceConsumer
: public IUnknown
6715 virtual HRESULT STDMETHODCALLTYPE
AcquireResource(
6716 LONG idResource
) = 0;
6718 virtual HRESULT STDMETHODCALLTYPE
ReleaseResource(
6719 LONG idResource
) = 0;
6723 typedef struct IResourceConsumerVtbl IResourceConsumerVtbl
;
6724 struct IResourceConsumer
{
6725 const IResourceConsumerVtbl
* lpVtbl
;
6727 struct IResourceConsumerVtbl
{
6728 ICOM_MSVTABLE_COMPAT_FIELDS
6730 /*** IUnknown methods ***/
6731 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6732 IResourceConsumer
* This
,
6736 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6737 IResourceConsumer
* This
);
6739 ULONG (STDMETHODCALLTYPE
*Release
)(
6740 IResourceConsumer
* This
);
6742 /*** IResourceConsumer methods ***/
6743 HRESULT (STDMETHODCALLTYPE
*AcquireResource
)(
6744 IResourceConsumer
* This
,
6747 HRESULT (STDMETHODCALLTYPE
*ReleaseResource
)(
6748 IResourceConsumer
* This
,
6753 /*** IUnknown methods ***/
6754 #define IResourceConsumer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6755 #define IResourceConsumer_AddRef(p) (p)->lpVtbl->AddRef(p)
6756 #define IResourceConsumer_Release(p) (p)->lpVtbl->Release(p)
6757 /*** IResourceConsumer methods ***/
6758 #define IResourceConsumer_AcquireResource(p,a) (p)->lpVtbl->AcquireResource(p,a)
6759 #define IResourceConsumer_ReleaseResource(p,a) (p)->lpVtbl->ReleaseResource(p,a)
6763 #define IResourceConsumer_METHODS \
6764 ICOM_MSVTABLE_COMPAT_FIELDS \
6765 /*** IUnknown methods ***/ \
6766 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6767 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6768 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6769 /*** IResourceConsumer methods ***/ \
6770 STDMETHOD_(HRESULT,AcquireResource)(THIS_ LONG idResource) PURE; \
6771 STDMETHOD_(HRESULT,ReleaseResource)(THIS_ LONG idResource) PURE;
6773 HRESULT CALLBACK
IResourceConsumer_AcquireResource_Proxy(
6774 IResourceConsumer
* This
,
6776 void __RPC_STUB
IResourceConsumer_AcquireResource_Stub(
6777 struct IRpcStubBuffer
* This
,
6778 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6779 PRPC_MESSAGE pRpcMessage
,
6780 DWORD
* pdwStubPhase
);
6781 HRESULT CALLBACK
IResourceConsumer_ReleaseResource_Proxy(
6782 IResourceConsumer
* This
,
6784 void __RPC_STUB
IResourceConsumer_ReleaseResource_Stub(
6785 struct IRpcStubBuffer
* This
,
6786 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6787 PRPC_MESSAGE pRpcMessage
,
6788 DWORD
* pdwStubPhase
);
6790 #endif /* __IResourceConsumer_INTERFACE_DEFINED__ */
6792 #ifndef __IResourceManager_FWD_DEFINED__
6793 #define __IResourceManager_FWD_DEFINED__
6794 typedef struct IResourceManager IResourceManager
;
6797 /*****************************************************************************
6798 * IResourceManager interface
6800 #ifndef __IResourceManager_INTERFACE_DEFINED__
6801 #define __IResourceManager_INTERFACE_DEFINED__
6803 DEFINE_GUID(IID_IResourceManager
, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
6804 #if defined(__cplusplus) && !defined(CINTERFACE)
6805 struct IResourceManager
: public IUnknown
6807 virtual HRESULT STDMETHODCALLTYPE
Register(
6812 virtual HRESULT STDMETHODCALLTYPE
RegisterGroup(
6818 virtual HRESULT STDMETHODCALLTYPE
RequestResource(
6820 IUnknown
* pFocusObject
,
6821 IResourceConsumer
* pConsumer
) = 0;
6823 virtual HRESULT STDMETHODCALLTYPE
NotifyAcquire(
6825 IResourceConsumer
* pConsumer
,
6828 virtual HRESULT STDMETHODCALLTYPE
NotifyRelease(
6830 IResourceConsumer
* pConsumer
,
6831 BOOL bStillWant
) = 0;
6833 virtual HRESULT STDMETHODCALLTYPE
CancelRequest(
6835 IResourceConsumer
* pConsumer
) = 0;
6837 virtual HRESULT STDMETHODCALLTYPE
SetFocus(
6838 IUnknown
* pFocusObject
) = 0;
6840 virtual HRESULT STDMETHODCALLTYPE
ReleaseFocus(
6841 IUnknown
* pFocusObject
) = 0;
6845 typedef struct IResourceManagerVtbl IResourceManagerVtbl
;
6846 struct IResourceManager
{
6847 const IResourceManagerVtbl
* lpVtbl
;
6849 struct IResourceManagerVtbl
{
6850 ICOM_MSVTABLE_COMPAT_FIELDS
6852 /*** IUnknown methods ***/
6853 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
6854 IResourceManager
* This
,
6858 ULONG (STDMETHODCALLTYPE
*AddRef
)(
6859 IResourceManager
* This
);
6861 ULONG (STDMETHODCALLTYPE
*Release
)(
6862 IResourceManager
* This
);
6864 /*** IResourceManager methods ***/
6865 HRESULT (STDMETHODCALLTYPE
*Register
)(
6866 IResourceManager
* This
,
6871 HRESULT (STDMETHODCALLTYPE
*RegisterGroup
)(
6872 IResourceManager
* This
,
6878 HRESULT (STDMETHODCALLTYPE
*RequestResource
)(
6879 IResourceManager
* This
,
6881 IUnknown
* pFocusObject
,
6882 IResourceConsumer
* pConsumer
);
6884 HRESULT (STDMETHODCALLTYPE
*NotifyAcquire
)(
6885 IResourceManager
* This
,
6887 IResourceConsumer
* pConsumer
,
6890 HRESULT (STDMETHODCALLTYPE
*NotifyRelease
)(
6891 IResourceManager
* This
,
6893 IResourceConsumer
* pConsumer
,
6896 HRESULT (STDMETHODCALLTYPE
*CancelRequest
)(
6897 IResourceManager
* This
,
6899 IResourceConsumer
* pConsumer
);
6901 HRESULT (STDMETHODCALLTYPE
*SetFocus
)(
6902 IResourceManager
* This
,
6903 IUnknown
* pFocusObject
);
6905 HRESULT (STDMETHODCALLTYPE
*ReleaseFocus
)(
6906 IResourceManager
* This
,
6907 IUnknown
* pFocusObject
);
6911 /*** IUnknown methods ***/
6912 #define IResourceManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
6913 #define IResourceManager_AddRef(p) (p)->lpVtbl->AddRef(p)
6914 #define IResourceManager_Release(p) (p)->lpVtbl->Release(p)
6915 /*** IResourceManager methods ***/
6916 #define IResourceManager_Register(p,a,b,c) (p)->lpVtbl->Register(p,a,b,c)
6917 #define IResourceManager_RegisterGroup(p,a,b,c,d) (p)->lpVtbl->RegisterGroup(p,a,b,c,d)
6918 #define IResourceManager_RequestResource(p,a,b,c) (p)->lpVtbl->RequestResource(p,a,b,c)
6919 #define IResourceManager_NotifyAcquire(p,a,b,c) (p)->lpVtbl->NotifyAcquire(p,a,b,c)
6920 #define IResourceManager_NotifyRelease(p,a,b,c) (p)->lpVtbl->NotifyRelease(p,a,b,c)
6921 #define IResourceManager_CancelRequest(p,a,b) (p)->lpVtbl->CancelRequest(p,a,b)
6922 #define IResourceManager_SetFocus(p,a) (p)->lpVtbl->SetFocus(p,a)
6923 #define IResourceManager_ReleaseFocus(p,a) (p)->lpVtbl->ReleaseFocus(p,a)
6927 #define IResourceManager_METHODS \
6928 ICOM_MSVTABLE_COMPAT_FIELDS \
6929 /*** IUnknown methods ***/ \
6930 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
6931 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
6932 STDMETHOD_(ULONG,Release)(THIS) PURE; \
6933 /*** IResourceManager methods ***/ \
6934 STDMETHOD_(HRESULT,Register)(THIS_ LPCWSTR pName, LONG cResource, LONG* plToken) PURE; \
6935 STDMETHOD_(HRESULT,RegisterGroup)(THIS_ LPCWSTR pName, LONG cResource, LONG* palTokens, LONG* plToken) PURE; \
6936 STDMETHOD_(HRESULT,RequestResource)(THIS_ LONG idResource, IUnknown* pFocusObject, IResourceConsumer* pConsumer) PURE; \
6937 STDMETHOD_(HRESULT,NotifyAcquire)(THIS_ LONG idResource, IResourceConsumer* pConsumer, HRESULT hr) PURE; \
6938 STDMETHOD_(HRESULT,NotifyRelease)(THIS_ LONG idResource, IResourceConsumer* pConsumer, BOOL bStillWant) PURE; \
6939 STDMETHOD_(HRESULT,CancelRequest)(THIS_ LONG idResource, IResourceConsumer* pConsumer) PURE; \
6940 STDMETHOD_(HRESULT,SetFocus)(THIS_ IUnknown* pFocusObject) PURE; \
6941 STDMETHOD_(HRESULT,ReleaseFocus)(THIS_ IUnknown* pFocusObject) PURE;
6943 HRESULT CALLBACK
IResourceManager_Register_Proxy(
6944 IResourceManager
* This
,
6948 void __RPC_STUB
IResourceManager_Register_Stub(
6949 struct IRpcStubBuffer
* This
,
6950 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6951 PRPC_MESSAGE pRpcMessage
,
6952 DWORD
* pdwStubPhase
);
6953 HRESULT CALLBACK
IResourceManager_RegisterGroup_Proxy(
6954 IResourceManager
* This
,
6959 void __RPC_STUB
IResourceManager_RegisterGroup_Stub(
6960 struct IRpcStubBuffer
* This
,
6961 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6962 PRPC_MESSAGE pRpcMessage
,
6963 DWORD
* pdwStubPhase
);
6964 HRESULT CALLBACK
IResourceManager_RequestResource_Proxy(
6965 IResourceManager
* This
,
6967 IUnknown
* pFocusObject
,
6968 IResourceConsumer
* pConsumer
);
6969 void __RPC_STUB
IResourceManager_RequestResource_Stub(
6970 struct IRpcStubBuffer
* This
,
6971 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6972 PRPC_MESSAGE pRpcMessage
,
6973 DWORD
* pdwStubPhase
);
6974 HRESULT CALLBACK
IResourceManager_NotifyAcquire_Proxy(
6975 IResourceManager
* This
,
6977 IResourceConsumer
* pConsumer
,
6979 void __RPC_STUB
IResourceManager_NotifyAcquire_Stub(
6980 struct IRpcStubBuffer
* This
,
6981 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6982 PRPC_MESSAGE pRpcMessage
,
6983 DWORD
* pdwStubPhase
);
6984 HRESULT CALLBACK
IResourceManager_NotifyRelease_Proxy(
6985 IResourceManager
* This
,
6987 IResourceConsumer
* pConsumer
,
6989 void __RPC_STUB
IResourceManager_NotifyRelease_Stub(
6990 struct IRpcStubBuffer
* This
,
6991 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
6992 PRPC_MESSAGE pRpcMessage
,
6993 DWORD
* pdwStubPhase
);
6994 HRESULT CALLBACK
IResourceManager_CancelRequest_Proxy(
6995 IResourceManager
* This
,
6997 IResourceConsumer
* pConsumer
);
6998 void __RPC_STUB
IResourceManager_CancelRequest_Stub(
6999 struct IRpcStubBuffer
* This
,
7000 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7001 PRPC_MESSAGE pRpcMessage
,
7002 DWORD
* pdwStubPhase
);
7003 HRESULT CALLBACK
IResourceManager_SetFocus_Proxy(
7004 IResourceManager
* This
,
7005 IUnknown
* pFocusObject
);
7006 void __RPC_STUB
IResourceManager_SetFocus_Stub(
7007 struct IRpcStubBuffer
* This
,
7008 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7009 PRPC_MESSAGE pRpcMessage
,
7010 DWORD
* pdwStubPhase
);
7011 HRESULT CALLBACK
IResourceManager_ReleaseFocus_Proxy(
7012 IResourceManager
* This
,
7013 IUnknown
* pFocusObject
);
7014 void __RPC_STUB
IResourceManager_ReleaseFocus_Stub(
7015 struct IRpcStubBuffer
* This
,
7016 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7017 PRPC_MESSAGE pRpcMessage
,
7018 DWORD
* pdwStubPhase
);
7020 #endif /* __IResourceManager_INTERFACE_DEFINED__ */
7022 #ifndef _IKsPropertySet_
7023 #define _IKsPropertySet_
7024 #define KSPROPERTY_SUPPORT_GET 1
7025 #define KSPROPERTY_SUPPORT_SET 2
7026 /*****************************************************************************
7027 * IKsPropertySet interface
7029 #ifndef __IKsPropertySet_INTERFACE_DEFINED__
7030 #define __IKsPropertySet_INTERFACE_DEFINED__
7032 DEFINE_GUID(IID_IKsPropertySet
, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
7033 #if defined(__cplusplus) && !defined(CINTERFACE)
7034 struct IKsPropertySet
: public IUnknown
7036 virtual HRESULT STDMETHODCALLTYPE
Set(
7037 REFGUID guidPropSet
,
7039 LPVOID pInstanceData
,
7040 DWORD cbInstanceData
,
7042 DWORD cbPropData
) = 0;
7044 virtual HRESULT STDMETHODCALLTYPE
Get(
7045 REFGUID guidPropSet
,
7047 LPVOID pInstanceData
,
7048 DWORD cbInstanceData
,
7051 DWORD
* pcbReturned
) = 0;
7053 virtual HRESULT STDMETHODCALLTYPE
QuerySupported(
7054 REFGUID guidPropSet
,
7056 DWORD
* pTypeSupport
) = 0;
7060 typedef struct IKsPropertySetVtbl IKsPropertySetVtbl
;
7061 struct IKsPropertySet
{
7062 const IKsPropertySetVtbl
* lpVtbl
;
7064 struct IKsPropertySetVtbl
{
7065 ICOM_MSVTABLE_COMPAT_FIELDS
7067 /*** IUnknown methods ***/
7068 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7069 IKsPropertySet
* This
,
7073 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7074 IKsPropertySet
* This
);
7076 ULONG (STDMETHODCALLTYPE
*Release
)(
7077 IKsPropertySet
* This
);
7079 /*** IKsPropertySet methods ***/
7080 HRESULT (STDMETHODCALLTYPE
*Set
)(
7081 IKsPropertySet
* This
,
7082 REFGUID guidPropSet
,
7084 LPVOID pInstanceData
,
7085 DWORD cbInstanceData
,
7089 HRESULT (STDMETHODCALLTYPE
*Get
)(
7090 IKsPropertySet
* This
,
7091 REFGUID guidPropSet
,
7093 LPVOID pInstanceData
,
7094 DWORD cbInstanceData
,
7097 DWORD
* pcbReturned
);
7099 HRESULT (STDMETHODCALLTYPE
*QuerySupported
)(
7100 IKsPropertySet
* This
,
7101 REFGUID guidPropSet
,
7103 DWORD
* pTypeSupport
);
7107 /*** IUnknown methods ***/
7108 #define IKsPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7109 #define IKsPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
7110 #define IKsPropertySet_Release(p) (p)->lpVtbl->Release(p)
7111 /*** IKsPropertySet methods ***/
7112 #define IKsPropertySet_Set(p,a,b,c,d,e,f) (p)->lpVtbl->Set(p,a,b,c,d,e,f)
7113 #define IKsPropertySet_Get(p,a,b,c,d,e,f,g) (p)->lpVtbl->Get(p,a,b,c,d,e,f,g)
7114 #define IKsPropertySet_QuerySupported(p,a,b,c) (p)->lpVtbl->QuerySupported(p,a,b,c)
7118 #define IKsPropertySet_METHODS \
7119 ICOM_MSVTABLE_COMPAT_FIELDS \
7120 /*** IUnknown methods ***/ \
7121 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7122 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7123 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7124 /*** IKsPropertySet methods ***/ \
7125 STDMETHOD_(HRESULT,Set)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData) PURE; \
7126 STDMETHOD_(HRESULT,Get)(THIS_ REFGUID guidPropSet, DWORD dwPropID, LPVOID pInstanceData, DWORD cbInstanceData, LPVOID pPropData, DWORD cbPropData, DWORD* pcbReturned) PURE; \
7127 STDMETHOD_(HRESULT,QuerySupported)(THIS_ REFGUID guidPropSet, DWORD dwPropID, DWORD* pTypeSupport) PURE;
7129 HRESULT CALLBACK
IKsPropertySet_Set_Proxy(
7130 IKsPropertySet
* This
,
7131 REFGUID guidPropSet
,
7133 LPVOID pInstanceData
,
7134 DWORD cbInstanceData
,
7137 void __RPC_STUB
IKsPropertySet_Set_Stub(
7138 struct IRpcStubBuffer
* This
,
7139 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7140 PRPC_MESSAGE pRpcMessage
,
7141 DWORD
* pdwStubPhase
);
7142 HRESULT CALLBACK
IKsPropertySet_Get_Proxy(
7143 IKsPropertySet
* This
,
7144 REFGUID guidPropSet
,
7146 LPVOID pInstanceData
,
7147 DWORD cbInstanceData
,
7150 DWORD
* pcbReturned
);
7151 void __RPC_STUB
IKsPropertySet_Get_Stub(
7152 struct IRpcStubBuffer
* This
,
7153 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7154 PRPC_MESSAGE pRpcMessage
,
7155 DWORD
* pdwStubPhase
);
7156 HRESULT CALLBACK
IKsPropertySet_QuerySupported_Proxy(
7157 IKsPropertySet
* This
,
7158 REFGUID guidPropSet
,
7160 DWORD
* pTypeSupport
);
7161 void __RPC_STUB
IKsPropertySet_QuerySupported_Stub(
7162 struct IRpcStubBuffer
* This
,
7163 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7164 PRPC_MESSAGE pRpcMessage
,
7165 DWORD
* pdwStubPhase
);
7167 #endif /* __IKsPropertySet_INTERFACE_DEFINED__ */
7169 #endif /* _IKsPropertySet_ */
7170 #ifndef __IPinConnection_FWD_DEFINED__
7171 #define __IPinConnection_FWD_DEFINED__
7172 typedef struct IPinConnection IPinConnection
;
7175 #ifndef __IPinFlowControl_FWD_DEFINED__
7176 #define __IPinFlowControl_FWD_DEFINED__
7177 typedef struct IPinFlowControl IPinFlowControl
;
7180 #ifndef __IGraphConfig_FWD_DEFINED__
7181 #define __IGraphConfig_FWD_DEFINED__
7182 typedef struct IGraphConfig IGraphConfig
;
7185 #ifndef __IGraphConfigCallback_FWD_DEFINED__
7186 #define __IGraphConfigCallback_FWD_DEFINED__
7187 typedef struct IGraphConfigCallback IGraphConfigCallback
;
7190 /*****************************************************************************
7191 * IPinConnection interface
7193 #ifndef __IPinConnection_INTERFACE_DEFINED__
7194 #define __IPinConnection_INTERFACE_DEFINED__
7196 DEFINE_GUID(IID_IPinConnection
, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34);
7197 #if defined(__cplusplus) && !defined(CINTERFACE)
7198 struct IPinConnection
: public IUnknown
7200 virtual HRESULT STDMETHODCALLTYPE
DynamicQueryAccept(
7201 const AM_MEDIA_TYPE
* pmt
) = 0;
7203 virtual HRESULT STDMETHODCALLTYPE
NotifyEndOfStream(
7204 HANDLE hNotifyEvent
) = 0;
7206 virtual HRESULT STDMETHODCALLTYPE
IsEndPin(
7209 virtual HRESULT STDMETHODCALLTYPE
DynamicDisconnect(
7214 typedef struct IPinConnectionVtbl IPinConnectionVtbl
;
7215 struct IPinConnection
{
7216 const IPinConnectionVtbl
* lpVtbl
;
7218 struct IPinConnectionVtbl
{
7219 ICOM_MSVTABLE_COMPAT_FIELDS
7221 /*** IUnknown methods ***/
7222 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7223 IPinConnection
* This
,
7227 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7228 IPinConnection
* This
);
7230 ULONG (STDMETHODCALLTYPE
*Release
)(
7231 IPinConnection
* This
);
7233 /*** IPinConnection methods ***/
7234 HRESULT (STDMETHODCALLTYPE
*DynamicQueryAccept
)(
7235 IPinConnection
* This
,
7236 const AM_MEDIA_TYPE
* pmt
);
7238 HRESULT (STDMETHODCALLTYPE
*NotifyEndOfStream
)(
7239 IPinConnection
* This
,
7240 HANDLE hNotifyEvent
);
7242 HRESULT (STDMETHODCALLTYPE
*IsEndPin
)(
7243 IPinConnection
* This
);
7245 HRESULT (STDMETHODCALLTYPE
*DynamicDisconnect
)(
7246 IPinConnection
* This
);
7250 /*** IUnknown methods ***/
7251 #define IPinConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7252 #define IPinConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
7253 #define IPinConnection_Release(p) (p)->lpVtbl->Release(p)
7254 /*** IPinConnection methods ***/
7255 #define IPinConnection_DynamicQueryAccept(p,a) (p)->lpVtbl->DynamicQueryAccept(p,a)
7256 #define IPinConnection_NotifyEndOfStream(p,a) (p)->lpVtbl->NotifyEndOfStream(p,a)
7257 #define IPinConnection_IsEndPin(p) (p)->lpVtbl->IsEndPin(p)
7258 #define IPinConnection_DynamicDisconnect(p) (p)->lpVtbl->DynamicDisconnect(p)
7262 #define IPinConnection_METHODS \
7263 ICOM_MSVTABLE_COMPAT_FIELDS \
7264 /*** IUnknown methods ***/ \
7265 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7266 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7267 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7268 /*** IPinConnection methods ***/ \
7269 STDMETHOD_(HRESULT,DynamicQueryAccept)(THIS_ const AM_MEDIA_TYPE* pmt) PURE; \
7270 STDMETHOD_(HRESULT,NotifyEndOfStream)(THIS_ HANDLE hNotifyEvent) PURE; \
7271 STDMETHOD_(HRESULT,IsEndPin)(THIS) PURE; \
7272 STDMETHOD_(HRESULT,DynamicDisconnect)(THIS) PURE;
7274 HRESULT CALLBACK
IPinConnection_DynamicQueryAccept_Proxy(
7275 IPinConnection
* This
,
7276 const AM_MEDIA_TYPE
* pmt
);
7277 void __RPC_STUB
IPinConnection_DynamicQueryAccept_Stub(
7278 struct IRpcStubBuffer
* This
,
7279 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7280 PRPC_MESSAGE pRpcMessage
,
7281 DWORD
* pdwStubPhase
);
7282 HRESULT CALLBACK
IPinConnection_NotifyEndOfStream_Proxy(
7283 IPinConnection
* This
,
7284 HANDLE hNotifyEvent
);
7285 void __RPC_STUB
IPinConnection_NotifyEndOfStream_Stub(
7286 struct IRpcStubBuffer
* This
,
7287 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7288 PRPC_MESSAGE pRpcMessage
,
7289 DWORD
* pdwStubPhase
);
7290 HRESULT CALLBACK
IPinConnection_IsEndPin_Proxy(
7291 IPinConnection
* This
);
7292 void __RPC_STUB
IPinConnection_IsEndPin_Stub(
7293 struct IRpcStubBuffer
* This
,
7294 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7295 PRPC_MESSAGE pRpcMessage
,
7296 DWORD
* pdwStubPhase
);
7297 HRESULT CALLBACK
IPinConnection_DynamicDisconnect_Proxy(
7298 IPinConnection
* This
);
7299 void __RPC_STUB
IPinConnection_DynamicDisconnect_Stub(
7300 struct IRpcStubBuffer
* This
,
7301 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7302 PRPC_MESSAGE pRpcMessage
,
7303 DWORD
* pdwStubPhase
);
7305 #endif /* __IPinConnection_INTERFACE_DEFINED__ */
7307 /*****************************************************************************
7308 * IPinFlowControl interface
7310 #ifndef __IPinFlowControl_INTERFACE_DEFINED__
7311 #define __IPinFlowControl_INTERFACE_DEFINED__
7313 DEFINE_GUID(IID_IPinFlowControl
, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb);
7314 #if defined(__cplusplus) && !defined(CINTERFACE)
7315 struct IPinFlowControl
: public IUnknown
7317 virtual HRESULT STDMETHODCALLTYPE
Block(
7323 typedef struct IPinFlowControlVtbl IPinFlowControlVtbl
;
7324 struct IPinFlowControl
{
7325 const IPinFlowControlVtbl
* lpVtbl
;
7327 struct IPinFlowControlVtbl
{
7328 ICOM_MSVTABLE_COMPAT_FIELDS
7330 /*** IUnknown methods ***/
7331 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7332 IPinFlowControl
* This
,
7336 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7337 IPinFlowControl
* This
);
7339 ULONG (STDMETHODCALLTYPE
*Release
)(
7340 IPinFlowControl
* This
);
7342 /*** IPinFlowControl methods ***/
7343 HRESULT (STDMETHODCALLTYPE
*Block
)(
7344 IPinFlowControl
* This
,
7350 /*** IUnknown methods ***/
7351 #define IPinFlowControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7352 #define IPinFlowControl_AddRef(p) (p)->lpVtbl->AddRef(p)
7353 #define IPinFlowControl_Release(p) (p)->lpVtbl->Release(p)
7354 /*** IPinFlowControl methods ***/
7355 #define IPinFlowControl_Block(p,a,b) (p)->lpVtbl->Block(p,a,b)
7359 #define IPinFlowControl_METHODS \
7360 ICOM_MSVTABLE_COMPAT_FIELDS \
7361 /*** IUnknown methods ***/ \
7362 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7363 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7364 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7365 /*** IPinFlowControl methods ***/ \
7366 STDMETHOD_(HRESULT,Block)(THIS_ DWORD dwBlockFlags, HANDLE hEvent) PURE;
7368 HRESULT CALLBACK
IPinFlowControl_Block_Proxy(
7369 IPinFlowControl
* This
,
7372 void __RPC_STUB
IPinFlowControl_Block_Stub(
7373 struct IRpcStubBuffer
* This
,
7374 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7375 PRPC_MESSAGE pRpcMessage
,
7376 DWORD
* pdwStubPhase
);
7378 #endif /* __IPinFlowControl_INTERFACE_DEFINED__ */
7380 enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS
{
7381 AM_PIN_FLOW_CONTROL_BLOCK
= 0x1
7384 typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS
{
7385 AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT
= 0x1,
7386 AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS
= 0x2,
7387 AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS
= 0x4
7388 } AM_GRAPH_CONFIG_RECONNECT_FLAGS
;
7390 enum _REM_FILTER_FLAGS
{
7391 REMFILTERF_LEAVECONNECTED
= 0x1
7394 typedef enum _AM_FILTER_FLAGS
{
7395 AM_FILTER_FLAGS_REMOVABLE
= 0x1
7398 /*****************************************************************************
7399 * IGraphConfig interface
7401 #ifndef __IGraphConfig_INTERFACE_DEFINED__
7402 #define __IGraphConfig_INTERFACE_DEFINED__
7404 DEFINE_GUID(IID_IGraphConfig
, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88);
7405 #if defined(__cplusplus) && !defined(CINTERFACE)
7406 struct IGraphConfig
: public IUnknown
7408 virtual HRESULT STDMETHODCALLTYPE
Reconnect(
7411 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7412 IBaseFilter
* pUsingFilter
,
7416 virtual HRESULT STDMETHODCALLTYPE
Reconfigure(
7417 IGraphConfigCallback
* pCallback
,
7420 HANDLE hAbortEvent
) = 0;
7422 virtual HRESULT STDMETHODCALLTYPE
AddFilterToCache(
7423 IBaseFilter
* pFilter
) = 0;
7425 virtual HRESULT STDMETHODCALLTYPE
EnumCacheFilter(
7426 IEnumFilters
** pEnum
) = 0;
7428 virtual HRESULT STDMETHODCALLTYPE
RemoveFilterFromCache(
7429 IBaseFilter
* pFilter
) = 0;
7431 virtual HRESULT STDMETHODCALLTYPE
GetStartTime(
7432 REFERENCE_TIME
* prtStart
) = 0;
7434 virtual HRESULT STDMETHODCALLTYPE
PushThroughData(
7436 IPinConnection
* pConnection
,
7437 HANDLE hEventAbort
) = 0;
7439 virtual HRESULT STDMETHODCALLTYPE
SetFilterFlags(
7440 IBaseFilter
* pFilter
,
7443 virtual HRESULT STDMETHODCALLTYPE
GetFilterFlags(
7444 IBaseFilter
* pFilter
,
7445 DWORD
* pdwFlags
) = 0;
7447 virtual HRESULT STDMETHODCALLTYPE
RemoveFilterEx(
7448 IBaseFilter
* pFilter
,
7453 typedef struct IGraphConfigVtbl IGraphConfigVtbl
;
7454 struct IGraphConfig
{
7455 const IGraphConfigVtbl
* lpVtbl
;
7457 struct IGraphConfigVtbl
{
7458 ICOM_MSVTABLE_COMPAT_FIELDS
7460 /*** IUnknown methods ***/
7461 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7466 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7467 IGraphConfig
* This
);
7469 ULONG (STDMETHODCALLTYPE
*Release
)(
7470 IGraphConfig
* This
);
7472 /*** IGraphConfig methods ***/
7473 HRESULT (STDMETHODCALLTYPE
*Reconnect
)(
7477 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7478 IBaseFilter
* pUsingFilter
,
7482 HRESULT (STDMETHODCALLTYPE
*Reconfigure
)(
7484 IGraphConfigCallback
* pCallback
,
7487 HANDLE hAbortEvent
);
7489 HRESULT (STDMETHODCALLTYPE
*AddFilterToCache
)(
7491 IBaseFilter
* pFilter
);
7493 HRESULT (STDMETHODCALLTYPE
*EnumCacheFilter
)(
7495 IEnumFilters
** pEnum
);
7497 HRESULT (STDMETHODCALLTYPE
*RemoveFilterFromCache
)(
7499 IBaseFilter
* pFilter
);
7501 HRESULT (STDMETHODCALLTYPE
*GetStartTime
)(
7503 REFERENCE_TIME
* prtStart
);
7505 HRESULT (STDMETHODCALLTYPE
*PushThroughData
)(
7508 IPinConnection
* pConnection
,
7509 HANDLE hEventAbort
);
7511 HRESULT (STDMETHODCALLTYPE
*SetFilterFlags
)(
7513 IBaseFilter
* pFilter
,
7516 HRESULT (STDMETHODCALLTYPE
*GetFilterFlags
)(
7518 IBaseFilter
* pFilter
,
7521 HRESULT (STDMETHODCALLTYPE
*RemoveFilterEx
)(
7523 IBaseFilter
* pFilter
,
7528 /*** IUnknown methods ***/
7529 #define IGraphConfig_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7530 #define IGraphConfig_AddRef(p) (p)->lpVtbl->AddRef(p)
7531 #define IGraphConfig_Release(p) (p)->lpVtbl->Release(p)
7532 /*** IGraphConfig methods ***/
7533 #define IGraphConfig_Reconnect(p,a,b,c,d,e,f) (p)->lpVtbl->Reconnect(p,a,b,c,d,e,f)
7534 #define IGraphConfig_Reconfigure(p,a,b,c,d) (p)->lpVtbl->Reconfigure(p,a,b,c,d)
7535 #define IGraphConfig_AddFilterToCache(p,a) (p)->lpVtbl->AddFilterToCache(p,a)
7536 #define IGraphConfig_EnumCacheFilter(p,a) (p)->lpVtbl->EnumCacheFilter(p,a)
7537 #define IGraphConfig_RemoveFilterFromCache(p,a) (p)->lpVtbl->RemoveFilterFromCache(p,a)
7538 #define IGraphConfig_GetStartTime(p,a) (p)->lpVtbl->GetStartTime(p,a)
7539 #define IGraphConfig_PushThroughData(p,a,b,c) (p)->lpVtbl->PushThroughData(p,a,b,c)
7540 #define IGraphConfig_SetFilterFlags(p,a,b) (p)->lpVtbl->SetFilterFlags(p,a,b)
7541 #define IGraphConfig_GetFilterFlags(p,a,b) (p)->lpVtbl->GetFilterFlags(p,a,b)
7542 #define IGraphConfig_RemoveFilterEx(p,a,b) (p)->lpVtbl->RemoveFilterEx(p,a,b)
7546 #define IGraphConfig_METHODS \
7547 ICOM_MSVTABLE_COMPAT_FIELDS \
7548 /*** IUnknown methods ***/ \
7549 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7550 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7551 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7552 /*** IGraphConfig methods ***/ \
7553 STDMETHOD_(HRESULT,Reconnect)(THIS_ IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pmtFirstConnection, IBaseFilter* pUsingFilter, HANDLE hAbortEvent, DWORD dwFlags) PURE; \
7554 STDMETHOD_(HRESULT,Reconfigure)(THIS_ IGraphConfigCallback* pCallback, PVOID pvContext, DWORD dwFlags, HANDLE hAbortEvent) PURE; \
7555 STDMETHOD_(HRESULT,AddFilterToCache)(THIS_ IBaseFilter* pFilter) PURE; \
7556 STDMETHOD_(HRESULT,EnumCacheFilter)(THIS_ IEnumFilters** pEnum) PURE; \
7557 STDMETHOD_(HRESULT,RemoveFilterFromCache)(THIS_ IBaseFilter* pFilter) PURE; \
7558 STDMETHOD_(HRESULT,GetStartTime)(THIS_ REFERENCE_TIME* prtStart) PURE; \
7559 STDMETHOD_(HRESULT,PushThroughData)(THIS_ IPin* pOutputPin, IPinConnection* pConnection, HANDLE hEventAbort) PURE; \
7560 STDMETHOD_(HRESULT,SetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD dwFlags) PURE; \
7561 STDMETHOD_(HRESULT,GetFilterFlags)(THIS_ IBaseFilter* pFilter, DWORD* pdwFlags) PURE; \
7562 STDMETHOD_(HRESULT,RemoveFilterEx)(THIS_ IBaseFilter* pFilter, DWORD Flags) PURE;
7564 HRESULT CALLBACK
IGraphConfig_Reconnect_Proxy(
7568 const AM_MEDIA_TYPE
* pmtFirstConnection
,
7569 IBaseFilter
* pUsingFilter
,
7572 void __RPC_STUB
IGraphConfig_Reconnect_Stub(
7573 struct IRpcStubBuffer
* This
,
7574 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7575 PRPC_MESSAGE pRpcMessage
,
7576 DWORD
* pdwStubPhase
);
7577 HRESULT CALLBACK
IGraphConfig_Reconfigure_Proxy(
7579 IGraphConfigCallback
* pCallback
,
7582 HANDLE hAbortEvent
);
7583 void __RPC_STUB
IGraphConfig_Reconfigure_Stub(
7584 struct IRpcStubBuffer
* This
,
7585 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7586 PRPC_MESSAGE pRpcMessage
,
7587 DWORD
* pdwStubPhase
);
7588 HRESULT CALLBACK
IGraphConfig_AddFilterToCache_Proxy(
7590 IBaseFilter
* pFilter
);
7591 void __RPC_STUB
IGraphConfig_AddFilterToCache_Stub(
7592 struct IRpcStubBuffer
* This
,
7593 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7594 PRPC_MESSAGE pRpcMessage
,
7595 DWORD
* pdwStubPhase
);
7596 HRESULT CALLBACK
IGraphConfig_EnumCacheFilter_Proxy(
7598 IEnumFilters
** pEnum
);
7599 void __RPC_STUB
IGraphConfig_EnumCacheFilter_Stub(
7600 struct IRpcStubBuffer
* This
,
7601 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7602 PRPC_MESSAGE pRpcMessage
,
7603 DWORD
* pdwStubPhase
);
7604 HRESULT CALLBACK
IGraphConfig_RemoveFilterFromCache_Proxy(
7606 IBaseFilter
* pFilter
);
7607 void __RPC_STUB
IGraphConfig_RemoveFilterFromCache_Stub(
7608 struct IRpcStubBuffer
* This
,
7609 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7610 PRPC_MESSAGE pRpcMessage
,
7611 DWORD
* pdwStubPhase
);
7612 HRESULT CALLBACK
IGraphConfig_GetStartTime_Proxy(
7614 REFERENCE_TIME
* prtStart
);
7615 void __RPC_STUB
IGraphConfig_GetStartTime_Stub(
7616 struct IRpcStubBuffer
* This
,
7617 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7618 PRPC_MESSAGE pRpcMessage
,
7619 DWORD
* pdwStubPhase
);
7620 HRESULT CALLBACK
IGraphConfig_PushThroughData_Proxy(
7623 IPinConnection
* pConnection
,
7624 HANDLE hEventAbort
);
7625 void __RPC_STUB
IGraphConfig_PushThroughData_Stub(
7626 struct IRpcStubBuffer
* This
,
7627 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7628 PRPC_MESSAGE pRpcMessage
,
7629 DWORD
* pdwStubPhase
);
7630 HRESULT CALLBACK
IGraphConfig_SetFilterFlags_Proxy(
7632 IBaseFilter
* pFilter
,
7634 void __RPC_STUB
IGraphConfig_SetFilterFlags_Stub(
7635 struct IRpcStubBuffer
* This
,
7636 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7637 PRPC_MESSAGE pRpcMessage
,
7638 DWORD
* pdwStubPhase
);
7639 HRESULT CALLBACK
IGraphConfig_GetFilterFlags_Proxy(
7641 IBaseFilter
* pFilter
,
7643 void __RPC_STUB
IGraphConfig_GetFilterFlags_Stub(
7644 struct IRpcStubBuffer
* This
,
7645 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7646 PRPC_MESSAGE pRpcMessage
,
7647 DWORD
* pdwStubPhase
);
7648 HRESULT CALLBACK
IGraphConfig_RemoveFilterEx_Proxy(
7650 IBaseFilter
* pFilter
,
7652 void __RPC_STUB
IGraphConfig_RemoveFilterEx_Stub(
7653 struct IRpcStubBuffer
* This
,
7654 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7655 PRPC_MESSAGE pRpcMessage
,
7656 DWORD
* pdwStubPhase
);
7658 #endif /* __IGraphConfig_INTERFACE_DEFINED__ */
7660 /*****************************************************************************
7661 * IGraphConfigCallback interface
7663 #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
7664 #define __IGraphConfigCallback_INTERFACE_DEFINED__
7666 DEFINE_GUID(IID_IGraphConfigCallback
, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
7667 #if defined(__cplusplus) && !defined(CINTERFACE)
7668 struct IGraphConfigCallback
: public IUnknown
7670 virtual HRESULT STDMETHODCALLTYPE
Reconfigure(
7676 typedef struct IGraphConfigCallbackVtbl IGraphConfigCallbackVtbl
;
7677 struct IGraphConfigCallback
{
7678 const IGraphConfigCallbackVtbl
* lpVtbl
;
7680 struct IGraphConfigCallbackVtbl
{
7681 ICOM_MSVTABLE_COMPAT_FIELDS
7683 /*** IUnknown methods ***/
7684 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7685 IGraphConfigCallback
* This
,
7689 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7690 IGraphConfigCallback
* This
);
7692 ULONG (STDMETHODCALLTYPE
*Release
)(
7693 IGraphConfigCallback
* This
);
7695 /*** IGraphConfigCallback methods ***/
7696 HRESULT (STDMETHODCALLTYPE
*Reconfigure
)(
7697 IGraphConfigCallback
* This
,
7703 /*** IUnknown methods ***/
7704 #define IGraphConfigCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7705 #define IGraphConfigCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
7706 #define IGraphConfigCallback_Release(p) (p)->lpVtbl->Release(p)
7707 /*** IGraphConfigCallback methods ***/
7708 #define IGraphConfigCallback_Reconfigure(p,a,b) (p)->lpVtbl->Reconfigure(p,a,b)
7712 #define IGraphConfigCallback_METHODS \
7713 ICOM_MSVTABLE_COMPAT_FIELDS \
7714 /*** IUnknown methods ***/ \
7715 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7716 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7717 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7718 /*** IGraphConfigCallback methods ***/ \
7719 STDMETHOD_(HRESULT,Reconfigure)(THIS_ PVOID pvContext, DWORD dwFlags) PURE;
7721 HRESULT CALLBACK
IGraphConfigCallback_Reconfigure_Proxy(
7722 IGraphConfigCallback
* This
,
7725 void __RPC_STUB
IGraphConfigCallback_Reconfigure_Stub(
7726 struct IRpcStubBuffer
* This
,
7727 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7728 PRPC_MESSAGE pRpcMessage
,
7729 DWORD
* pdwStubPhase
);
7731 #endif /* __IGraphConfigCallback_INTERFACE_DEFINED__ */
7733 #ifndef __IFilterChain_FWD_DEFINED__
7734 #define __IFilterChain_FWD_DEFINED__
7735 typedef struct IFilterChain IFilterChain
;
7738 /*****************************************************************************
7739 * IFilterChain interface
7741 #ifndef __IFilterChain_INTERFACE_DEFINED__
7742 #define __IFilterChain_INTERFACE_DEFINED__
7744 DEFINE_GUID(IID_IFilterChain
, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29);
7745 #if defined(__cplusplus) && !defined(CINTERFACE)
7746 struct IFilterChain
: public IUnknown
7748 virtual HRESULT STDMETHODCALLTYPE
StartChain(
7749 IBaseFilter
* pStartFilter
,
7750 IBaseFilter
* pEndFilter
) = 0;
7752 virtual HRESULT STDMETHODCALLTYPE
PauseChain(
7753 IBaseFilter
* pStartFilter
,
7754 IBaseFilter
* pEndFilter
) = 0;
7756 virtual HRESULT STDMETHODCALLTYPE
StopChain(
7757 IBaseFilter
* pStartFilter
,
7758 IBaseFilter
* pEndFilter
) = 0;
7760 virtual HRESULT STDMETHODCALLTYPE
RemoveChain(
7761 IBaseFilter
* pStartFilter
,
7762 IBaseFilter
* pEndFilter
) = 0;
7766 typedef struct IFilterChainVtbl IFilterChainVtbl
;
7767 struct IFilterChain
{
7768 const IFilterChainVtbl
* lpVtbl
;
7770 struct IFilterChainVtbl
{
7771 ICOM_MSVTABLE_COMPAT_FIELDS
7773 /*** IUnknown methods ***/
7774 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
7779 ULONG (STDMETHODCALLTYPE
*AddRef
)(
7780 IFilterChain
* This
);
7782 ULONG (STDMETHODCALLTYPE
*Release
)(
7783 IFilterChain
* This
);
7785 /*** IFilterChain methods ***/
7786 HRESULT (STDMETHODCALLTYPE
*StartChain
)(
7788 IBaseFilter
* pStartFilter
,
7789 IBaseFilter
* pEndFilter
);
7791 HRESULT (STDMETHODCALLTYPE
*PauseChain
)(
7793 IBaseFilter
* pStartFilter
,
7794 IBaseFilter
* pEndFilter
);
7796 HRESULT (STDMETHODCALLTYPE
*StopChain
)(
7798 IBaseFilter
* pStartFilter
,
7799 IBaseFilter
* pEndFilter
);
7801 HRESULT (STDMETHODCALLTYPE
*RemoveChain
)(
7803 IBaseFilter
* pStartFilter
,
7804 IBaseFilter
* pEndFilter
);
7808 /*** IUnknown methods ***/
7809 #define IFilterChain_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
7810 #define IFilterChain_AddRef(p) (p)->lpVtbl->AddRef(p)
7811 #define IFilterChain_Release(p) (p)->lpVtbl->Release(p)
7812 /*** IFilterChain methods ***/
7813 #define IFilterChain_StartChain(p,a,b) (p)->lpVtbl->StartChain(p,a,b)
7814 #define IFilterChain_PauseChain(p,a,b) (p)->lpVtbl->PauseChain(p,a,b)
7815 #define IFilterChain_StopChain(p,a,b) (p)->lpVtbl->StopChain(p,a,b)
7816 #define IFilterChain_RemoveChain(p,a,b) (p)->lpVtbl->RemoveChain(p,a,b)
7820 #define IFilterChain_METHODS \
7821 ICOM_MSVTABLE_COMPAT_FIELDS \
7822 /*** IUnknown methods ***/ \
7823 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
7824 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
7825 STDMETHOD_(ULONG,Release)(THIS) PURE; \
7826 /*** IFilterChain methods ***/ \
7827 STDMETHOD_(HRESULT,StartChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7828 STDMETHOD_(HRESULT,PauseChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7829 STDMETHOD_(HRESULT,StopChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE; \
7830 STDMETHOD_(HRESULT,RemoveChain)(THIS_ IBaseFilter* pStartFilter, IBaseFilter* pEndFilter) PURE;
7832 HRESULT CALLBACK
IFilterChain_StartChain_Proxy(
7834 IBaseFilter
* pStartFilter
,
7835 IBaseFilter
* pEndFilter
);
7836 void __RPC_STUB
IFilterChain_StartChain_Stub(
7837 struct IRpcStubBuffer
* This
,
7838 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7839 PRPC_MESSAGE pRpcMessage
,
7840 DWORD
* pdwStubPhase
);
7841 HRESULT CALLBACK
IFilterChain_PauseChain_Proxy(
7843 IBaseFilter
* pStartFilter
,
7844 IBaseFilter
* pEndFilter
);
7845 void __RPC_STUB
IFilterChain_PauseChain_Stub(
7846 struct IRpcStubBuffer
* This
,
7847 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7848 PRPC_MESSAGE pRpcMessage
,
7849 DWORD
* pdwStubPhase
);
7850 HRESULT CALLBACK
IFilterChain_StopChain_Proxy(
7852 IBaseFilter
* pStartFilter
,
7853 IBaseFilter
* pEndFilter
);
7854 void __RPC_STUB
IFilterChain_StopChain_Stub(
7855 struct IRpcStubBuffer
* This
,
7856 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7857 PRPC_MESSAGE pRpcMessage
,
7858 DWORD
* pdwStubPhase
);
7859 HRESULT CALLBACK
IFilterChain_RemoveChain_Proxy(
7861 IBaseFilter
* pStartFilter
,
7862 IBaseFilter
* pEndFilter
);
7863 void __RPC_STUB
IFilterChain_RemoveChain_Stub(
7864 struct IRpcStubBuffer
* This
,
7865 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
7866 PRPC_MESSAGE pRpcMessage
,
7867 DWORD
* pdwStubPhase
);
7869 #endif /* __IFilterChain_INTERFACE_DEFINED__ */
7874 #endif /* __WIDL_STRMIF_H */